mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-24 16:01:42 +00:00
a3faea16e7
* feat: add nu (nushell) support * add worker tests * deactivate tables and non-any types below top-level full support will come in V1 for V0 it's better to keep things minimal and simple * add syntax highlighting used python's grammar, since nushell isn't supported by monaco nor svelte-highlights for V1 nu will get it`s own grammar * add logo * partially implement plugin support * change logo + ability to deploy + nsjail draft * static variables + get_resource + get_variable * lsp/dev.nu + initial nu lsp (not working yet) * make it work with nsjail * nullguard * Much more flexible signature parsing and better error-messages * add init script * rename nulsp to nu * install nu to dockerfile * fix merge * implement Default for MainArgSignature * stage NU_CACHE_DIR * improve dockerfiles * dev.nu for parser-wasm + flake.nix * update code for windows * add nushell to flake * upload Cargo.lock * make build.sh work on nixos * build wasm cli parsers * add docs to README_DEV.md * add helper script docker/dev.nu * improve docker/dev.nu * fix windows * commit frontend/package(lock).json * update cargo.lock * correctly update cargo.lock * remove lsp * update flake.nix to include svelte server and nushell * Revert base.sql to main * remove PLUGIN_USE_RE * make CARGO_PATH private * add nu to cli * Change flags to build wasm-nu-parser * remove flake.nix from parser-wasm * update wasm-build target * remove unused import * add cli support for nu * update github workflows * wasm-build 0.17 -> 0.19 * update build script * update cargo.lock * Fix typographical error * update Cargo.lock * update ENV_SETTINGS * use published nu parser * update package.lock * rewrite parser in tree-sitter * implement parser from scratch * polishing * change init script to match new parser * fix imports * fix cli build * fix cli build * merge * update wasm * use MiniPulledJob * update cli * change cli wasm schema * change cli * update deno.json * make wasm modules load lazily * regenerate parsers * remove leftover * update cargo.lock * clean up dnt.ts * add docs to cli/test.nu * add schema validation option * add Nu to try_validate_schema * reference frontend to new parser version
2584 lines
76 KiB
SQL
2584 lines
76 KiB
SQL
--
|
|
-- PostgreSQL database dump
|
|
--
|
|
|
|
-- Dumped from database version 15.3
|
|
-- Dumped by pg_dump version 15.3
|
|
|
|
SET statement_timeout = 0;
|
|
SET lock_timeout = 0;
|
|
SET idle_in_transaction_session_timeout = 0;
|
|
SET client_encoding = 'UTF8';
|
|
SET standard_conforming_strings = on;
|
|
SELECT pg_catalog.set_config('search_path', '', false);
|
|
SET check_function_bodies = false;
|
|
SET xmloption = content;
|
|
SET client_min_messages = warning;
|
|
SET row_security = off;
|
|
|
|
--
|
|
-- Name: _sqlx_test; Type: SCHEMA; Schema: -; Owner: postgres
|
|
--
|
|
|
|
CREATE SCHEMA _sqlx_test;
|
|
|
|
|
|
ALTER SCHEMA _sqlx_test OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: extensions; Type: SCHEMA; Schema: -; Owner: postgres
|
|
--
|
|
|
|
CREATE SCHEMA extensions;
|
|
|
|
|
|
ALTER SCHEMA extensions OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: -
|
|
--
|
|
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA extensions;
|
|
|
|
|
|
--
|
|
-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner:
|
|
--
|
|
|
|
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
|
|
|
|
|
|
--
|
|
-- Name: action_kind; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.action_kind AS ENUM (
|
|
'create',
|
|
'update',
|
|
'delete',
|
|
'execute'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.action_kind OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: draft_type; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.draft_type AS ENUM (
|
|
'script',
|
|
'flow',
|
|
'app'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.draft_type OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: favorite_kind; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.favorite_kind AS ENUM (
|
|
'app',
|
|
'script',
|
|
'flow',
|
|
'raw_app'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.favorite_kind OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: job_kind; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.job_kind AS ENUM (
|
|
'script',
|
|
'preview',
|
|
'flow',
|
|
'dependencies',
|
|
'flowpreview',
|
|
'script_hub',
|
|
'identity',
|
|
'flowdependencies',
|
|
'http',
|
|
'graphql',
|
|
'postgresql',
|
|
'noop'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.job_kind OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: login_type; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.login_type AS ENUM (
|
|
'password',
|
|
'github'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.login_type OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: runnable_type; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.runnable_type AS ENUM (
|
|
'ScriptHash',
|
|
'ScriptPath',
|
|
'FlowPath'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.runnable_type OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: script_kind; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.script_kind AS ENUM (
|
|
'script',
|
|
'trigger',
|
|
'failure',
|
|
'command',
|
|
'approval'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.script_kind OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: script_lang; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.script_lang AS ENUM (
|
|
'python3',
|
|
'deno',
|
|
'go',
|
|
'bash',
|
|
'postgresql',
|
|
'nativets',
|
|
'Nativets',
|
|
'bun',
|
|
'mysql'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.script_lang OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: workspace_key_kind; Type: TYPE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TYPE public.workspace_key_kind AS ENUM (
|
|
'cloud'
|
|
);
|
|
|
|
|
|
ALTER TYPE public.workspace_key_kind OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: database_ids; Type: SEQUENCE; Schema: _sqlx_test; Owner: postgres
|
|
--
|
|
|
|
CREATE SEQUENCE _sqlx_test.database_ids
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE _sqlx_test.database_ids OWNER TO postgres;
|
|
|
|
SET default_tablespace = '';
|
|
|
|
SET default_table_access_method = heap;
|
|
|
|
--
|
|
-- Name: databases; Type: TABLE; Schema: _sqlx_test; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE _sqlx_test.databases (
|
|
db_name text NOT NULL,
|
|
test_path text NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE _sqlx_test.databases OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: _sqlx_migrations; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public._sqlx_migrations (
|
|
version bigint NOT NULL,
|
|
description text NOT NULL,
|
|
installed_on timestamp with time zone DEFAULT now() NOT NULL,
|
|
success boolean NOT NULL,
|
|
checksum bytea NOT NULL,
|
|
execution_time bigint NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public._sqlx_migrations OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: account; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.account (
|
|
workspace_id character varying(50) NOT NULL,
|
|
id integer NOT NULL,
|
|
expires_at timestamp with time zone NOT NULL,
|
|
refresh_token character varying(1500) NOT NULL,
|
|
owner character varying(50) NOT NULL,
|
|
client character varying(50) NOT NULL,
|
|
refresh_error text
|
|
);
|
|
|
|
|
|
ALTER TABLE public.account OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: account_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE SEQUENCE public.account_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.account_id_seq OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: account_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER SEQUENCE public.account_id_seq OWNED BY public.account.id;
|
|
|
|
|
|
--
|
|
-- Name: app; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.app (
|
|
id bigint NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
summary character varying(1000) DEFAULT ''::character varying NOT NULL,
|
|
policy jsonb NOT NULL,
|
|
versions bigint[] NOT NULL,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
draft_only boolean
|
|
);
|
|
|
|
|
|
ALTER TABLE public.app OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: app_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE SEQUENCE public.app_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.app_id_seq OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: app_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER SEQUENCE public.app_id_seq OWNED BY public.app.id;
|
|
|
|
|
|
--
|
|
-- Name: app_version; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.app_version (
|
|
id bigint NOT NULL,
|
|
app_id bigint NOT NULL,
|
|
value json NOT NULL,
|
|
created_by character varying(50) NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.app_version OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: app_version_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE SEQUENCE public.app_version_id_seq
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.app_version_id_seq OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: app_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER SEQUENCE public.app_version_id_seq OWNED BY public.app_version.id;
|
|
|
|
|
|
--
|
|
-- Name: audit; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.audit (
|
|
workspace_id character varying(50) NOT NULL,
|
|
id integer NOT NULL,
|
|
"timestamp" timestamp with time zone DEFAULT now() NOT NULL,
|
|
username character varying(255) NOT NULL,
|
|
operation character varying(50) NOT NULL,
|
|
action_kind public.action_kind NOT NULL,
|
|
resource character varying(255),
|
|
parameters jsonb
|
|
);
|
|
|
|
|
|
ALTER TABLE public.audit OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: audit_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE SEQUENCE public.audit_id_seq
|
|
AS integer
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
NO MINVALUE
|
|
NO MAXVALUE
|
|
CACHE 1;
|
|
|
|
|
|
ALTER TABLE public.audit_id_seq OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: audit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER SEQUENCE public.audit_id_seq OWNED BY public.audit.id;
|
|
|
|
|
|
--
|
|
-- Name: capture; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.capture (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
created_by character varying(50) NOT NULL,
|
|
payload jsonb DEFAULT 'null'::jsonb NOT NULL,
|
|
CONSTRAINT capture_payload_too_big CHECK ((length((payload)::text) < (512 * 1024)))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.capture OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: completed_job; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.completed_job (
|
|
id uuid NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
parent_job uuid,
|
|
created_by character varying(255) NOT NULL,
|
|
created_at timestamp with time zone NOT NULL,
|
|
duration_ms integer NOT NULL,
|
|
success boolean NOT NULL,
|
|
script_hash bigint,
|
|
script_path character varying(255),
|
|
args jsonb,
|
|
result jsonb,
|
|
logs text,
|
|
deleted boolean DEFAULT false NOT NULL,
|
|
raw_code text,
|
|
canceled boolean DEFAULT false NOT NULL,
|
|
canceled_by character varying(50),
|
|
canceled_reason text,
|
|
job_kind public.job_kind DEFAULT 'script'::public.job_kind NOT NULL,
|
|
env_id integer DEFAULT 0 NOT NULL,
|
|
schedule_path character varying(255),
|
|
permissioned_as character varying(55) DEFAULT 'g/all'::character varying NOT NULL,
|
|
flow_status jsonb,
|
|
raw_flow jsonb,
|
|
is_flow_step boolean DEFAULT false,
|
|
language public.script_lang DEFAULT 'python3'::public.script_lang,
|
|
started_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
is_skipped boolean DEFAULT false NOT NULL,
|
|
raw_lock text,
|
|
email character varying(50) DEFAULT 'missing@email.xyz'::character varying NOT NULL,
|
|
visible_to_owner boolean DEFAULT true,
|
|
mem_peak integer,
|
|
tag character varying(50) DEFAULT 'other'::character varying NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.completed_job OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: demo; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.demo (
|
|
key text,
|
|
value bigint
|
|
);
|
|
|
|
|
|
ALTER TABLE public.demo OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: draft; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.draft (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
typ public.draft_type NOT NULL,
|
|
value json NOT NULL,
|
|
created_at timestamp without time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.draft OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: email_to_igroup; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.email_to_igroup (
|
|
email character varying(255) NOT NULL,
|
|
igroup character varying(255) NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.email_to_igroup OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: favorite; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.favorite (
|
|
usr character varying(50) NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
favorite_kind public.favorite_kind NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.favorite OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: flow; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.flow (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
summary text NOT NULL,
|
|
description text NOT NULL,
|
|
value jsonb NOT NULL,
|
|
edited_by character varying(50) NOT NULL,
|
|
edited_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
archived boolean DEFAULT false NOT NULL,
|
|
schema json,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
dependency_job uuid,
|
|
draft_only boolean,
|
|
tag character varying(50),
|
|
CONSTRAINT proper_id CHECK (((path)::text ~ '^[ufg](\/[\w-]+){2,}$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.flow OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: folder; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.folder (
|
|
name character varying(255) NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
display_name character varying(100) NOT NULL,
|
|
owners character varying(255)[] NOT NULL,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.folder OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: group_; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.group_ (
|
|
workspace_id character varying(50) NOT NULL,
|
|
name character varying(50) NOT NULL,
|
|
summary text,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
CONSTRAINT proper_name CHECK (((name)::text ~ '^[\w-]+$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.group_ OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: input; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.input (
|
|
id uuid NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
runnable_id character varying(255) NOT NULL,
|
|
runnable_type public.runnable_type NOT NULL,
|
|
name text NOT NULL,
|
|
args jsonb NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
created_by character varying(50) NOT NULL,
|
|
is_public boolean DEFAULT false NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.input OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: instance_group; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.instance_group (
|
|
name character varying(255) NOT NULL,
|
|
summary character varying(2000),
|
|
external_id character varying(1000)
|
|
);
|
|
|
|
|
|
ALTER TABLE public.instance_group OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: magic_link; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.magic_link (
|
|
email character varying(50) NOT NULL,
|
|
token character varying(100) NOT NULL,
|
|
expiration timestamp with time zone DEFAULT (now() + '1 day'::interval) NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.magic_link OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: password; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.password (
|
|
email character varying(50) NOT NULL,
|
|
password_hash character varying(100),
|
|
login_type character varying(50) NOT NULL,
|
|
super_admin boolean DEFAULT false NOT NULL,
|
|
verified boolean DEFAULT false NOT NULL,
|
|
name character varying(255),
|
|
company character varying(255),
|
|
first_time_user boolean DEFAULT false NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.password OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: pip_resolution_cache; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.pip_resolution_cache (
|
|
hash character varying(255) NOT NULL,
|
|
expiration timestamp without time zone NOT NULL,
|
|
lockfile text NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.pip_resolution_cache OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: queue; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.queue (
|
|
id uuid NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
parent_job uuid,
|
|
created_by character varying(255) NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
started_at timestamp with time zone,
|
|
scheduled_for timestamp with time zone NOT NULL,
|
|
running boolean DEFAULT false NOT NULL,
|
|
script_hash bigint,
|
|
script_path character varying(255),
|
|
args jsonb,
|
|
logs text,
|
|
raw_code text,
|
|
canceled boolean DEFAULT false NOT NULL,
|
|
canceled_by character varying(50),
|
|
canceled_reason text,
|
|
last_ping timestamp with time zone DEFAULT now() NOT NULL,
|
|
job_kind public.job_kind DEFAULT 'script'::public.job_kind NOT NULL,
|
|
env_id integer,
|
|
schedule_path character varying(255),
|
|
permissioned_as character varying(55) DEFAULT 'g/all'::character varying NOT NULL,
|
|
flow_status jsonb,
|
|
raw_flow jsonb,
|
|
is_flow_step boolean DEFAULT false,
|
|
language public.script_lang DEFAULT 'python3'::public.script_lang,
|
|
suspend integer DEFAULT 0 NOT NULL,
|
|
suspend_until timestamp with time zone,
|
|
same_worker boolean DEFAULT false,
|
|
raw_lock text,
|
|
pre_run_error text,
|
|
email character varying(50) DEFAULT 'missing@email.xyz'::character varying NOT NULL,
|
|
visible_to_owner boolean DEFAULT true,
|
|
mem_peak integer,
|
|
root_job uuid,
|
|
leaf_jobs jsonb,
|
|
tag character varying(50) DEFAULT 'other'::character varying NOT NULL,
|
|
concurrent_limit integer,
|
|
concurrency_time_window_s integer
|
|
);
|
|
|
|
|
|
ALTER TABLE public.queue OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: raw_app; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.raw_app (
|
|
path character varying(255) NOT NULL,
|
|
version integer DEFAULT 0 NOT NULL,
|
|
workspace_id character varying(50) NOT NULL,
|
|
summary character varying(1000) DEFAULT ''::character varying NOT NULL,
|
|
edited_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
data text NOT NULL,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.raw_app OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: resource; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.resource (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
value jsonb,
|
|
description text,
|
|
resource_type character varying(50) NOT NULL,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
CONSTRAINT proper_id CHECK (((path)::text ~ '^[ufg](\/[\w-]+){2,}$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.resource OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: resource_type; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.resource_type (
|
|
workspace_id character varying(50) NOT NULL,
|
|
name character varying(50) NOT NULL,
|
|
schema jsonb,
|
|
description text,
|
|
CONSTRAINT proper_name CHECK (((name)::text ~ '^[\w-]+$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.resource_type OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: resume_job; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.resume_job (
|
|
id uuid NOT NULL,
|
|
job uuid NOT NULL,
|
|
flow uuid NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
value jsonb DEFAULT 'null'::jsonb NOT NULL,
|
|
approver character varying(50),
|
|
resume_id integer DEFAULT 0 NOT NULL,
|
|
CONSTRAINT resume_job_value_check CHECK ((length((value)::text) < (10 * 1024)))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.resume_job OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: schedule; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.schedule (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
edited_by character varying(255) NOT NULL,
|
|
edited_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
schedule character varying(255) NOT NULL,
|
|
enabled boolean DEFAULT true NOT NULL,
|
|
script_path character varying(255) NOT NULL,
|
|
args jsonb,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
is_flow boolean DEFAULT false NOT NULL,
|
|
email character varying(50) DEFAULT 'missing@email.xyz'::character varying NOT NULL,
|
|
error text,
|
|
timezone character varying(255) DEFAULT 'UTC'::character varying NOT NULL,
|
|
on_failure character varying(1000) DEFAULT NULL::character varying,
|
|
CONSTRAINT proper_id CHECK (((path)::text ~ '^[ufg](\/[\w-]+){2,}$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.schedule OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: script; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.script (
|
|
workspace_id character varying(50) NOT NULL,
|
|
hash bigint NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
parent_hashes bigint[],
|
|
summary text NOT NULL,
|
|
description text NOT NULL,
|
|
content text NOT NULL,
|
|
created_by character varying(50) NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
archived boolean DEFAULT false NOT NULL,
|
|
schema json,
|
|
deleted boolean DEFAULT false NOT NULL,
|
|
is_template boolean DEFAULT false,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
lock text,
|
|
lock_error_logs text,
|
|
language public.script_lang DEFAULT 'python3'::public.script_lang NOT NULL,
|
|
kind public.script_kind DEFAULT 'script'::public.script_kind NOT NULL,
|
|
tag character varying(50),
|
|
draft_only boolean,
|
|
envs character varying(1000)[],
|
|
concurrent_limit integer,
|
|
concurrency_time_window_s integer,
|
|
dedicated_worker boolean,
|
|
CONSTRAINT proper_id CHECK (((path)::text ~ '^[ufg](\/[\w-]+){2,}$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.script OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: token; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.token (
|
|
token character varying(50) NOT NULL,
|
|
label character varying(50),
|
|
expiration timestamp with time zone,
|
|
workspace_id character varying(50),
|
|
owner character varying(55),
|
|
email character varying(50),
|
|
super_admin boolean DEFAULT false NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
last_used_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
scopes text[]
|
|
);
|
|
|
|
|
|
ALTER TABLE public.token OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: usage; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.usage (
|
|
id character varying(50) NOT NULL,
|
|
is_workspace boolean NOT NULL,
|
|
month_ integer NOT NULL,
|
|
usage integer NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.usage OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: usr; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.usr (
|
|
workspace_id character varying(50) NOT NULL,
|
|
username character varying(50) NOT NULL,
|
|
email character varying(50) NOT NULL,
|
|
is_admin boolean DEFAULT false NOT NULL,
|
|
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
operator boolean DEFAULT false NOT NULL,
|
|
disabled boolean DEFAULT false NOT NULL,
|
|
role character varying(50),
|
|
CONSTRAINT proper_email CHECK (((email)::text ~* '^(?:[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$'::text)),
|
|
CONSTRAINT proper_username CHECK (((username)::text ~ '^[\w-]+$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.usr OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: usr_to_group; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.usr_to_group (
|
|
workspace_id character varying(50) NOT NULL,
|
|
group_ character varying(50) NOT NULL,
|
|
usr character varying(50) DEFAULT 'ruben'::character varying NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.usr_to_group OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: variable; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.variable (
|
|
workspace_id character varying(50) NOT NULL,
|
|
path character varying(255) NOT NULL,
|
|
value character varying(15000) NOT NULL,
|
|
is_secret boolean DEFAULT false NOT NULL,
|
|
description character varying(255) DEFAULT ''::character varying NOT NULL,
|
|
extra_perms jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
account integer,
|
|
is_oauth boolean DEFAULT false NOT NULL,
|
|
CONSTRAINT proper_id CHECK (((path)::text ~ '^[ufg](\/[\w-]+){2,}$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.variable OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: worker_ping; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.worker_ping (
|
|
worker character varying(50) NOT NULL,
|
|
worker_instance character varying(50) NOT NULL,
|
|
ping_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
started_at timestamp with time zone DEFAULT now() NOT NULL,
|
|
ip character varying(50) DEFAULT 'NO IP'::character varying NOT NULL,
|
|
jobs_executed integer DEFAULT 0 NOT NULL,
|
|
custom_tags text[]
|
|
);
|
|
|
|
|
|
ALTER TABLE public.worker_ping OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: workspace; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.workspace (
|
|
id character varying(50) NOT NULL,
|
|
name character varying(50) NOT NULL,
|
|
owner character varying(50) NOT NULL,
|
|
deleted boolean DEFAULT false NOT NULL,
|
|
premium boolean DEFAULT false NOT NULL,
|
|
CONSTRAINT proper_id CHECK (((id)::text ~ '^\w+(-\w+)*$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.workspace OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: workspace_invite; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.workspace_invite (
|
|
workspace_id character varying(50) NOT NULL,
|
|
email character varying(50) NOT NULL,
|
|
is_admin boolean DEFAULT false NOT NULL,
|
|
operator boolean DEFAULT false NOT NULL,
|
|
CONSTRAINT proper_email CHECK (((email)::text ~* '^(?:[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$'::text))
|
|
);
|
|
|
|
|
|
ALTER TABLE public.workspace_invite OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: workspace_key; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.workspace_key (
|
|
workspace_id character varying(50) NOT NULL,
|
|
kind public.workspace_key_kind NOT NULL,
|
|
key character varying(255) DEFAULT 'changeme'::character varying NOT NULL
|
|
);
|
|
|
|
|
|
ALTER TABLE public.workspace_key OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: workspace_settings; Type: TABLE; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE TABLE public.workspace_settings (
|
|
workspace_id character varying(50) NOT NULL,
|
|
slack_team_id character varying(50),
|
|
slack_name character varying(50),
|
|
slack_command_script character varying(255),
|
|
slack_email character varying(50) DEFAULT 'missing@email.xyz'::character varying NOT NULL,
|
|
auto_invite_domain character varying(50),
|
|
auto_invite_operator boolean DEFAULT false,
|
|
customer_id character varying(100),
|
|
plan character varying(40),
|
|
webhook text,
|
|
deploy_to character varying(255),
|
|
error_handler character varying(1000),
|
|
openai_resource_path character varying(1000)
|
|
);
|
|
|
|
|
|
ALTER TABLE public.workspace_settings OWNER TO postgres;
|
|
|
|
--
|
|
-- Name: account id; Type: DEFAULT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.account ALTER COLUMN id SET DEFAULT nextval('public.account_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: app id; Type: DEFAULT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app ALTER COLUMN id SET DEFAULT nextval('public.app_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: app_version id; Type: DEFAULT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app_version ALTER COLUMN id SET DEFAULT nextval('public.app_version_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: audit id; Type: DEFAULT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.audit ALTER COLUMN id SET DEFAULT nextval('public.audit_id_seq'::regclass);
|
|
|
|
|
|
--
|
|
-- Name: databases databases_pkey; Type: CONSTRAINT; Schema: _sqlx_test; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY _sqlx_test.databases
|
|
ADD CONSTRAINT databases_pkey PRIMARY KEY (db_name);
|
|
|
|
|
|
--
|
|
-- Name: _sqlx_migrations _sqlx_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public._sqlx_migrations
|
|
ADD CONSTRAINT _sqlx_migrations_pkey PRIMARY KEY (version);
|
|
|
|
|
|
--
|
|
-- Name: account account_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.account
|
|
ADD CONSTRAINT account_pkey PRIMARY KEY (workspace_id, id);
|
|
|
|
|
|
--
|
|
-- Name: app app_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app
|
|
ADD CONSTRAINT app_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: app_version app_version_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app_version
|
|
ADD CONSTRAINT app_version_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: audit audit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.audit
|
|
ADD CONSTRAINT audit_pkey PRIMARY KEY (workspace_id, id);
|
|
|
|
|
|
--
|
|
-- Name: capture capture_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.capture
|
|
ADD CONSTRAINT capture_pkey PRIMARY KEY (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: completed_job completed_job_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.completed_job
|
|
ADD CONSTRAINT completed_job_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: draft draft_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.draft
|
|
ADD CONSTRAINT draft_pkey PRIMARY KEY (workspace_id, path, typ);
|
|
|
|
|
|
--
|
|
-- Name: email_to_igroup email_to_igroup_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.email_to_igroup
|
|
ADD CONSTRAINT email_to_igroup_pkey PRIMARY KEY (email, igroup);
|
|
|
|
|
|
--
|
|
-- Name: favorite favorite_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.favorite
|
|
ADD CONSTRAINT favorite_pkey PRIMARY KEY (usr, workspace_id, favorite_kind, path);
|
|
|
|
|
|
--
|
|
-- Name: flow flow_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.flow
|
|
ADD CONSTRAINT flow_pkey PRIMARY KEY (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: folder folder_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.folder
|
|
ADD CONSTRAINT folder_pkey PRIMARY KEY (workspace_id, name);
|
|
|
|
|
|
--
|
|
-- Name: group_ group__pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.group_
|
|
ADD CONSTRAINT group__pkey PRIMARY KEY (workspace_id, name);
|
|
|
|
|
|
--
|
|
-- Name: input input_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.input
|
|
ADD CONSTRAINT input_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: instance_group instance_group_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.instance_group
|
|
ADD CONSTRAINT instance_group_pkey PRIMARY KEY (name);
|
|
|
|
|
|
--
|
|
-- Name: magic_link magic_link_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.magic_link
|
|
ADD CONSTRAINT magic_link_pkey PRIMARY KEY (email, token);
|
|
|
|
|
|
--
|
|
-- Name: password password_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.password
|
|
ADD CONSTRAINT password_pkey PRIMARY KEY (email);
|
|
|
|
|
|
--
|
|
-- Name: pip_resolution_cache pip_resolution_cache_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.pip_resolution_cache
|
|
ADD CONSTRAINT pip_resolution_cache_pkey PRIMARY KEY (hash);
|
|
|
|
|
|
--
|
|
-- Name: queue queue_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.queue
|
|
ADD CONSTRAINT queue_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: raw_app raw_app_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.raw_app
|
|
ADD CONSTRAINT raw_app_pkey PRIMARY KEY (path);
|
|
|
|
|
|
--
|
|
-- Name: resource resource_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resource
|
|
ADD CONSTRAINT resource_pkey PRIMARY KEY (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: resource_type resource_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resource_type
|
|
ADD CONSTRAINT resource_type_pkey PRIMARY KEY (workspace_id, name);
|
|
|
|
|
|
--
|
|
-- Name: resume_job resume_job_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resume_job
|
|
ADD CONSTRAINT resume_job_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: schedule schedule_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.schedule
|
|
ADD CONSTRAINT schedule_pkey PRIMARY KEY (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: script script_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.script
|
|
ADD CONSTRAINT script_pkey PRIMARY KEY (workspace_id, hash);
|
|
|
|
|
|
--
|
|
-- Name: token token_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.token
|
|
ADD CONSTRAINT token_pkey PRIMARY KEY (token);
|
|
|
|
|
|
--
|
|
-- Name: app unique_path_workspace_id; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app
|
|
ADD CONSTRAINT unique_path_workspace_id UNIQUE (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: usage usage_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usage
|
|
ADD CONSTRAINT usage_pkey PRIMARY KEY (id, is_workspace, month_);
|
|
|
|
|
|
--
|
|
-- Name: usr usr_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usr
|
|
ADD CONSTRAINT usr_pkey PRIMARY KEY (workspace_id, username);
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group usr_to_group_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usr_to_group
|
|
ADD CONSTRAINT usr_to_group_pkey PRIMARY KEY (workspace_id, usr, group_);
|
|
|
|
|
|
--
|
|
-- Name: variable variable_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.variable
|
|
ADD CONSTRAINT variable_pkey PRIMARY KEY (workspace_id, path);
|
|
|
|
|
|
--
|
|
-- Name: worker_ping worker_ping_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.worker_ping
|
|
ADD CONSTRAINT worker_ping_pkey PRIMARY KEY (worker);
|
|
|
|
|
|
--
|
|
-- Name: workspace_invite workspace_invite_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_invite
|
|
ADD CONSTRAINT workspace_invite_pkey PRIMARY KEY (workspace_id, email);
|
|
|
|
|
|
--
|
|
-- Name: workspace_key workspace_key_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_key
|
|
ADD CONSTRAINT workspace_key_pkey PRIMARY KEY (workspace_id, kind);
|
|
|
|
|
|
--
|
|
-- Name: workspace workspace_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace
|
|
ADD CONSTRAINT workspace_pkey PRIMARY KEY (id);
|
|
|
|
|
|
--
|
|
-- Name: workspace_settings workspace_settings_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_settings
|
|
ADD CONSTRAINT workspace_settings_pkey PRIMARY KEY (workspace_id);
|
|
|
|
|
|
--
|
|
-- Name: workspace_settings workspace_settings_slack_team_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_settings
|
|
ADD CONSTRAINT workspace_settings_slack_team_id_key UNIQUE (slack_team_id);
|
|
|
|
|
|
--
|
|
-- Name: databases_created_at; Type: INDEX; Schema: _sqlx_test; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX databases_created_at ON _sqlx_test.databases USING btree (created_at);
|
|
|
|
|
|
--
|
|
-- Name: flow_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX flow_extra_perms ON public.flow USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: folder_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX folder_extra_perms ON public.folder USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: folder_owners; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX folder_owners ON public.folder USING gin (owners);
|
|
|
|
|
|
--
|
|
-- Name: group_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX group_extra_perms ON public.group_ USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: index_completed_on_created; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_completed_on_created ON public.completed_job USING btree (created_at);
|
|
|
|
|
|
--
|
|
-- Name: index_completed_on_script_hash; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_completed_on_script_hash ON public.completed_job USING btree (script_hash);
|
|
|
|
|
|
--
|
|
-- Name: index_completed_on_script_path; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_completed_on_script_path ON public.completed_job USING btree (script_path);
|
|
|
|
|
|
--
|
|
-- Name: index_completed_on_workspace_id; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_completed_on_workspace_id ON public.completed_job USING btree (workspace_id);
|
|
|
|
|
|
--
|
|
-- Name: index_magic_link_exp; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_magic_link_exp ON public.magic_link USING btree (expiration);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_created; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_created ON public.queue USING btree (created_at);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_running; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_running ON public.queue USING btree (running);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_scheduled_for; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_scheduled_for ON public.queue USING btree (scheduled_for);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_script_hash; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_script_hash ON public.queue USING btree (script_hash);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_script_path; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_script_path ON public.queue USING btree (script_path);
|
|
|
|
|
|
--
|
|
-- Name: index_queue_on_workspace_id; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_queue_on_workspace_id ON public.queue USING btree (workspace_id);
|
|
|
|
|
|
--
|
|
-- Name: index_script_on_path_created_at; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_script_on_path_created_at ON public.script USING btree (path, created_at);
|
|
|
|
|
|
--
|
|
-- Name: index_token_exp; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_token_exp ON public.token USING btree (expiration);
|
|
|
|
|
|
--
|
|
-- Name: index_usr_email; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX index_usr_email ON public.usr USING btree (email);
|
|
|
|
|
|
--
|
|
-- Name: resource_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX resource_extra_perms ON public.resource USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: schedule_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX schedule_extra_perms ON public.schedule USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: script_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX script_extra_perms ON public.script USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: variable_extra_perms; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX variable_extra_perms ON public.variable USING gin (extra_perms);
|
|
|
|
|
|
--
|
|
-- Name: worker_ping_on_ping_at; Type: INDEX; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE INDEX worker_ping_on_ping_at ON public.worker_ping USING btree (ping_at);
|
|
|
|
|
|
--
|
|
-- Name: account account_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.account
|
|
ADD CONSTRAINT account_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: app_version app_version_flow_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app_version
|
|
ADD CONSTRAINT app_version_flow_id_fkey FOREIGN KEY (app_id) REFERENCES public.app(id) ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: app app_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.app
|
|
ADD CONSTRAINT app_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: capture capture_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.capture
|
|
ADD CONSTRAINT capture_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: completed_job completed_job_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.completed_job
|
|
ADD CONSTRAINT completed_job_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: draft draft_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.draft
|
|
ADD CONSTRAINT draft_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group fk_group; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usr_to_group
|
|
ADD CONSTRAINT fk_group FOREIGN KEY (workspace_id, group_) REFERENCES public.group_(workspace_id, name);
|
|
|
|
|
|
--
|
|
-- Name: flow flow_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.flow
|
|
ADD CONSTRAINT flow_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: folder folder_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.folder
|
|
ADD CONSTRAINT folder_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id) ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: group_ group__workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.group_
|
|
ADD CONSTRAINT group__workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: input input_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.input
|
|
ADD CONSTRAINT input_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: queue queue_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.queue
|
|
ADD CONSTRAINT queue_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: raw_app raw_app_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.raw_app
|
|
ADD CONSTRAINT raw_app_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: resource_type resource_type_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resource_type
|
|
ADD CONSTRAINT resource_type_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: resource resource_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resource
|
|
ADD CONSTRAINT resource_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: resume_job resume_job_flow_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.resume_job
|
|
ADD CONSTRAINT resume_job_flow_fkey FOREIGN KEY (flow) REFERENCES public.queue(id) ON DELETE CASCADE;
|
|
|
|
|
|
--
|
|
-- Name: schedule schedule_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.schedule
|
|
ADD CONSTRAINT schedule_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: script script_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.script
|
|
ADD CONSTRAINT script_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: token token_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.token
|
|
ADD CONSTRAINT token_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group usr_to_group_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usr_to_group
|
|
ADD CONSTRAINT usr_to_group_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: usr usr_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.usr
|
|
ADD CONSTRAINT usr_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: variable variable_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.variable
|
|
ADD CONSTRAINT variable_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: workspace_invite workspace_invite_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_invite
|
|
ADD CONSTRAINT workspace_invite_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: workspace_key workspace_key_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_key
|
|
ADD CONSTRAINT workspace_key_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: workspace_settings workspace_settings_workspace_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE ONLY public.workspace_settings
|
|
ADD CONSTRAINT workspace_settings_workspace_id_fkey FOREIGN KEY (workspace_id) REFERENCES public.workspace(id);
|
|
|
|
|
|
--
|
|
-- Name: account; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.account ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: app; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.app ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: audit; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.audit ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: capture; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.capture ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: completed_job; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.completed_job ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: flow; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.flow ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: folder; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.folder ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: queue; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.queue ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: raw_app; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.raw_app ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: resource; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.resource ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: audit schedule; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY schedule ON public.audit FOR INSERT WITH CHECK (((username)::text ~~ 'schedule-%'::text));
|
|
|
|
|
|
--
|
|
-- Name: schedule; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.schedule ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: script; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.script ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: app see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.app USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(app.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: flow see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.flow USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(flow.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: folder see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.folder USING (((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text)) OR (EXISTS ( SELECT o.o
|
|
FROM unnest(folder.owners) o(o)
|
|
WHERE ((o.o)::text = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))))))) WITH CHECK ((EXISTS ( SELECT o.o
|
|
FROM unnest(folder.owners) o(o)
|
|
WHERE ((o.o)::text = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))))));
|
|
|
|
|
|
--
|
|
-- Name: raw_app see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.raw_app USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(raw_app.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: resource see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.resource USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(resource.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: schedule see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.schedule USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(schedule.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: script see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.script USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(script.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.usr_to_group USING (true) WITH CHECK ((EXISTS ( SELECT f.key,
|
|
f.value
|
|
FROM public.group_ g,
|
|
LATERAL jsonb_each_text(g.extra_perms) f(key, value)
|
|
WHERE (((usr_to_group.group_)::text = (g.name)::text) AND ((usr_to_group.workspace_id)::text = (g.workspace_id)::text) AND (split_part(f.key, '/'::text, 1) = 'g'::text) AND (f.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (f.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: variable see_extra_perms_groups; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_groups ON public.variable USING ((extra_perms ?| regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) WITH CHECK ((EXISTS ( SELECT jsonb_each_text.key,
|
|
jsonb_each_text.value
|
|
FROM jsonb_each_text(variable.extra_perms) jsonb_each_text(key, value)
|
|
WHERE ((split_part(jsonb_each_text.key, '/'::text, 1) = 'g'::text) AND (jsonb_each_text.key = ANY (regexp_split_to_array(current_setting('session.pgroups'::text), ','::text))) AND (jsonb_each_text.value)::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: app see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.app USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: flow see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.flow USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: folder see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.folder USING (((extra_perms ? concat('u/', current_setting('session.user'::text))) OR (concat('u/', current_setting('session.user'::text)) = ANY ((owners)::text[])))) WITH CHECK ((concat('u/', current_setting('session.user'::text)) = ANY ((owners)::text[])));
|
|
|
|
|
|
--
|
|
-- Name: raw_app see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.raw_app USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: resource see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.resource USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: schedule see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.schedule USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: script see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.script USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.usr_to_group USING (true) WITH CHECK ((EXISTS ( SELECT 1
|
|
FROM public.group_
|
|
WHERE (((usr_to_group.group_)::text = (group_.name)::text) AND ((usr_to_group.workspace_id)::text = (group_.workspace_id)::text) AND ((group_.extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean))));
|
|
|
|
|
|
--
|
|
-- Name: variable see_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_extra_perms_user ON public.variable USING ((extra_perms ? concat('u/', current_setting('session.user'::text)))) WITH CHECK (((extra_perms ->> concat('u/', current_setting('session.user'::text))))::boolean);
|
|
|
|
|
|
--
|
|
-- Name: account see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.account USING (((split_part((owner)::text, '/'::text, 1) = 'f'::text) AND (split_part((owner)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((owner)::text, '/'::text, 1) = 'f'::text) AND (split_part((owner)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: app see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.app USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: capture see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.capture USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: completed_job see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.completed_job USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'f'::text) AND (split_part((script_path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: flow see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.flow USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: queue see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.queue USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'f'::text) AND (split_part((script_path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: raw_app see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.raw_app USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: resource see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.resource USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: schedule see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.schedule USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: script see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.script USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: variable see_folder_extra_perms_user; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_folder_extra_perms_user ON public.variable USING (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_read'::text), ','::text))))) WITH CHECK (((split_part((path)::text, '/'::text, 1) = 'f'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.folders_write'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: account see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.account USING (((split_part((owner)::text, '/'::text, 1) = 'g'::text) AND (split_part((owner)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: app see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.app USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: capture see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.capture USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: completed_job see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.completed_job USING (((split_part((permissioned_as)::text, '/'::text, 1) = 'g'::text) AND (split_part((permissioned_as)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: flow see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.flow USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: queue see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.queue USING (((split_part((permissioned_as)::text, '/'::text, 1) = 'g'::text) AND (split_part((permissioned_as)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: raw_app see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.raw_app USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: resource see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.resource USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: schedule see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.schedule USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: script see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.script USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: variable see_member; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member ON public.variable USING (((split_part((path)::text, '/'::text, 1) = 'g'::text) AND (split_part((path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: completed_job see_member_path; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member_path ON public.completed_job USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'g'::text) AND (split_part((script_path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: queue see_member_path; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_member_path ON public.queue USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'g'::text) AND (split_part((script_path)::text, '/'::text, 2) = ANY (regexp_split_to_array(current_setting('session.groups'::text), ','::text)))));
|
|
|
|
|
|
--
|
|
-- Name: account see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.account USING (((split_part((owner)::text, '/'::text, 1) = 'u'::text) AND (split_part((owner)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: app see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.app USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: audit see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.audit USING (((username)::text = current_setting('session.user'::text)));
|
|
|
|
|
|
--
|
|
-- Name: capture see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.capture USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: completed_job see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.completed_job USING (((split_part((permissioned_as)::text, '/'::text, 1) = 'u'::text) AND (split_part((permissioned_as)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: flow see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.flow USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: queue see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.queue USING (((split_part((permissioned_as)::text, '/'::text, 1) = 'u'::text) AND (split_part((permissioned_as)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: raw_app see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.raw_app USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: resource see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.resource USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: schedule see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.schedule USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: script see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.script USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: variable see_own; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own ON public.variable USING (((split_part((path)::text, '/'::text, 1) = 'u'::text) AND (split_part((path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: completed_job see_own_path; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own_path ON public.completed_job USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'u'::text) AND (split_part((script_path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: queue see_own_path; Type: POLICY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
CREATE POLICY see_own_path ON public.queue USING (((visible_to_owner IS TRUE) AND (split_part((script_path)::text, '/'::text, 1) = 'u'::text) AND (split_part((script_path)::text, '/'::text, 2) = current_setting('session.user'::text))));
|
|
|
|
|
|
--
|
|
-- Name: usr_to_group; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.usr_to_group ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: variable; Type: ROW SECURITY; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER TABLE public.variable ENABLE ROW LEVEL SECURITY;
|
|
|
|
--
|
|
-- Name: TABLE _sqlx_migrations; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public._sqlx_migrations TO windmill_user;
|
|
GRANT ALL ON TABLE public._sqlx_migrations TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE account; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.account TO windmill_user;
|
|
GRANT ALL ON TABLE public.account TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: SEQUENCE account_id_seq; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON SEQUENCE public.account_id_seq TO windmill_user;
|
|
GRANT ALL ON SEQUENCE public.account_id_seq TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE app; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.app TO windmill_user;
|
|
GRANT ALL ON TABLE public.app TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: SEQUENCE app_id_seq; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON SEQUENCE public.app_id_seq TO windmill_user;
|
|
GRANT ALL ON SEQUENCE public.app_id_seq TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE app_version; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.app_version TO windmill_user;
|
|
GRANT ALL ON TABLE public.app_version TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: SEQUENCE app_version_id_seq; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON SEQUENCE public.app_version_id_seq TO windmill_user;
|
|
GRANT ALL ON SEQUENCE public.app_version_id_seq TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE audit; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.audit TO windmill_user;
|
|
GRANT ALL ON TABLE public.audit TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: SEQUENCE audit_id_seq; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON SEQUENCE public.audit_id_seq TO windmill_user;
|
|
GRANT ALL ON SEQUENCE public.audit_id_seq TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE capture; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.capture TO windmill_user;
|
|
GRANT ALL ON TABLE public.capture TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE completed_job; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.completed_job TO windmill_user;
|
|
GRANT ALL ON TABLE public.completed_job TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE demo; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.demo TO windmill_user;
|
|
|
|
|
|
--
|
|
-- Name: TABLE draft; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.draft TO windmill_user;
|
|
GRANT ALL ON TABLE public.draft TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE email_to_igroup; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.email_to_igroup TO windmill_user;
|
|
GRANT ALL ON TABLE public.email_to_igroup TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE favorite; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.favorite TO windmill_user;
|
|
GRANT ALL ON TABLE public.favorite TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE flow; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.flow TO windmill_user;
|
|
GRANT ALL ON TABLE public.flow TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE folder; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.folder TO windmill_user;
|
|
GRANT ALL ON TABLE public.folder TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE group_; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.group_ TO windmill_user;
|
|
GRANT ALL ON TABLE public.group_ TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE input; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.input TO windmill_user;
|
|
GRANT ALL ON TABLE public.input TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE instance_group; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.instance_group TO windmill_user;
|
|
GRANT ALL ON TABLE public.instance_group TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE magic_link; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.magic_link TO windmill_user;
|
|
GRANT ALL ON TABLE public.magic_link TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE password; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.password TO windmill_user;
|
|
GRANT ALL ON TABLE public.password TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE pip_resolution_cache; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.pip_resolution_cache TO windmill_user;
|
|
|
|
|
|
--
|
|
-- Name: TABLE queue; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.queue TO windmill_user;
|
|
GRANT ALL ON TABLE public.queue TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE raw_app; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.raw_app TO windmill_user;
|
|
GRANT ALL ON TABLE public.raw_app TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE resource; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.resource TO windmill_user;
|
|
GRANT ALL ON TABLE public.resource TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE resource_type; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.resource_type TO windmill_user;
|
|
GRANT ALL ON TABLE public.resource_type TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE resume_job; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.resume_job TO windmill_user;
|
|
GRANT ALL ON TABLE public.resume_job TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE schedule; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.schedule TO windmill_user;
|
|
GRANT ALL ON TABLE public.schedule TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE script; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.script TO windmill_user;
|
|
GRANT ALL ON TABLE public.script TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE token; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.token TO windmill_user;
|
|
GRANT ALL ON TABLE public.token TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE usage; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.usage TO windmill_user;
|
|
GRANT ALL ON TABLE public.usage TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE usr; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.usr TO windmill_user;
|
|
GRANT ALL ON TABLE public.usr TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE usr_to_group; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.usr_to_group TO windmill_user;
|
|
GRANT ALL ON TABLE public.usr_to_group TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE variable; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.variable TO windmill_user;
|
|
GRANT ALL ON TABLE public.variable TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE worker_ping; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.worker_ping TO windmill_user;
|
|
GRANT ALL ON TABLE public.worker_ping TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE workspace; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.workspace TO windmill_user;
|
|
GRANT ALL ON TABLE public.workspace TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE workspace_invite; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.workspace_invite TO windmill_user;
|
|
GRANT ALL ON TABLE public.workspace_invite TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE workspace_key; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.workspace_key TO windmill_user;
|
|
GRANT ALL ON TABLE public.workspace_key TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: TABLE workspace_settings; Type: ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
GRANT ALL ON TABLE public.workspace_settings TO windmill_user;
|
|
GRANT ALL ON TABLE public.workspace_settings TO windmill_admin;
|
|
|
|
|
|
--
|
|
-- Name: DEFAULT PRIVILEGES FOR SEQUENCES; Type: DEFAULT ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public GRANT ALL ON SEQUENCES TO windmill_user;
|
|
|
|
|
|
--
|
|
-- Name: DEFAULT PRIVILEGES FOR TABLES; Type: DEFAULT ACL; Schema: public; Owner: postgres
|
|
--
|
|
|
|
ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public GRANT ALL ON TABLES TO windmill_user;
|
|
|
|
|
|
--
|
|
-- PostgreSQL database dump complete
|
|
--
|
|
|
|
|
|
|
|
-- used for backend automated testing
|
|
-- https://docs.rs/sqlx/latest/sqlx/attr.test.html
|
|
|
|
|
|
INSERT INTO public.workspace
|
|
(id, name, owner)
|
|
VALUES ('test-workspace', 'test-workspace', 'test-user');
|
|
|
|
INSERT INTO public.usr(workspace_id, email, username, is_admin, role) VALUES
|
|
('test-workspace', 'test@windmill.dev', 'test-user', true, 'Admin');
|
|
|
|
INSERT INTO public.workspace_key(workspace_id, kind, key) VALUES
|
|
('test-workspace', 'cloud', 'test-key');
|
|
|
|
insert INTO public.token(token, email, label, super_admin) VALUES ('SECRET_TOKEN', 'test@windmill.dev', 'test token', true);
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'system',
|
|
'
|
|
import pandas as pd
|
|
import pandas2
|
|
',
|
|
'{}',
|
|
'',
|
|
'',
|
|
'f/foo/bar', -28028598712388162, 'python3', '');
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'system',
|
|
'
|
|
import numpy as np
|
|
',
|
|
'{}',
|
|
'',
|
|
'',
|
|
'f/foo/baz', -28028598712388161, 'python3', '');
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'system',
|
|
'
|
|
import difffolder
|
|
from .bar import main
|
|
',
|
|
'{}',
|
|
'',
|
|
'',
|
|
'f/foobar/baz', -28028598712388160, 'python3', '');
|
|
|
|
INSERT INTO public.script(workspace_id, created_by, content, schema, summary, description, path, hash, language, lock) VALUES (
|
|
'test-workspace',
|
|
'system',
|
|
'
|
|
import innerdifffolder
|
|
',
|
|
'{}',
|
|
'',
|
|
'',
|
|
'f/foobar/bar', -28028598712388159, 'python3', '');
|