Skip to content

Commit bab1bbe

Browse files
authored
Merge pull request #57 from constructive-io/feat/upstream-constructive-db-changes
feat: upstream constructive-db changes to pgpm-modules
2 parents 109293d + 26f6c04 commit bab1bbe

7 files changed

Lines changed: 72 additions & 7 deletions

File tree

packages/metaschema-modules/__tests__/__snapshots__/modules.test.ts.snap

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ exports[`db_meta_modules should have all expected module tables 1`] = `
1818
"permissions_module",
1919
"phone_numbers_module",
2020
"profiles_module",
21+
"rate_limits_module",
2122
"rls_module",
2223
"secrets_module",
2324
"sessions_module",
@@ -31,8 +32,8 @@ exports[`db_meta_modules should have all expected module tables 1`] = `
3132

3233
exports[`db_meta_modules should verify all module tables exist in metaschema_modules_public schema 1`] = `
3334
{
34-
"moduleTablesCount": 22,
35-
"totalTables": 28,
35+
"moduleTablesCount": 23,
36+
"totalTables": 29,
3637
}
3738
`;
3839

@@ -87,13 +88,13 @@ exports[`db_meta_modules should verify emails_module table structure 1`] = `
8788

8889
exports[`db_meta_modules should verify module table structures have database_id foreign keys 1`] = `
8990
{
90-
"constraintCount": 64152,
91+
"constraintCount": 69575,
9192
}
9293
`;
9394

9495
exports[`db_meta_modules should verify module tables have proper foreign key relationships 1`] = `
9596
{
96-
"constraintCount": 92266,
97+
"constraintCount": 99730,
9798
"foreignTables": [
9899
"database",
99100
"field",
@@ -167,7 +168,7 @@ exports[`db_meta_modules should verify sessions_module table structure 1`] = `
167168
"is_nullable": "NO",
168169
},
169170
{
170-
"column_default": "'app_auth_settings'::text",
171+
"column_default": "'app_settings_auth'::text",
171172
"column_name": "auth_settings_table",
172173
"data_type": "text",
173174
"is_nullable": "NO",
@@ -180,7 +181,7 @@ exports[`db_meta_modules should verify specific module table column defaults 1`]
180181
{
181182
"sessionsDefaults": [
182183
{
183-
"column_default": "'app_auth_settings'::text",
184+
"column_default": "'app_settings_auth'::text",
184185
"column_name": "auth_settings_table",
185186
},
186187
{
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-- Deploy schemas/metaschema_modules_public/tables/rate_limits_module/table to pg
2+
3+
-- requires: schemas/metaschema_modules_public/schema
4+
5+
BEGIN;
6+
7+
CREATE TABLE metaschema_modules_public.rate_limits_module (
8+
id uuid PRIMARY KEY DEFAULT uuidv7(),
9+
database_id uuid NOT NULL,
10+
11+
--
12+
schema_id uuid NOT NULL DEFAULT uuid_nil(),
13+
rate_limit_settings_table_id uuid NOT NULL DEFAULT uuid_nil(),
14+
ip_rate_limits_table_id uuid NOT NULL DEFAULT uuid_nil(),
15+
rate_limits_table_id uuid NOT NULL DEFAULT uuid_nil(),
16+
17+
rate_limit_settings_table text NOT NULL DEFAULT 'app_settings_rate_limit',
18+
ip_rate_limits_table text NOT NULL DEFAULT 'auth_ip_rate_limits',
19+
rate_limits_table text NOT NULL DEFAULT 'auth_rate_limits',
20+
--
21+
22+
CONSTRAINT db_fkey FOREIGN KEY (database_id) REFERENCES metaschema_public.database (id) ON DELETE CASCADE,
23+
CONSTRAINT schema_fkey FOREIGN KEY (schema_id) REFERENCES metaschema_public.schema (id) ON DELETE CASCADE,
24+
CONSTRAINT rate_limit_settings_table_fkey FOREIGN KEY (rate_limit_settings_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE,
25+
CONSTRAINT ip_rate_limits_table_fkey FOREIGN KEY (ip_rate_limits_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE,
26+
CONSTRAINT rate_limits_table_fkey FOREIGN KEY (rate_limits_table_id) REFERENCES metaschema_public.table (id) ON DELETE CASCADE,
27+
28+
--
29+
CONSTRAINT rate_limits_module_database_id_uniq UNIQUE(database_id)
30+
);
31+
32+
CREATE INDEX rate_limits_module_database_id_idx ON metaschema_modules_public.rate_limits_module ( database_id );
33+
34+
COMMENT ON CONSTRAINT rate_limit_settings_table_fkey
35+
ON metaschema_modules_public.rate_limits_module IS E'@fieldName rateLimitSettingsTableByRateLimitSettingsTableId';
36+
COMMENT ON CONSTRAINT ip_rate_limits_table_fkey
37+
ON metaschema_modules_public.rate_limits_module IS E'@fieldName ipRateLimitsTableByIpRateLimitsTableId';
38+
COMMENT ON CONSTRAINT rate_limits_table_fkey
39+
ON metaschema_modules_public.rate_limits_module IS E'@fieldName rateLimitsTableByRateLimitsTableId';
40+
41+
COMMIT;

packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/sessions_module/table.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ CREATE TABLE metaschema_modules_public.sessions_module (
1818
sessions_default_expiration interval NOT NULL DEFAULT '30 days'::interval,
1919
sessions_table text NOT NULL DEFAULT 'sessions',
2020
session_credentials_table text NOT NULL DEFAULT 'session_credentials',
21-
auth_settings_table text NOT NULL DEFAULT 'app_auth_settings',
21+
auth_settings_table text NOT NULL DEFAULT 'app_settings_auth',
2222
--
2323

2424
CONSTRAINT db_fkey FOREIGN KEY (database_id) REFERENCES metaschema_public.database (id) ON DELETE CASCADE,

packages/metaschema-modules/deploy/schemas/metaschema_modules_public/tables/storage_module/table.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ CREATE TABLE metaschema_modules_public.storage_module (
2525
-- Entity table for RLS (users table, since users and orgs share it)
2626
entity_table_id uuid NULL,
2727

28+
-- S3 connection config (NULL = use global env/plugin defaults)
29+
endpoint text NULL, -- S3-compatible API endpoint URL (MinIO, R2, DO Spaces, GCS, etc.)
30+
public_url_prefix text NULL, -- Public URL prefix for generating download URLs (e.g., CDN domain)
31+
provider text NULL, -- Storage provider type: 'minio', 's3', 'gcs', etc.
32+
33+
-- CORS configuration (NULL = use plugin defaults)
34+
allowed_origins text[] NULL, -- Default CORS origins for all buckets in this database (e.g., ARRAY['https://app.example.com']). ['*'] = open/CDN mode.
35+
2836
-- Per-database configurable settings (NULL = use plugin defaults)
2937
upload_url_expiry_seconds integer NULL, -- Presigned PUT URL expiry (default: 900 = 15 min)
3038
download_url_expiry_seconds integer NULL, -- Presigned GET URL expiry (default: 3600 = 1 hour)

packages/metaschema-modules/pgpm.plan

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,4 @@ schemas/metaschema_modules_public/tables/blueprint_template/table [schemas/metas
3636
schemas/metaschema_modules_public/tables/blueprint/table [schemas/metaschema_modules_public/schema schemas/metaschema_modules_public/tables/blueprint_template/table] 2026-03-20T00:00:01Z Constructive <developers@constructive.io> # add blueprint table for owned executable blueprints
3737
schemas/metaschema_modules_public/tables/blueprint_construction/table [schemas/metaschema_modules_public/schema schemas/metaschema_modules_public/tables/blueprint/table] 2026-03-31T00:00:00Z Constructive <developers@constructive.io> # add blueprint_construction table for construction state tracking
3838
schemas/metaschema_modules_public/tables/storage_module/table [schemas/metaschema_modules_public/schema] 2026-03-24T00:00:00Z devin <devin@cognition.ai> # add storage_module config table for files and buckets
39+
schemas/metaschema_modules_public/tables/rate_limits_module/table [schemas/metaschema_modules_public/schema] 2026-04-15T00:00:00Z devin <devin@cognition.ai> # add rate_limits_module for centralized throttle configuration
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Revert schemas/metaschema_modules_public/tables/rate_limits_module/table from pg
2+
3+
BEGIN;
4+
5+
DROP TABLE metaschema_modules_public.rate_limits_module;
6+
7+
COMMIT;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Verify schemas/metaschema_modules_public/tables/rate_limits_module/table on pg
2+
3+
BEGIN;
4+
5+
SELECT verify_table ('metaschema_modules_public.rate_limits_module');
6+
7+
ROLLBACK;

0 commit comments

Comments
 (0)