From 6529ebe511fed7b1b0e4ab5ad451d09fbeb8a340 Mon Sep 17 00:00:00 2001 From: Dan Lynch Date: Mon, 26 Oct 2026 00:21:42 +0000 Subject: [PATCH] feat(function-resolution): claim-scoped default bucket resolver --- .../__tests__/default-bucket.test.ts | 18 +- .../procedures/bucket_matches.sql | 2 +- .../procedures/frame_default_bucket.sql | 137 +++++++++++++++ .../procedures/resolve_default_bucket.sql | 164 +++++++++--------- .../procedures/resolve_staging_bucket.sql | 2 +- packages/function-resolution/pgpm.plan | 3 +- .../procedures/frame_default_bucket.sql | 7 + .../procedures/resolve_default_bucket.sql | 2 +- ...-function-resolution--0.47.8.bundle.tar.gz | Bin 82398 -> 84383 bytes .../sql/pgpm-function-resolution--0.47.8.sql | 157 ++++++++++++++--- .../procedures/frame_default_bucket.sql | 7 + .../procedures/resolve_default_bucket.sql | 2 +- 12 files changed, 378 insertions(+), 123 deletions(-) create mode 100644 packages/function-resolution/deploy/schemas/function_resolution/procedures/frame_default_bucket.sql create mode 100644 packages/function-resolution/revert/schemas/function_resolution/procedures/frame_default_bucket.sql create mode 100644 packages/function-resolution/verify/schemas/function_resolution/procedures/frame_default_bucket.sql diff --git a/packages/function-resolution/__tests__/default-bucket.test.ts b/packages/function-resolution/__tests__/default-bucket.test.ts index 60977c4f2..8d45c19bf 100644 --- a/packages/function-resolution/__tests__/default-bucket.test.ts +++ b/packages/function-resolution/__tests__/default-bucket.test.ts @@ -93,7 +93,7 @@ describe('default bucket resolution', () => { it('resolves the database default without anyone naming a bucket', async () => { const [row] = await pg.any( `SELECT bucket_id, resolved_key, bucket_type, physical_name, owner_database_id - FROM function_resolution.resolve_default_bucket($1, 'database', $1, false)`, + FROM function_resolution.frame_default_bucket($1, 'database', $1, false)`, [TENANT_DB] ); expect(row).toEqual({ @@ -108,7 +108,7 @@ describe('default bucket resolution', () => { it('public access resolves the CDN-served default, not the private one', async () => { const [row] = await pg.any( `SELECT bucket_id, bucket_type - FROM function_resolution.resolve_default_bucket($1, 'database', $1, true)`, + FROM function_resolution.frame_default_bucket($1, 'database', $1, true)`, [TENANT_DB] ); expect(row).toEqual({ bucket_id: ids.defaultPublic, bucket_type: 'public' }); @@ -117,7 +117,7 @@ describe('default bucket resolution', () => { it('an explicit logical key overrides the default and resolves by the same rule', async () => { const [row] = await pg.any( `SELECT bucket_id, resolved_key - FROM function_resolution.resolve_default_bucket($1, 'database', $1, false, 'avatars')`, + FROM function_resolution.frame_default_bucket($1, 'database', $1, false, 'avatars')`, [TENANT_DB] ); expect(row).toEqual({ bucket_id: ids.avatars, resolved_key: 'avatars' }); @@ -126,7 +126,7 @@ describe('default bucket resolution', () => { it('an explicit key nothing carries raises rather than falling back to the default', async () => { await expect( pg.any( - `SELECT * FROM function_resolution.resolve_default_bucket($1, 'database', $1, false, 'nope')`, + `SELECT * FROM function_resolution.frame_default_bucket($1, 'database', $1, false, 'nope')`, [TENANT_DB] ) ).rejects.toThrow(/STORAGE_DEFAULT_BUCKET_NOT_FOUND/); @@ -135,7 +135,7 @@ describe('default bucket resolution', () => { it('a blank key is a caller bug, not a request for the default', async () => { await expect( pg.any( - `SELECT * FROM function_resolution.resolve_default_bucket($1, 'database', $1, false, ' ')`, + `SELECT * FROM function_resolution.frame_default_bucket($1, 'database', $1, false, ' ')`, [TENANT_DB] ) ).rejects.toThrow(/STORAGE_BUCKET_KEY_BLANK/); @@ -144,7 +144,7 @@ describe('default bucket resolution', () => { it('a database with no default bucket raises', async () => { await expect( pg.any( - `SELECT * FROM function_resolution.resolve_default_bucket($1, 'database', $1, false)`, + `SELECT * FROM function_resolution.frame_default_bucket($1, 'database', $1, false)`, [BARE_DB] ) ).rejects.toThrow(/STORAGE_DEFAULT_BUCKET_NOT_FOUND/); @@ -153,14 +153,14 @@ describe('default bucket resolution', () => { it('another tenant default is never borrowed', async () => { // OTHER_DB has a bucket tagged 'default'; BARE_DB still has none. const [foreign] = await pg.any( - `SELECT bucket_id FROM function_resolution.resolve_default_bucket($1, 'database', $1, false)`, + `SELECT bucket_id FROM function_resolution.frame_default_bucket($1, 'database', $1, false)`, [OTHER_DB] ); expect(foreign.bucket_id).toBe(ids.otherDefault); await expect( pg.any( - `SELECT * FROM function_resolution.resolve_default_bucket($1, 'database', $1, false)`, + `SELECT * FROM function_resolution.frame_default_bucket($1, 'database', $1, false)`, [BARE_DB] ) ).rejects.toThrow(/STORAGE_DEFAULT_BUCKET_NOT_FOUND/); @@ -170,7 +170,7 @@ describe('default bucket resolution', () => { let failure: (Error & { detail?: string }) | null = null; try { await pg.any( - `SELECT * FROM function_resolution.resolve_default_bucket($1, 'database', $1, false)`, + `SELECT * FROM function_resolution.frame_default_bucket($1, 'database', $1, false)`, [AMBIGUOUS_DB] ); } catch (error) { diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/bucket_matches.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/bucket_matches.sql index 2d3dca9f7..803c4add5 100644 --- a/packages/function-resolution/deploy/schemas/function_resolution/procedures/bucket_matches.sql +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/bucket_matches.sql @@ -11,7 +11,7 @@ BEGIN; -- -- Split out so that "which buckets match" has exactly one implementation while -- each caller states its own arity rule: resolve_bucket demands one for a --- capability declaration, resolve_default_bucket demands one for a database's +-- capability declaration, frame_default_bucket demands one for a database's -- default, and both raise on zero or several. A second copy of this query would -- be a second answer to "which bucket is this". -- diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/frame_default_bucket.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/frame_default_bucket.sql new file mode 100644 index 000000000..0555070b7 --- /dev/null +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/frame_default_bucket.sql @@ -0,0 +1,137 @@ +-- Deploy schemas/function_resolution/procedures/frame_default_bucket to pg + +-- requires: schemas/function_resolution/schema +-- requires: schemas/function_resolution/procedures/bucket_matches +-- requires: schemas/function_resolution/procedures/default_bucket_tag + +BEGIN; + +-- frame_default_bucket: answer "which bucket does this database store into +-- when the caller did not name one", server-side, for an explicit frame. +-- +-- The frame is caller-supplied and catalog_private.buckets is read past RLS, so +-- this is the platform lane's entry point alone (the worker's build resolver +-- and bootstrap verification; fun platform COMPONENT_GRANTS). A request reaches +-- the same answer through resolve_default_bucket, which pins the frame to its +-- own claims and membership first. +-- +-- Bucket choice belongs to the database, never to a client: a client-chosen +-- string means a different bucket per tenant, and an environment-level bucket +-- means storage that does not belong to any tenant at all. So there is no +-- global fallback here and no default that resolves outside the execution's own +-- frame chain — a database either labelled a default bucket or it has none, and +-- the second case raises. +-- +-- Two routes, one rule: +-- * bucket_key given -- the per-field override. A logical key is a label, the +-- same vocabulary a function's required_buckets declares, so the override +-- resolves through the identical match: nothing here is key-specific. +-- * bucket_key omitted -- the reserved default tag for the requested access +-- (see default_bucket_tag): 'default' or 'default-public'. +-- +-- Either way the match must be exactly one bucket. Zero raises, several raise +-- naming the candidates, and nothing is guessed in between: an ambiguous default +-- is a tenant's tagging mistake, and picking one would silently write a tenant's +-- files into whichever bucket sorted first. +CREATE FUNCTION function_resolution.frame_default_bucket( + database_id uuid, + scope text, + entity_id uuid, + public_access boolean, + bucket_key text DEFAULT NULL +) RETURNS TABLE ( + bucket_id uuid, + resolved_key text, + bucket_type text, + physical_name text, + owner_database_id uuid, + owner_scope text, + owner_key uuid +) AS $$ +DECLARE + v_tag text; + v_matches jsonb; + v_match jsonb; +BEGIN + -- A blank override is a caller bug, not a request for the default: falling + -- through to tag resolution would turn a broken field binding into a + -- silently different bucket. + IF frame_default_bucket.bucket_key IS NOT NULL + AND btrim(frame_default_bucket.bucket_key) = '' THEN + PERFORM errors.raise_error( + 'STORAGE_BUCKET_KEY_BLANK', + jsonb_build_object( + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope + ), + 'internal' + ); + END IF; + + v_tag := COALESCE( + frame_default_bucket.bucket_key, + function_resolution.default_bucket_tag(frame_default_bucket.public_access) + ); + + SELECT COALESCE(jsonb_agg(to_jsonb(m) ORDER BY m.bucket_id), '[]'::jsonb) + INTO v_matches + FROM function_resolution.bucket_matches( + frame_default_bucket.database_id, + frame_default_bucket.scope, + frame_default_bucket.entity_id, + ARRAY[v_tag] + ) m; + + IF jsonb_array_length(v_matches) = 0 THEN + PERFORM errors.raise_error( + 'STORAGE_DEFAULT_BUCKET_NOT_FOUND', + jsonb_build_object( + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope, + 'entity_id', frame_default_bucket.entity_id, + 'tag', v_tag, + 'explicit_key', frame_default_bucket.bucket_key IS NOT NULL + ), + 'internal' + ); + END IF; + + IF jsonb_array_length(v_matches) > 1 THEN + PERFORM errors.raise_error( + 'STORAGE_DEFAULT_BUCKET_AMBIGUOUS', + jsonb_build_object( + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope, + 'entity_id', frame_default_bucket.entity_id, + 'tag', v_tag, + 'explicit_key', frame_default_bucket.bucket_key IS NOT NULL, + 'candidates', ( + SELECT jsonb_agg(jsonb_build_object( + 'bucket_id', c->>'bucket_id', + 'key', c->>'bucket_key', + 'type', c->>'bucket_type' + ) ORDER BY c->>'bucket_key') + FROM jsonb_array_elements(v_matches) c + ) + ), + 'internal' + ); + END IF; + + v_match := v_matches->0; + + frame_default_bucket.bucket_id := (v_match->>'bucket_id')::uuid; + frame_default_bucket.resolved_key := v_match->>'bucket_key'; + frame_default_bucket.bucket_type := v_match->>'bucket_type'; + frame_default_bucket.physical_name := v_match->>'physical_name'; + frame_default_bucket.owner_database_id := (v_match->>'owner_database_id')::uuid; + frame_default_bucket.owner_scope := v_match->>'owner_scope'; + frame_default_bucket.owner_key := (v_match->>'owner_key')::uuid; + + RETURN NEXT; +END; +$$ LANGUAGE plpgsql STABLE SECURITY DEFINER; + +REVOKE ALL ON FUNCTION function_resolution.frame_default_bucket(uuid, text, uuid, boolean, text) FROM PUBLIC; + +COMMIT; diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_default_bucket.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_default_bucket.sql index e911199a6..0c94913a8 100644 --- a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_default_bucket.sql +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_default_bucket.sql @@ -1,34 +1,28 @@ -- Deploy schemas/function_resolution/procedures/resolve_default_bucket to pg -- requires: schemas/function_resolution/schema --- requires: schemas/function_resolution/procedures/bucket_matches --- requires: schemas/function_resolution/procedures/default_bucket_tag +-- requires: schemas/function_resolution/procedures/frame_default_bucket +-- requires: schemas/function_resolution/procedures/storage_module_registrations +-- requires: schemas/function_resolution/procedures/memberships_module_registrations +-- requires: pgpm-jwt-claims:schemas/jwt_private/procedures/require_database_id +-- requires: pgpm-jwt-claims:schemas/jwt_public/procedures/current_user_id +-- requires: pgpm-jwt-claims:schemas/jwt_public/procedures/current_principal_id +-- requires: errors:schemas/errors/procedures/raise_error BEGIN; --- resolve_default_bucket: answer "which bucket does this database store into --- when the caller did not name one", server-side. +-- resolve_default_bucket: the request lane's default bucket — what an upload +-- that names no bucketKey stores into — for the request's own database. -- --- Bucket choice belongs to the database, never to a client: a client-chosen --- string means a different bucket per tenant, and an environment-level bucket --- means storage that does not belong to any tenant at all. So there is no --- global fallback here and no default that resolves outside the execution's own --- frame chain — a database either labelled a default bucket or it has none, and --- the second case raises. --- --- Two routes, one rule: --- * bucket_key given -- the per-field override. A logical key is a label, the --- same vocabulary a function's required_buckets declares, so the override --- resolves through the identical match: nothing here is key-specific. --- * bucket_key omitted -- the reserved default tag for the requested access --- (see default_bucket_tag): 'default' or 'default-public'. --- --- Either way the match must be exactly one bucket. Zero raises, several raise --- naming the candidates, and nothing is guessed in between: an ambiguous default --- is a tenant's tagging mistake, and picking one would silently write a tenant's --- files into whichever bucket sorted first. +-- The frame is never the caller's to choose. The database is the request's +-- database claim, exactly as storage_modules() reads it, and the scope must be +-- one of that database's storage planes. The caller must then hold a membership +-- at that scope (its SPRT row, the plane every policy reads): of the entity for +-- an entity-scoped plane, of the app for a global one. Only then is the frame +-- handed to frame_default_bucket, which reads catalog_private.buckets past RLS. +-- Without these checks a caller could name another tenant's database or another +-- entity and read back its private default bucket id and physical name. CREATE FUNCTION function_resolution.resolve_default_bucket( - database_id uuid, scope text, entity_id uuid, public_access boolean, @@ -43,87 +37,91 @@ CREATE FUNCTION function_resolution.resolve_default_bucket( owner_key uuid ) AS $$ DECLARE - v_tag text; - v_matches jsonb; - v_match jsonb; + v_database_id uuid := jwt_private.require_database_id(); + v_actor_id uuid := COALESCE(jwt_public.current_principal_id(), jwt_public.current_user_id()); + v_entity_scoped boolean; + v_membership_scope text; + v_sprt_schema text; + v_sprt_table text; + v_is_member boolean; BEGIN - -- A blank override is a caller bug, not a request for the default: falling - -- through to tag resolution would turn a broken field binding into a - -- silently different bucket. - IF resolve_default_bucket.bucket_key IS NOT NULL - AND btrim(resolve_default_bucket.bucket_key) = '' THEN + SELECT bool_or(r.entity_table_id IS NOT NULL) + INTO v_entity_scoped + FROM function_resolution.storage_module_registrations(v_database_id) AS r + WHERE r.scope = resolve_default_bucket.scope; + + IF v_entity_scoped IS NULL THEN PERFORM errors.raise_error( - 'STORAGE_BUCKET_KEY_BLANK', - jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, - 'scope', resolve_default_bucket.scope - ), + 'STORAGE_MODULE_NOT_FOUND', + jsonb_build_object('scope', resolve_default_bucket.scope), 'internal' ); END IF; - v_tag := COALESCE( - resolve_default_bucket.bucket_key, - function_resolution.default_bucket_tag(resolve_default_bucket.public_access) - ); - - SELECT COALESCE(jsonb_agg(to_jsonb(m) ORDER BY m.bucket_id), '[]'::jsonb) - INTO v_matches - FROM function_resolution.bucket_matches( - resolve_default_bucket.database_id, - resolve_default_bucket.scope, - resolve_default_bucket.entity_id, - ARRAY[v_tag] - ) m; + IF v_entity_scoped AND resolve_default_bucket.entity_id IS NULL THEN + PERFORM errors.raise_error( + 'STORAGE_SCOPE_KEY_REQUIRED', + jsonb_build_object('scope', resolve_default_bucket.scope), + 'internal' + ); + END IF; - IF jsonb_array_length(v_matches) = 0 THEN + IF NOT v_entity_scoped AND resolve_default_bucket.entity_id IS NOT NULL THEN PERFORM errors.raise_error( - 'STORAGE_DEFAULT_BUCKET_NOT_FOUND', - jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, - 'scope', resolve_default_bucket.scope, - 'entity_id', resolve_default_bucket.entity_id, - 'tag', v_tag, - 'explicit_key', resolve_default_bucket.bucket_key IS NOT NULL - ), + 'STORAGE_SCOPE_KEY_UNEXPECTED', + jsonb_build_object('scope', resolve_default_bucket.scope), 'internal' ); END IF; - IF jsonb_array_length(v_matches) > 1 THEN + v_membership_scope := CASE WHEN v_entity_scoped THEN resolve_default_bucket.scope ELSE 'app' END; + + SELECT m.private_schema, m.sprt_table_name + INTO v_sprt_schema, v_sprt_table + FROM function_resolution.memberships_module_registrations(v_database_id) AS m + WHERE m.scope = v_membership_scope; + + IF v_actor_id IS NOT NULL AND v_sprt_table IS NOT NULL THEN + IF v_entity_scoped THEN + -- pgsql-lint-disable-next-line no-dynamic-sql -- lookup-only: the SPRT lives under the database's generated schema; identifiers are catalog data, values are bound + EXECUTE format( + 'SELECT EXISTS (SELECT 1 FROM %I.%I m WHERE m.actor_id = $1 AND m.entity_id = $2)', + v_sprt_schema, v_sprt_table + ) INTO v_is_member USING v_actor_id, resolve_default_bucket.entity_id; + ELSE + -- pgsql-lint-disable-next-line no-dynamic-sql -- lookup-only: the SPRT lives under the database's generated schema; identifiers are catalog data, values are bound + EXECUTE format( + 'SELECT EXISTS (SELECT 1 FROM %I.%I m WHERE m.actor_id = $1)', + v_sprt_schema, v_sprt_table + ) INTO v_is_member USING v_actor_id; + END IF; + END IF; + + IF v_is_member IS NOT TRUE THEN PERFORM errors.raise_error( - 'STORAGE_DEFAULT_BUCKET_AMBIGUOUS', + 'STORAGE_SCOPE_MEMBERSHIP_REQUIRED', jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, 'scope', resolve_default_bucket.scope, - 'entity_id', resolve_default_bucket.entity_id, - 'tag', v_tag, - 'explicit_key', resolve_default_bucket.bucket_key IS NOT NULL, - 'candidates', ( - SELECT jsonb_agg(jsonb_build_object( - 'bucket_id', c->>'bucket_id', - 'key', c->>'bucket_key', - 'type', c->>'bucket_type' - ) ORDER BY c->>'bucket_key') - FROM jsonb_array_elements(v_matches) c - ) + 'entity_id', resolve_default_bucket.entity_id ), 'internal' ); END IF; - v_match := v_matches->0; - - resolve_default_bucket.bucket_id := (v_match->>'bucket_id')::uuid; - resolve_default_bucket.resolved_key := v_match->>'bucket_key'; - resolve_default_bucket.bucket_type := v_match->>'bucket_type'; - resolve_default_bucket.physical_name := v_match->>'physical_name'; - resolve_default_bucket.owner_database_id := (v_match->>'owner_database_id')::uuid; - resolve_default_bucket.owner_scope := v_match->>'owner_scope'; - resolve_default_bucket.owner_key := (v_match->>'owner_key')::uuid; - - RETURN NEXT; + RETURN QUERY + SELECT f.bucket_id, f.resolved_key, f.bucket_type, f.physical_name, + f.owner_database_id, f.owner_scope, f.owner_key + FROM function_resolution.frame_default_bucket( + v_database_id, + resolve_default_bucket.scope, + resolve_default_bucket.entity_id, + resolve_default_bucket.public_access, + resolve_default_bucket.bucket_key + ) AS f; END; $$ LANGUAGE plpgsql STABLE SECURITY DEFINER; +REVOKE ALL ON FUNCTION function_resolution.resolve_default_bucket(text, uuid, boolean, text) FROM PUBLIC; +GRANT EXECUTE ON FUNCTION function_resolution.resolve_default_bucket(text, uuid, boolean, text) TO authenticated; + COMMIT; diff --git a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_staging_bucket.sql b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_staging_bucket.sql index 96d878455..e00e058b8 100644 --- a/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_staging_bucket.sql +++ b/packages/function-resolution/deploy/schemas/function_resolution/procedures/resolve_staging_bucket.sql @@ -7,7 +7,7 @@ BEGIN; -- resolve_staging_bucket: answer "which bucket does this database stage an --- upload through", server-side, by the same rule resolve_default_bucket uses +-- upload through", server-side, by the same rule frame_default_bucket uses -- for the destination. -- -- Staging is not a second mechanism: the reserved staging tag is matched in the diff --git a/packages/function-resolution/pgpm.plan b/packages/function-resolution/pgpm.plan index 0fc673914..d8118f634 100644 --- a/packages/function-resolution/pgpm.plan +++ b/packages/function-resolution/pgpm.plan @@ -12,7 +12,7 @@ schemas/function_resolution/procedures/enqueue [schemas/function_resolution/sche schemas/function_resolution/procedures/bucket_matches [schemas/function_resolution/schema schemas/function_resolution/procedures/frame_candidates] 2017-08-11T08:11:51Z constructive # buckets a selector matches in the nearest frame schemas/function_resolution/procedures/resolve_bucket [schemas/function_resolution/schema schemas/function_resolution/procedures/frame_candidates schemas/function_resolution/procedures/bucket_matches] 2017-08-11T08:11:51Z constructive # bucket selector {tags,type} resolution schemas/function_resolution/procedures/default_bucket_tag [schemas/function_resolution/schema] 2017-08-11T08:11:51Z constructive # reserved default-bucket tag vocabulary -schemas/function_resolution/procedures/resolve_default_bucket [schemas/function_resolution/schema schemas/function_resolution/procedures/bucket_matches schemas/function_resolution/procedures/default_bucket_tag] 2017-08-11T08:11:51Z constructive # the database's default bucket, or an explicit key +schemas/function_resolution/procedures/frame_default_bucket [schemas/function_resolution/schema schemas/function_resolution/procedures/bucket_matches schemas/function_resolution/procedures/default_bucket_tag] 2017-08-11T08:11:51Z constructive # a frame's default bucket, or an explicit key, for the platform lane schemas/function_resolution/procedures/staging_bucket_tag [schemas/function_resolution/schema] 2017-08-11T08:11:51Z constructive # reserved staging-bucket tag vocabulary schemas/function_resolution/procedures/resolve_staging_bucket [schemas/function_resolution/schema schemas/function_resolution/procedures/bucket_matches schemas/function_resolution/procedures/staging_bucket_tag] 2017-08-11T08:11:51Z constructive # the module's staging bucket for uploads schemas/function_resolution/procedures/bucket_catalog_row [schemas/function_resolution/schema schemas/function_resolution/procedures/frame_candidates] 2017-08-11T08:11:51Z constructive # reachable bucket by id (same-tenant proof) @@ -85,3 +85,4 @@ schemas/function_resolution/procedures/database_features [schemas/function_resol schemas/function_resolution/procedures/request_protection [schemas/function_resolution/schema] 2026-10-15T05:00:00Z devin # one database's raw request bounds and API overrides, for the platform login only schemas/function_resolution/procedures/refusal_log_module_registrations [schemas/function_resolution/schema metaschema-modules:schemas/metaschema_modules_public/tables/refusal_log_module/table metaschema-schema:schemas/metaschema_public/tables/schema/table pgpm-app-scope:schemas/app_scope/procedures/platform_database_id] 2026-10-17T16:30:00Z devin # platform-login reader for refusal_log_module (worker sql-runner, NOBYPASSRLS) schemas/function_resolution/procedures/ownership_challenge [schemas/function_resolution/schema] 2026-10-20T00:00:00Z devin # the pending http_01 token a hostname is verified with, for the platform login only +schemas/function_resolution/procedures/resolve_default_bucket [schemas/function_resolution/schema schemas/function_resolution/procedures/frame_default_bucket schemas/function_resolution/procedures/storage_module_registrations schemas/function_resolution/procedures/memberships_module_registrations pgpm-jwt-claims:schemas/jwt_private/procedures/require_database_id pgpm-jwt-claims:schemas/jwt_public/procedures/current_user_id pgpm-jwt-claims:schemas/jwt_public/procedures/current_principal_id errors:schemas/errors/procedures/raise_error] 2026-10-25T12:00:00Z devin # the request database's default bucket, pinned to its claims and the caller's membership diff --git a/packages/function-resolution/revert/schemas/function_resolution/procedures/frame_default_bucket.sql b/packages/function-resolution/revert/schemas/function_resolution/procedures/frame_default_bucket.sql new file mode 100644 index 000000000..1ac97c8b7 --- /dev/null +++ b/packages/function-resolution/revert/schemas/function_resolution/procedures/frame_default_bucket.sql @@ -0,0 +1,7 @@ +-- Revert schemas/function_resolution/procedures/frame_default_bucket from pg + +BEGIN; + +DROP FUNCTION function_resolution.frame_default_bucket(uuid, text, uuid, boolean, text); + +COMMIT; diff --git a/packages/function-resolution/revert/schemas/function_resolution/procedures/resolve_default_bucket.sql b/packages/function-resolution/revert/schemas/function_resolution/procedures/resolve_default_bucket.sql index 088579fd1..47363255f 100644 --- a/packages/function-resolution/revert/schemas/function_resolution/procedures/resolve_default_bucket.sql +++ b/packages/function-resolution/revert/schemas/function_resolution/procedures/resolve_default_bucket.sql @@ -2,6 +2,6 @@ BEGIN; -DROP FUNCTION function_resolution.resolve_default_bucket(uuid, text, uuid, boolean, text); +DROP FUNCTION function_resolution.resolve_default_bucket(text, uuid, boolean, text); COMMIT; diff --git a/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.bundle.tar.gz b/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.bundle.tar.gz index 872d79ca66233a67f5b784e51d1e8854634011d8..2b54a700bd410ca0005bd410f3baa5c786353a11 100644 GIT binary patch delta 80911 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

>N2-DhOAx*$K-U?G+% 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≠=jmy&*<#5vc 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

`0VWM{sfGHqduqMbVH)lSmvK&IJ zv%?mogSnY!#U}#uZ1wQ%1vxyi)Lc2omyMX{k@=f{iJN$G!L}BC`(@F(FW!sBxQ02b za{MlKsz179ZPFf!e^|wR1+sW4t&!#=eVDuC+GG$j59Or$62Uc-xE17Bq?twFuny@c z6YdnAF{_g_;;U8W<|hPaG$)q>m3czwnu0}IrD>KFQJoQUT;sj@c#lJSH#xl&ek_l0 zeA(`Q^z!<3apsnQ&cihpt9U&wYNT3(XzRs2Ys7Yx1ib𝔗0V9l15ZL?Y&{ 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 TIsW`d`1$_<8>SqT0N4otTG1O{ delta 78900 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

TWB1Ys%VZ_L7lY~?I-6qJ3iDcS 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 diff --git a/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.sql b/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.sql index b0a195499..fd87d9a3d 100644 --- a/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.sql +++ b/packages/function-resolution/sql/pgpm-function-resolution--0.47.8.sql @@ -556,7 +556,7 @@ $EOFCODE$ LANGUAGE sql IMMUTABLE; GRANT EXECUTE ON FUNCTION function_resolution.default_bucket_tag(boolean) TO authenticated; -CREATE FUNCTION function_resolution.resolve_default_bucket( +CREATE FUNCTION function_resolution.frame_default_bucket( database_id uuid, scope text, entity_id uuid, @@ -579,29 +579,29 @@ BEGIN -- A blank override is a caller bug, not a request for the default: falling -- through to tag resolution would turn a broken field binding into a -- silently different bucket. - IF resolve_default_bucket.bucket_key IS NOT NULL - AND btrim(resolve_default_bucket.bucket_key) = '' THEN + IF frame_default_bucket.bucket_key IS NOT NULL + AND btrim(frame_default_bucket.bucket_key) = '' THEN PERFORM errors.raise_error( 'STORAGE_BUCKET_KEY_BLANK', jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, - 'scope', resolve_default_bucket.scope + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope ), 'internal' ); END IF; v_tag := COALESCE( - resolve_default_bucket.bucket_key, - function_resolution.default_bucket_tag(resolve_default_bucket.public_access) + frame_default_bucket.bucket_key, + function_resolution.default_bucket_tag(frame_default_bucket.public_access) ); SELECT COALESCE(jsonb_agg(to_jsonb(m) ORDER BY m.bucket_id), '[]'::jsonb) INTO v_matches FROM function_resolution.bucket_matches( - resolve_default_bucket.database_id, - resolve_default_bucket.scope, - resolve_default_bucket.entity_id, + frame_default_bucket.database_id, + frame_default_bucket.scope, + frame_default_bucket.entity_id, ARRAY[v_tag] ) m; @@ -609,11 +609,11 @@ BEGIN PERFORM errors.raise_error( 'STORAGE_DEFAULT_BUCKET_NOT_FOUND', jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, - 'scope', resolve_default_bucket.scope, - 'entity_id', resolve_default_bucket.entity_id, + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope, + 'entity_id', frame_default_bucket.entity_id, 'tag', v_tag, - 'explicit_key', resolve_default_bucket.bucket_key IS NOT NULL + 'explicit_key', frame_default_bucket.bucket_key IS NOT NULL ), 'internal' ); @@ -623,11 +623,11 @@ BEGIN PERFORM errors.raise_error( 'STORAGE_DEFAULT_BUCKET_AMBIGUOUS', jsonb_build_object( - 'database_id', resolve_default_bucket.database_id, - 'scope', resolve_default_bucket.scope, - 'entity_id', resolve_default_bucket.entity_id, + 'database_id', frame_default_bucket.database_id, + 'scope', frame_default_bucket.scope, + 'entity_id', frame_default_bucket.entity_id, 'tag', v_tag, - 'explicit_key', resolve_default_bucket.bucket_key IS NOT NULL, + 'explicit_key', frame_default_bucket.bucket_key IS NOT NULL, 'candidates', ( SELECT jsonb_agg(jsonb_build_object( 'bucket_id', c->>'bucket_id', @@ -643,18 +643,20 @@ BEGIN v_match := v_matches->0; - resolve_default_bucket.bucket_id := (v_match->>'bucket_id')::uuid; - resolve_default_bucket.resolved_key := v_match->>'bucket_key'; - resolve_default_bucket.bucket_type := v_match->>'bucket_type'; - resolve_default_bucket.physical_name := v_match->>'physical_name'; - resolve_default_bucket.owner_database_id := (v_match->>'owner_database_id')::uuid; - resolve_default_bucket.owner_scope := v_match->>'owner_scope'; - resolve_default_bucket.owner_key := (v_match->>'owner_key')::uuid; + frame_default_bucket.bucket_id := (v_match->>'bucket_id')::uuid; + frame_default_bucket.resolved_key := v_match->>'bucket_key'; + frame_default_bucket.bucket_type := v_match->>'bucket_type'; + frame_default_bucket.physical_name := v_match->>'physical_name'; + frame_default_bucket.owner_database_id := (v_match->>'owner_database_id')::uuid; + frame_default_bucket.owner_scope := v_match->>'owner_scope'; + frame_default_bucket.owner_key := (v_match->>'owner_key')::uuid; RETURN NEXT; END; $EOFCODE$ LANGUAGE plpgsql STABLE SECURITY DEFINER; +REVOKE ALL ON FUNCTION function_resolution.frame_default_bucket(uuid, text, uuid, boolean, text) FROM PUBLIC RESTRICT; + CREATE FUNCTION function_resolution.staging_bucket_tag() RETURNS text AS $EOFCODE$ SELECT 'default-temp'; $EOFCODE$ LANGUAGE sql IMMUTABLE; @@ -4654,4 +4656,107 @@ BEGIN END; $EOFCODE$ LANGUAGE plpgsql STABLE SECURITY DEFINER; -REVOKE ALL ON FUNCTION function_resolution.ownership_challenge(text, text) FROM PUBLIC RESTRICT; \ No newline at end of file +REVOKE ALL ON FUNCTION function_resolution.ownership_challenge(text, text) FROM PUBLIC RESTRICT; + +CREATE FUNCTION function_resolution.resolve_default_bucket( + scope text, + entity_id uuid, + public_access boolean, + bucket_key text DEFAULT NULL +) RETURNS TABLE ( + bucket_id uuid, + resolved_key text, + bucket_type text, + physical_name text, + owner_database_id uuid, + owner_scope text, + owner_key uuid +) AS $EOFCODE$ +DECLARE + v_database_id uuid := jwt_private.require_database_id(); + v_actor_id uuid := COALESCE(jwt_public.current_principal_id(), jwt_public.current_user_id()); + v_entity_scoped boolean; + v_membership_scope text; + v_sprt_schema text; + v_sprt_table text; + v_is_member boolean; +BEGIN + SELECT bool_or(r.entity_table_id IS NOT NULL) + INTO v_entity_scoped + FROM function_resolution.storage_module_registrations(v_database_id) AS r + WHERE r.scope = resolve_default_bucket.scope; + + IF v_entity_scoped IS NULL THEN + PERFORM errors.raise_error( + 'STORAGE_MODULE_NOT_FOUND', + jsonb_build_object('scope', resolve_default_bucket.scope), + 'internal' + ); + END IF; + + IF v_entity_scoped AND resolve_default_bucket.entity_id IS NULL THEN + PERFORM errors.raise_error( + 'STORAGE_SCOPE_KEY_REQUIRED', + jsonb_build_object('scope', resolve_default_bucket.scope), + 'internal' + ); + END IF; + + IF NOT v_entity_scoped AND resolve_default_bucket.entity_id IS NOT NULL THEN + PERFORM errors.raise_error( + 'STORAGE_SCOPE_KEY_UNEXPECTED', + jsonb_build_object('scope', resolve_default_bucket.scope), + 'internal' + ); + END IF; + + v_membership_scope := CASE WHEN v_entity_scoped THEN resolve_default_bucket.scope ELSE 'app' END; + + SELECT m.private_schema, m.sprt_table_name + INTO v_sprt_schema, v_sprt_table + FROM function_resolution.memberships_module_registrations(v_database_id) AS m + WHERE m.scope = v_membership_scope; + + IF v_actor_id IS NOT NULL AND v_sprt_table IS NOT NULL THEN + IF v_entity_scoped THEN + -- pgsql-lint-disable-next-line no-dynamic-sql -- lookup-only: the SPRT lives under the database's generated schema; identifiers are catalog data, values are bound + EXECUTE format( + 'SELECT EXISTS (SELECT 1 FROM %I.%I m WHERE m.actor_id = $1 AND m.entity_id = $2)', + v_sprt_schema, v_sprt_table + ) INTO v_is_member USING v_actor_id, resolve_default_bucket.entity_id; + ELSE + -- pgsql-lint-disable-next-line no-dynamic-sql -- lookup-only: the SPRT lives under the database's generated schema; identifiers are catalog data, values are bound + EXECUTE format( + 'SELECT EXISTS (SELECT 1 FROM %I.%I m WHERE m.actor_id = $1)', + v_sprt_schema, v_sprt_table + ) INTO v_is_member USING v_actor_id; + END IF; + END IF; + + IF v_is_member IS NOT TRUE THEN + PERFORM errors.raise_error( + 'STORAGE_SCOPE_MEMBERSHIP_REQUIRED', + jsonb_build_object( + 'scope', resolve_default_bucket.scope, + 'entity_id', resolve_default_bucket.entity_id + ), + 'internal' + ); + END IF; + + RETURN QUERY + SELECT f.bucket_id, f.resolved_key, f.bucket_type, f.physical_name, + f.owner_database_id, f.owner_scope, f.owner_key + FROM function_resolution.frame_default_bucket( + v_database_id, + resolve_default_bucket.scope, + resolve_default_bucket.entity_id, + resolve_default_bucket.public_access, + resolve_default_bucket.bucket_key + ) AS f; +END; +$EOFCODE$ LANGUAGE plpgsql STABLE SECURITY DEFINER; + +REVOKE ALL ON FUNCTION function_resolution.resolve_default_bucket(text, uuid, boolean, text) FROM PUBLIC RESTRICT; + +GRANT EXECUTE ON FUNCTION function_resolution.resolve_default_bucket(text, uuid, boolean, text) TO authenticated; \ No newline at end of file diff --git a/packages/function-resolution/verify/schemas/function_resolution/procedures/frame_default_bucket.sql b/packages/function-resolution/verify/schemas/function_resolution/procedures/frame_default_bucket.sql new file mode 100644 index 000000000..9b7b04b62 --- /dev/null +++ b/packages/function-resolution/verify/schemas/function_resolution/procedures/frame_default_bucket.sql @@ -0,0 +1,7 @@ +-- Verify schemas/function_resolution/procedures/frame_default_bucket on pg + +BEGIN; + +SELECT assert_function('function_resolution.frame_default_bucket(uuid, text, uuid, boolean, text)'::regprocedure); + +ROLLBACK; diff --git a/packages/function-resolution/verify/schemas/function_resolution/procedures/resolve_default_bucket.sql b/packages/function-resolution/verify/schemas/function_resolution/procedures/resolve_default_bucket.sql index 3ed76ac81..6f80a31a5 100644 --- a/packages/function-resolution/verify/schemas/function_resolution/procedures/resolve_default_bucket.sql +++ b/packages/function-resolution/verify/schemas/function_resolution/procedures/resolve_default_bucket.sql @@ -2,6 +2,6 @@ BEGIN; -SELECT assert_function('function_resolution.resolve_default_bucket(uuid, text, uuid, boolean, text)'::regprocedure); +SELECT assert_function('function_resolution.resolve_default_bucket(text, uuid, boolean, text)'::regprocedure); ROLLBACK;