From 0fb9407a49e556937dd0fa95896c80475ba1103b Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Wed, 9 Sep 2026 19:11:04 +0000 Subject: [PATCH 1/2] sync: port module changes from constructive-db database-jobs: run_scheduled_job no longer treats an exhausted keyed job as active coverage, so a schedule's next tick re-runs it instead of raising ALREADY_SCHEDULED. function-resolution: route bindings carry an anonymous flag; resolve_capabilities echoes required_capabilities. metaschema-modules: refusal_log_module table + one-platform-scope constraint; agent_module settle_run_cost_function_name; inference_log_module price table; principal_auth_module private schema + sweep function; user_auth_module changes. metaschema-schema: index table and is_valid_step_up updates. utils: default_self_reference. Tests ported from constructive-db (pgsql-test imports) and bundles regenerated with pgpm package. --- packages/database-jobs/__tests__/jobs.test.ts | 33 ++++ .../app_jobs/procedures/run_scheduled_job.sql | 5 + .../pgpm-database-jobs--0.44.0.bundle.tar.gz | Bin 23194 -> 23354 bytes .../sql/pgpm-database-jobs--0.44.0.sql | 5 + .../__tests__/capabilities.test.ts | 33 +++- .../published-capability-catalog.test.ts | 2 +- .../procedures/install_route_bindings.sql | 15 +- .../procedures/resolve_capabilities.sql | 3 + ...-function-resolution--0.44.2.bundle.tar.gz | Bin 40461 -> 40709 bytes .../sql/pgpm-function-resolution--0.44.2.sql | 11 +- .../__tests__/run-scheduled-job-race.test.ts | 155 ++++++++++++++++ .../__snapshots__/modules.test.ts.snap | 9 +- .../__tests__/modules.test.ts | 1 - .../tables/agent_module/table.sql | 7 + .../tables/inference_log_module/table.sql | 9 + .../tables/principal_auth_module/table.sql | 7 + .../constraints/one_platform_scope.sql | 12 ++ .../tables/refusal_log_module/table.sql | 74 ++++++++ .../tables/user_auth_module/table.sql | 9 + packages/metaschema-modules/pgpm.plan | 2 + .../constraints/one_platform_scope.sql | 7 + .../tables/refusal_log_module/table.sql | 3 + .../metaschema-modules--0.44.2.bundle.tar.gz | Bin 102309 -> 104395 bytes .../sql/metaschema-modules--0.44.2.sql | 92 +++++++++- .../tables/inference_log_module/table.sql | 2 + .../constraints/one_platform_scope.sql | 10 ++ .../tables/refusal_log_module/table.sql | 9 + .../procedures/is_valid_step_up.sql | 168 +++++++++++++++++- .../metaschema_public/tables/index/table.sql | 3 + .../metaschema-schema--0.44.2.bundle.tar.gz | Bin 34516 -> 36182 bytes .../sql/metaschema-schema--0.44.2.sql | 143 ++++++++++++++- .../objects/immutable-objects.test.ts | 72 ++++++++ .../procedures/default_self_reference.sql | 27 +++ packages/utils/pgpm.plan | 1 + .../procedures/default_self_reference.sql | 7 + .../sql/pgpm-utils--0.44.0.bundle.tar.gz | Bin 3239 -> 3762 bytes packages/utils/sql/pgpm-utils--0.44.0.sql | 12 ++ .../procedures/default_self_reference.sql | 7 + 38 files changed, 935 insertions(+), 20 deletions(-) create mode 100644 packages/jobs/__tests__/run-scheduled-job-race.test.ts create mode 100644 packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql create mode 100644 packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql create mode 100644 packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql create mode 100644 packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql create mode 100644 packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql create mode 100644 packages/metaschema-modules/verify/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql create mode 100644 packages/object-store/__tests__/objects/immutable-objects.test.ts create mode 100644 packages/utils/deploy/schemas/utils/procedures/default_self_reference.sql create mode 100644 packages/utils/revert/schemas/utils/procedures/default_self_reference.sql create mode 100644 packages/utils/verify/schemas/utils/procedures/default_self_reference.sql diff --git a/packages/database-jobs/__tests__/jobs.test.ts b/packages/database-jobs/__tests__/jobs.test.ts index 799c49dad..7c8da1323 100644 --- a/packages/database-jobs/__tests__/jobs.test.ts +++ b/packages/database-jobs/__tests__/jobs.test.ts @@ -457,6 +457,39 @@ describe('scheduled jobs', () => { }); }); + it('run_scheduled_job re-runs a keyed job that is out of attempts instead of wedging on it', async () => { + // constructive-planning#2013: a per-minute schedule with max_attempts = 1 + // whose first tick failed (fail_job clears locked_at, so the dead job read + // as "never been run") raised ALREADY_SCHEDULED on every later tick. + const scheduled = await pg.one( + `INSERT INTO app_jobs.scheduled_jobs ( + database_id, task_identifier, schedule_info, key, max_attempts + ) VALUES ($1, $2, $3, $4, 1) + RETURNING id, key`, + [database_id, 'dead_keyed_job', { rule: '0 * * * * *' }, 'dead_keyed_job'] + ); + const [first] = await pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [scheduled.id]); + + // A tick while the job is still waiting to run is covered by it. + await expect( + pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [scheduled.id]) + ).rejects.toThrow('ALREADY_SCHEDULED'); + + // The worker claims it, fails it, and the attempt budget is gone. + await pg.any(`SELECT * FROM app_jobs.get_job('worker-1', ARRAY[$1::text])`, ['dead_keyed_job']); + await pg.any(`SELECT * FROM app_jobs.fail_job('worker-1', $1, $2)`, [ + first.id, + 'Function "dead_keyed_job" is not registered in function_definitions' + ]); + const dead = await pg.one(`SELECT attempts, max_attempts, locked_at FROM app_jobs.jobs WHERE id = $1`, [first.id]); + expect(dead).toEqual({ attempts: 1, max_attempts: 1, locked_at: null }); + + // The next tick replaces it with a fresh attempt on the same row. + const [again] = await pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [scheduled.id]); + expect(again.id).toBe(first.id); + expect({ attempts: again.attempts, last_error: again.last_error }).toEqual({ attempts: 0, last_error: null }); + }); + it('run_scheduled_job rejects a malformed entity pair under strict attribution', async () => { const task_identifier = 'malformed_scheduled_job'; await pg.any(`BEGIN`); 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 92a3244a6..d3036427f 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 @@ -35,6 +35,11 @@ BEGIN app_jobs.jobs js WHERE js.id = sched.last_scheduled_id + -- a job out of attempts never runs again (get_job skips it), so it + -- covers nothing: fail_job cleared its locked_at, which otherwise reads + -- as "never been run" and wedges the schedule on a permanently failed + -- job. The keyed upsert below replaces it with a fresh attempt instead. + AND js.attempts < js.max_attempts AND (js.locked_at IS NULL -- never been run OR js.locked_at >= (NOW() - job_expiry) -- still running within a safe interval diff --git a/packages/database-jobs/sql/pgpm-database-jobs--0.44.0.bundle.tar.gz b/packages/database-jobs/sql/pgpm-database-jobs--0.44.0.bundle.tar.gz index 15fac8774ec0b9f123227675977fa677ef8c9b87..60a0972586f6b1d90172f63c657ff0b18eb13b12 100644 GIT binary patch delta 22115 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 |edGTV+51ItpuPMyoMM)0mn&<{!U{tZ5&KXfR7 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 Vd=8((XWP&J2?JcN;{*Uw0sxFop(g+U delta 21946 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 (NOW() - job_expiry) -- still running within a safe interval diff --git a/packages/function-resolution/__tests__/capabilities.test.ts b/packages/function-resolution/__tests__/capabilities.test.ts index 759b063d0..31a8def69 100644 --- a/packages/function-resolution/__tests__/capabilities.test.ts +++ b/packages/function-resolution/__tests__/capabilities.test.ts @@ -39,7 +39,8 @@ describe('function-resolution capability resolution', () => { required_buckets text[] NOT NULL DEFAULT '{}', required_modules text[] NOT NULL DEFAULT '{}', required_models text[] NOT NULL DEFAULT '{}', - integrations text[] NOT NULL DEFAULT '{}' + integrations text[] NOT NULL DEFAULT '{}', + required_capabilities jsonb )` ); await pg.query( @@ -176,9 +177,10 @@ describe('function-resolution capability resolution', () => { resource_installations_table_id, apps_table_id, buckets_table_id, sites_web_config_table_id, sites_error_pages_table_id, sites_app_links_table_id, sites_deep_links_table_id, + app_store_identities_table_id, images_table_id, redirects_table_id, - app_store_identities_table_id, bindings_table_id, scope) - VALUES ($1, $2, $3, $3, $3, $3, $4, $3, $3, $3, $3, $3, $3, $5, $3, $3, $3, $3, $3, $3, $6, 'database')`, + bindings_table_id, scope) + VALUES ($1, $2, $3, $3, $3, $4, $3, $3, $3, $3, $3, $3, $5, $3, $3, $3, $3, $3, $3, $3, $6, 'database')`, [ TENANT_DB, catFunctions.schemaId, @@ -272,8 +274,17 @@ describe('function-resolution capability resolution', () => { [TENANT_DB] ); ids.ambiguous = ambiguous.id; + const declaring = await pg.one( + `INSERT INTO cap_defs.function_definitions + (database_id, task_identifier, access_channels, required_buckets, required_capabilities) + VALUES ($1, 'signup:welcome', ARRAY['api'], ARRAY['exports'], + '[{"name":"email","version":"1.0.0"},{"name":"events","version":"1.0.0","declaration":{"stream":"signups"}}]'::jsonb) + RETURNING id`, + [TENANT_DB] + ); + ids.declaring = declaring.id; - for (const id of [ids.exporter, ids.ambiguous]) { + for (const id of [ids.exporter, ids.ambiguous, ids.declaring]) { await pg.query( `INSERT INTO catalog_private.functions (id, owner_scope, owner_key, is_visible, database_id, task_identifier) SELECT d.id, 'database', d.database_id, false, d.database_id, d.task_identifier @@ -512,6 +523,20 @@ describe('function-resolution capability resolution', () => { expect(bundle.apis['notifications_module'].api_id).toBe(ids.adminApi); expect(bundle.models).toEqual(['gpt-4o']); expect(bundle.payload).toEqual({ subject: 'monthly' }); + // A definition that declared no capabilities echoes null, not [] — the + // runtime mounts the full platform set for it. + expect(bundle.capabilities).toBeNull(); + }); + + it('resolve_capabilities(): echoes required_capabilities as declared', async () => { + const [{ bundle }] = await pg.any( + `SELECT function_resolution.resolve_capabilities($1, 'database', $1, $2, 'database', $1, '{}'::jsonb, 'api') AS bundle`, + [TENANT_DB, ids.declaring] + ); + expect(bundle.capabilities).toEqual([ + { name: 'email', version: '1.0.0' }, + { name: 'events', version: '1.0.0', declaration: { stream: 'signups' } }, + ]); }); it('resolve_capabilities(): an explicit binding overrides tag discovery', async () => { diff --git a/packages/function-resolution/__tests__/published-capability-catalog.test.ts b/packages/function-resolution/__tests__/published-capability-catalog.test.ts index fabdce162..a85437e37 100644 --- a/packages/function-resolution/__tests__/published-capability-catalog.test.ts +++ b/packages/function-resolution/__tests__/published-capability-catalog.test.ts @@ -245,7 +245,7 @@ describe('capability resolution against the published catalog planes', () => { sites_error_pages_table_id, sites_app_links_table_id, sites_deep_links_table_id, images_table_id, redirects_table_id, scope) - VALUES ($1, $2, $3, $3, $3, $3, $4, $3, $3, $3, $3, $3, $3, $5, $6, $3, $3, $3, $3, $3, $3, 'database')`, + VALUES ($1, $2, $3, $3, $3, $4, $3, $3, $3, $3, $3, $3, $5, $3, $6, $3, $3, $3, $3, $3, $3, 'database')`, [dbId, schemaId, bucketsTableId, apisTableId, bucketsTableId, bindingsTableId] ); // Label kept for readability of the fixture rows above. diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/install_route_bindings.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/install_route_bindings.sql index 0a7489182..6b3217be5 100644 --- a/packages/function-resolution/deploy/schemas/function_resolution/procedures/install_route_bindings.sql +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/install_route_bindings.sql @@ -22,9 +22,14 @@ BEGIN; -- -- The bindings document is a JSON array whose every entry NAMES ITS TARGET KIND: -- --- {"path": "/login", "target": "function", "task_identifier": "mantra:signin"} +-- {"path": "/login", "target": "function", "task_identifier": "mantra:signin", "anonymous": true} -- {"path": "/app", "target": "service", "service_id": ""} -- +-- An entry may declare `anonymous`, which is the route's half of the anonymous +-- contract: the URL answers callers carrying no identity. It opens nothing on +-- its own — the definition behind it must declare anonymous_callable too — and +-- defaults to false, so a document that says nothing installs closed routes. +-- -- The kind is never inferred from which key happens to be present, and an entry -- carrying keys for two kinds is a malformed document rather than a precedence -- question: guessing is how a deployment silently binds /app to the wrong plane. @@ -124,6 +129,7 @@ DECLARE entry_target text; entry_task text; entry_service uuid; + entry_anonymous boolean; target_column text; target_id uuid; service_found boolean; @@ -374,6 +380,7 @@ BEGIN LOOP entry_path := entry ->> 'path'; entry_target := entry ->> 'target'; + entry_anonymous := coalesce((entry ->> 'anonymous')::boolean, false); IF entry_target = 'function' THEN entry_task := entry ->> 'task_identifier'; @@ -426,8 +433,8 @@ BEGIN -- pgsql-lint-disable-next-line no-dynamic-sql -- write-only: insert into the routes plane named by app_scope.routing_tables; every value is a bound parameter query := format( - 'INSERT INTO %I.%I (%s%sdomain_id, path, %I) - SELECT %s%s$1, $2, $3 + 'INSERT INTO %I.%I (%s%sdomain_id, path, anonymous, %I) + SELECT %s%s$1, $2, $6, $3 WHERE NOT EXISTS ( SELECT 1 FROM %I.%I AS x WHERE x.domain_id = $1 AND x.path = $2%s)', @@ -447,7 +454,7 @@ BEGIN ); EXECUTE query USING domain_id, entry_path, target_id, key_value, - install_route_bindings.site_id; + install_route_bindings.site_id, entry_anonymous; GET DIAGNOSTICS inserted = ROW_COUNT; IF inserted > 0 THEN diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_capabilities.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_capabilities.sql index 813dc9112..8f3dd4a99 100644 --- a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_capabilities.sql +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_capabilities.sql @@ -265,6 +265,9 @@ BEGIN 'configs', coalesce(v_definition->'required_configs', '[]'::jsonb), 'integrations', coalesce(v_definition->'integrations', '[]'::jsonb), 'access_channels', coalesce(v_definition->'access_channels', '[]'::jsonb), + -- Not coalesced: NULL means the handler declared nothing and gets the + -- full platform set, an empty array means it declared none. + 'capabilities', v_definition->'required_capabilities', 'payload', function_resolution.resolve_payload_refs( resolve_capabilities.database_id, resolve_capabilities.scope, diff --git a/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.bundle.tar.gz b/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.bundle.tar.gz index 1e4903b702703f96cc9a9453e39adf4bdd422ffe..5d27590bb4ae8e4c4d2134f8507c9205dd56e5a3 100644 GIT binary patch delta 40337 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 SZkgZye!$$~S3vE-Lj4bQMPge3 delta 40107 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 diff --git a/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.sql b/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.sql index 3dc9bd258..eb05ab9a7 100644 --- a/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.sql +++ b/packages/function-resolution/sql/pgpm-function-resolution--0.44.2.sql @@ -1566,6 +1566,9 @@ BEGIN 'configs', coalesce(v_definition->'required_configs', '[]'::jsonb), 'integrations', coalesce(v_definition->'integrations', '[]'::jsonb), 'access_channels', coalesce(v_definition->'access_channels', '[]'::jsonb), + -- Not coalesced: NULL means the handler declared nothing and gets the + -- full platform set, an empty array means it declared none. + 'capabilities', v_definition->'required_capabilities', 'payload', function_resolution.resolve_payload_refs( resolve_capabilities.database_id, resolve_capabilities.scope, @@ -1695,6 +1698,7 @@ DECLARE entry_target text; entry_task text; entry_service uuid; + entry_anonymous boolean; target_column text; target_id uuid; service_found boolean; @@ -1945,6 +1949,7 @@ BEGIN LOOP entry_path := entry ->> 'path'; entry_target := entry ->> 'target'; + entry_anonymous := coalesce((entry ->> 'anonymous')::boolean, false); IF entry_target = 'function' THEN entry_task := entry ->> 'task_identifier'; @@ -1997,8 +2002,8 @@ BEGIN -- pgsql-lint-disable-next-line no-dynamic-sql -- write-only: insert into the routes plane named by app_scope.routing_tables; every value is a bound parameter query := format( - 'INSERT INTO %I.%I (%s%sdomain_id, path, %I) - SELECT %s%s$1, $2, $3 + 'INSERT INTO %I.%I (%s%sdomain_id, path, anonymous, %I) + SELECT %s%s$1, $2, $6, $3 WHERE NOT EXISTS ( SELECT 1 FROM %I.%I AS x WHERE x.domain_id = $1 AND x.path = $2%s)', @@ -2018,7 +2023,7 @@ BEGIN ); EXECUTE query USING domain_id, entry_path, target_id, key_value, - install_route_bindings.site_id; + install_route_bindings.site_id, entry_anonymous; GET DIAGNOSTICS inserted = ROW_COUNT; IF inserted > 0 THEN diff --git a/packages/jobs/__tests__/run-scheduled-job-race.test.ts b/packages/jobs/__tests__/run-scheduled-job-race.test.ts new file mode 100644 index 000000000..242fc4feb --- /dev/null +++ b/packages/jobs/__tests__/run-scheduled-job-race.test.ts @@ -0,0 +1,155 @@ +import { getConnections, PgTestClient } from 'pgsql-test'; + +let pg: PgTestClient; +let teardown: () => Promise; + +describe('run_scheduled_job concurrency safety', () => { + beforeAll(async () => { + ({ pg, teardown } = await getConnections()); + }); + + beforeEach(async () => { + await pg.beforeEach(); + }); + + afterEach(async () => { + await pg.afterEach(); + }); + + afterAll(async () => { + await teardown(); + }); + + const addScheduledJob = async (key: string) => { + const [scheduled] = await pg.any( + `SELECT * FROM app_jobs.add_scheduled_job( + identifier := $1::text, + payload := $2::json, + schedule_info := $3::json, + job_key := $4::text + )`, + ['my_job', { just: 'run it' }, { rule: '*/1 * * * *' }, key] + ); + return scheduled; + }; + + it('stale-read second invocation upserts instead of dying on jobs_key_key', async () => { + const scheduled = await addScheduledJob('race_key_1'); + + const [first] = await pg.any( + `SELECT * FROM app_jobs.run_scheduled_job($1)`, + [scheduled.id] + ); + expect(first.id).toBeTruthy(); + expect(first.key).toBe('race_key_1'); + + // simulate the racing runner's stale read: it never saw the first + // invocation's last_scheduled_id, so the already-scheduled probe passes + await pg.any( + `UPDATE app_jobs.scheduled_jobs SET last_scheduled_id = NULL WHERE id = $1`, + [scheduled.id] + ); + + const [second] = await pg.any( + `SELECT * FROM app_jobs.run_scheduled_job($1)`, + [scheduled.id] + ); + + // the insert conflicts on jobs_key_key and refreshes the pending job + expect(second.id).toBe(first.id); + + const jobs = await pg.any( + `SELECT * FROM app_jobs.jobs WHERE key = $1`, + ['race_key_1'] + ); + expect(jobs.length).toBe(1); + expect(jobs[0].attempts).toBe(0); + expect(jobs[0].last_error).toBeNull(); + + const [sched] = await pg.any( + `SELECT last_scheduled_id FROM app_jobs.scheduled_jobs WHERE id = $1`, + [scheduled.id] + ); + expect(sched.last_scheduled_id).toBe(first.id); + }); + + it('returns a null record when a BEFORE INSERT trigger suppresses the transport row', async () => { + // mirrors the function_module cron fire trigger, which converts the keyed + // transport row into a pending invocation and RETURN NULLs + await pg.any(` + CREATE FUNCTION pg_temp.suppress_job () + RETURNS TRIGGER AS $$ + BEGIN + RETURN NULL; + END; + $$ LANGUAGE plpgsql; + CREATE TRIGGER suppress_job_tg + BEFORE INSERT ON app_jobs.jobs + FOR EACH ROW + EXECUTE PROCEDURE pg_temp.suppress_job (); + `); + + const scheduled = await addScheduledJob('race_key_4'); + const [result] = await pg.any( + `SELECT * FROM app_jobs.run_scheduled_job($1)`, + [scheduled.id] + ); + expect(result.id).toBeNull(); + + const jobs = await pg.any(`SELECT * FROM app_jobs.jobs WHERE key = $1`, [ + 'race_key_4', + ]); + expect(jobs.length).toBe(0); + + await pg.any(`DROP TRIGGER suppress_job_tg ON app_jobs.jobs`); + }); + + it('raises ALREADY_SCHEDULED when the keyed job is locked (in flight)', async () => { + const scheduled = await addScheduledJob('race_key_2'); + + const [first] = await pg.any( + `SELECT * FROM app_jobs.run_scheduled_job($1)`, + [scheduled.id] + ); + + await pg.any( + `UPDATE app_jobs.jobs SET locked_at = NOW(), locked_by = 'worker-1' WHERE id = $1`, + [first.id] + ); + await pg.any( + `UPDATE app_jobs.scheduled_jobs SET last_scheduled_id = NULL WHERE id = $1`, + [scheduled.id] + ); + + const jobs = await pg.any( + `SELECT * FROM app_jobs.jobs WHERE key = $1`, + ['race_key_2'] + ); + expect(jobs.length).toBe(1); + + // raising aborts the surrounding test transaction, so this stays last + await expect( + pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [scheduled.id]) + ).rejects.toThrow('ALREADY_SCHEDULED'); + }); + + it('raises ALREADY_SCHEDULED when last_scheduled_id points at a pending job', async () => { + const scheduled = await addScheduledJob('race_key_3'); + + await pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [ + scheduled.id, + ]); + + await expect( + pg.any(`SELECT * FROM app_jobs.run_scheduled_job($1)`, [scheduled.id]) + ).rejects.toThrow('ALREADY_SCHEDULED'); + }); + + it('returns a null record when the scheduled job does not exist', async () => { + const [result] = await pg.any( + `SELECT * FROM app_jobs.run_scheduled_job($1)`, + [999999999] + ); + expect(result.id).toBeNull(); + }); +}); diff --git a/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap b/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap index 8feb32b7b..ef18643f1 100644 --- a/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap +++ b/packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap @@ -58,6 +58,7 @@ exports[`db_meta_modules should have all expected module tables 1`] = ` "rate_limit_meters_module", "rate_limits_module", "realtime_module", + "refusal_log_module", "repository_module", "resource_module", "rls_module", @@ -84,8 +85,8 @@ exports[`db_meta_modules should have all expected module tables 1`] = ` exports[`db_meta_modules should verify all module tables exist in metaschema_modules_public schema 1`] = ` { - "moduleTablesCount": 75, - "totalTables": 84, + "moduleTablesCount": 76, + "totalTables": 85, } `; @@ -152,13 +153,13 @@ exports[`db_meta_modules should verify emails_module table structure 1`] = ` exports[`db_meta_modules should verify module table structures have database_id foreign keys 1`] = ` { - "constraintCount": 75, + "constraintCount": 76, } `; exports[`db_meta_modules should verify module tables have proper foreign key relationships 1`] = ` { - "constraintCount": 558, + "constraintCount": 566, "foreignTables": [ "catalog_module", "database", diff --git a/packages/metaschema-modules/__tests__/modules.test.ts b/packages/metaschema-modules/__tests__/modules.test.ts index 733773e60..e6d580382 100644 --- a/packages/metaschema-modules/__tests__/modules.test.ts +++ b/packages/metaschema-modules/__tests__/modules.test.ts @@ -31,7 +31,6 @@ describe('db_meta_modules', () => { 'infra_config_module', 'internal_secrets_module', 'internal_config_module', - 'cluster_module', 'invites_module', 'events_module', 'limits_module', diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/agent_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/agent_module/table.sql index c4326dd5a..6140ceb96 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/agent_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/agent_module/table.sql @@ -49,6 +49,13 @@ CREATE TABLE metaschema_modules_public.agent_module ( event_table_name text NOT NULL DEFAULT 'agent_event', workspace_table_name text NOT NULL DEFAULT 'agent_run_workspace', + -- Name of the AST-generated run cost settlement function in the private + -- schema (agent_run.total_cost / token_usage from priced inference_log + -- rows). Prefixed like the tables so two scopes share one private schema; + -- stays '' when the module has no runs or the scope has no inference log, + -- and the 'agent_run:settle_cost' maintenance task then skips this row. + settle_run_cost_function_name text NOT NULL DEFAULT '', + -- Feature flags has_plans boolean NOT NULL DEFAULT false, has_resources boolean NOT NULL DEFAULT false, diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/inference_log_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/inference_log_module/table.sql index a0df776ad..1474dc4dd 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/inference_log_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/inference_log_module/table.sql @@ -28,6 +28,12 @@ CREATE TABLE metaschema_modules_public.inference_log_module ( usage_summary_table_id uuid NOT NULL DEFAULT uuid_nil(), usage_summary_table_name text NOT NULL DEFAULT '', + -- Provider/model price catalog: internal per-million-token rates a BEFORE + -- INSERT trigger uses to stamp inference_log.cost (COGS, never a customer + -- meter). + inference_price_table_id uuid NOT NULL DEFAULT uuid_nil(), + inference_price_table_name text NOT NULL DEFAULT '', + -- Partition lifecycle configuration "interval" text NOT NULL DEFAULT '1 month', retention text NOT NULL DEFAULT '12 months', @@ -56,11 +62,13 @@ CREATE TABLE metaschema_modules_public.inference_log_module ( CONSTRAINT private_schema_fkey FOREIGN KEY (private_schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, CONSTRAINT inference_log_table_fkey FOREIGN KEY (inference_log_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT usage_summary_table_fkey FOREIGN KEY (usage_summary_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT inference_price_table_fkey FOREIGN KEY (inference_price_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT inference_log_module_database_id_prefix_unique UNIQUE NULLS NOT DISTINCT (database_id, prefix) ); CREATE INDEX inference_log_module_inference_log_table_id_idx ON metaschema_modules_public.inference_log_module ( inference_log_table_id ); CREATE INDEX inference_log_module_usage_summary_table_id_idx ON metaschema_modules_public.inference_log_module ( usage_summary_table_id ); +CREATE INDEX inference_log_module_inference_price_table_id_idx ON metaschema_modules_public.inference_log_module ( inference_price_table_id ); CREATE INDEX inference_log_module_private_schema_id_idx ON metaschema_modules_public.inference_log_module ( private_schema_id ); CREATE INDEX inference_log_module_schema_id_idx ON metaschema_modules_public.inference_log_module ( schema_id ); @@ -70,5 +78,6 @@ CREATE INDEX inference_log_module_schema_id_idx ON metaschema_modules_public.inf -- install, keyed by the role name in the column. COMMENT ON COLUMN metaschema_modules_public.inference_log_module.inference_log_table_id IS '@module_table'; COMMENT ON COLUMN metaschema_modules_public.inference_log_module.usage_summary_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.inference_log_module.inference_price_table_id IS '@module_table'; COMMIT; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/principal_auth_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/principal_auth_module/table.sql index e81ef8c8b..09b3ebbae 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/principal_auth_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/principal_auth_module/table.sql @@ -9,6 +9,8 @@ CREATE TABLE metaschema_modules_public.principal_auth_module ( database_id uuid NOT NULL, schema_id uuid NOT NULL DEFAULT uuid_nil(), + -- auth_private: server-only procedures (sweep_expired_principals) + private_schema_id uuid NOT NULL DEFAULT uuid_nil(), principals_table_id uuid NOT NULL DEFAULT uuid_nil(), principal_entities_table_id uuid NOT NULL DEFAULT uuid_nil(), principal_scope_overrides_table_id uuid NOT NULL DEFAULT uuid_nil(), @@ -29,10 +31,14 @@ CREATE TABLE metaschema_modules_public.principal_auth_module ( create_org_api_key_function text NOT NULL DEFAULT 'create_org_api_key', revoke_org_api_key_function text NOT NULL DEFAULT 'revoke_org_api_key', + -- principals:expire_sweep maintenance function the worker resolves through this row + sweep_expired_principals_function text NOT NULL DEFAULT 'sweep_expired_principals', + api_name text DEFAULT 'auth', 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 private_schema_fkey FOREIGN KEY (private_schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, CONSTRAINT principals_table_fkey FOREIGN KEY (principals_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT principal_entities_table_fkey FOREIGN KEY (principal_entities_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT users_table_fkey FOREIGN KEY (users_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, @@ -47,6 +53,7 @@ CREATE INDEX principal_auth_module_session_credentials_table_id_idx ON metaschem CREATE INDEX principal_auth_module_sessions_table_id_idx ON metaschema_modules_public.principal_auth_module ( sessions_table_id ); CREATE INDEX principal_auth_module_users_table_id_idx ON metaschema_modules_public.principal_auth_module ( users_table_id ); CREATE INDEX principal_auth_module_schema_id_idx ON metaschema_modules_public.principal_auth_module ( schema_id ); +CREATE INDEX principal_auth_module_private_schema_id_idx ON metaschema_modules_public.principal_auth_module ( private_schema_id ); COMMENT ON CONSTRAINT principals_table_fkey ON metaschema_modules_public.principal_auth_module IS E'@behavior -*'; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql new file mode 100644 index 000000000..b5e44e7b1 --- /dev/null +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql @@ -0,0 +1,12 @@ +-- Deploy schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope to pg + +-- requires: schemas/metaschema_modules_public/tables/refusal_log_module/table + +BEGIN; + +-- At most one platform-scope refusal_log_module per database. +CREATE UNIQUE INDEX refusal_log_module_one_platform_scope + ON metaschema_modules_public.refusal_log_module (database_id) + WHERE scope = 'platform'; + +COMMIT; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql new file mode 100644 index 000000000..1bd4a580a --- /dev/null +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql @@ -0,0 +1,74 @@ +-- Deploy schemas/metaschema_modules_public/tables/refusal_log_module/table to pg + +-- requires: schemas/metaschema_modules_public/schema + +BEGIN; + +-- Platform-only refusal observability: per-minute refusal_log ledger and its +-- daily refusal_usage_summary rollup. Installed once at platform scope; the +-- insert trigger rejects any other scope, so nothing lands in tenant databases. +CREATE TABLE metaschema_modules_public.refusal_log_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): platform -> NULL. + entity_field text, + schema_id uuid NOT NULL DEFAULT uuid_nil(), + private_schema_id uuid NOT NULL DEFAULT uuid_nil(), + + -- Schema name overrides: when set, the trigger uses these instead of hardcoded defaults. + public_schema_name text, + private_schema_name text, + + -- Refusal log (partitioned by minute_bucket — one row per minute/database/lane/reason/route/source) + log_table_id uuid NOT NULL DEFAULT uuid_nil(), + log_table_name text NOT NULL DEFAULT '', + + -- Refusal usage summary rollup (partitioned by date) + summary_table_id uuid NOT NULL DEFAULT uuid_nil(), + summary_table_name text NOT NULL DEFAULT '', + + -- Generated functions + record_refusals_function text NOT NULL DEFAULT '', + rollup_refusal_usage_summary_function text NOT NULL DEFAULT '', + + -- Partition lifecycle configuration: raw tier is short-lived forensics, + -- summary tier carries the trend. + log_interval text NOT NULL DEFAULT '1 day', + log_retention text NOT NULL DEFAULT '7 days', + log_premake int NOT NULL DEFAULT 2, + summary_interval text NOT NULL DEFAULT '1 month', + summary_retention text NOT NULL DEFAULT '3 months', + summary_premake int NOT NULL DEFAULT 2, + + -- Scope configuration: only 'platform' is accepted. + scope text NOT NULL, + + -- Table name prefix. Auto-derived from scope by the trigger when empty. + prefix text NOT NULL DEFAULT '', + + -- API routing (configurable per-module) + api_name text DEFAULT 'usage', + 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 private_schema_fkey FOREIGN KEY (private_schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, + CONSTRAINT log_table_fkey FOREIGN KEY (log_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT summary_table_fkey FOREIGN KEY (summary_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, + CONSTRAINT refusal_log_module_database_id_scope_unique UNIQUE (database_id, scope) +); + +CREATE INDEX refusal_log_module_log_table_id_idx ON metaschema_modules_public.refusal_log_module ( log_table_id ); +CREATE INDEX refusal_log_module_summary_table_id_idx ON metaschema_modules_public.refusal_log_module ( summary_table_id ); +CREATE INDEX refusal_log_module_private_schema_id_idx ON metaschema_modules_public.refusal_log_module ( private_schema_id ); +CREATE INDEX refusal_log_module_schema_id_idx ON metaschema_modules_public.refusal_log_module ( schema_id ); + +-- Tables this module generates: 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.refusal_log_module.log_table_id IS '@module_table'; +COMMENT ON COLUMN metaschema_modules_public.refusal_log_module.summary_table_id IS '@module_table'; + +COMMIT; diff --git a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/user_auth_module/table.sql b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/user_auth_module/table.sql index 972dfab7f..8dfff5e90 100644 --- a/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/user_auth_module/table.sql +++ b/packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/user_auth_module/table.sql @@ -9,6 +9,8 @@ CREATE TABLE metaschema_modules_public.user_auth_module ( database_id uuid NOT NULL, schema_id uuid NOT NULL DEFAULT uuid_nil(), + -- auth_private: server-only procedures (revoke_session_tree, sweep_expired_sessions) + private_schema_id uuid NOT NULL DEFAULT uuid_nil(), emails_table_id uuid NOT NULL DEFAULT uuid_nil(), users_table_id uuid NOT NULL DEFAULT uuid_nil(), secrets_table_id uuid NOT NULL DEFAULT uuid_nil(), @@ -41,6 +43,11 @@ CREATE TABLE metaschema_modules_public.user_auth_module ( request_cross_origin_token_function text NOT NULL DEFAULT 'request_cross_origin_token', extend_token_expires text NOT NULL DEFAULT 'extend_token_expires', + -- Session tree: private cascade helper and the sessions:expire_sweep + -- maintenance function the worker resolves through this row. + revoke_session_tree_function text NOT NULL DEFAULT 'revoke_session_tree', + sweep_expired_sessions_function text NOT NULL DEFAULT 'sweep_expired_sessions', + -- UNIQUE(api_id), -- API routing (configurable per-module) @@ -49,6 +56,7 @@ CREATE TABLE metaschema_modules_public.user_auth_module ( 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 private_schema_fkey FOREIGN KEY (private_schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE, CONSTRAINT email_table_fkey FOREIGN KEY (emails_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT users_table_fkey FOREIGN KEY (users_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, CONSTRAINT secrets_table_fkey FOREIGN KEY (secrets_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE, @@ -67,6 +75,7 @@ CREATE INDEX user_auth_module_session_credentials_table_id_idx ON metaschema_mod CREATE INDEX user_auth_module_sessions_table_id_idx ON metaschema_modules_public.user_auth_module ( sessions_table_id ); CREATE INDEX user_auth_module_users_table_id_idx ON metaschema_modules_public.user_auth_module ( users_table_id ); CREATE INDEX user_auth_module_schema_id_idx ON metaschema_modules_public.user_auth_module ( schema_id ); +CREATE INDEX user_auth_module_private_schema_id_idx ON metaschema_modules_public.user_auth_module ( private_schema_id ); COMMENT ON CONSTRAINT email_table_fkey ON metaschema_modules_public.user_auth_module IS E'@behavior -*'; diff --git a/packages/metaschema-modules/pgpm.plan b/packages/metaschema-modules/pgpm.plan index 99562e226..b33c4b714 100644 --- a/packages/metaschema-modules/pgpm.plan +++ b/packages/metaschema-modules/pgpm.plan @@ -98,3 +98,5 @@ schemas/metaschema_modules_public/tables/image_module/table [schemas/metaschema_ 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) +schemas/metaschema_modules_public/tables/refusal_log_module/table [schemas/metaschema_modules_public/schema] 2026-09-03T00:30:00Z devin # add refusal_log_module config table (platform-only per-minute refusal ledger + daily rollup) +schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope [schemas/metaschema_modules_public/tables/refusal_log_module/table] 2026-09-03T00:30:01Z devin # enforce at most one platform-scope refusal_log_module per database diff --git a/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql new file mode 100644 index 000000000..d447cf381 --- /dev/null +++ b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope.sql @@ -0,0 +1,7 @@ +-- Revert schemas/metaschema_modules_public/tables/refusal_log_module/constraints/one_platform_scope from pg + +BEGIN; + +DROP INDEX metaschema_modules_public.refusal_log_module_one_platform_scope; + +COMMIT; diff --git a/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql new file mode 100644 index 000000000..da841fabf --- /dev/null +++ b/packages/metaschema-modules/revert/schemas/metaschema_modules_public/tables/refusal_log_module/table.sql @@ -0,0 +1,3 @@ +-- Revert schemas/metaschema_modules_public/tables/refusal_log_module/table from pg + +DROP TABLE IF EXISTS metaschema_modules_public.refusal_log_module; diff --git a/packages/metaschema-modules/sql/metaschema-modules--0.44.2.bundle.tar.gz b/packages/metaschema-modules/sql/metaschema-modules--0.44.2.bundle.tar.gz index b73ed76700f129bd6602c1ddb569c8808f77dd97..520046ce4a6689b7574e1bd58bd834973a86eba4 100644 GIT binary patch delta 103692 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 delta 101555 zcmV)MK)AoluLh-`27e!m2mk;80006L?7i!f+{k$#>fiem2<|#aTHQT)&je*TM9uWb z40Fga$+5gEDk}2Y4Y3+10Vr}>womM@^8hFI3HM1(B!IdDRk&4Ei_;Sd&2#~o-vyap ze)pW+%!|LzF?0000Zr1&=gVB_DIKms^l{C`&c4k6&^@4(-k;GcPx z%k=NSNnky|fBxgY1;LX$8Ar}$`I8rc|2qhtxFo%k`M=pTi<0=si{J@-a#22s<(>6E z+}T`a`qtjb%e%zPr#4%>p;Ie!YyJ@BxBkW7&TeLRf6l(qNotp`+{*aIew)l=4>QEo z&&JNC$^F~Z*s=WV0)MyHK{3mp7V*F6ri?;9K|~NtWEfhB9Ay{~A-O{igjNFyAO{u- zsG)!YQc9(U+FE5O(nL@|fuHxk{H#yBugA~$_t|}%%bzblmod%Xz$x8|4k6vUoU9N)_GWpK@*l8C~eLqdQhY`quGVlx>TobWLEYG`~bj<;(w#qC;Ra0 zKwtWh)qu3W4$zPn_MpgXz_A0BwK;2jRwp7yS)H}`b$|Ve58KkJN3kP~*~6x9`}=jE zu0H>;;}Rv85M3g%wnWFIupY%uyRbPmvioL4mx!)W`t34}@Ut!Uq@5-+n`Xb&YY(oX zq{rTD#=6S^(vZm6i*R-d!kaMeKy*{eX?LRWB?1G8-bExR5phWxWVbT4#b1@LG_^XK zdH-tPgn!uf^aX=?S;rwbfJ1AHNxsC^1Z8$p@#FHPUc9ME^*t)1w)unMC@W~4iZy0! z{9I@&L7qzeDT;5p$jF*R=3cv{o1(G-H7KJ;YqS-rb0A|AsJZ@RJAM8=In~_>BgFyU z`yHxu;hj6 z!ixhX6ulS{c3BLK2<&p@t>+2)=IyKRz76y|%agn1=wLZ|$p_SFO*9vN^ke~S&w@JG zyVQS1n=b~>$^b*~tDq7JQLK`myAZuwpnuYxSb7Q22ZUeXmc*{Z+$GXK4f4o;M=#v{ zpVcYXMI)^#ndwg$q3sCUgt|*wS>AF{(v;0rrqgIve94PoYR!#JFG>|mPGziZAA)O( zdwNlhyU4T#@VhLqKbQGSixJCR8>}TFcQU$bijaEI+iAaUf!(Fkzi{c_2-d%IP=C}7 zlzQvD)0w@$NU9IP-BhwB_$9GP`7OUhu}QuJQq8kMqt0zB zY4v_kBxv`bw6Q9#FRAUNRt@O=w0|xJe4}J+zCE1AUVFxEbTXGZS6BZZ4 zdVk^C0>fd{qBd6KCfNO?F0#Qdr{2X-k$PwIG}2v;;oTa@0m2EkTgB@zcZq!Ys(ise z@foSIbZXtER+{W0xU-ojH7ga5TxOrLP8kgi)tY^%MxElqHK2EiuX3+17k{aaCitNk zw!X4Esad-vrN{7ZHnMe-S?vYgI@-Hj`u=x6mTv^}yh?}&{2EDSLEK;Pt@EJe6Lu7^~(z1ZYk5z*$xvzl5NZ zD{l++I-|&gTx84JwIM-OPJh*bQ_WS;XW^E(gt!a0>dlkmcxQsGL7{8f_Yt} zTYVXLUs;aYdq1||)|icji|0~)k*Qt1zU8$aR;AvT%=T8q7T5z+F5V7|bx}E2)`!N1 z3i|Hk`t{spF*jq-Ncqx>wHQ$PfL7AA#MX?#C%N*=n(&mHg zUP` zyfU3aUCsSh`Y1z)e1Px;Y#AD=1-`pLDh24}kFSDH_P*49O83ojf~-??q^3#CF?M8w zK*C-1125*bY|q zOIZ2w_P%s08wB}1U0 zE8jV(M}O_9m$Rrh>5W|k&q+IOPrJvzH}Sh|4^KsPFl1BKv5d55SwZ!-%Aktcp%GoTCH#e!hkpq^{{*IM>jspa`q{}S?;KGr(Kx5}*s9x}0 z3%;4n)hBzuEVx(>>g2iG>8yFuXnrtU!mU`2;eQ7hwr2S{J5%wvgBiMg8#o%fQAy0lDznmDxADfttacQhO22y0wxhjK!)L z@y}K2^w!q;avSN}>Qx)-X_DD2uyXNR7fS0IxgKL%)z!PM@u*Yj)F#dgW%~X_VNs>Y zmw&=+n$M<*G-YekpnTC-J(b;yANTdBJ*EP&Th@*;@hOE-;fZu7FdZkfX9 zvlqO2wydz5MscU~;61I6&y`T^)BWB?r`IQeCb!(i_ z&^fy=wXj2YbPMn%$2zO_ML#MWE)<)YlJ86YW`2+_JkAGk;yw zkh+%Ned%w1Fm6KKBEHlo?eeYcVo`gaUHBl!osY_w^_pEMt?NqOi_%Vw1~#E?QR=34 zm1g~7@osjpZsVn&%bL~O`z-R`dhw{NW7S2p+<)<+Px}+UInrdhcE58pwQm}4a=u!; zzqqcs6qx?y{~qkVzDUvX=db?|UVpa!CV0B<#it+RMQh|rIQtRcijXVx^kZDUKbgt= z)(b8F?0-xnWuo+(-C3W0jQtXiQk(e~XVckD_Lu3!d>)z0B+F(OYeUL^UHB`h{izVS z`(m`;FD3JT6F507ocr^cO$%dY`O~VYe7Uo-79%v}_h zT2qq#`eXd^^@ryt|mF@Ngz3Qip%KnP_d3yFb18v>z#NGlDoV-8p+kU{`3E}fJb8f+Z^ z1S4UXcv4OJUrQN~+Rrx4>t#UotX2lRE1tEN0WMAMcBH^}@815{P6iy{3sY1IWCRSk z(%6O^0wyJcToSE72(>iE0wf(4LL<&3G#DU`tkg6lnD6qXlz-v%e5sz*^5x%(XYKjo z3wXA;^8Whu^|v1anPoQ3C*^z3o;J?(^u>$R-Yiw{=fxcF-oAeQyO-boOC!gORtgv# zN`$zC1X6|(L{ys)a_kI+7-&MRa+n!moFh~kg(V_Nhe{f`%dxe&T_~iZOi2KZl-NRs zgkxASt}F{VcYoXKoawJTtJCCKJCs5pJ%^JA0~iCq&2Z585b$O+ZomiHqq)qms5%V1$|yy$RIQ;l9-Ec50? zbk&Gb@a$vk$&F0l%^bfte|Y)se+K_@{Xdrr)<5{npFO`QUtNYN7h~SM{SdtQ>GkXC zdHMep9^3D1Ogf39>2lht4c?^l!1Djg?!N6u`LJ3#=`v~^PGL(Hp0PFJ%NH&$i}e0Q z?EBfWHGkux?xsP;jQ+(KGYoG9W@b3Ei>vyH}T3bNX!dW^Bp7~ebz6rj&etrGnI{5bG`)^-< zcYUz~uez*f2jqg&2jEqXi%!&LoA0jwJ!ljmleN_}iOkP_zFv}OL$Y`bTEgG_&cjgH5(^!$7zchI$UEPD z7z(?BxC1UD;jjt2I4M6Ahij1EM$0hQjg77EH|D$BWI-~UCBB*`Pf9LkL6iqk7TlI) zFMrQuIZqYq@+Cq(d7yHYMtLwxd`fX3^XD&$c))MhKWuO((@#DmkOg0EWnRowM_S3d zt9%htnM84x%jvYJ&#|#@`xnSOPa`$YJvB)|P%&Ng=7p~evnEjY1r}*CEjuCvQCx;8 zlIi>|zA8=R>o*@flfQlY`llay@%n1H;D27d51ww2{IrcB?jU1`flx6336@4WEfi9S z8>FZb$U;kip`i$cHiAfptyUf%Xo-=O66FMx%3>ld zL<$fcA_g3_f(nKSa~J}FFhdkt10^(wN<|4igJ+{9Ll1gBir4lyKAIU@xT?i<}05PN}ml9|txJHnNh*_#RB}DIYhbT=Mr!>Sy zamqu540T#)WE}I;aV0om1XG2qFqkte8PL)&2QgRH@%HYJ0cw9Mg@2E(-$lXiquX~- z=sWB3%}V@!eY}k-enQ>*RBHD*G=J_BD%8dWq9f%W4u^2RxY#usds5jo=S@F&i)#19o?)eKe~^@NK-84S0+K|Iu?f zvgfj%(?k810t!no1&m_Ixl~ee5=!e7=af*#AmIjL3qlKg0uc!{vrbCM2$2i}dq%(I zUgd3o*Rp=zHq5lxP$-pfp?|PpXt)s+`aCNoDWwJqshm?%8tsTg8uL&%CKbZSQcOY~ zp3!Hymzg7YEbHg*?ysbjA+C(~nM0=-WClSj1ykIRkTPH`lgvm01PUeLB7~M32&fTM zQbqQrZy|`Op~7-(nfB%v0XkG9RLWrvFvC_`XBDFsauO03hS*?+0e_ZE@KCxD{gq8( z_0d~d>#gjd&_8-MA3dAr^=uwh<38ZkJhsMt*rRzojk^cbF*WX1p3Ea^+(W#WJ#@?Z z;~8q{1Pm3|hRP5_SzWaG7&QhS$t zwkEi&wsw)j9mL5O4>DVpQ&udg@UNPU0eX3|D ze{4ZfbmM#KEt(BX^sSsutuM`O7~42tcSfD0X5wTtou@6PTa#`V2Y;)?CtknUH_O_4 z+qe|JwY(hW`L7?e?cD5Z5Vtp6Pp~^DSv%Ox zOQJU(dk(k`IE{r!M}O#>GN>o$EfuE~)!nU*O=`DX{0F?F#0p24p@uU~7`IwlDXFv? zaYUGN)KCa5q|OO~1$Wjshb*(2lMrC`09?&GiuQ0X^J>agNwJ6{hONT_Lj*%XFu=wU z%p~x?aIGPvS}CbCkkH9cArdlbi9{H1O3v?K-eKW*zU9@_-GAN6+V}!<3Xs%FK+FvW zf=Y=QM~X{MEd)wy$3jA62q=;vkcJ{i9YR0IQ#2nV4J zp>+~sB`8MPnNVU)1Y(LF{`hT3sLw`y$=NuN!`D~DfW`3N`^4Q}<9@Bzo7d9B(g4o#+En$ysLF`>8 zU2qx+k*?6kupqYNL_4a7SrBU>i+Z&TxKLoo0SqZdKyU}RPy{>3LM;eIq2@$7z>szX zQ=_d4jS7ho91=jl*eTJA25XV|8ndCBs5?hEVHcN?!+!}Y-{^_GqqSL>yX1Bg>2>Vd zaS9zyUn0OdiH$-AQvekc0&%E0WJp?SfFVR9uBpU~Q6(^fMiHZ(a8@a7;rR^o#--ce zK;NCR4GTj=L&^j(C?vos0t_~kDb9TXrGl0jXSk$*(9oxbVS|wh8HP$CCUjkQsZ$x~ zjVv5)pnva9-Q7Tk7Gtdl4Vl2g0U1iIvE&d4#~?QZL5&o55<~7n0g2IqU;>O_3K~q& zJ_B7!=uAieC7c<7vEYUmO7KmdGN=Lxx zdPAI~cmDcmYZkW3s>A-*qCM=R@jN<2Jw`{-B|{POKJ7kGNiyB_tbBO)(;~)JzBs8i;@$zl0)W5vZaq(PjT8P! zl7ITk2BNser2~GkMNg}*y$f)CC5#HRTs^x07pv+3uxdMXps)$x`cfVMv_ZM9mjhi- zq9$pwKl<7Tef^^j0>2?A+QT0Ob`Q9V&pZh3QtWl(_b9M8#BM9YDugPe0s|gmW33ZV z3E>oDf&(EHqiD2133LWSW-sC@<(703~aprpw9=F31!YkyD( zLamH~Fa#kAB}HLqp>%-wLL7!T#KK7l2w-CxTus}2u-Vn1x-}_-+gjj0^>3f%x2^QG z(Dw3lZZBFYdgZ%y3SJA{?klgHIfV*$D(&sWirX2~w*4WmqpNKj3!(%3F<|$BJBI4C zTqqs+JqGNJh1%dYLWJ26I0CrD*ne4#5Qenq#)CtJs10d|xRi+bl3rnzae^p>8RnV; z%*S>c6?gM}jgh7r!p`9!+CbxPyvNRC^Y6!YIgjmfj@~Y3Lu7Q*M7E^Oey`CcoUY}$ z+n^4$!P$h?A5L2cJ<4vkLA7Xavk7wmtjAV1Nd;P21|Hij|-nWfBzHh;8;Xn_UB zA+m@IY@Ov+NNx=zFr+TjzzK{U1)6H#K+%!&`PS;Rp#BcEjoI2Tj$Y`?hlnc| zG7&!KR5}b9bCOU3sMAnc9gf}fC5k^s`B&Mmx{k7QIL*~F& zQJNn~X?`qhE>j*|&$8z}{^iTjRyIo%d;M=YU!F!cH#QAEM{=FQYNjO3t}+kN*P~5J zh|h{23QOqui`9+smw*4Xob%}#Jx?zdM&0E<74R#CGV|kuXHUzA{>9+druO+oa5GJm zoch;22d>IltJhZbffuLtCKkLe&YhCupKY2(#;>g}w>I|S%8P=&1w)J075S~r3YOvBg|HhPi z=K03v-dYgj`_KKoxPO}t^v$)q3wnD`jq2ClkT1Kix5UriaI>Oyn%9?P4b7V?c2v;y z@@f}{CVBd|9n&~%Fyrzv_$iM5GWVX_*x#5P#rcaMiGS^4$1SAt%%&?<$Ny2vRR3R< z++AvmKfQVNuRkr!nN8JjGB1ElioqrAdu^I+#d1x;Tm+RGR)XL0_HO}hS}cd{s%;#a z&+$VzYzc}Uptm)hgAg~jX&;DNN7EsQBk;E~U%OU2??61%D`^W}4@bZb$QJRcEvQ4F zJw~j?jel5eGWe=dBGiVk1^{XY;9#gn2_7Pd88K8^MTDfnT41U29qbv#3=*tRXnczz zOPxlR3XP3s&M54_84G)BJs$moWSi5qVI6>oFax0kKv=^$LsDTWD71=OVl+ku3#pNG zSRsQ#$1nmMa7B&Nke=~Mhg#MR50h<9+dWQ(q<`U7hDcKkwN;i{Km>pipos zBypkTzyj`X&>JmIwk?qd2g-K+K}V0BHTh_o9W>oNGu=Cab@!$WaKv=-zVvdu^z*sY zdVfg{IyCn99S*n<9&pU^l%9g~I0??(>g#l_frsK1I9J^G3<2Y|#`~Cd`>8DV#-(u( zhryQn_Vzyvaj50Ky$ugS9M0eFd>v}JAM8;!zUAH~hCiO=J|K!e$VNT7mD+Iopznpt zl?Vmk#6f@|7A8ajX<}>`a$ybC&{2!16@P+LBoPsYXywf>f#BE$H=ph52Jf$`;AWSw zvlQH{qfw>}v`!k>--2ZsupTX0VEj~pV2kjwoVe<)u-f4JM`XF3WsAjY_P<*$xa#YhgP7=B zt3OTF7Rv!tij}37gv7pZN>t;OZq*zLh<#jz)VYKiT?59Ozps-52c4{FPzJWwAQTm~Cvo z1b6mM*|b!gE-y=93vFwqUaEOC%`c;Psc8M$FZOAqqdbslD(_b+oF8~sOt)ynxwGT` z_@}xgGXL$zqtsqB=~Y0>D$15 zj=TY9tNC;?_nR@w3QhegcsZL@i!q6(_rd@D-~Y$sSFMwZ5M`%He1B6!p5=nlB)ySw z^w)Bi=eIHsOkxY{1N(E7vl*J9-CIqh$w8>C%e$M zY@V?J*O@5|NYtA|qkki`VZSt?vSlBQh(xn3vy00<%W2F-deRKp4PLBti8|`nHH`sa z>-$}-d+a(^5^g&C4)nX&fV1z5b_cxIvOb8(I(PfP-p~UNKG_%g%tGx%o;MCnsSk3bAD1f#k-!WhuZ~A(Pb`&7>LhBfy1}AM3 zMgR^CQ;7HulN=dkDN_s)j-4Y2gv=1p#NTgNTpPBW#p z)g{SXE3JSQntv)3D#@XO+VBtv5lSH;gfJ8eYRW@yiEx4u7COg>Z>vKLJ!4~|8pe&# z*l2y$?g`t>Sq`}7To}PjC>&=}`Emgw1R_L))LDO{PUsNi98+WbonQ)6Yo!2~?Mv7; zkit-CO)!U2Kte6CP*S6~!I}_4FkyyK9Qq6Wln#+mLVpyT-0N1+F_st-FP++s3QAMV#A&n-9gB zk5H@9F@Lz)K6rUBCU+pj_JHeTzS{nG7w3tmJ)B_Lxg%-k38Ou%7~1&*Xb&xVcK!;o z6UEJr8Z|r6fAe@zv%SmWFeZbdW?P@;5VWCDv%{5B$BLRY9|!Gl7#KCHJqTJs9tyMr zym6vt_2RZ2>~W%I`wpH~cnpQz0p9SaS*y;sBY#EBhIGCi7#})egy=LeqN7KNP826P zX{6}Lv7&~1FRxK6_=hkd6prH{Q+_vdd@Yoa`;JkV2X z3Sf&$r{%=OTiJo;$Jb?@l$`q+eVfwh`b_m<%dIIYbo@qGWIH`umj4tL9;*QE<(J4T znkknE7M++nfC!@8-t~nuDF(L#mRjS>qJN?!?gMRY^r80C%V5x=0H!#Bf@ev3Q$f>m zmR$sKQh8dUMSJU|PJ4(VIa{QxJLN4lz*t6&v#-}%zCD86~Vv54fX0spOc76PyZ zCdGwDJzn)1+(R>+CVM#+!Bd*Hh)W| zpRFIg2L9W(FJE83|MohVCdsGy>_t)YQ+<;E`~Uub3+Y$lvJ#T@lp|N2Ms?Q6F_!DfT4-FW>juTKP}nj?_TsW* zxEukgEw#M~pB?S~c&Kbx27d?e*|H)ARle5NzHYc&yG8N0ytVslUpL`&jh%0UI#hAG z1#RcJ=mBxp+&=)dSs-Ky9*dC>=nT6~0QSb9*0*y2k8KUD$I{;R+8%(|Ia^~J z;K3T_EqGn?6?Whqs`A~0w@-$52fo*p)gF^k5ah_9;>Uzt*+kS?^TT&Fu1OE6T+UO{&G5qMjKGP{;&UmM{q*6O@vW zVF!%Sic$a(CCX}PWPeEfwNp+jZ6u%o8iv#vE9&c#kos5DZ_L)J6#?K_Q2L>PpaNdtuul42&1aA&*(t&VZSE9y69?OsvOu_8_Z85(Jg zGs0hY<}gxD5E>%tBn>fx+Bo4L=L}M(1=Wrj!hv!M?yIPWP=9Gb7&K04ib04F2E-Z( zfyNp-WmRZ7Hh^R795ybbns7~lP$slW+wm&ux3sTcNJV{zs>D_`%iWWrI^{$4$bagQ z`qVw^se8gx$6Tk5X-c zCrM;je#iqTc7Hyc6YyBX{IH9dj~T;1SNQ%HQx1A@&UpPp2-Tmz9REB4`iB&oe^_Dp z^G4(!S}^`$#Ni)U2>z(y_x(lmqlVuPmadN;ey=$|4nZ9;{Juwgb--dA1iHf>CH%fm zXdYbEL&NVoD%v54L&NWfn;u96Q#lsYGEZ*iZMY$1=V=zV2xsRaAH`OjIL4Bvvzfy zuRkr~h$_s<6`1{Tp(83Vdpvx{RA2^p;QAcZ4JNUn*g!>rf{1%Fms$#dM24G?FoHEj z)*vXA0tmxUI07VQP6}rgQouXs;eUr@2tT&5d~9QR@-~(wN$ZQStJ7n5Y`eae z)wsU!`oQvXx+#6P1D)G*w8P=@GI%qePW^}%MMpxPf>i9dvMbqEuIsD!tJ$7yG!R?E zBq&au=Q{{yHqZBWo@;)&9W|XVM5`Irnr|bwL95)?eH*Iw9KL?bQg7IUCdp=Lw|_RW z6_d?f6i<47@S4HxK6~;dwrO9eHG^9(w#NpB!y6dxJTE^;Q=7vdli7S)h(dKA)F?zt zm7=8o#^#eGy^(SB*P`jBpVzklEX8RhXv%jcZc&x6339o%3juN`vrm(%(dqs!ndSR4 zo8Gm1f2pHn6Lnv}*+6Ia6+iX9SAVu@E!L?j8RwmsE}9-}()+UPA-w8nx)d$TeA+R2sIXYTes z)akUNw&-eB2=^g#T$PEF=<^q08}etPrjUw^vZ&={%$+C|Ci^8;xOy~{T0oRJ4xC)U7iSYka9 zXfnLJU{d=@2jWw&%C^C(bAP!(EglD3{?$P4d}ClOxK)u$tuK0TKeZZ2tzB0q0)7gbPk#ZU(MwqitXQyH z$8MAb#!e$u?4s#?FprC6Ze9e*JkKIy1GxyNEgbQ;wwP+=M^0@%Pvg?HU+A~19rZ;n zcV8;=Ti?RxR>q}w*}E0xI#%Vdiy%wNb#I+bt=}$w@n?aorY-h=wN=(a?LG=v%$6lS z9_&h2e{^TBMq+b=l7Dc#@7kaN92ek`0o6yMjsa=&*zT9+>xkjNVq+xYmWNCzC%80_ zn~(tp2nY?fgg^uV!2lX3B@8Vi$OuKa;twIs_XrujosxS2EZm1Q_qv= zaPHQvr%P{m7?};{Pic5~*$ktlF`O=m;a~&GV<#~*Eq~2Un2Z>p+`l+lVKqt;!{Nq> z$4X+@KK@!k9%U``S_9)GG3=-sU0{!x#IRQl?26M!Nep{c!HzhMhf7x+MwAf)WWxwa z44bNAE2twSF|=v_IDQgCM`$A^G1M!m1B&7MgzL{7us>VK{xm`R6Nl~35WYS`0Q-a? z>{AA@kAEM=Zn%d~Y6OwCj$=Tbq1+123}y-gK_E01JFYQ75L#so5e{>IX(2$2k_Ri9p@^ywoHPeim%P$nzELi^RO-%Vp-#Q*-^v=02q_4{npG z$$vZ-o+0u)kkiykbMKL}vB`q@%tP@{8F~IS4b7+XT)=+Lkr2>#K31Ao6vOUAEHM3;l{YMg+3CW`%1-<)VU;qRjS zOO)B*<(u!mdHc?<1^?;(@i&Y-4_uV{^vgg7Srp$)ZNSK-it^x2>f0!`!IvcUzR6^@ z4p)n~2>$v6Yfrgfz-2oKPm(NtM&v4ZCnG;|@u=FOMb_GKLPY#xVkEeUKHDsa?SGeQ zPh|nSB0mRrNxHFhvT2fMfwIp3F5~+ow!YAQb?Ou;*zu=8D!(<-dF;D<2h}y7<;vVJ ze=a<#k@3fXmea-FTh1qAv)FtEkypWYNf0M_kV?AfFP>f5pW8f#J}wqK_A)j4iWP^WzOeOh5rZSyFu zk+O_Db`BZ0bI37z{%kk>@VOx~X^b`N$r_C(sDHifdz<+m2dDJ!w{1-G*nj2XEAMh~ zx~}NWWzwg(^YkHgD>zXIy|!Mv=G^Jl!L` z2xBg2$bb_-03<`gnFXPCB&3Q0fCURffF#xqg+eJy5l~8j@hY5Zh4e3^#A(#45}sc4 z@C0{q0v~c;j9;43xd^DWIo`q&Z)b#eu)iN`A0Bq?!!fPoa~a6z&uu@ES$s01c>k3q zM>C2KW*r~VC~k2D`hW3^;=@_JM=**zLL18{Zj&u|45N6!wKe_CzvCK!^*S{$p@Pmi zEHqV)7^<}rMgj>!zyx%HQEahLP%B^<1sH}DXs3-05rdA5oEJ2^O=3HV=Vc=G*OwU7 zOy4;&gX*w3!X>e%OoCa#>vyd|_t009p)hji^m%^UBc!y5@_(K&v~&Lo9XDqnkQeFMsw2S!$tfe%RiCw?sfY*n^>Vgx5p0Y5?3K;82UfaLA7# zhjBv=b!;9Q4Uh&PVHlzUNlHUYL!~))Kr-d;YL!lKO-RW6GbIEB4nn9yq9_irb^3hK zfIUi9|8PLvqx}V$J!~8v5U88HM?^r`klRo*uMp>yXA&ff=S;#SSL}&^^0T3d>Ngf*J zB-3DDL;wgT9WxxuFtkKUg|vaxw>Hz(3aK1Z6ouR}%zqIxAXMDXD-a_JP~WI-w1_~x z5IyM~#(n(%otqww;QhbYuRlLvkMgN}t*6qEe-YmD6Kci#y{t#nino?TOV~r9c7->Z zR@}zpcpR;GfX}hB{#SpTQjDCH%sD~{R8S~GG2oQ?wx3uy>@cJX7_GxXN8y?=?zo|r zJ0p}aV}CmX7xl1Tp&zi0w6nMXHxYR(416pMJZWLzlKVf%C=M2@v0MnpE*)H5ky?V? zh$IDnPP|24syM#b;-^>77vG?Gd)RfsdnW0HdRcrP$koN8n{ayG^;SpW?6I--`P0#TjfPnPk%LAJYByvyeNFUD5|gghAOWisHUq1 zEGvqxWHH8`NAqM;byt_CS~`r zUWm^%5nFEXMFG}YV}_pL&A*7(TDQaVI&o)l$%g?x>c zmw&V`xV4<6_rlqpq0^H8+Dg?nh}$VwOVXQfZqj5vE8&^dXR0Y;Yk9r(656}XLbV|m z(+?8Y{d%u&5p%xEvIh_be5^1#V%T$!Hc?0T9{uGgXdUR4+n}Qy1(ha^pc$)XZRA*Y zOK%;bd;2Qy9NI_W+V*kS%&py{_pzFBAb;Qoa@p_su7z(}mSf%RyFFdk^wb?6%E5Zg zZHS!{Lw7+Qtd!h_*{`4GF5q@If^I|a*-3L3e9OB)x8Wa_?tPGHVZpY>Y(#W=<1pG+ z+V3-IjnD4sG6b0#GqJ<2**$uP?VcL@`ye($Aa~(@_t;7e(+?*bZNVJ`?=i(_S zO%7k}UATj*o429ummfz1w?~d24d%%J)rh~*VGYbd1K4NR5JDU@l2a}*vN+VrVs4>i z7{gErM+7iHBkUx>N^$8d3IP|Cnlt90)du(urJud}KDhq(SMNW(Z_na3Y_ys%h6LCC z!cqnla*$f2g>c-MkT6ai1`Y!Poqy9z1AuvGC}&Pt%b3+?%t5PVV{`hM*Z8;8|LPd1 z$zfWhD6Jeh{4DB`*&}DXukzM#(((d>vz||_b*?+ziyW}NKi->)EYCcDSr&D#>`@F zq@j>A2}r0M3PV7g(oi`F6aofog$P%I8j1HM4u(`4FSM8yA?6%%g$1=1XvnN`nj7e# zLd2 z$07&C4ts_TA3%GEzAL)tU4O)n{T?3sJv^9j)x(HXJ>($OLyJ#6q|nqarjN)2yQT5m z_wn|RJ)I)*bg(JP_>rf>?MRLkd1`r$+p!`~Z7*;;N#v=;InW-n@zCjy!&qNwzxL1` zpHU)DdrqP*yJnQg)7~@sFg61qcjEr=$WyC=o)IHYL&|st$5>7tWq&zOoaKa(mea;s zju&ld2(SiP!0xJ7qS@yqwUfEiT-V)9xAB)g0Xi7V-X`*Q2amvNF$a%e#W| zM(^PIJBx(x_1`90o_|I?ZV#NaDUq!yG~Y#(7fK)+7NiZMdh{F zSn`Vu*)2_EXV2_aiq}q?SMP)Cr@vM9R(_6>G`ReSos^Qc+kfMD5RVOJXN?bnv1Plg zUZ3of8HX*IbroU%F}stww~ND2z%8L|%7>1iwodbXaC#V`8=zWbKd$qzCzS1+#{+3W zLSo>Pr3?-U2>s0mnrcV6gBWor84{tzFof1g1OO76E25}l9CIKfW9Q4R+R>={_w`y$ z)vBA9Lke^2B!6WgHb#e`gvv@~t#+Ye8c~CVA0IHnPlp_@SWDvj*q36q_+F{x7 z9$u>{yLaviEl~TIqhC?Sg27f|1ARM(+j+cP5zB?a$zpi1H zRUf0OvpvkC&j5O}lB(bJ_jvYOP;Q)wV860-eO!{LU8$roMezl=~7x8Dx3l8`?Oj^P1Lb zQG9c(-f`nMQd@nVr%U95UtFh|BWBI|6Fx_#5OdB0%--n+zP8hL?}U0D5bQO0CFxdmk<$wZ74$! z3grZZhDvolCuGw(+20qrGh-{4BxBTajYA{|7Ml3$afxJ_W1x{XNGeQ14GrT+vXBvk zEPv+&DT{r1Tj+*oM^GZY#L#!m8EI!eAi)47(k za~RHBh#bjm?rDhjPQM!?_s@q>CYjBB0@~>k0GA{$Zi2Nx&!TkE_BprdXF07ozJD+X zjJ(gDzId^Csh)-Vj=;sMPY*J&#VqTip6=o3zNzGFwt9U%na?k%U!3>g%;|RzG9|HY zMb%U|*6!rL#pJ|VC(o7$@1|Vs$p8Hgo^4q5tnCA~LEIk1U|2wC7msfFYz^3qf4=zpy8^I@?Oj&DVb_ zA(mkZ5wy%A1rp>jNQMiQ&3zoZo@sgQL-0LT%r$_l`Rlk$A7)OzL(ccgC3 z+ue=IIpt0gfA1}pG_;JXP%#HdsDM?@`4(w{TB;=m&_P8QL=^DQSb#95VxJq;O3jTR z)FA+*u>=Cnon^#2KtmW3LZsvZYodQ0m6`($wNgfSKu)_c8?Egeg(pq+?2~ypFxj)O z72Q4Kb3DtrpV2&~y*!4g{PlaW&zHCP&@x!hWe1RYxjTXmR-H_ z%t9_D5;zPgvzBAVxs!+^VHu@HYfO|d&RLAKr9vv|6s8nt3qqt6A;-viExyH9n)JFu z+u3qn*D!e){W|QOjHaiEmz5zZo!TDPzS>x)_p{uZ&Lh1$>+Qc>zj;4-cm2cLe|!1* zMUW?-?E0=v?Oo!p*1QblbXtE%k04IIlous$?fF$&@%8)nuin0y{P61c?_Pd*_4dt+ z<*UU7u{9DnC~rJ1e!tW<_El&Fv@^#}7qLDQ<$Z##Ys2;$JpRSWG`U#@2A3-~x``)I zJaO|_7sg+c;Z?r3jCT4z=d*Uh=Ch4q$vkg2E}7@6=xRQh$t?Slq~?F{;I)?*6Qs7& z6q~OvCUHr6lXRG6>-`lmv6&QZDqj-mS5F}ZTF_NHZZU1?_-Z-V`pcV_(N<4d6S?*N zvZu|h)t}nWvibVcwFrM~CQ|EU9_JHdr?xA<>c=jyEPl1imkwg-8|$QZlg(jk*jBqq zr%9Ggk~F$$zqK|7t(Jf7U*G;}e!{W

pF zxXeWi0fg!+QfGPq%IQR!wtWHIJsqjQpoAgmj2TRh+TpV zGz9QEH#KMspfwoBT8NA?5U?78Q=MC*8Xz?ghdQ@j4S>^Noax-Uy#a!M(ICudS-9v5 zfKfkj=c0g7>&Gxcuf+kQX0tIuqw@ep9Y%J9Zs!4vI!wn1-4+3iszk19KqFTHM=lSK zTm>L$zB6jAJfj?XX{_dgID(M^8WX}eg@Q@TFi?US2^;y$hVV+pJlqN|+nzKkbszEiOuyKZk1wH{tsC*%zyz^S%R7Dg20Kyx)UieS*?>Ay~M=yGnync z5R8&;w#hrc3k7}(Jgu<4fqj{Te3I=H{i(ReQls#p)Xr9!!%NoEGY=8P(SJ&}R8mVZ z9r`~<|Koo|`2xRx+iu)xZ=N>8>Ja*e{_QFM$EWSu#?iNb{Nu5WX|L3umweVKk1y|^oJe@cr!%;Z@^0@wt=#83 zvwePEy^U4)TZrUl4Pp3^59un5UA#aJJ@l{I zX|>8F;6|^1T5+{b4A0`KJ?))4t=s4Q>QGy^+bEmt$}YNuu{*RkpU!`D*nV`Ihv(I1 z@Nbhy*{Zui_!#nSAJ4R%8QMkdOv?Brq+$D@4$)!t94fOt?+*XHZk{&V&&N|s0TnAA z$j*&9cMC5cr5drz(%Ehn^xUJ$Ws_68l_?$3>Z&wqlXC=Sl5D0F@6N&TCg{3Cy-ZQP z_NfiQ^U9afep+Me>zp90a+2?sRo!{j%zx>?D~D_pzQe9iOyYUDp1>RUOV} ziohy=^3W}>*=moL+H!sWLRMUYtXN#@`^tAZjXW26ODbiYvDhdCy=9nMB`BsIBPkSB z%pd^-lpaY(Db$)EfEYAhIqm%Q$a4+&W*=ehyWdB@`~SZC;cq_--OicA7_yMsa?7>B z4iJn8q7F-dI0}C-${UX<)!rD+HB=Ns1Qa2E3=%C2*BT;zJ=$EuLXM!yRjo`z^`hGr zqi||r*=&+;EAHX8;+k&jK**80m;L8aLf8HFw*Bf>AE52xc01_07KZC#4i;a>kDDl^ z3;zDwKmPE$VRS)7DR&k)DG5_h7@>(#)FAFKBGfrz1jdwUhZqE$Q%jlW&J)R)M%HzI z(glG)#6jSk!`@pjyjK(n3d7b0*elFDrrHq=j8YUpML1+o6R&8Xh=S$lf@QBWn<6+K zrN2~>uEG4V+hNFgCmcN*Ivx%Cj>awr0eb`Bt3G&UATl!olo?16T!`v74s^K|-tsn} zmbZekymf%(tz#=!hgGhQsJsC%WjP#w<;*BbKi6+T6s7Wtdt}W+Q7Zd+fUNl_O3NqS zx2AJZlp)2>7DZ8Ney2y?GAK%mfgjB=8;KXR+-w0R9y<{d=`fbaqj0vz5^`XGMw%nR z4L9Cu0Sv%ILJGOCoNFr>FiTf13vkbg8kg5S`5Bfk8!*vp)G+H*>wJaGs)fOSYO&=q z4QEyvu(VcCm#`}PWfJe@`_G#|f~pET5|a+w61EvcmnIh)bnPclZu--mn%{AIwJ1|8 zMYMDKyL2}+m4xcA$8+I`@0l}-YVz8SWM>I%6}L!TWO)P45ZqOKq|;vH*(5u+f3UjS zMfMn;k|C*uI=ZzeFGRn$?o*|I@@0W zpdnyTFy}S$0(nS;vtAh}fbr5|uarQ538W}s&>7;57Q`W{B*xc^4h>m<*!FOdio>BS z-GT3JCNA*JhYx%AXx1u@-w%s{V2v51SP}^wCzdG8v{#-Gsibv`K|m#7)C4IWEHDE1OE07)pNz?}ke zxfn=~>75-E857wU5dj!~du*L?UhO)1UhvF$!QS=-57^OQ|03ITa*SpF)mG2aT}811_8lNtjj(ik-&FKtzr9Kr4m> zpx6@38GuWtU8cbM;dSSJj^+K^X16FPcC53U^c_E@=A=RS*Ikl-s_=K0gnrYz#^ZXc z)%uuxrVd$E{rEOKo!(nMxqVjfIph$f|GC~iu8dkA{qb$|`DtaIvY)w)S#RUyB6J_d zNXGeo;}WexD&1ec|KV@{^w;10P=z8?&V*7xEWQc1&WpAKsN(9qK0L)OiIAe445mOOun^ZR+Y%7(X@ z=DHmRyGbXUU6OC|LPPhxNv4G~(`>oMWX4ORJ+xRE>5WCsX#p8f(tGGQAOvWCh>!=CccEm)O3#(%N_(KNCd4@E z1pz=K1VaT;h7k5lYRi~&GO*_n<%C+vl+_R}hmtkf(~Cl5J>1^W$Dp4-aCMDS&-CNY zg$_I2;M4Mloi57LSr0pnZ+0}aGsCU7gm4&yTvJC4mBbLngtS;%;32YvW2UqqSP&rcSR4WkH)Z<&JfYr1_SE_;4v@kWGsfgzU z-S76!M`_h+>&#m1RZ?3cfG{e@K3-z==uY*OQmp9&5q-OfUUuuPvR|*B)nk4_PWrbM zkgIUJSBc0tD3G4_+N9M@k`c4(MVyuPd0fSZ{cDPuJ*$sd6S#tw&uXtG=cErWEzrMKmkYr07vJyUF9TJ#I#UDf6plqps zq6pq+ixnknoZ@fkG$XqWeaO;6BFCQWCZHlWKnJ2Xg zMS(H_=^$}F(P(wZ2g3K!qe;JlFpzdW)E}~L?Go0N+C*C&9;uELA6Dyi$|wt}W&>tu zTyY;}{VT)5glXStr}kmw>>d^UDQmQUXS0i8_TJt#)yhwCy7%dOQAbQKTfX4FS8*CC zx?69JT7QU2m(IIn7@J>TpTebe6-?_W zsYB_rIV8I_XqRlOr`Ncs;3__K7Y#DPi$1tb5Rwde#7?urcANpTyY)-9f4851Z;}aS z|M1bh-bddZBDD_Xost#wt8`DN119?+{RC9_*lyy06=pZ>q(oVUw(ecpWHgFbo5%GL zVJ-|1KDJ~~6=}71=@D|ZNykkq;H={4Ws}Y@5g9Pk?aQHrCx4fgty;xtl2)N?+woif z(6p)zN+#oFOMBSnW+|znWwslCvv&uV|8w|y;=CvA=_|=!R6c`b#ACIf>^lvRL;9kI zL$zhEa4y2?-<~o~XYxU1uQ{<;aoHjt-_Q}fXy=n=3M7j6N>7(J^@4G(0dX7cn+ zd}5r&(R%eMU?_#^Vr3iAD(BbP$CGTFLVsR$$lp-1KlJOdGSoxzo0lYiUUD2J$~Rar z6H(^iato5Uoa4xaVsM9m86E0_9Mof+4w5~Un#W`-XL~O5Yhjo;RFHd&3&U*ODs1SJ z;Z5CB?Dj!{4CxLJCE=h|zOjxY{5kt*swO6lFoYOH`h!iBd{2emnOV2X1lT&&j0=xs zFEhk0UL%!F{Vtf(q}-f;ar^x36;`rP=&86gW|ejTD3#z#rm%5woW0EZ=m)oU=2+Nl zvn^Q4)V{tu>|b2I#&J13kgd{Px->VZaU{Dfi!St_A@8sQS z(?ol<3c-n^B}jEib-Rhvn4De3>T&N}{60)$|7o>(JdUN^llruO+P>@~wf?MLgA;$w zyOCh>; z$X`znHX$tMLiM|U@Nd8WL-gtn$+p`&pM-)`l)URtY8~FV3ZF-z-lEz>${4phq-TeW z3ZA^J)gk)4eOZUHmTR{;tY4$m<7RtY&TPsL{$swLb>t)2EN>z9b5Y`UYUAs|a@*e{ zEc0zcqfBLs-vG8$UBb{@&eC&z0jF?ZNluFC5i(fVI5$Fn;aGF{yv>jM;ZPBbM1H!z zugxhxvLx2*!90D8e)C^`_nSXN?+OO;yC2f6_WfT=1~U8e`?6wstu`MM_0k=kJD1Rp zczbwSZ63eLzL(@$a>(xrt7q4$T_|V1*&ZH}u?Hx5*sq=o|MoumPyac(xhW@=Y-(qU z{A!UNsl$1HATd1KP2tuRj$GEoX1~%o%ODJx<6XyX*BIL?AF0McUDe}QcTBG$X*keS z6Vnhy3-`ltaSPk;pMH}O1mZ|<4^QE)82$KFO4X>`%@ad>jJ*B$)qS_lwQp&H^7SLy z`yr7O?=+@RNeu{NfFcQ$CQvD0oB+xh2`Tm(aOtgo2gVC+Lzx=ReBgI8D6bccYJ_s8 z2cpWu4T|GI%e_#PD`DQ%)@AC9n*CNC)NhKtE~m!L!d>8pzx?%Y(X%?Z{YtG@ z|J|kZwkSb6!j&{>1o2IJ_CMaE0v9eWkkPWZR1(svjg;t}FHSLHmc-}$S{)+2I)pNR z_fhUdi*hZeo2~tSnQO|DD`1=!@pz$hDrpR{NJ9{ZkM#H2~Q^P z$0t$B?Z(|k8O#6MKmRt;F2x5`iY&VQe!IUv1^RaT?M^)w_gCH{AQ?CbrKsm!9v4+d zx%=(s?1h&#OoM}YI3)jd`Xz>-*kK#_RTdgKgsIbrd%Q{kzDuBHS zP?J$uvIYxv7B(x>mSeR6e%jiSkqsIV`UDV7s$@1 zXmM$%G|YQ?VPPq@du~n zOjfwKnh8{yZr8^bm6+#bhh}|Kvc#S2%M2l_!fGC#+-qbL5Hx9O6uTrG6ue{fZsR^b zBn$K(va!Fw9a5QX>>3OHvdpvknFufw#?uhlj7l=_6`b zkm47%=&F>z&W3`Vm9KYy(f42f^4k?CT8Fc&K%WB32(OFZT35sa65I9NpQCq2cX4u3 z@87rjj*RT|`6*e(DSo-xue>pTt)j zqnvA}KBYvK;7Eed)&58w2zIX?63Wzns801*fjpb_uTC>P{Zo{G99GLNCIBUw0j>V9 z=4}T2w&ZvQ{J!b8?@vGe{;y3FOJ8RHyoSzc%zTE<HW{O2+9 zpZ&}9xLeB!ejJq5dJX7~#I?yD*FL*haC2-fJ7_z9=Jjv>pGiQ3W zudwtAGsAV4eDCQaCmLGvP1yZ5or=nt&pAIOuv|_Vfq8y?Ap0iu&W|_aaGx|PHp;sA z^Z`W)UH4OhTj38*iN+)ovMg5Hmn} ztr-Fg8{`Gm6i7;tBOVZsC}I$EEU`jH0!j%$4r+juAqWBkHN9evW%pvvk8`(-KR)11 z0T;qZBY=m0*kFW#a>!FEu}2DN;hB=iY331UKwIDpwbTNmEfzvy)!COtStl6b)@e<= z5E?s!nf?FU`?e*=aU{!m?ysQLOGMfzqH!Y#X4{Tgb#?Y`T2*(|W>)X)L$2lE8lg#r zs1c>iiXI!Y`H1<#`I0q&7fB>YK@@eVtcZuM&Il5JaDadVe*Cz5!T{t*;S`t{GXQOw zCjf1DabhS^HdS*()$#5p?=-VS5QHwh8*-t?YSk~|J?l!(c3?jpTaJ?NKEHyi>^@6LbkqLkw>6z%vUB)|1!;2mBT5@ ztqkSYvN7l@7d@Is^Yv_2vc24Vx>f3uh1zw>rOejz)nR!VH|>#}G){Opz%hk@xspD~r#Z_&Oo+7ecMS`-0_1f@R#MRSuZt0SIWdqN@d-u0LRdQ6@ zZ?{J3ZdTFe-?mbUHY(y)@AZ|Lt>?M33~SYcuNrIBgRdlOslE%vvUA0Wil~Zzy`_*m z2S`<*b>pe*1ba4*grh!N{@MMU0H1hUS;9I*+~k!C6mTnV*wNy3?e!jc_vy#bVQgTK zqeszF1bfBzDAWtc?bl*^h3`5NE;WLN-s@ZI{wkUK+QBLeefa5YPbM63aSBs~B^EY8g#b9w zFfqm`B^d-pYK&teh@p^jL?94GB2FP4j|}2HPmU&nv;n}w(s6eHbt3>_$6#RL@Yg9| zt8oykvB9cdn5lsgb-+VjTxc&O)Pn|jVW18KC>;C=M19V|?Ae2V>YO_F`=O}Kfnd!@ zRFz;z$qe$0>n@S7=R2SFf#WiRkQ>yUkY`v=UV{c~j{hROp_U`S^?#sRX>zj9f*3gn#t!=*SC;nUvZbOQZ zmIm#BrKw(8K$%Cg>HJf)nifgD^K7S9K`B=$v8_{(tykJ##Pk3r(7x)Y#j>^klP#xz z=Ve;_auFZOnz72n(j==Q9Utw0hg4M!kgCsw?|c0wMAp8>{V(2}k^He;?%t<$u8Ei7 z7qGD`dxUL&t^89nHT(iM7GICRK^yACYytlmwikHcjQ4Nii->+rBHm7Wxa6~ z;pWl%_dk}qGoL=p@22y@5C7x0Yn$(J`+G-KFQxbXHecDx;6Fw`egEB?-Fw-qDy>@C zborq+Wyaixs@maE`JUQ5u&|zg6|JpFX%j-al2doK@w@ zT`gUI9=9@|<#bsvu}i$6yd6gGr()*rt)`Z%Hl(*S#Cqw5QT=7NJj$z`B$)PITsB^2 zAS!O{d88MQ`pMqUt@mpAU`PQkvCHde^I6#1W45r?+!e&Qd0}acz|!#Up!+a= zcQkv#-}yehHjF@FITF}#ENoJZIEf7+94AbF5P)KcDWM_(6fn*)q#ST&5Kb_YSla)l z0A7wj(T7P4r%-rX4Vg$zga(u`A&9N1%>|DY#0fD#rxIWRY=#EFIe-9YB2^-YqOnpC z(!>zTFGr&2o5;~=6yDAT5GioVsSp}Usji z36)Zin1KYU-ZB!1#R;YY3IgJU8AC08NKnV|D935xjq#C<@p%iO2*x=$2Eho$K44-j)T-{l)=>k{HRb&9ld4%!y1Ggh1g~fP}@d(rF?%K>$O}U<@S$ z2BxVtZ zzW@3C!E3%$`$5_GDTanHMB`XsmPk$@B80?=L7dW5#0m`8}Dr#u9-b)J$-UDMY%@FPX*+3Z8-l6KP@t z4ImJKn5BZ4SSv-SNqC&HglWN3u7MOhO^wAh5}2gvcz($a?S8a>U-EF1b(r6>D-^uj zp&9I!n}ivqN7$p?mSbRO^hiO@hgpUfs#kDUd+>s$;1ybd*J1!(lkImFv+wLipWo4S z0i&;T`GiU|p3xWLr9H9H*V1jF5{zv0bu80^y++5IHyzYHq!h#;i8*9AfhG|tP7vjS zaV}%Y6-jYy2%}VgFcK3bV;T!hAtH!l5|5operki|=6v?C@E?AK;iP>dyhJ>yU!Kzi zlC%8cB4viQZF6R8UC+aF;Y9%5g7ucE_AsdnmJR5#WLzW+Ss+nT@LYx%vC(-pia zdc7?{qfh#IYbVsk=G{LCf(XUSUGFGYsYbWlYN=%rF|~4f#;R7+r;bNE@pgX zvgOl%@A+c!$~IzWWp4m~sjQ~+hme^4?MLO#cZt?%jtYoe#rZN=kxX;Y|Q`*+qYb2{*(LTxxLOE zVw^aATBsP8_DXk%&Kr+n193pwD%b5SI?%=687)R+8Vz2i+Y>OWygWp?y5OcYs?K)<;IPm!wdmUZOtZKJ6 zlj^PNpm%`5ee~C?sPVJdO5s;qzt4_fJkO%rQwDmw8CD3S$hx|@lo|>O3?wYZ91Fr? z0U#x5N+8F8A%QtewH8TAp+qu`FX-)m?gd%KaCdiX@&o+cKuXFIq*Fl&CI%v55|Ln% z5Xlk(Afi}EC5iQDA_9O)k+C6{))|fsP?z&}_fGCXL9?}6yKCVd?#%WJH^iGQ6}5@V zMT!)Gi~toA3AIMbAPA{of|`^gZt3&}D`6x~xdenE2@KP*>GftK1_-hh?g5s62HV{7 zF~JGO36%y?s1w0r1tk@NVQRhSl%}bPnTdIl5Hp@PyXz!8+MRuce(d4c(iq6jJ|rdt zgc(0V))x(ZfFJzg=IG@u(d#opuiXB;Ce!n*hG(BM@@$4@=NCP{*%=g3d}_0EzyJR9 zW@nebd<3KO#oj#B(>{W2)p6s0R|z#VHIgA>2*X6hk^#(xkP;-oAYe2}Qz{K7iNq;k z0K`ypf=q1W=tbM7Py9iDjSlwKxGv&W-;&}QvNPZ2uUc-S(p^-ycbwbk^|rgHZu1bg zQJwp_@*7qDqRK%upcr}{-A+w?m7jE%L$?T0=?8js5pVvFRjKIQ=hlyZZr6EL5WRfB zI@Fy{J6lz8_m$`IV%~eZ>JQK7Tx^zyB_C3Qz4X{G^@A<1{T%7Ja?oES`HIi7hYE=yVeB5f>HhS4UoIcNnRLuiUjv(mZ+hn`ppEA(ImRMw{J}m{nAY>mHC8?K zYG{%8-!NgLJU*)O0Ue}`^6!U`HhvA_2aRi~Tp**?E(#O*Col zh*zOxg+CQTjkYVlz25xmxzr<;Id$inF4q2Be~F&-ldv@$%G*z92{})u`t6I?`MD6= zou8cnvEBK_c@Nvd?3@iAkZJeUFfO-YTaFzK-yuiyxICRSt#hj_k>~h7xjfJNrm5>< zaXQJ)&P1tl?^_{%s`JpFfWPo9*H_Ivl6t;c@|iv5l(yN#ip${LolW4SWj0rJN`D(X zR#A>g?&+_Qh90Pi5 z8YBU|HJA0UK3li${+>M>{osCmwn9*^&qoir)7I$ke+Yzsy4!I;b_w5^JfNp0Bj|;~ zawLUiYkKdS+w|x(^6l1JOLN>le4FniJv@gEWH0{&rm@DHNd}aFC%s3&` zNUF6$3Lz#DOcKUorD7>%k|uGIB5*-+PaEJJh0?RtY*6(8Lm0${rVP@Q065}YJS%BTQ@3aL_msxaal%HFj9A|`Q~B!WCxBwk1IC;KjyV$`8)Q{J$tiflY}%nDi*^#Zo#n(WW~i!}SH?%J9xeOVbvf5s*-n@1`CKo{`^h8EKbGSZSvJ#r z-kvsB4tjf<-a5O?^9On6*ZymZ!Q}Wx)6K9p#H0J@M`H?q%2Gk$ z6k2juXK=loyPAb|R_gn48K>o1-K1lz@n-wNl22{I!EK(qO(C&x#Axn@U>micWS)I- zoOpW^U$3_2h_6;$KDy0uz(l>*d?_D)ZwaN!)mz*tMOfF2Tr9J^s#f(nQqw0rcUbu* zs-SMc-qKytxB3@VnZrpWAJ_ALPapH?-*xr>?Tu{47n^p^zb}!Lvz2&?~9?V z_@|PRU6X}x6UwY-kuSMh@4Jmn=MQCXHn8B;y(6oYfqd2Ysw9=3Km#}E&3EJV#&)aA zX2z^^QW4F^=bs#jxXZ$g`V^2hj0F)ypg+a-$74) zq2|9(^Dj-!_fhie7H_vNfs^+2Z?d^%P0E9EvVHTJY^&nphB9g2O(vcjM*Gd`?4S5f z{a;r^Knrd;dsskQf^)}z2DBx(bbvrxB9F!7bE0_wgi)F2ZNYYouO5+Fu*8Yw^4oE} z0(PMuCziBn9kyj`!zm{gX~)oP%hLd9&LPZ>`Pv~-1OGX(SWTnYrzD!d(uqZCSlHbX zwE?S>@5Wtoy+^b*5_WRgwypJE$#%i96U)^C5_&}QKzFCs`xgp-JK9LHFZO8b$$Ykc zC~lSo)xx!A5si|hzlDQjU*^utaB=FvVM#@Rfwk#)BxlyH``f!8BK{<%59@55cSI?* zXEmG&;_;IO#VhUkk|DlzU)Oshmx8V|LwomoP7aZwbv-#!khT}*FloB(B1enW>Dmd9 zuYC_0CXUBF6wrHr!yDxwBN?v;)u?hUa9~I+82po{d+uJ0ll~G3deQsah3&b zjpnW3NGUuHw;(Zg580!IXt>(~MDQH-M@r%I`vtAagZW>6G4@6&c0vS0`#ep&;wDzn zwdkzC-Tuje?1+wPuvsq<~g}e&`a}>I#m~c&7~gyR^PgrUA5W0dfi8UvL<6es`~ z1Stb5A&8|md^y1}#tIrN2-KJvV{n?pDM^$>TE=+1AY;#k`8N`2Jdl8U6!&%<+U+35 z?crqGfjrwm6x*ZNwZ{=_kKxoFNvA!I8aoy%_H=~U5xB62(_oKbzz!w9j>UT&kMcSW z+jUHTqU!-<&qFzn9=6+8n}6W!9G;8Pcdm-LbB&~(E9C3^DyTZw#nQPJg3k4EbFPb) zbCryoD<$JxArI$jDL7ZczUj_jGBSB3D3{4;$SeD^nw*ln;y?cnl3^V3O3%@MpfsbB zS3*wx5cx(TuXs-Rklx22uQX5f;C{y-uXs;?@em0{BCmK(?U3HbA+PkD(qUU;6!J>n zsT?N82(*#zQ#eF~vB)dEr*7D)9D}?PlEG+f^2!mpjEbYb?a+8`&k&ZSBhOl56WF*Vb<%*H*di56_lVZJ1o= z`JjAF^^VhdesDq10lAhMBkgn2Rgd2Ek2Ro)`jwmhQHL~Dy|R-*;Rmg(0$A9(pe}XE zY-+T8mNQp2`{{|#)tybe5oPO@ot$YNt>+?Je><)=pR0{3nLatqq*a-_!=;*Vi+h>P zW`fI4HdV|bkA!x~UTmprox4OCwzzgAw8@sbZtuw^tFV7mnXVJ@)Tv{>Oy{a7oti&p z%T<+p#6GgNgN#;Fz07Z_6av-gicpXI$u6ag(u* zwlaX-wdV_BpRNuHVRzx{uCWi_e0iM8f5%Ai`P~zjBFjE~_+}H#UL@CBOywt+w9n@o zY|L=DW3XwC28Fcuea{e(wbkj~VD|pKKd8^PK@!+&dkYWm-DA~+O3~V~M@Z2&jrK_~ z0M2jq9uSD?KLH2zHhu`I3oCUEeNCaIyAyZc-X=!}!TEdeY=u+x)L!nx0_|c>e=xyX zLBk;eGNlM1!ef?76C=S3$gP~;z;pzt!+2) z;YzLN+nZ?82P(DSZ*7f9ACj~ce~s2cP9_^rWKzK$C$3_-`$57&%$QbGLkw-OEY~dI z2xG*x0Zbw2s!eL6i4-`E0nt#|A0r8*h{gm-(idW;5uhB(7&1Z;h8)L8i9|_Aj7ec) zfQA}^*eK0a%ou^#NGvH3DIkb&GG2&T^ECX8#Fq^KosYqrkAa$p!N%htf5zj0#Y523 zLx9tLnCVv=ZgO4}>T&?o^35s-JI>waG4;s_Sm@0exCODxJ-Nd zg!VcHF4Mhdf~6P%m+9Upd!-lwmkHrmj)%(}!LA&JRGbs5I3HT!H*PS*B1wRRTvA|S zArQw@DZ>nfSOXeMftZM6f0@QfDhy;8D1u|nIblFiHZr?R&er)#FTX-|nQvsHvdb)5 z`KTi^)7tt(SA3Q|ypFzK3%#6c3lEkOK_S1~7Ot!3C`L=e_y&Y<9@ysuIq;xKqQ?VKPg3IaZdE&TDD+`mZT&vdgQjKZp zgqUa6t8-UAQ;`p%%(!gBueWG!HFIF8%{q5=jY=QBYcX4|@~P50mx2aY3KYt&6TMppPnhJKs@Ol2lQdBbM60+m4q?YLE z*$pw8O+V`o-#7wCWC^E*bf4`fo$F%KEwk57+$5S?NO0qflG)<99D7}9=suXWxVyf8 z8?43qdTrJXx|uIIAeJ~((v2*;XvLrN!fgES|NO6wV6Mp5f4{Bu^0|Omx!j1iT@7ie zYhsIdcFSb_wBazk@EWg{*I4P@gK3G?mKs<*wBAsqjy}8!WvP=t)_Q-q47KVxIk~bi z-F*mE_2^CCgaS`Vv~n>-@e*J z`QvoqE+V!7e_Zxu9{o%CHU7oDTd+JgMdQ@dbY9mzbZ5V%ekwh;3S_!^ELy*_w+pLW zrC!b}-Fh+pqjTGps(EE;BPDO`ak}`pdR{o3Q`_T`nOm!{JQ{DtrflwTe}(5+q_mn!r-1EuFO_~?=!!-0 zwX>Nkrg%8nb3D?etsH8HP#sDxp_koHJCziRrk~5&gArdWW}6trvipm%I5!5wuHKup zG~UFcxHh}nqfcJl7qi1%G>5ehmO6J8Lbqx|R!brOG+k`Os%EbKI>n~4TVktf;~+L^ z0C)86f38?Q&M4RkOR@2RtGnsEUKoFf^e+qh%~la#F8TA;*RbZsP%^4h5|xXjt`=H3 zTC{3>EO#qCHJ2TtZZf-5Sp9_d@0?!ZHaUBXDY$EAoSksn=>FV<+eY`7Cfqi}X9qmoD)((FmA)p5H%r9`{;!Jc*7ys@8Bf2fV77Ck9-x=n$T%GSK5_RN{b!Wf4b zybVkg^|9w!G@UE`i$zPy+vn@1=sS)ap=Viv#mqEUd2!(^$-wqFm@PF|&jpxf;ec6| zeOfPEf$I$%wga#G^-u`B-UMo*9&%;Bx*6140Hw2Es|@P3ZG#8)dUzV2uDaOhPatC$W(*k1SHK00>jREJDmnrfjz3>ZWJ zBW18w3M)jUhyeqJD$ebHsNnzzg9wmR#snsc5h)W1FGs@mPTgJ-_O?SMl#<={FnFn_ zn-^LtXySvfThF%(qjVzIn|C{v#H0_f-Wpu@)}Qp_)E*f;TY9nwo!+!kVXkcgf9Ggy zb04|f&&}LRIp1A=VU%+l=3oeBm=Y`y0Tc@$5`!cn3@HQ?3S+@#f(?dHVr^0;I3OfR z6G179`zYrLz>pwqkW$zXDltb%LOCQchKh?ABtSq8(ikU6Dr{ejE3Jq&7!iSz@hIob zo6T>8az4NxINTL@j2G}Y2jG#uf4^aVyyIPX<9P4JbKH&Tvm4HT_qlcUQ{qpH?LwEZq+T)|UA;j?U(cSj8 z4(;`Lbhm3S@0DOgbhmp4@BijwqPu;YHhextL3ew%YG*9YXc%obM0 'name') != 'string' + OR (v_guard ->> 'name') !~ '^[a-z][a-z0-9_]*$' THEN + RETURN false; + END IF; + END IF; + IF COALESCE(v_guard ->> 'name', '') = ANY(v_guard_names) THEN + RETURN false; + END IF; + v_guard_names := v_guard_names || COALESCE(v_guard ->> 'name', ''); + IF NOT metaschema_private.is_valid_step_up(jsonb_build_object(v_key, v_guard - 'name')) THEN + RETURN false; + END IF; + END LOOP; + CONTINUE; + END IF; + IF jsonb_typeof(v_value) = 'boolean' THEN IF v_value = 'false'::jsonb THEN RETURN false; @@ -265,7 +340,7 @@ BEGIN END IF; FOR v_obj_key IN SELECT key FROM jsonb_each(v_value) LOOP - IF v_obj_key NOT IN ('type', 'min_age', 'min_age_lookup', 'conditions') THEN + IF v_obj_key NOT IN ('type', 'min_age', 'min_age_lookup', 'min_age_anchor', 'min_age_unless', 'allow_system', 'conditions', 'related_conditions') THEN RETURN false; END IF; END LOOP; @@ -331,12 +406,103 @@ BEGIN END; END IF; + v_min_age_anchor := v_value -> 'min_age_anchor'; + IF v_min_age_anchor IS NOT NULL THEN + -- an anchor says where the window is measured from, so it + -- needs a window, and INSERT has no window at all + IF v_key = 'INSERT' OR v_min_age IS NULL THEN + RETURN false; + END IF; + + -- the two are alternative sources for the same window + IF v_min_age_lookup IS NOT NULL THEN + RETURN false; + END IF; + + IF jsonb_typeof(v_min_age_anchor) != 'object' THEN + RETURN false; + END IF; + + FOR v_anchor_key IN SELECT key FROM jsonb_each(v_min_age_anchor) LOOP + IF v_anchor_key NOT IN ('table_id', 'fk_field', 'timestamp_field') THEN + RETURN false; + END IF; + END LOOP; + + IF jsonb_typeof(v_min_age_anchor -> 'table_id') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_min_age_anchor -> 'fk_field') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_min_age_anchor -> 'timestamp_field') IS DISTINCT FROM 'string' THEN + RETURN false; + END IF; + + BEGIN + v_anchor_table_id := (v_min_age_anchor ->> 'table_id')::uuid; + EXCEPTION WHEN OTHERS THEN + RETURN false; + END; + END IF; + + v_min_age_unless := v_value -> 'min_age_unless'; + IF v_min_age_unless IS NOT NULL THEN + -- forfeiting a grace needs a grace to forfeit, and only a + -- static window can be forfeited + IF v_key = 'INSERT' OR v_min_age IS NULL + OR v_min_age_lookup IS NOT NULL OR v_min_age_anchor IS NOT NULL THEN + RETURN false; + END IF; + + IF NOT metaschema_private.is_valid_step_up_conditions(v_min_age_unless) THEN + RETURN false; + END IF; + END IF; + + v_allow_system := v_value -> 'allow_system'; + IF v_allow_system IS NOT NULL THEN + IF jsonb_typeof(v_allow_system) != 'boolean' THEN + RETURN false; + END IF; + END IF; + v_conditions := v_value -> 'conditions'; IF v_conditions IS NOT NULL THEN IF NOT metaschema_private.is_valid_step_up_conditions(v_conditions) THEN RETURN false; END IF; END IF; + + v_related_conditions := v_value -> 'related_conditions'; + IF v_related_conditions IS NOT NULL THEN + -- the body belongs to one mechanism: a lookup or anchored + -- window already occupies it + IF v_min_age_lookup IS NOT NULL OR v_min_age_anchor IS NOT NULL THEN + RETURN false; + END IF; + + IF jsonb_typeof(v_related_conditions) != 'object' THEN + RETURN false; + END IF; + + FOR v_related_key IN SELECT key FROM jsonb_each(v_related_conditions) LOOP + IF v_related_key NOT IN ('table_id', 'fk_field', 'conditions') THEN + RETURN false; + END IF; + END LOOP; + + IF jsonb_typeof(v_related_conditions -> 'table_id') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_related_conditions -> 'fk_field') IS DISTINCT FROM 'string' THEN + RETURN false; + END IF; + + BEGIN + v_related_table_id := (v_related_conditions ->> 'table_id')::uuid; + EXCEPTION WHEN OTHERS THEN + RETURN false; + END; + + IF NOT metaschema_private.is_valid_step_up_conditions(v_related_conditions -> 'conditions') THEN + RETURN false; + END IF; + END IF; ELSE RETURN false; END IF; diff --git a/packages/metaschema-schema/deploy/schemas/metaschema_public/tables/index/table.sql b/packages/metaschema-schema/deploy/schemas/metaschema_public/tables/index/table.sql index 671bf9567..37f31cb78 100644 --- a/packages/metaschema-schema/deploy/schemas/metaschema_public/tables/index/table.sql +++ b/packages/metaschema-schema/deploy/schemas/metaschema_public/tables/index/table.sql @@ -21,6 +21,9 @@ CREATE TABLE metaschema_public.index ( index_params jsonb, where_clause jsonb, is_unique boolean NOT NULL default false, + -- UNIQUE ... NULLS NOT DISTINCT: NULL key values collide, so a nullable + -- attribution column can be part of an upsert's conflict target. + nulls_not_distinct boolean NOT NULL default false, options jsonb, op_classes text[], diff --git a/packages/metaschema-schema/sql/metaschema-schema--0.44.2.bundle.tar.gz b/packages/metaschema-schema/sql/metaschema-schema--0.44.2.bundle.tar.gz index 5b41b4b1d1666c3cc1dcc6a2bd0c6872ee71b548..f5029d4e3455816ceb77d2d2cf2d61a17efd67a2 100644 GIT binary patch delta 35703 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 'name') != 'string' + OR (v_guard ->> 'name') !~ '^[a-z][a-z0-9_]*$' THEN + RETURN false; + END IF; + END IF; + IF COALESCE(v_guard ->> 'name', '') = ANY(v_guard_names) THEN + RETURN false; + END IF; + v_guard_names := v_guard_names || COALESCE(v_guard ->> 'name', ''); + IF NOT metaschema_private.is_valid_step_up(jsonb_build_object(v_key, v_guard - 'name')) THEN + RETURN false; + END IF; + END LOOP; + CONTINUE; + END IF; + IF jsonb_typeof(v_value) = 'boolean' THEN IF v_value = 'false'::jsonb THEN RETURN false; @@ -244,7 +293,7 @@ BEGIN END IF; FOR v_obj_key IN SELECT key FROM jsonb_each(v_value) LOOP - IF v_obj_key NOT IN ('type', 'min_age', 'min_age_lookup', 'conditions') THEN + IF v_obj_key NOT IN ('type', 'min_age', 'min_age_lookup', 'min_age_anchor', 'min_age_unless', 'allow_system', 'conditions', 'related_conditions') THEN RETURN false; END IF; END LOOP; @@ -310,12 +359,103 @@ BEGIN END; END IF; + v_min_age_anchor := v_value -> 'min_age_anchor'; + IF v_min_age_anchor IS NOT NULL THEN + -- an anchor says where the window is measured from, so it + -- needs a window, and INSERT has no window at all + IF v_key = 'INSERT' OR v_min_age IS NULL THEN + RETURN false; + END IF; + + -- the two are alternative sources for the same window + IF v_min_age_lookup IS NOT NULL THEN + RETURN false; + END IF; + + IF jsonb_typeof(v_min_age_anchor) != 'object' THEN + RETURN false; + END IF; + + FOR v_anchor_key IN SELECT key FROM jsonb_each(v_min_age_anchor) LOOP + IF v_anchor_key NOT IN ('table_id', 'fk_field', 'timestamp_field') THEN + RETURN false; + END IF; + END LOOP; + + IF jsonb_typeof(v_min_age_anchor -> 'table_id') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_min_age_anchor -> 'fk_field') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_min_age_anchor -> 'timestamp_field') IS DISTINCT FROM 'string' THEN + RETURN false; + END IF; + + BEGIN + v_anchor_table_id := (v_min_age_anchor ->> 'table_id')::uuid; + EXCEPTION WHEN OTHERS THEN + RETURN false; + END; + END IF; + + v_min_age_unless := v_value -> 'min_age_unless'; + IF v_min_age_unless IS NOT NULL THEN + -- forfeiting a grace needs a grace to forfeit, and only a + -- static window can be forfeited + IF v_key = 'INSERT' OR v_min_age IS NULL + OR v_min_age_lookup IS NOT NULL OR v_min_age_anchor IS NOT NULL THEN + RETURN false; + END IF; + + IF NOT metaschema_private.is_valid_step_up_conditions(v_min_age_unless) THEN + RETURN false; + END IF; + END IF; + + v_allow_system := v_value -> 'allow_system'; + IF v_allow_system IS NOT NULL THEN + IF jsonb_typeof(v_allow_system) != 'boolean' THEN + RETURN false; + END IF; + END IF; + v_conditions := v_value -> 'conditions'; IF v_conditions IS NOT NULL THEN IF NOT metaschema_private.is_valid_step_up_conditions(v_conditions) THEN RETURN false; END IF; END IF; + + v_related_conditions := v_value -> 'related_conditions'; + IF v_related_conditions IS NOT NULL THEN + -- the body belongs to one mechanism: a lookup or anchored + -- window already occupies it + IF v_min_age_lookup IS NOT NULL OR v_min_age_anchor IS NOT NULL THEN + RETURN false; + END IF; + + IF jsonb_typeof(v_related_conditions) != 'object' THEN + RETURN false; + END IF; + + FOR v_related_key IN SELECT key FROM jsonb_each(v_related_conditions) LOOP + IF v_related_key NOT IN ('table_id', 'fk_field', 'conditions') THEN + RETURN false; + END IF; + END LOOP; + + IF jsonb_typeof(v_related_conditions -> 'table_id') IS DISTINCT FROM 'string' + OR jsonb_typeof(v_related_conditions -> 'fk_field') IS DISTINCT FROM 'string' THEN + RETURN false; + END IF; + + BEGIN + v_related_table_id := (v_related_conditions ->> 'table_id')::uuid; + EXCEPTION WHEN OTHERS THEN + RETURN false; + END; + + IF NOT metaschema_private.is_valid_step_up_conditions(v_related_conditions -> 'conditions') THEN + RETURN false; + END IF; + END IF; ELSE RETURN false; END IF; @@ -637,6 +777,7 @@ CREATE TABLE metaschema_public.index ( index_params jsonb, where_clause jsonb, is_unique boolean NOT NULL DEFAULT false, + nulls_not_distinct boolean NOT NULL DEFAULT false, options jsonb, op_classes text[], smart_tags jsonb, diff --git a/packages/object-store/__tests__/objects/immutable-objects.test.ts b/packages/object-store/__tests__/objects/immutable-objects.test.ts new file mode 100644 index 000000000..fca706a5c --- /dev/null +++ b/packages/object-store/__tests__/objects/immutable-objects.test.ts @@ -0,0 +1,72 @@ +jest.setTimeout(30000); + +import { getConnections, PgTestClient } from 'pgsql-test'; + +let pg: PgTestClient; +let teardown: () => Promise; + +const scope_id = 'd0f7ab73-356f-4aac-b9cb-d1a4274906d6'; + +const insertObject = async (): Promise => { + const [row] = await pg.any( + `INSERT INTO object_store_public.object (scope_id, data) + VALUES ($1, $2) + RETURNING id`, + [scope_id, { name: 'deletable' }] + ); + return row.id; +}; + +const countObject = async (id: string): Promise => { + const [row] = await pg.any( + `SELECT count(*)::int AS n FROM object_store_public.object o WHERE o.id = $1 AND o.scope_id = $2`, + [id, scope_id] + ); + return row.n; +}; + +describe('immutable objects', () => { + beforeAll(async () => { + ({ pg, teardown } = await getConnections()); + }); + + afterAll(async () => { + await teardown(); + }); + + beforeEach(async () => { + await pg.beforeEach(); + }); + + afterEach(async () => { + await pg.afterEach(); + }); + + it('deletes an unfrozen object', async () => { + const id = await insertObject(); + + await pg.any(`DELETE FROM object_store_public.object o WHERE o.id = $1 AND o.scope_id = $2`, [id, scope_id]); + + // The BEFORE DELETE trigger has to return OLD: returning NEW (NULL for a + // delete) cancelled the delete silently and left the row in place. + expect(await countObject(id)).toBe(0); + }); + + it('refuses to delete a frozen object', async () => { + const id = await insertObject(); + await pg.any(`UPDATE object_store_public.object o SET frzn = true WHERE o.id = $1 AND o.scope_id = $2`, [ + id, + scope_id + ]); + + // The raise aborts the surrounding test transaction, so the delete runs + // inside a savepoint to keep the row count assertion runnable. + await pg.any('SAVEPOINT frozen_delete'); + await expect( + pg.any(`DELETE FROM object_store_public.object o WHERE o.id = $1 AND o.scope_id = $2`, [id, scope_id]) + ).rejects.toThrow(/immutable record/); + await pg.any('ROLLBACK TO SAVEPOINT frozen_delete'); + + expect(await countObject(id)).toBe(1); + }); +}); diff --git a/packages/utils/deploy/schemas/utils/procedures/default_self_reference.sql b/packages/utils/deploy/schemas/utils/procedures/default_self_reference.sql new file mode 100644 index 000000000..83af9592b --- /dev/null +++ b/packages/utils/deploy/schemas/utils/procedures/default_self_reference.sql @@ -0,0 +1,27 @@ +-- Deploy schemas/utils/procedures/default_self_reference to pg + +-- requires: schemas/utils/schema + +BEGIN; + +-- BEFORE INSERT trigger function that defaults a self-referencing column to +-- the row's own id when the insert leaves it NULL. Lets a tree table keep the +-- column NOT NULL while callers only supply it for non-root rows. +-- +-- TG_ARGV[0] : name of the column to default to NEW.id +CREATE FUNCTION utils.default_self_reference() + RETURNS TRIGGER +AS $$ +DECLARE + column_name text := TG_ARGV[0]; +BEGIN + IF (to_jsonb(NEW) ->> column_name) IS NULL THEN + NEW := jsonb_populate_record(NEW, jsonb_build_object(column_name, NEW.id)); + END IF; + + RETURN NEW; +END; +$$ +LANGUAGE 'plpgsql'; + +COMMIT; diff --git a/packages/utils/pgpm.plan b/packages/utils/pgpm.plan index 5ff949755..4eeda54f6 100644 --- a/packages/utils/pgpm.plan +++ b/packages/utils/pgpm.plan @@ -7,3 +7,4 @@ schemas/utils/procedures/mask_pad [schemas/utils/schema] 2017-08-11T08:11:51Z sk schemas/utils/procedures/throw [schemas/utils/schema] 2017-08-11T08:11:51Z skitch # add schemas/utils/procedures/throw schemas/utils/procedures/ensure_singleton [schemas/utils/schema] 2021-04-25T11:50:15Z Dan Lynch # add schemas/utils/procedures/ensure_singleton schemas/utils/procedures/enforce_identity_providers_quota [schemas/utils/schema] 2026-04-19T00:00:00Z devin # add schemas/utils/procedures/enforce_identity_providers_quota +schemas/utils/procedures/default_self_reference [schemas/utils/schema] 2026-09-04T07:24:31Z devin # add schemas/utils/procedures/default_self_reference diff --git a/packages/utils/revert/schemas/utils/procedures/default_self_reference.sql b/packages/utils/revert/schemas/utils/procedures/default_self_reference.sql new file mode 100644 index 000000000..ed29b4314 --- /dev/null +++ b/packages/utils/revert/schemas/utils/procedures/default_self_reference.sql @@ -0,0 +1,7 @@ +-- Revert schemas/utils/procedures/default_self_reference from pg + +BEGIN; + +DROP FUNCTION utils.default_self_reference(); + +COMMIT; diff --git a/packages/utils/sql/pgpm-utils--0.44.0.bundle.tar.gz b/packages/utils/sql/pgpm-utils--0.44.0.bundle.tar.gz index 5403bed97a88c2d869791ecf365412979afc86b0..fcf9ae96ba5e2396d30b448a71e5da371ad53817 100644 GIT binary patch delta 3639 zcmV-74#@GR8L}OJABzY8000000t4+^`)}LEvhL6MD;7QtYy+0N?}u{|)Ug>?xQ?7F zE6usB17RPtHd~ogNXkiY(Et5{q~w<*TS*!tD8dAgypNgLkFzu1J~TcZpLg6O3nSS6 zqs+4(zQThs#**{q6JvbqlL;*3tZZ6N2$t*z{KEr0ld`gZ#Si#FbbW)*e;*;Vc5bsY zLRqctp!#ow)?!|q+v-;+$~4c`cF-DG+iGhvdk%HMxOSXLm5$0;jW57f5Z530 zy2T&mPd+c;vdNjvPGK*fWVJ3iEe$Xp8&+sqofY}}71}{oP6`;7X?8k-D$iEx67#~tFb$AZY4ve9 zF7k^sKv53gP4a4$fdq(lGOC6pjN-6>2nA#w)|!5AXV9gm?R#6pN*ON{jm8CsgT_`k zO^NqH2amnij%mTL5}ZNcf@-5M*4z;(43*y2a{sD-rLK)fwt3}`%a2)QKXfiyFL+9} z@isom9*>Ls5AfB~D-Sry9#4w&Mgc-6*`gPSC?=|db%&4v);omk2=W^$|4b`?hW_1t z{wy5!#7F=q=`-{%WJ5rUgxyxLzzfjti#opjo6K0C@D7_AcY82{8f|x2bK9wx8%9Y7 z^9~h%gW4**L&R@r-)89WV^-T1M)l{<`!*{(FQ32auzM}Lt@%zP@190?7%gj~i5XzL z)BOJp1-M8v^zY{5XP=*DX_e;LwoO;C_--@q7{TIMe7D`EgZTif9m;nY`4YPqD?e!i z*qYC?s>nyzqJBDp-dud&p0%3=@jR=b3E*pg|3X*I5PYa0t0Top=JWG&$SU*{tuJb@ zev-{Bn+BJa=XscnU^uqbS)Fa_x*tcW3u*Dwm9+Jftbliuw1BcvGa8?k z??ziqg9|9q__1j*%Dt_u8`V;x9hGpBm6I_PlM;%nB80BOUz?-K%S`m&S)iU}zPs~( zQh+gJ0WzPqGTvUV8RZ`@(QeBAOtVnSoYrk!)s*k*7qiysp#7$9VE{x`j>e}aS^e*M za?tHPslV;@lifjrj`w~^Uhbl%eN%qW-|Y?1>*L*n1ReEm)T6->8c*CP^-as&!$HzV z`^k&l*M|f2s^9&!dzc&~$EbU=+e~JE@}Fey^`MdZ;&pFt&^_uMpJX>>?j5~+*&RGN z$*zy`Du3B%FqMHw3XaPV1jQ;aPo)XUdCrt#R)8f^Yw*fTtD~k&TCbeYSlP9y(7!J6 zF5m)+YBAo^x`lZ6o4Un#$09$UB7TMUe*fszO*Hp*kN0->lU2qYonnr$sKGN`9%7U( zIN?1I7BncXI2XndB0|(gNQH?}Ah>5-Q63{x^W$#4fAP4dbqmM+Yg4y)+$hiHhJBnI zCVK;9%Myxe*f!i)Zzt!@P64O&gek|?!)DXIe{^{Ge0T4EmXj_7DM^`!;+kw{nE>rP z1|mHeT5};1FrhjKE=ABLjvxJS# zh2Yt1X)3E-A&_?@#>Hw6WH@_r3G=l83I-4roM9*g02EQbKy;*C7%84thBF#=` zmc8g7y+j+gI(Hhw>)stiHaD-jBlO~^Kb3r0oE#n}S4~D^8>WJ0BW^}})x5XAd6Ly* zI^69Yysl@z$gX@xFq@iEO#KM~n$J- z<&?c>E-%mD%Ux@ug=wpHBfi!6P@T{g^}6iRB7d{Py;Q(6p&)21y^`E(#VNstN5imm zS`o%17K{cgIaW?P>;V|2ToUIrS2%uUDzFI8`*}f}WWHVuu1uN19T2so;Zn;>QR@Qz-R^OMlK<=_uNnpGkI}~C&GjubI2i8s4}Sd}ziqw`cAp<6!`|-8 zdKKLG4eGvlvOvMJRTONYyLDVuk+<{u=0pyD=^wr64U>NVsDEYt4U^h|DQrjL}M%2-wp|1EUtppqK~!aFnLS;M4ic z6pYU!FD^=fr3P#xA>fSl5^$jPe=e67T5#K0E?dp5tZ zK8;JhK26^sn=K`LOuE~TY4^!>4{Ns$Z@Jv&llG7nU2Y?m??&y6==KIjwE@>=Pi@XK zgzug>$KBq+VKO-CwQANEe@u)91=LI4Joy{)D^biD!Y$(>P{Je)0iOVrDRmSyXbRGC zMkMDBm^M)bC$$Modx%D9c5QXCAQuA{-YIHWREA5=A|Vu8@PQD*19jR)<02N`1j%d& zm=G#GCoFPhI9H#Yi|4_)CoO-EN1vL1gSL)pr7f-xFqO1I3P~e1CI~C)8#o~ZDw)MX zf_H*a5f!(FV?v`>f9{L(@2VG#zTJF$&mE7?&Ci_L;k%J5Kt8OP8O85Y(zp zvr|-^0UATm3H5COTLSWSjPh2O z9uG^Xsx&(-hjvn(Z7&$|x&45AKAN0o+jXa=;}s1>JM&Vee@LL(RcG}ZGE1_^mI}{K&dYv!?X@k|@$}{*;(F|x#?&^j%_8d(Z<)r~AL~H- zV;3EEUv>wGtZ%iQ=M0-KZ>*_H8z7r#+l+b@n{G$@sTDKrw`2aT(mL?pR@_Lu7V2k^ zKYQ9*wRvrWbS~uI=fPi_lWJn1*|Vfh*H zOHX;w0)nxIKO|?p2f5GTu=hdud7M@)$OKnZh!X&RZL$~oc* z1Vtn^e?HXLg(GG1?!z(W6@V8^O2vg2#wbsC1OqZMteMu{3eB)%oN?@3IUvCLeo!JUaf3=p#qFQlhrnsiEEg45ue#vu-{QY`~ z^7k1^!xbe?vpTe+5!eeTQCgwi>%+rsbO?>ussNa>;y(e#b&p2gRC@1d(6mSI&(cx7 z_!y1qWk#NjKB96m9*;iO5@TMVEYCVco>%P>WbqQAxiy`~Dbb#qKO1EIwU@lvPQx<7 zf4%q}tW2|8jl;%>=B#?>R@|G$$aXGQ`LO=oncL_kZ#Gfq*|Y2YH&OSv#pP;(_mVfY z#HQ15oR23XTfwjZpBJGPvNf%8lXMh@xvPJxvT;r3)^zlnn_rm=;(FCzpZrPij0vg& zbC!7#mBPgHs0A=&$;)K@`pSjT!PZ4v%O_-eICc7n1R3&dl`8k z(n(QYK4R9?`;CGDNFk-9!l3%p38Ow(si=+hW^wOyJqanjM+q|``=&9j12}GaIzb;cglcdySuuo`swPbXL@EboSe7ZGz%lx z{k0fpkG{c$F~*Yf`V(V(^W2olPYkgWjZS6Jw69pLii~y&nkf* zDv4it(>t&MKBbiciIAQ7ldb8I}i+O6)ES!SZ1YD z6f>o)b0HEU1+Db{r_#DH8QFT}o)(|8(tc`PG>iFvg6!g5e40I-IP8g$08Y}E=x@k|fL1BH zX=24; zTNqV;pFbShtZ2P?^|rJj~KE z9cQ~XUBlzM-8gM__J$v4Wj-D)q{DOsou$OLJC~bhw{ccNo!K`2hOWdAd@3QU_TFjc z$LHsemFNZ9TqUr1ngxh> zv~8YdIeeU^ITW>-(PUVB9PQKs7m%m%b1g9%ds|vJs{#v2wf$V zCV3Z^Df-{@Bseb#cPH!s6UYK&K5cY-SnL^%KVPC+5%&gMPc) zIXTU)>pbYbdDHGcKg||rc~uc?G?>bNKqLjnWe9>|6_}^e1m!$uN--gP_;~_@rf)m~YVL^l9sw#nw5D}s_LMlv*0>M4wit-qlTAp_k{j29TJ?mRJ z@Aq}z>UpDawlwXN6G3laB-&9ks#X6Zq@k&LI5CZTI%wtK;^;7i~Lq`>tEi zxEhnk1T23qKz&b+ypy)xOqdI}u1d7C?r)SZW((yZJ;wL$n)UPi$t-rTMVR4?hj>vc}*&g%F633~FR`qFH} z>Kj5^%?GLyP=bE?G3lTYWW(}oW^fz5oLlSvm~?;U(g+n(SCo004d+4 zN1J!x>C$ouQkRzK!segTZ1{!9E{y#40PpS9zI;oV8xyyKy|;H^bC;ISZ$bUCaNU-# zm7#x3YvG($0St4F5Nd?8!D1V5P)ZUPgH_QpEr3vIjVA_kW1XZF%Wqt=SMBB7>-X)U zwbj71Q-u-Vsbi=rXsbqD4r!3TKHy#|;F(YmG?rdT?zQ5SV8f$fSURl;V-gES1C|^s zryceH3{x(NbDAq0zcCe9h3EaeAWk!1-M9Z)G8_s2(@3Mt^U!Vv)?;9K`#*5u0s+v zA<)}zpCl;x=RxweHn8~=Z9U!I+(G@L!G7=P{V(`K{k^~c>Npv6_TN-@!FAlA_Uq>> z47^;&zz(|G##I;juxxKhW&g)s_ovPv>Git3EBCLte3~Vl!zF)eG&^S6T&J9KqY3qa zIta>8VN9gLXu(ai&TEaqbH>0igPpR5ab*;QpsWc%S(N1A=us1LYjdMnG_8XH*bqPi zm5~`G1s4vSCWgD_Oh-awP6=a-R>DNUo<wglQ3@gYmXRMci1Fe5fxxCPVYbQCDL}~EgLljY4tF&P@;wXZ=le~Csw9pJVmx@p;6+}*% z_n0arDb^H7^w!i}oOnhhVa8}67Njynel>ZSA#z1V@^mHyQIq7Y6w#e%oov8b(N#*=?wZ6uPai2rC+z5Su#U$ww4 zJxcm>Ywb<-cbDD632JgnazI{8>2=6b&{W+{|WV#DCP{|mT?g%VUmUbQZnJWVpL*9J@XulaWQfwyptg^ zVLazxmr!Y)-JWn!L$xCAw-3RhUm1BK>=}qogyYsZk>xxP$!L1&N@(@NUp$Z zEI0urrI7dmtL_pqUtWNhA^N&n?7?Y^12zVtk3@f28=d!*Itm&z1?e~=l5+=4o2Y`5 z+61OOM58oYxI0-Fevsg&*PEabM;?{6X zX!L)|{o(q1&l@=Z1@-uzwj zr{C`XYw)($ecwJzdV_zw>-P5t)t*WYlSB0T8D#aus(Yn+qt7v_8fWm!U5@0 z%D*pyzcnY-#6W#!NuAc%Rz%A=Mg@P?%2y=SDTld|mU~GeW}I_l2_u|Ud_ocRkeu|M ztosEV^}hYN)_X8S2`RC&JV3BcQ5`8~QF{`FqfsfLI0IrWGgeC_ywK899<+d9tl9< hM(D%i|2%&5{rY}=zrJ7JuP+O_{vQb6waWlF002)t5|#h} diff --git a/packages/utils/sql/pgpm-utils--0.44.0.sql b/packages/utils/sql/pgpm-utils--0.44.0.sql index 33b71f231..6b2a5b246 100644 --- a/packages/utils/sql/pgpm-utils--0.44.0.sql +++ b/packages/utils/sql/pgpm-utils--0.44.0.sql @@ -102,4 +102,16 @@ BEGIN RETURN NEW; END; +$EOFCODE$ LANGUAGE plpgsql; + +CREATE FUNCTION utils.default_self_reference() RETURNS trigger AS $EOFCODE$ +DECLARE + column_name text := TG_ARGV[0]; +BEGIN + IF (to_jsonb(NEW) ->> column_name) IS NULL THEN + NEW := jsonb_populate_record(NEW, jsonb_build_object(column_name, NEW.id)); + END IF; + + RETURN NEW; +END; $EOFCODE$ LANGUAGE plpgsql; \ No newline at end of file diff --git a/packages/utils/verify/schemas/utils/procedures/default_self_reference.sql b/packages/utils/verify/schemas/utils/procedures/default_self_reference.sql new file mode 100644 index 000000000..84dfc241b --- /dev/null +++ b/packages/utils/verify/schemas/utils/procedures/default_self_reference.sql @@ -0,0 +1,7 @@ +-- Verify schemas/utils/procedures/default_self_reference on pg + +BEGIN; + +SELECT assert_function('utils.default_self_reference()'::regprocedure); + +ROLLBACK; From d848ff98ff9a0fe52d7bdca03479b33a7864f4a6 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Wed, 9 Sep 2026 19:22:36 +0000 Subject: [PATCH 2/2] test(app-scope): seed principal_auth_module.private_schema_id now that it is a NOT NULL FK --- packages/app-scope/__tests__/actor-entity-type.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/app-scope/__tests__/actor-entity-type.test.ts b/packages/app-scope/__tests__/actor-entity-type.test.ts index e35556495..526070efd 100644 --- a/packages/app-scope/__tests__/actor-entity-type.test.ts +++ b/packages/app-scope/__tests__/actor-entity-type.test.ts @@ -178,13 +178,14 @@ describe('app_scope.actor_entity', () => { ( database_id, schema_id, + private_schema_id, principals_table_id, principal_entities_table_id, users_table_id, sessions_table_id, session_credentials_table_id ) - VALUES ($1, $2, $3, $4, $5, $6, $7)`, + VALUES ($1, $2, $2, $3, $4, $5, $6, $7)`, [ PRINCIPAL_DATABASE_ID, principalSchema.id,

DyJ*_Ki*ScKU>|q8x4r6 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