From 161233fafa8f8b6c70df0af0b0737af4680fef36 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Tue, 18 Aug 2026 02:23:51 +0000 Subject: [PATCH] feat(sync): upstream jobs scheduler and metaschema store module changes from constructive-db - jobs/database-jobs: concurrency-safe run_scheduled_job (row lock, in-flight key dedupe, unschedule on deleted schedule) - metaschema-modules: internal_config_module replaces config_secrets_user_module, new cluster_module, refreshed store module comments --- .../app_jobs/procedures/run_scheduled_job.sql | 75 +++++++---- .../pgpm-database-jobs--0.43.1.bundle.tar.gz | Bin 21659 -> 22186 bytes .../sql/pgpm-database-jobs--0.43.1.sql | 75 +++++++---- .../app_jobs/procedures/run_scheduled_job.sql | 61 +++++---- .../jobs/sql/pgpm-jobs--0.43.1.bundle.tar.gz | Bin 17168 -> 17620 bytes packages/jobs/sql/pgpm-jobs--0.43.1.sql | 60 ++++++--- .../__snapshots__/modules.test.ts.snap | 4 +- .../__tests__/modules.test.ts | 3 +- .../tables/cluster_module/table.sql | 116 +++++++++++++++++ .../config_secrets_user_module/table.sql | 33 ----- .../tables/infra_config_module/table.sql | 4 +- .../tables/infra_secrets_module/table.sql | 4 +- .../tables/internal_config_module/table.sql | 4 +- .../tables/internal_secrets_module/table.sql | 4 +- packages/metaschema-modules/pgpm.plan | 2 +- .../tables/cluster_module/table.sql | 7 ++ .../config_secrets_user_module/table.sql | 7 -- .../metaschema-modules--0.43.1.bundle.tar.gz | Bin 97621 -> 98941 bytes .../sql/metaschema-modules--0.43.1.sql | 119 +++++++++++++----- .../tables/cluster_module/table.sql | 14 +++ .../config_secrets_user_module/table.sql | 7 -- 21 files changed, 427 insertions(+), 172 deletions(-) create mode 100644 packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/cluster_module/table.sql delete mode 100644 packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql create mode 100644 packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/cluster_module/table.sql delete mode 100644 packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql create mode 100644 packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/cluster_module/table.sql delete mode 100644 packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql diff --git a/packages/database-jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql b/packages/database-jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql index cc5937a35..935bcea77 100644 --- a/packages/database-jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql +++ b/packages/database-jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql @@ -8,27 +8,32 @@ CREATE FUNCTION app_jobs.run_scheduled_job (id bigint, job_expiry interval DEFAU RETURNS app_jobs.jobs AS $$ DECLARE + sched app_jobs.scheduled_jobs; j app_jobs.jobs; - last_id bigint; lkd_by text; BEGIN - -- check last scheduled + -- lock the schedule row so concurrent runners serialize here SELECT - last_scheduled_id + * FROM app_jobs.scheduled_jobs s WHERE - s.id = run_scheduled_job.id INTO last_id; + s.id = run_scheduled_job.id + FOR UPDATE INTO sched; + -- schedule deleted: return a null record so the caller unschedules it + IF NOT FOUND THEN + RETURN j; + END IF; -- if it's been scheduled check if it's been run - - IF (last_id IS NOT NULL) THEN + + IF (sched.last_scheduled_id IS NOT NULL) THEN SELECT locked_by FROM app_jobs.jobs js WHERE - js.id = last_id + js.id = sched.last_scheduled_id AND (js.locked_at IS NULL -- never been run OR js.locked_at >= (NOW() - job_expiry) -- still running within a safe interval @@ -38,7 +43,24 @@ BEGIN END IF; END IF; - -- insert new job + -- a job carrying this key that is already in flight covers this tick, and the + -- keyed upsert below cannot refresh a locked row + IF (sched.key IS NOT NULL) THEN + PERFORM + 1 + FROM + app_jobs.jobs jl + WHERE + jl.key = sched.key + AND jl.locked_at IS NOT NULL; + IF (FOUND) THEN + RAISE EXCEPTION 'ALREADY_SCHEDULED'; + END IF; + END IF; + + -- insert new job; key is the dedupe identity, so a pending job carrying the + -- same key is refreshed (same semantics as app_jobs.add_job) instead of + -- violating jobs_key_key INSERT INTO app_jobs.jobs ( database_id, actor_id, @@ -49,23 +71,30 @@ BEGIN priority, max_attempts, key - ) SELECT - database_id, - actor_id, - entity_id, - queue_name, - task_identifier, - payload, - priority, - max_attempts, - key - FROM - app_jobs.scheduled_jobs s - WHERE - s.id = run_scheduled_job.id + ) VALUES ( + sched.database_id, + sched.actor_id, + sched.entity_id, + sched.queue_name, + sched.task_identifier, + sched.payload, + sched.priority, + sched.max_attempts, + sched.key + ) + ON CONFLICT (KEY) + DO UPDATE SET + database_id = excluded.database_id, actor_id = excluded.actor_id, entity_id = excluded.entity_id, + task_identifier = excluded.task_identifier, payload = excluded.payload, queue_name = excluded.queue_name, max_attempts = excluded.max_attempts, priority = excluded.priority, run_at = excluded.run_at, + -- always reset error/retry state + attempts = 0, last_error = NULL + WHERE + jobs.locked_at IS NULL RETURNING * INTO j; - -- update the scheduled job + -- update the scheduled job; j is null when a BEFORE INSERT trigger suppressed + -- the transport row (the fire trigger enqueues through its own ledger and + -- records last_scheduled_id itself), so keep the recorded id in that case UPDATE app_jobs.scheduled_jobs s SET diff --git a/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.bundle.tar.gz b/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.bundle.tar.gz index 8c3fb86a4e722d1738cf69f3548ded2b051a43ef..b2aa9c3e374419f2bf078a2412517d729a1633b5 100644 GIT binary patch literal 22186 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 literal 21659 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 diff --git a/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.sql b/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.sql index 05d2fae48..89adf8e25 100644 --- a/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.sql +++ b/packages/database-jobs/sql/pgpm-database-jobs--0.43.1.sql @@ -398,27 +398,32 @@ CREATE FUNCTION app_jobs.run_scheduled_job( job_expiry interval DEFAULT '1 hours' ) RETURNS app_jobs.jobs AS $EOFCODE$ DECLARE + sched app_jobs.scheduled_jobs; j app_jobs.jobs; - last_id bigint; lkd_by text; BEGIN - -- check last scheduled + -- lock the schedule row so concurrent runners serialize here SELECT - last_scheduled_id + * FROM app_jobs.scheduled_jobs s WHERE - s.id = run_scheduled_job.id INTO last_id; + s.id = run_scheduled_job.id + FOR UPDATE INTO sched; + -- schedule deleted: return a null record so the caller unschedules it + IF NOT FOUND THEN + RETURN j; + END IF; -- if it's been scheduled check if it's been run - - IF (last_id IS NOT NULL) THEN + + IF (sched.last_scheduled_id IS NOT NULL) THEN SELECT locked_by FROM app_jobs.jobs js WHERE - js.id = last_id + js.id = sched.last_scheduled_id AND (js.locked_at IS NULL -- never been run OR js.locked_at >= (NOW() - job_expiry) -- still running within a safe interval @@ -428,7 +433,24 @@ BEGIN END IF; END IF; - -- insert new job + -- a job carrying this key that is already in flight covers this tick, and the + -- keyed upsert below cannot refresh a locked row + IF (sched.key IS NOT NULL) THEN + PERFORM + 1 + FROM + app_jobs.jobs jl + WHERE + jl.key = sched.key + AND jl.locked_at IS NOT NULL; + IF (FOUND) THEN + RAISE EXCEPTION 'ALREADY_SCHEDULED'; + END IF; + END IF; + + -- insert new job; key is the dedupe identity, so a pending job carrying the + -- same key is refreshed (same semantics as app_jobs.add_job) instead of + -- violating jobs_key_key INSERT INTO app_jobs.jobs ( database_id, actor_id, @@ -439,23 +461,30 @@ BEGIN priority, max_attempts, key - ) SELECT - database_id, - actor_id, - entity_id, - queue_name, - task_identifier, - payload, - priority, - max_attempts, - key - FROM - app_jobs.scheduled_jobs s - WHERE - s.id = run_scheduled_job.id + ) VALUES ( + sched.database_id, + sched.actor_id, + sched.entity_id, + sched.queue_name, + sched.task_identifier, + sched.payload, + sched.priority, + sched.max_attempts, + sched.key + ) + ON CONFLICT (KEY) + DO UPDATE SET + database_id = excluded.database_id, actor_id = excluded.actor_id, entity_id = excluded.entity_id, + task_identifier = excluded.task_identifier, payload = excluded.payload, queue_name = excluded.queue_name, max_attempts = excluded.max_attempts, priority = excluded.priority, run_at = excluded.run_at, + -- always reset error/retry state + attempts = 0, last_error = NULL + WHERE + jobs.locked_at IS NULL RETURNING * INTO j; - -- update the scheduled job + -- update the scheduled job; j is null when a BEFORE INSERT trigger suppressed + -- the transport row (the fire trigger enqueues through its own ledger and + -- records last_scheduled_id itself), so keep the recorded id in that case UPDATE app_jobs.scheduled_jobs s SET diff --git a/packages/jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql b/packages/jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql index 2f4961d51..6640f36d4 100644 --- a/packages/jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql +++ b/packages/jobs/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql @@ -8,25 +8,30 @@ CREATE FUNCTION app_jobs.run_scheduled_job (id bigint, job_expiry interval DEFAU RETURNS app_jobs.jobs AS $$ DECLARE + sched app_jobs.scheduled_jobs; j app_jobs.jobs; - last_id bigint; lkd_by text; BEGIN - -- check last scheduled + -- lock the schedule row so concurrent runners serialize here SELECT - last_scheduled_id + * FROM app_jobs.scheduled_jobs s WHERE - s.id = run_scheduled_job.id INTO last_id; + s.id = run_scheduled_job.id + FOR UPDATE INTO sched; + -- schedule deleted: return a null record so the caller unschedules it + IF NOT FOUND THEN + RETURN j; + END IF; -- if it's been scheduled check if it's been run - IF (last_id IS NOT NULL) THEN + IF (sched.last_scheduled_id IS NOT NULL) THEN SELECT locked_by FROM app_jobs.jobs js WHERE - js.id = last_id + js.id = sched.last_scheduled_id AND (js.locked_at IS NULL -- never been run OR js.locked_at >= (NOW() - job_expiry) -- still running within a safe interval @@ -35,27 +40,42 @@ BEGIN RAISE EXCEPTION 'ALREADY_SCHEDULED'; END IF; END IF; - -- insert new job + -- a job carrying this key that is already in flight covers this tick, and the + -- keyed upsert below cannot refresh a locked row + IF (sched.key IS NOT NULL) THEN + PERFORM + 1 + FROM + app_jobs.jobs jl + WHERE + jl.key = sched.key + AND jl.locked_at IS NOT NULL; + IF (FOUND) THEN + RAISE EXCEPTION 'ALREADY_SCHEDULED'; + END IF; + END IF; + -- insert new job; key is the dedupe identity, so a pending job carrying the + -- same key is refreshed (same semantics as app_jobs.add_job) instead of + -- violating jobs_key_key INSERT INTO app_jobs.jobs (queue_name, task_identifier, payload, priority, max_attempts, key) - SELECT - queue_name, - task_identifier, - payload, - priority, - max_attempts, - key - FROM - app_jobs.scheduled_jobs s - WHERE - s.id = run_scheduled_job.id + VALUES (sched.queue_name, sched.task_identifier, sched.payload, sched.priority, sched.max_attempts, sched.key) + ON CONFLICT (KEY) + DO UPDATE SET + task_identifier = excluded.task_identifier, payload = excluded.payload, queue_name = excluded.queue_name, max_attempts = excluded.max_attempts, priority = excluded.priority, run_at = excluded.run_at, + -- always reset error/retry state + attempts = 0, last_error = NULL + WHERE + jobs.locked_at IS NULL RETURNING * INTO j; - -- update the scheduled job + -- update the scheduled job; j is null when a BEFORE INSERT trigger suppressed + -- the transport row (the fire trigger enqueues through its own ledger and + -- records last_scheduled_id itself), so keep the recorded id in that case UPDATE app_jobs.scheduled_jobs s SET last_scheduled = NOW(), - last_scheduled_id = j.id + last_scheduled_id = COALESCE(j.id, s.last_scheduled_id) WHERE s.id = run_scheduled_job.id; RETURN j; @@ -64,4 +84,3 @@ $$ LANGUAGE 'plpgsql' VOLATILE; COMMIT; - diff --git a/packages/jobs/sql/pgpm-jobs--0.43.1.bundle.tar.gz b/packages/jobs/sql/pgpm-jobs--0.43.1.bundle.tar.gz index 7d2a1a8a9ed859c3adbeb6dfea70df439a6762f9..6a07f5006498c5c6413b399f27241592b26fa7f0 100644 GIT binary patch delta 17561 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 diff --git a/packages/jobs/sql/pgpm-jobs--0.43.1.sql b/packages/jobs/sql/pgpm-jobs--0.43.1.sql index f32214db2..fe611329a 100644 --- a/packages/jobs/sql/pgpm-jobs--0.43.1.sql +++ b/packages/jobs/sql/pgpm-jobs--0.43.1.sql @@ -348,25 +348,30 @@ CREATE FUNCTION app_jobs.run_scheduled_job( job_expiry interval DEFAULT '1 hours' ) RETURNS app_jobs.jobs AS $EOFCODE$ DECLARE + sched app_jobs.scheduled_jobs; j app_jobs.jobs; - last_id bigint; lkd_by text; BEGIN - -- check last scheduled + -- lock the schedule row so concurrent runners serialize here SELECT - last_scheduled_id + * FROM app_jobs.scheduled_jobs s WHERE - s.id = run_scheduled_job.id INTO last_id; + s.id = run_scheduled_job.id + FOR UPDATE INTO sched; + -- schedule deleted: return a null record so the caller unschedules it + IF NOT FOUND THEN + RETURN j; + END IF; -- if it's been scheduled check if it's been run - IF (last_id IS NOT NULL) THEN + IF (sched.last_scheduled_id IS NOT NULL) THEN SELECT locked_by FROM app_jobs.jobs js WHERE - js.id = last_id + js.id = sched.last_scheduled_id AND (js.locked_at IS NULL -- never been run OR js.locked_at >= (NOW() - job_expiry) -- still running within a safe interval @@ -375,27 +380,42 @@ BEGIN RAISE EXCEPTION 'ALREADY_SCHEDULED'; END IF; END IF; - -- insert new job + -- a job carrying this key that is already in flight covers this tick, and the + -- keyed upsert below cannot refresh a locked row + IF (sched.key IS NOT NULL) THEN + PERFORM + 1 + FROM + app_jobs.jobs jl + WHERE + jl.key = sched.key + AND jl.locked_at IS NOT NULL; + IF (FOUND) THEN + RAISE EXCEPTION 'ALREADY_SCHEDULED'; + END IF; + END IF; + -- insert new job; key is the dedupe identity, so a pending job carrying the + -- same key is refreshed (same semantics as app_jobs.add_job) instead of + -- violating jobs_key_key INSERT INTO app_jobs.jobs (queue_name, task_identifier, payload, priority, max_attempts, key) - SELECT - queue_name, - task_identifier, - payload, - priority, - max_attempts, - key - FROM - app_jobs.scheduled_jobs s - WHERE - s.id = run_scheduled_job.id + VALUES (sched.queue_name, sched.task_identifier, sched.payload, sched.priority, sched.max_attempts, sched.key) + ON CONFLICT (KEY) + DO UPDATE SET + task_identifier = excluded.task_identifier, payload = excluded.payload, queue_name = excluded.queue_name, max_attempts = excluded.max_attempts, priority = excluded.priority, run_at = excluded.run_at, + -- always reset error/retry state + attempts = 0, last_error = NULL + WHERE + jobs.locked_at IS NULL RETURNING * INTO j; - -- update the scheduled job + -- update the scheduled job; j is null when a BEFORE INSERT trigger suppressed + -- the transport row (the fire trigger enqueues through its own ledger and + -- records last_scheduled_id itself), so keep the recorded id in that case UPDATE app_jobs.scheduled_jobs s SET last_scheduled = NOW(), - last_scheduled_id = j.id + last_scheduled_id = COALESCE(j.id, s.last_scheduled_id) WHERE s.id = run_scheduled_job.id; RETURN j; diff --git a/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap b/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap index a5fdfa195..38ded3134 100644 --- a/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap +++ b/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap @@ -10,8 +10,8 @@ exports[`db_meta_modules should have all expected module tables 1`] = ` "billing_provider_module", "capabilities_module", "catalog_module", + "cluster_module", "compute_log_module", - "config_secrets_user_module", "connected_accounts_module", "content_preset_module", "crypto_addresses_module", @@ -158,7 +158,7 @@ exports[`db_meta_modules should verify module table structures have database_id exports[`db_meta_modules should verify module tables have proper foreign key relationships 1`] = ` { - "constraintCount": 546, + "constraintCount": 551, "foreignTables": [ "catalog_module", "database", diff --git a/packages/metaschema-modules/__tests__/modules.test.ts b/packages/metaschema-modules/__tests__/modules.test.ts index b1b020982..733773e60 100644 --- a/packages/metaschema-modules/__tests__/modules.test.ts +++ b/packages/metaschema-modules/__tests__/modules.test.ts @@ -30,7 +30,8 @@ describe('db_meta_modules', () => { 'infra_secrets_module', 'infra_config_module', 'internal_secrets_module', - 'config_secrets_user_module', + 'internal_config_module', + 'cluster_module', 'invites_module', 'events_module', 'limits_module', diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/cluster_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/cluster_module/table.sql new file mode 100644 index 000000000..bd0b06c43 --- /dev/null +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/cluster_module/table.sql @@ -0,0 +1,116 @@ +-- Deploy schemas/metaschema_modules_public/tables/cluster_module/table to pg + +-- requires: schemas/metaschema_modules_public/schema + +BEGIN; + +-- The fleet catalog: Kubernetes clusters, the PostgreSQL servers a cluster owns, +-- the physical databases on those servers, and which logical (metaschema) +-- database is placed in which physical database. +-- +-- Platform scope only. These rows describe fleet capacity, not tenant data, so +-- there is no per-tenant instance of them: the insert trigger refuses any scope +-- outside metaschema_private.constructive_scopes() and steps up to super +-- constructive. A tenant-visible answer to "where does my data live" is a view +-- over one placement row, never a second copy of these tables. +CREATE TABLE metaschema_modules_public.cluster_module ( + id uuid PRIMARY KEY DEFAULT uuidv7(), + database_id uuid NOT NULL, + + -- Scope-key column name on the generated table(s), recorded by the insert + -- trigger via metaschema_generators.scope_key_column(scope, key). Platform + -- is a global tier, so this stays NULL — recorded as a queryable fact + -- rather than re-derived by consumers. + entity_field text, + + -- Schema references (if uuid_nil, resolved from schema name or default) + schema_id uuid NOT NULL DEFAULT uuid_nil(), + private_schema_id uuid NOT NULL DEFAULT uuid_nil(), + + -- Optional schema name overrides (used when schema IDs are not provided) + public_schema_name text, + private_schema_name text, + + -- Generated table IDs (populated by the generator) + clusters_table_id uuid NOT NULL DEFAULT uuid_nil(), + cluster_events_table_id uuid NOT NULL DEFAULT uuid_nil(), + database_servers_table_id uuid NOT NULL DEFAULT uuid_nil(), + physical_databases_table_id uuid NOT NULL DEFAULT uuid_nil(), + database_placements_table_id uuid NOT NULL DEFAULT uuid_nil(), + + -- Table names (input to the generator) + clusters_table_name text NOT NULL DEFAULT 'clusters', + cluster_events_table_name text NOT NULL DEFAULT 'cluster_events', + database_servers_table_name text NOT NULL DEFAULT 'database_servers', + physical_databases_table_name text NOT NULL DEFAULT 'physical_databases', + database_placements_table_name text NOT NULL DEFAULT 'database_placements', + + -- API routing (get-or-create: if set, schema is added to this API; if NULL, + -- no API is added). The fleet catalog ships on its own `cluster` API so the + -- admin surface is not widened with fleet-only concerns. + api_name text, + private_api_name text, + + -- Scope: determines the security level for this module instance. + -- Resolved to a membership_type integer at trigger time via membership_types. + -- Only the constructive scopes are accepted (see the insert trigger). + scope text NOT NULL DEFAULT 'platform', + + -- Table name prefix. Auto-derived from scope by the trigger when empty and + -- no dedicated API provides namespace isolation. + prefix text NOT NULL DEFAULT '', + + -- Configurable security policies (NULL = use defaults based on scope). + -- When provided, replaces the default policy set in apply_module_security. + policies jsonb NULL, + + -- Per-table provisions overrides from blueprint config. Keys are table keys + -- (clusters, cluster_events, database_servers, physical_databases, + -- database_placements). When a key is present, the module trigger skips + -- default security for that table. + provisions jsonb NULL, + + -- Default capabilities auto-granted to new members. + -- NULL uses the module's built-in defaults; explicit array overrides them. + default_capabilities text[] DEFAULT NULL, + + -- Retention for the partitioned cluster_events tier + partition_interval text NOT NULL DEFAULT '1 month', + retention text NOT NULL DEFAULT '12 months', + premake integer NOT NULL DEFAULT 2, + + -- Constraints + CONSTRAINT cluster_module_db_fkey FOREIGN KEY (database_id) REFERENCES metaschema_public.database (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_schema_fkey FOREIGN KEY (schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_private_schema_fkey FOREIGN KEY (private_schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_clusters_table_fkey FOREIGN KEY (clusters_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_events_table_fkey FOREIGN KEY (cluster_events_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_servers_table_fkey FOREIGN KEY (database_servers_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_physical_dbs_table_fkey FOREIGN KEY (physical_databases_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT cluster_module_placements_table_fkey FOREIGN KEY (database_placements_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE +); + +-- database_id needs no index of its own: cluster_module_unique_scope below +-- leads with it, so it already serves a lookup by database. +CREATE INDEX cluster_module_schema_id_idx ON metaschema_modules_public.cluster_module ( schema_id ); +CREATE INDEX cluster_module_private_schema_id_idx ON metaschema_modules_public.cluster_module ( private_schema_id ); +CREATE INDEX cluster_module_clusters_table_id_idx ON metaschema_modules_public.cluster_module ( clusters_table_id ); +CREATE INDEX cluster_module_cluster_events_table_id_idx ON metaschema_modules_public.cluster_module ( cluster_events_table_id ); +CREATE INDEX cluster_module_database_servers_table_id_idx ON metaschema_modules_public.cluster_module ( database_servers_table_id ); +CREATE INDEX cluster_module_physical_databases_table_id_idx ON metaschema_modules_public.cluster_module ( physical_databases_table_id ); +CREATE INDEX cluster_module_database_placements_table_id_idx ON metaschema_modules_public.cluster_module ( database_placements_table_id ); + +-- One cluster module per database per scope + prefix. +CREATE UNIQUE INDEX cluster_module_unique_scope ON metaschema_modules_public.cluster_module ( database_id, scope, prefix ); + +-- Tables this module generates, as opposed to tables it is handed: the +-- @module_table marker is what +-- metaschema_modules_private.tg_module_install_provenance attributes to this +-- install, keyed by the role name in the column. +COMMENT ON COLUMN metaschema_modules_public.cluster_module.clusters_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.cluster_module.cluster_events_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.cluster_module.database_servers_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.cluster_module.physical_databases_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.cluster_module.database_placements_table_id IS '@module_table'; + +COMMIT; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql deleted file mode 100644 index 4fe6f5837..000000000 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql +++ /dev/null @@ -1,33 +0,0 @@ --- Deploy schemas/metaschema_modules_public/tables/config_secrets_user_module/table to pg - --- requires: schemas/metaschema_modules_public/schema - -BEGIN; - -CREATE TABLE metaschema_modules_public.config_secrets_user_module ( - id uuid PRIMARY KEY DEFAULT uuidv7(), - database_id uuid NOT NULL, - - - -- Scope-key column name on the generated table ('owner_id' here). - -- Recorded so consumers read it as a stored fact instead of hardcoding. - entity_field text, - -- - schema_id uuid NOT NULL DEFAULT uuid_nil(), - table_id uuid NOT NULL DEFAULT uuid_nil(), - table_name text NOT NULL DEFAULT 'user_secrets', - - -- API routing (configurable per-module) - api_name text DEFAULT 'config', - private_api_name text DEFAULT NULL, - - CONSTRAINT db_fkey FOREIGN KEY (database_id) REFERENCES metaschema_public.database (id) ON DELETE CASCADE, - CONSTRAINT schema_fkey FOREIGN KEY (schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, - CONSTRAINT table_fkey FOREIGN KEY (table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE -); - -CREATE UNIQUE INDEX config_secrets_user_module_database_id_idx ON metaschema_modules_public.config_secrets_user_module ( database_id ); -CREATE INDEX config_secrets_user_module_table_id_idx ON metaschema_modules_public.config_secrets_user_module ( table_id ); -CREATE INDEX config_secrets_user_module_schema_id_idx ON metaschema_modules_public.config_secrets_user_module ( schema_id ); - -COMMIT; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_config_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_config_module/table.sql index 3f1cd6592..94bba6c64 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_config_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_config_module/table.sql @@ -13,7 +13,9 @@ CREATE TABLE metaschema_modules_public.infra_config_module ( -- trigger via metaschema_generators.scope_key_column(scope, key): database -> -- 'database_id', entity -> the module's key ('entity_id' here), global -> NULL. entity_field text, - -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil) + -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil): + -- schema_id is this module's PUBLIC schema, private_schema_id its PRIVATE + -- schema, the same convention every other module row records. schema_id uuid NOT NULL DEFAULT uuid_nil(), private_schema_id uuid NOT NULL DEFAULT uuid_nil(), diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_secrets_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_secrets_module/table.sql index f1c105550..d9586f8e3 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_secrets_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/infra_secrets_module/table.sql @@ -8,7 +8,9 @@ CREATE TABLE metaschema_modules_public.infra_secrets_module ( id uuid PRIMARY KEY DEFAULT uuidv7(), database_id uuid NOT NULL, - -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil) + -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil): + -- schema_id is this module's PUBLIC schema, private_schema_id its PRIVATE + -- schema, the same convention every other module row records. schema_id uuid NOT NULL DEFAULT uuid_nil(), private_schema_id uuid NOT NULL DEFAULT uuid_nil(), diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_config_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_config_module/table.sql index 58091bf51..e8bf1d87c 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_config_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_config_module/table.sql @@ -8,7 +8,9 @@ CREATE TABLE metaschema_modules_public.internal_config_module ( id uuid PRIMARY KEY DEFAULT uuidv7(), database_id uuid NOT NULL, - -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil) + -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil): + -- schema_id is this module's PUBLIC schema, private_schema_id its PRIVATE + -- schema, the same convention every other module row records. schema_id uuid NOT NULL DEFAULT uuid_nil(), private_schema_id uuid NOT NULL DEFAULT uuid_nil(), diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_secrets_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_secrets_module/table.sql index 02a0a3d9a..30cbc4a44 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_secrets_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/internal_secrets_module/table.sql @@ -8,7 +8,9 @@ CREATE TABLE metaschema_modules_public.internal_secrets_module ( id uuid PRIMARY KEY DEFAULT uuidv7(), database_id uuid NOT NULL, - -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil) + -- Schema references (resolved by BEFORE INSERT trigger when uuid_nil): + -- schema_id is this module's PUBLIC schema, private_schema_id its PRIVATE + -- schema, the same convention every other module row records. schema_id uuid NOT NULL DEFAULT uuid_nil(), private_schema_id uuid NOT NULL DEFAULT uuid_nil(), diff --git a/packages/metaschema-modules/pgpm.plan b/packages/metaschema-modules/pgpm.plan index dce159b16..99562e226 100644 --- a/packages/metaschema-modules/pgpm.plan +++ b/packages/metaschema-modules/pgpm.plan @@ -9,7 +9,6 @@ schemas/metaschema_modules_public/tables/crypto_auth_module/table [schemas/metas schemas/metaschema_modules_public/tables/default_ids_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/default_ids_module/table schemas/metaschema_modules_public/tables/denormalized_table_field/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/denormalized_table_field/table schemas/metaschema_modules_public/tables/emails_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/emails_module/table -schemas/metaschema_modules_public/tables/config_secrets_user_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/config_secrets_user_module/table schemas/metaschema_modules_public/tables/invites_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/invites_module/table schemas/metaschema_modules_public/tables/events_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/events_module/table schemas/metaschema_modules_public/tables/limits_module/table [schemas/metaschema_modules_public/schema] 2017-08-11T08:11:51Z skitch # add schemas/metaschema_modules_public/tables/limits_module/table @@ -98,3 +97,4 @@ schemas/metaschema_modules_public/tables/internal_config_module/table [schemas/m schemas/metaschema_modules_public/tables/image_module/table [schemas/metaschema_modules_public/schema] 2026-08-15T00:00:00Z devin # add image_module config table for the central container image catalog + grants schemas/metaschema_modules_public/tables/repository_module/table [schemas/metaschema_modules_public/schema] 2026-08-15T01:00:00Z devin # add repository_module config table (repositories, events, workflows, builds, local change requests) schemas/metaschema_modules_public/tables/machine_module/table [schemas/metaschema_modules_public/schema] 2026-08-15T02:00:00Z devin # add machine_module config table (enrolled machines, sessions, command ledger) +schemas/metaschema_modules_public/tables/cluster_module/table [schemas/metaschema_modules_public/schema] 2026-08-17T00:00:00Z devin # add cluster_module config table (fleet catalog: clusters, database servers, physical databases, placements) diff --git a/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/cluster_module/table.sql b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/cluster_module/table.sql new file mode 100644 index 000000000..31204dc75 --- /dev/null +++ b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/cluster_module/table.sql @@ -0,0 +1,7 @@ +-- Revert schemas/metaschema_modules_public/tables/cluster_module/table from pg + +BEGIN; + +DROP TABLE metaschema_modules_public.cluster_module; + +COMMIT; diff --git a/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql deleted file mode 100644 index fcc2139ca..000000000 --- a/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql +++ /dev/null @@ -1,7 +0,0 @@ --- Revert schemas/metaschema_modules_public/tables/config_secrets_user_module/table from pg - -BEGIN; - -DROP TABLE metaschema_modules_public.config_secrets_user_module; - -COMMIT; diff --git a/packages/metaschema-modules/sql/metaschema-modules--0.43.1.bundle.tar.gz b/packages/metaschema-modules/sql/metaschema-modules--0.43.1.bundle.tar.gz index 7a7c2974f838bc9ad518327a5c3bb5cd4fc2f048..84ea44974f14d253606773ad294cae7ce1773867 100644 GIT binary patch delta 97084 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 delta 95913 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 IYyhwg044)C^#A|> diff --git a/packages/metaschema-modules/sql/metaschema-modules--0.43.1.sql b/packages/metaschema-modules/sql/metaschema-modules--0.43.1.sql index 288a39122..23edfdb42 100644 --- a/packages/metaschema-modules/sql/metaschema-modules--0.43.1.sql +++ b/packages/metaschema-modules/sql/metaschema-modules--0.43.1.sql @@ -265,35 +265,6 @@ CREATE INDEX emails_module_schema_id_idx ON metaschema_modules_public.emails_mod COMMENT ON COLUMN metaschema_modules_public.emails_module.table_id IS '@module_table'; -CREATE TABLE metaschema_modules_public.config_secrets_user_module ( - id uuid PRIMARY KEY DEFAULT uuidv7(), - database_id uuid NOT NULL, - entity_field text, - schema_id uuid NOT NULL DEFAULT uuid_nil(), - table_id uuid NOT NULL DEFAULT uuid_nil(), - table_name text NOT NULL DEFAULT 'user_secrets', - api_name text DEFAULT 'config', - private_api_name text DEFAULT NULL, - CONSTRAINT db_fkey - FOREIGN KEY(database_id) - REFERENCES metaschema_public.database (id) - ON DELETE CASCADE, - CONSTRAINT schema_fkey - FOREIGN KEY(schema_id) - REFERENCES metaschema_public.schema (id) - ON DELETE CASCADE, - CONSTRAINT table_fkey - FOREIGN KEY(table_id) - REFERENCES metaschema_public.table (id) - ON DELETE CASCADE -); - -CREATE UNIQUE INDEX config_secrets_user_module_database_id_idx ON metaschema_modules_public.config_secrets_user_module (database_id); - -CREATE INDEX config_secrets_user_module_table_id_idx ON metaschema_modules_public.config_secrets_user_module (table_id); - -CREATE INDEX config_secrets_user_module_schema_id_idx ON metaschema_modules_public.config_secrets_user_module (schema_id); - CREATE TABLE metaschema_modules_public.invites_module ( id uuid PRIMARY KEY DEFAULT uuidv7(), database_id uuid NOT NULL, @@ -6399,4 +6370,92 @@ COMMENT ON COLUMN metaschema_modules_public.machine_module.machines_table_id IS COMMENT ON COLUMN metaschema_modules_public.machine_module.machine_sessions_table_id IS '@module_table'; -COMMENT ON COLUMN metaschema_modules_public.machine_module.machine_messages_table_id IS '@module_table'; \ No newline at end of file +COMMENT ON COLUMN metaschema_modules_public.machine_module.machine_messages_table_id IS '@module_table'; + +CREATE TABLE metaschema_modules_public.cluster_module ( + id uuid PRIMARY KEY DEFAULT uuidv7(), + database_id uuid NOT NULL, + entity_field text, + schema_id uuid NOT NULL DEFAULT uuid_nil(), + private_schema_id uuid NOT NULL DEFAULT uuid_nil(), + public_schema_name text, + private_schema_name text, + clusters_table_id uuid NOT NULL DEFAULT uuid_nil(), + cluster_events_table_id uuid NOT NULL DEFAULT uuid_nil(), + database_servers_table_id uuid NOT NULL DEFAULT uuid_nil(), + physical_databases_table_id uuid NOT NULL DEFAULT uuid_nil(), + database_placements_table_id uuid NOT NULL DEFAULT uuid_nil(), + clusters_table_name text NOT NULL DEFAULT 'clusters', + cluster_events_table_name text NOT NULL DEFAULT 'cluster_events', + database_servers_table_name text NOT NULL DEFAULT 'database_servers', + physical_databases_table_name text NOT NULL DEFAULT 'physical_databases', + database_placements_table_name text NOT NULL DEFAULT 'database_placements', + api_name text, + private_api_name text, + scope text NOT NULL DEFAULT 'platform', + prefix text NOT NULL DEFAULT '', + policies jsonb NULL, + provisions jsonb NULL, + default_capabilities text[] DEFAULT NULL, + partition_interval text NOT NULL DEFAULT '1 month', + retention text NOT NULL DEFAULT '12 months', + premake int NOT NULL DEFAULT 2, + CONSTRAINT cluster_module_db_fkey + FOREIGN KEY(database_id) + REFERENCES metaschema_public.database (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_schema_fkey + FOREIGN KEY(schema_id) + REFERENCES metaschema_public.schema (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_private_schema_fkey + FOREIGN KEY(private_schema_id) + REFERENCES metaschema_public.schema (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_clusters_table_fkey + FOREIGN KEY(clusters_table_id) + REFERENCES metaschema_public.table (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_events_table_fkey + FOREIGN KEY(cluster_events_table_id) + REFERENCES metaschema_public.table (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_servers_table_fkey + FOREIGN KEY(database_servers_table_id) + REFERENCES metaschema_public.table (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_physical_dbs_table_fkey + FOREIGN KEY(physical_databases_table_id) + REFERENCES metaschema_public.table (id) + ON DELETE CASCADE, + CONSTRAINT cluster_module_placements_table_fkey + FOREIGN KEY(database_placements_table_id) + REFERENCES metaschema_public.table (id) + ON DELETE CASCADE +); + +CREATE INDEX cluster_module_schema_id_idx ON metaschema_modules_public.cluster_module (schema_id); + +CREATE INDEX cluster_module_private_schema_id_idx ON metaschema_modules_public.cluster_module (private_schema_id); + +CREATE INDEX cluster_module_clusters_table_id_idx ON metaschema_modules_public.cluster_module (clusters_table_id); + +CREATE INDEX cluster_module_cluster_events_table_id_idx ON metaschema_modules_public.cluster_module (cluster_events_table_id); + +CREATE INDEX cluster_module_database_servers_table_id_idx ON metaschema_modules_public.cluster_module (database_servers_table_id); + +CREATE INDEX cluster_module_physical_databases_table_id_idx ON metaschema_modules_public.cluster_module (physical_databases_table_id); + +CREATE INDEX cluster_module_database_placements_table_id_idx ON metaschema_modules_public.cluster_module (database_placements_table_id); + +CREATE UNIQUE INDEX cluster_module_unique_scope ON metaschema_modules_public.cluster_module (database_id, scope, prefix); + +COMMENT ON COLUMN metaschema_modules_public.cluster_module.clusters_table_id IS '@module_table'; + +COMMENT ON COLUMN metaschema_modules_public.cluster_module.cluster_events_table_id IS '@module_table'; + +COMMENT ON COLUMN metaschema_modules_public.cluster_module.database_servers_table_id IS '@module_table'; + +COMMENT ON COLUMN metaschema_modules_public.cluster_module.physical_databases_table_id IS '@module_table'; + +COMMENT ON COLUMN metaschema_modules_public.cluster_module.database_placements_table_id IS '@module_table'; \ No newline at end of file diff --git a/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/cluster_module/table.sql b/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/cluster_module/table.sql new file mode 100644 index 000000000..e6b9cd0c0 --- /dev/null +++ b/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/cluster_module/table.sql @@ -0,0 +1,14 @@ +-- Verify schemas/metaschema_modules_public/tables/cluster_module/table on pg + +SELECT id, database_id, entity_field, schema_id, private_schema_id, + public_schema_name, private_schema_name, + clusters_table_id, clusters_table_name, + cluster_events_table_id, cluster_events_table_name, + database_servers_table_id, database_servers_table_name, + physical_databases_table_id, physical_databases_table_name, + database_placements_table_id, database_placements_table_name, + api_name, private_api_name, + partition_interval, retention, premake, + scope, prefix, policies, provisions, default_capabilities +FROM metaschema_modules_public.cluster_module +WHERE FALSE; diff --git a/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql b/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql deleted file mode 100644 index 3a3592ff6..000000000 --- a/packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/config_secrets_user_module/table.sql +++ /dev/null @@ -1,7 +0,0 @@ --- Verify schemas/metaschema_modules_public/tables/config_secrets_user_module/table on pg - -BEGIN; - -SELECT assert_table('metaschema_modules_public.config_secrets_user_module'::regclass); - -ROLLBACK;