feat(export): add 6 new services_public settings tables to export#1083
Merged
pyramation merged 2 commits intomainfrom May 9, 2026
Merged
feat(export): add 6 new services_public settings tables to export#1083pyramation merged 2 commits intomainfrom
pyramation merged 2 commits intomainfrom
Conversation
Add database_settings, api_settings, rls_settings, cors_settings, pubkey_settings, and webauthn_settings to META_TABLE_CONFIG, META_TABLE_ORDER, exportMeta(), and exportGraphQLMeta(). These tables were added in constructive-db#1060 as part of the unified runtime settings architecture (constructive-planning#812).
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Registers the 6 new
services_publicsettings tables (from constructive-db#1060) in the pgpm export system so they are included during database exports.Tables added:
database_settings,api_settings,rls_settings,cors_settings,pubkey_settings,webauthn_settingsFiles changed (all in
pgpm/export/src/):export-utils.ts— field configs inMETA_TABLE_CONFIG+ entries inMETA_TABLE_ORDERexport-meta.ts—queryAndParse()calls for SQL export flowexport-graphql-meta.ts—queryAndParse()calls for GraphQL export flowBoth export flows already handle missing tables gracefully (
42P01catch in SQL, field-not-found catch in GraphQL), so this is safe to merge before or after constructive-db#1060.Updates since last revision
The field configs for
rls_settings,pubkey_settings, andwebauthn_settingswere updated to match the text→UUID FK conversion in constructive-db#1060 (#816, #817):rls_settings: Schema/function text fields → UUID FK fields (e.g.authenticate_schema→authenticate_schema_id,current_role_fn→current_role_function_id)pubkey_settings:schema→schema_id, function text fields →*_function_iduuid fieldswebauthn_settings: Schema text fields →*_schema_id, table text fields →*_table_id, addeduser_field_iduuid FKdatabase_settings,api_settings, andcors_settingsremain unchanged.Review & Testing Checklist for Human
META_TABLE_CONFIG(e.g.authenticate_function_id,sign_up_with_key_function_id,credentials_table_id) must exactly match the column names in the corresponding deploy.sqlfiles. A mismatch won't cause errors (the dynamic field builder silently skips missing columns) but will cause silent data omission during exports.api_settingsnullable booleans — The DB columns are nullable (booleanwithoutNOT NULL) for inheritance semantics, but the config types them as'boolean'. ConfirmbuildDynamicFields()/mapPgTypeToFieldType()handles nullableboolcolumns correctly (the PGudt_nameisboolregardless of nullability, so this should be fine, but worth a sanity check).Notes
Link to Devin session: https://app.devin.ai/sessions/94a2728a9c414500bead29cbbc829c15
Requested by: @pyramation