| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- -- Keep the orchestration runtime isolated from the DataOps application role.
- -- This file is safe both during first-volume initialization and as a compose
- -- bootstrap job for an existing local acceptance volume.
- DO $$
- BEGIN
- CREATE ROLE kestra_runtime LOGIN PASSWORD 'kestra-local-test-password';
- EXCEPTION
- WHEN duplicate_object THEN
- ALTER ROLE kestra_runtime LOGIN PASSWORD 'kestra-local-test-password';
- END $$;
- SELECT 'CREATE DATABASE kestra OWNER kestra_runtime'
- WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'kestra')\gexec
- ALTER DATABASE kestra OWNER TO kestra_runtime;
- \connect kestra
- DO $$
- DECLARE
- item record;
- object_kind text;
- BEGIN
- FOR item IN
- SELECT n.nspname AS schema_name, c.relname AS object_name, c.relkind
- FROM pg_class c
- JOIN pg_namespace n ON n.oid = c.relnamespace
- JOIN pg_roles r ON r.oid = c.relowner
- WHERE r.rolname = 'dataops'
- AND n.nspname NOT IN ('pg_catalog', 'information_schema')
- AND n.nspname !~ '^pg_toast'
- AND c.relkind IN ('r', 'p', 'v', 'm')
- LOOP
- object_kind := CASE item.relkind
- WHEN 'S' THEN 'SEQUENCE'
- WHEN 'v' THEN 'VIEW'
- WHEN 'm' THEN 'MATERIALIZED VIEW'
- ELSE 'TABLE'
- END;
- EXECUTE format(
- 'ALTER %s %I.%I OWNER TO kestra_runtime',
- object_kind,
- item.schema_name,
- item.object_name
- );
- END LOOP;
- END $$;
- GRANT ALL ON SCHEMA public TO kestra_runtime;
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO kestra_runtime;
- GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO kestra_runtime;
|