@weave-kit/engine 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -1
- package/dist/cli/commands/deploy.js +5 -4
- package/dist/cli/commands/deploy.js.map +1 -1
- package/dist/cli/commands/dev.js +4 -4
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +7 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +3 -2
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/workflow-switch.js +2 -2
- package/dist/cli/commands/workflow-switch.js.map +1 -1
- package/dist/core/storage/diff.d.ts +4 -2
- package/dist/core/storage/diff.d.ts.map +1 -1
- package/dist/core/storage/diff.js +14 -12
- package/dist/core/storage/diff.js.map +1 -1
- package/dist/core/storage/index.d.ts +3 -1
- package/dist/core/storage/index.d.ts.map +1 -1
- package/dist/core/storage/index.js +2 -1
- package/dist/core/storage/index.js.map +1 -1
- package/dist/core/storage/inspect.d.ts +6 -0
- package/dist/core/storage/inspect.d.ts.map +1 -1
- package/dist/core/storage/inspect.js +19 -18
- package/dist/core/storage/inspect.js.map +1 -1
- package/dist/core/storage/link-table.d.ts +3 -2
- package/dist/core/storage/link-table.d.ts.map +1 -1
- package/dist/core/storage/link-table.js +5 -4
- package/dist/core/storage/link-table.js.map +1 -1
- package/dist/core/storage/meta.d.ts +3 -2
- package/dist/core/storage/meta.d.ts.map +1 -1
- package/dist/core/storage/meta.js +5 -4
- package/dist/core/storage/meta.js.map +1 -1
- package/dist/core/storage/migrate.d.ts +8 -0
- package/dist/core/storage/migrate.d.ts.map +1 -1
- package/dist/core/storage/migrate.js +39 -27
- package/dist/core/storage/migrate.js.map +1 -1
- package/dist/core/storage/object-rls.d.ts +2 -0
- package/dist/core/storage/object-rls.d.ts.map +1 -1
- package/dist/core/storage/object-rls.js +4 -3
- package/dist/core/storage/object-rls.js.map +1 -1
- package/dist/core/storage/pool.d.ts +7 -0
- package/dist/core/storage/pool.d.ts.map +1 -1
- package/dist/core/storage/pool.js +9 -0
- package/dist/core/storage/pool.js.map +1 -1
- package/dist/core/storage/record-meta.d.ts +2 -1
- package/dist/core/storage/record-meta.d.ts.map +1 -1
- package/dist/core/storage/record-meta.js +3 -1
- package/dist/core/storage/record-meta.js.map +1 -1
- package/dist/core/storage/schema-scope.d.ts +33 -0
- package/dist/core/storage/schema-scope.d.ts.map +1 -0
- package/dist/core/storage/schema-scope.js +45 -0
- package/dist/core/storage/schema-scope.js.map +1 -0
- package/dist/core/storage/system-tables.d.ts +3 -2
- package/dist/core/storage/system-tables.d.ts.map +1 -1
- package/dist/core/storage/system-tables.js +7 -4
- package/dist/core/storage/system-tables.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/runtime/engine.d.ts +10 -1
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +10 -5
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/git/sync.d.ts +2 -0
- package/dist/runtime/git/sync.d.ts.map +1 -1
- package/dist/runtime/git/sync.js +1 -0
- package/dist/runtime/git/sync.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createPool } from './pool.js';
|
|
1
|
+
export { createPool, searchPathOptions } from './pool.js';
|
|
2
2
|
export { inspectSchema } from './inspect.js';
|
|
3
3
|
export { mapToSchema } from './introspect.js';
|
|
4
4
|
export { buildExpectedTable, diffTable, diffAll, diffRls, diffObjectRls, diffGrants } from './diff.js';
|
|
@@ -13,5 +13,6 @@ export { applyStatements } from './apply.js';
|
|
|
13
13
|
export { sqlLiteral, sqlIdent } from './sql-literals.js';
|
|
14
14
|
export { LINK_TABLE_PREFIX, LINK_IDX_COLUMN, linkTableName, isLinkTable, linkOwnerColumn, linkTargetColumn, multiRelationsOf, buildLinkTable, buildLinkTables, } from './link-table.js';
|
|
15
15
|
export { SYSTEM_TABLES, SYSTEM_TABLE_NAMES, buildSystemTables, systemHardeningStatements } from './system-tables.js';
|
|
16
|
+
export { DEFAULT_SCHEMA_SCOPE, assertSchemaName, createSchemaScope, isScoped, qualifyTable, } from './schema-scope.js';
|
|
16
17
|
export { migrate } from './migrate.js';
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO9C,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvG,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AAOpE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,+BAA+B,EAC/B,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACrH,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -62,6 +62,12 @@ export interface InspectOptions {
|
|
|
62
62
|
* extra queries.
|
|
63
63
|
*/
|
|
64
64
|
detail?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* schema to inspect; undefined = the connection's `current_schema()`. Used to
|
|
67
|
+
* inspect a dedicated system schema (`EngineConfig.systemSchema`) separately
|
|
68
|
+
* from the object schema.
|
|
69
|
+
*/
|
|
70
|
+
schema?: string;
|
|
65
71
|
}
|
|
66
72
|
/** read the current schema of every table in the connection's schema */
|
|
67
73
|
export declare function inspectSchema(pool: Pool, options?: InspectOptions): Promise<Map<string, ActualTable>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/core/storage/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mGAAmG;IACnG,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/C,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/core/storage/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mGAAmG;IACnG,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/C,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wEAAwE;AACxE,wBAAsB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CA2J/G"}
|
|
@@ -9,10 +9,11 @@ const FK_DELETE_ACTIONS = {
|
|
|
9
9
|
/** read the current schema of every table in the connection's schema */
|
|
10
10
|
export async function inspectSchema(pool, options = {}) {
|
|
11
11
|
const tables = new Map();
|
|
12
|
+
const schemaParam = options.schema ?? null;
|
|
12
13
|
const cols = await pool.query(`SELECT table_name, column_name, data_type, is_nullable, column_default,
|
|
13
14
|
udt_name, numeric_precision, numeric_scale, character_maximum_length
|
|
14
15
|
FROM information_schema.columns
|
|
15
|
-
WHERE table_schema = current_schema()
|
|
16
|
+
WHERE table_schema = COALESCE($1::text, current_schema())`, [schemaParam]);
|
|
16
17
|
for (const row of cols.rows) {
|
|
17
18
|
const t = tables.get(row.table_name) ?? {
|
|
18
19
|
name: row.table_name,
|
|
@@ -41,8 +42,8 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
41
42
|
FROM information_schema.table_constraints tc
|
|
42
43
|
JOIN information_schema.key_column_usage kcu
|
|
43
44
|
ON tc.constraint_name = kcu.constraint_name AND tc.constraint_schema = kcu.constraint_schema
|
|
44
|
-
WHERE tc.constraint_type = 'PRIMARY KEY' AND tc.table_schema = current_schema()
|
|
45
|
-
ORDER BY tc.table_name, kcu.ordinal_position
|
|
45
|
+
WHERE tc.constraint_type = 'PRIMARY KEY' AND tc.table_schema = COALESCE($1::text, current_schema())
|
|
46
|
+
ORDER BY tc.table_name, kcu.ordinal_position`, [schemaParam]);
|
|
46
47
|
for (const row of pkRows.rows) {
|
|
47
48
|
tables.get(row.table_name)?.pk.push(row.column_name);
|
|
48
49
|
}
|
|
@@ -59,8 +60,8 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
59
60
|
JOIN pg_attribute a ON a.attrelid = con.conrelid AND a.attnum = k.attnum
|
|
60
61
|
JOIN unnest(con.confkey) WITH ORDINALITY AS fk(attnum, ord) ON fk.ord = k.ord
|
|
61
62
|
JOIN pg_attribute fa ON fa.attrelid = con.confrelid AND fa.attnum = fk.attnum
|
|
62
|
-
WHERE con.contype = 'f' AND n.nspname = current_schema()
|
|
63
|
-
GROUP BY c.relname, rc.relname, con.conname, con.confdeltype
|
|
63
|
+
WHERE con.contype = 'f' AND n.nspname = COALESCE($1::text, current_schema())
|
|
64
|
+
GROUP BY c.relname, rc.relname, con.conname, con.confdeltype`, [schemaParam]);
|
|
64
65
|
for (const row of fkRows.rows) {
|
|
65
66
|
tables.get(row.table_name)?.fks.push({
|
|
66
67
|
columns: row.columns,
|
|
@@ -69,7 +70,7 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
69
70
|
onDelete: FK_DELETE_ACTIONS[row.confdeltype] ?? 'restrict',
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
|
-
const idxRows = await pool.query(`SELECT tablename, indexname FROM pg_indexes WHERE schemaname = current_schema()
|
|
73
|
+
const idxRows = await pool.query(`SELECT tablename, indexname FROM pg_indexes WHERE schemaname = COALESCE($1::text, current_schema())`, [schemaParam]);
|
|
73
74
|
for (const row of idxRows.rows) {
|
|
74
75
|
tables.get(row.tablename)?.indexNames.push(row.indexname);
|
|
75
76
|
}
|
|
@@ -77,7 +78,7 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
77
78
|
const rlsRows = await pool.query(`SELECT c.relname, c.relrowsecurity, r.rolname AS owner
|
|
78
79
|
FROM pg_class c
|
|
79
80
|
JOIN pg_roles r ON c.relowner = r.oid
|
|
80
|
-
WHERE c.relkind = 'r' AND c.relnamespace = current_schema()
|
|
81
|
+
WHERE c.relkind = 'r' AND c.relnamespace = to_regnamespace(COALESCE($1::text, current_schema()))`, [schemaParam]);
|
|
81
82
|
for (const row of rlsRows.rows) {
|
|
82
83
|
const t = tables.get(row.relname);
|
|
83
84
|
if (t !== undefined) {
|
|
@@ -89,7 +90,7 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
89
90
|
FROM pg_policy p
|
|
90
91
|
JOIN pg_class c ON c.oid = p.polrelid
|
|
91
92
|
LEFT JOIN pg_description d ON d.objoid = p.oid AND d.classoid = 'pg_policy'::regclass
|
|
92
|
-
WHERE c.relnamespace = current_schema()
|
|
93
|
+
WHERE c.relnamespace = to_regnamespace(COALESCE($1::text, current_schema()))`, [schemaParam]);
|
|
93
94
|
for (const row of policyRows.rows) {
|
|
94
95
|
const t = tables.get(row.tablename);
|
|
95
96
|
if (t !== undefined) {
|
|
@@ -104,7 +105,7 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
104
105
|
JOIN pg_namespace n ON c.relnamespace = n.oid
|
|
105
106
|
CROSS JOIN LATERAL aclexplode(COALESCE(c.relacl, acldefault('r', c.relowner))) acl
|
|
106
107
|
JOIN pg_roles r ON r.oid = acl.grantee
|
|
107
|
-
WHERE n.nspname = current_schema()
|
|
108
|
+
WHERE n.nspname = COALESCE($1::text, current_schema())`, [schemaParam]);
|
|
108
109
|
for (const row of grantRows.rows) {
|
|
109
110
|
const t = tables.get(row.table_name);
|
|
110
111
|
if (t === undefined)
|
|
@@ -114,7 +115,7 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
114
115
|
(t.selectGrantedTo ??= []).push(row.role);
|
|
115
116
|
}
|
|
116
117
|
if (options.detail === true) {
|
|
117
|
-
await loadDetail(pool, tables);
|
|
118
|
+
await loadDetail(pool, tables, schemaParam);
|
|
118
119
|
}
|
|
119
120
|
return tables;
|
|
120
121
|
}
|
|
@@ -123,15 +124,15 @@ export async function inspectSchema(pool, options = {}) {
|
|
|
123
124
|
* unique constraints, FK on-delete actions). Runs only when `detail` is set so
|
|
124
125
|
* `migrate`/drift checks stay query-lean.
|
|
125
126
|
*/
|
|
126
|
-
async function loadDetail(pool, tables) {
|
|
127
|
+
async function loadDetail(pool, tables, schemaParam) {
|
|
127
128
|
const enumRows = await pool.query(`SELECT c.relname AS table_name, a.attname AS column_name, e.enumlabel AS label
|
|
128
129
|
FROM pg_attribute a
|
|
129
130
|
JOIN pg_class c ON a.attrelid = c.oid
|
|
130
131
|
JOIN pg_namespace n ON c.relnamespace = n.oid
|
|
131
132
|
JOIN pg_type t ON a.atttypid = t.oid
|
|
132
133
|
JOIN pg_enum e ON e.enumtypid = t.oid
|
|
133
|
-
WHERE n.nspname = current_schema() AND a.attnum > 0 AND NOT a.attisdropped
|
|
134
|
-
ORDER BY c.relname, a.attnum, e.enumsortorder
|
|
134
|
+
WHERE n.nspname = COALESCE($1::text, current_schema()) AND a.attnum > 0 AND NOT a.attisdropped
|
|
135
|
+
ORDER BY c.relname, a.attnum, e.enumsortorder`, [schemaParam]);
|
|
135
136
|
for (const row of enumRows.rows) {
|
|
136
137
|
const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
|
|
137
138
|
if (col !== undefined)
|
|
@@ -145,8 +146,8 @@ async function loadDetail(pool, tables) {
|
|
|
145
146
|
JOIN pg_type at ON a.atttypid = at.oid
|
|
146
147
|
JOIN pg_type et ON at.typelem = et.oid
|
|
147
148
|
JOIN pg_enum e ON e.enumtypid = et.oid
|
|
148
|
-
WHERE n.nspname = current_schema() AND a.attnum > 0 AND NOT a.attisdropped
|
|
149
|
-
ORDER BY c.relname, a.attnum, e.enumsortorder
|
|
149
|
+
WHERE n.nspname = COALESCE($1::text, current_schema()) AND a.attnum > 0 AND NOT a.attisdropped
|
|
150
|
+
ORDER BY c.relname, a.attnum, e.enumsortorder`, [schemaParam]);
|
|
150
151
|
for (const row of arrayEnumRows.rows) {
|
|
151
152
|
const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
|
|
152
153
|
if (col === undefined)
|
|
@@ -157,7 +158,7 @@ async function loadDetail(pool, tables) {
|
|
|
157
158
|
const tableComments = await pool.query(`SELECT c.relname AS table_name, obj_description(c.oid, 'pg_class') AS comment
|
|
158
159
|
FROM pg_class c
|
|
159
160
|
JOIN pg_namespace n ON c.relnamespace = n.oid
|
|
160
|
-
WHERE n.nspname = current_schema() AND c.relkind = 'r'
|
|
161
|
+
WHERE n.nspname = COALESCE($1::text, current_schema()) AND c.relkind = 'r'`, [schemaParam]);
|
|
161
162
|
for (const row of tableComments.rows) {
|
|
162
163
|
const t = tables.get(row.table_name);
|
|
163
164
|
if (t !== undefined && row.comment !== null)
|
|
@@ -167,7 +168,7 @@ async function loadDetail(pool, tables) {
|
|
|
167
168
|
FROM pg_class c
|
|
168
169
|
JOIN pg_namespace n ON c.relnamespace = n.oid
|
|
169
170
|
JOIN pg_attribute a ON a.attrelid = c.oid AND a.attnum > 0 AND NOT a.attisdropped
|
|
170
|
-
WHERE n.nspname = current_schema() AND c.relkind = 'r'
|
|
171
|
+
WHERE n.nspname = COALESCE($1::text, current_schema()) AND c.relkind = 'r'`, [schemaParam]);
|
|
171
172
|
for (const row of columnComments.rows) {
|
|
172
173
|
const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
|
|
173
174
|
if (col !== undefined && row.comment !== null)
|
|
@@ -178,7 +179,7 @@ async function loadDetail(pool, tables) {
|
|
|
178
179
|
JOIN pg_class c ON i.indrelid = c.oid
|
|
179
180
|
JOIN pg_namespace n ON c.relnamespace = n.oid
|
|
180
181
|
JOIN pg_attribute a ON a.attrelid = c.oid AND a.attnum = ANY(i.indkey)
|
|
181
|
-
WHERE n.nspname = current_schema() AND i.indisunique AND NOT i.indisprimary AND i.indnkeyatts = 1
|
|
182
|
+
WHERE n.nspname = COALESCE($1::text, current_schema()) AND i.indisunique AND NOT i.indisprimary AND i.indnkeyatts = 1`, [schemaParam]);
|
|
182
183
|
for (const row of uniqueRows.rows) {
|
|
183
184
|
const t = tables.get(row.table_name);
|
|
184
185
|
if (t !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/core/storage/inspect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/core/storage/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FIELD_TYPES, type FieldTypeRegistry, type ObjectDefinition } from '../types/index.js';
|
|
2
2
|
import type { ExpectedTable } from './diff.js';
|
|
3
|
+
import type { SchemaScope } from './schema-scope.js';
|
|
3
4
|
/**
|
|
4
5
|
* Engine-owned many-to-many **link tables** backing `multiRelation` fields.
|
|
5
6
|
*
|
|
@@ -41,7 +42,7 @@ export declare function multiRelationsOf(owner: ObjectDefinition, defs: Readonly
|
|
|
41
42
|
/** the expected (DDL) shape of one multiRelation link table */
|
|
42
43
|
export declare function buildLinkTable(owner: ObjectDefinition, field: Extract<ObjectDefinition['fields'][number], {
|
|
43
44
|
type: typeof FIELD_TYPES.MULTI_RELATION;
|
|
44
|
-
}>, target: ObjectDefinition, registry?: FieldTypeRegistry): ExpectedTable;
|
|
45
|
+
}>, target: ObjectDefinition, registry?: FieldTypeRegistry, scope?: SchemaScope): ExpectedTable;
|
|
45
46
|
/** every link table implied by the given object definitions, in stable order */
|
|
46
|
-
export declare function buildLinkTables(defs: ReadonlyMap<string, ObjectDefinition>, registry?: FieldTypeRegistry): ExpectedTable[];
|
|
47
|
+
export declare function buildLinkTables(defs: ReadonlyMap<string, ObjectDefinition>, registry?: FieldTypeRegistry, scope?: SchemaScope): ExpectedTable[];
|
|
47
48
|
//# sourceMappingURL=link-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-table.d.ts","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAA6C,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"link-table.d.ts","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAA6C,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,qEAAqE;AACrE,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,WAAW,CAAC,cAAc,CAAA;KAAE,CAAC,CAAC;IAChG,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAC1C,qBAAqB,EAAE,CAQzB;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAC5B,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,OAAO,WAAW,CAAC,cAAc,CAAA;CAAE,CAAC,EAC/F,MAAM,EAAE,gBAAgB,EACxB,QAAQ,GAAE,iBAA+C,EACzD,KAAK,CAAC,EAAE,WAAW,GAClB,aAAa,CAoDf;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,QAAQ,GAAE,iBAA+C,EACzD,KAAK,CAAC,EAAE,WAAW,GAClB,aAAa,EAAE,CAQjB"}
|
|
@@ -50,8 +50,9 @@ export function multiRelationsOf(owner, defs) {
|
|
|
50
50
|
return out;
|
|
51
51
|
}
|
|
52
52
|
/** the expected (DDL) shape of one multiRelation link table */
|
|
53
|
-
export function buildLinkTable(owner, field, target, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
53
|
+
export function buildLinkTable(owner, field, target, registry = DEFAULT_FIELD_TYPE_REGISTRY, scope) {
|
|
54
54
|
const name = linkTableName(owner.name, field.name);
|
|
55
|
+
const schema = scope?.systemSchema;
|
|
55
56
|
const ownerPks = primaryFieldsOf(owner);
|
|
56
57
|
const targetPks = primaryFieldsOf(target);
|
|
57
58
|
const ownerCols = ownerPks.map((pk) => ({ pk, column: linkOwnerColumn(pk.name) }));
|
|
@@ -95,14 +96,14 @@ export function buildLinkTable(owner, field, target, registry = DEFAULT_FIELD_TY
|
|
|
95
96
|
const indexes = [
|
|
96
97
|
{ name: `${name}_target_idx`, method: 'btree', columns: targetCols.map((c) => c.column) },
|
|
97
98
|
];
|
|
98
|
-
return { name, columns, fks, indexes, uniques: [] };
|
|
99
|
+
return { name, ...(schema === undefined ? {} : { schema }), columns, fks, indexes, uniques: [] };
|
|
99
100
|
}
|
|
100
101
|
/** every link table implied by the given object definitions, in stable order */
|
|
101
|
-
export function buildLinkTables(defs, registry = DEFAULT_FIELD_TYPE_REGISTRY) {
|
|
102
|
+
export function buildLinkTables(defs, registry = DEFAULT_FIELD_TYPE_REGISTRY, scope) {
|
|
102
103
|
const tables = [];
|
|
103
104
|
for (const owner of defs.values()) {
|
|
104
105
|
for (const { field, target } of multiRelationsOf(owner, defs)) {
|
|
105
|
-
tables.push(buildLinkTable(owner, field, target, registry));
|
|
106
|
+
tables.push(buildLinkTable(owner, field, target, registry, scope));
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
return tables;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-table.js","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,WAAW,EACX,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"link-table.js","sourceRoot":"","sources":["../../../src/core/storage/link-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { SqlQueryable } from './queryable.js';
|
|
2
|
+
import { type SchemaScope } from './schema-scope.js';
|
|
2
3
|
/**
|
|
3
4
|
* Upsert a meta record (e.g. `schema.applied.<object>` -> applied_at).
|
|
4
5
|
* The table is created by `weave migrate` — the runtime never runs DDL.
|
|
5
6
|
* Takes any {@link SqlQueryable} so it can run inside the deploy transaction.
|
|
6
7
|
*/
|
|
7
|
-
export declare function setMeta(db: SqlQueryable, key: string, value: string): Promise<void>;
|
|
8
|
+
export declare function setMeta(db: SqlQueryable, key: string, value: string, scope?: SchemaScope): Promise<void>;
|
|
8
9
|
/** read a meta value (null when the key is absent) */
|
|
9
|
-
export declare function getMeta(db: SqlQueryable, key: string): Promise<string | null>;
|
|
10
|
+
export declare function getMeta(db: SqlQueryable, key: string, scope?: SchemaScope): Promise<string | null>;
|
|
10
11
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/core/storage/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/core/storage/meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAInE;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAM9G;AAED,sDAAsD;AACtD,wBAAsB,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxG"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
+
import { qualifyTable } from './schema-scope.js';
|
|
1
2
|
const META_TABLE = 'weavekit_meta';
|
|
2
3
|
/**
|
|
3
4
|
* Upsert a meta record (e.g. `schema.applied.<object>` -> applied_at).
|
|
4
5
|
* The table is created by `weave migrate` — the runtime never runs DDL.
|
|
5
6
|
* Takes any {@link SqlQueryable} so it can run inside the deploy transaction.
|
|
6
7
|
*/
|
|
7
|
-
export async function setMeta(db, key, value) {
|
|
8
|
-
await db.query(`INSERT INTO ${META_TABLE} (key, value) VALUES ($1, $2)
|
|
8
|
+
export async function setMeta(db, key, value, scope) {
|
|
9
|
+
await db.query(`INSERT INTO ${qualifyTable(META_TABLE, scope)} (key, value) VALUES ($1, $2)
|
|
9
10
|
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value`, [key, value]);
|
|
10
11
|
}
|
|
11
12
|
/** read a meta value (null when the key is absent) */
|
|
12
|
-
export async function getMeta(db, key) {
|
|
13
|
-
const res = await db.query(`SELECT value FROM ${META_TABLE} WHERE key = $1`, [key]);
|
|
13
|
+
export async function getMeta(db, key, scope) {
|
|
14
|
+
const res = await db.query(`SELECT value FROM ${qualifyTable(META_TABLE, scope)} WHERE key = $1`, [key]);
|
|
14
15
|
return res.rows[0]?.value ?? null;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/core/storage/meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../src/core/storage/meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAEnE,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAgB,EAAE,GAAW,EAAE,KAAa,EAAE,KAAmB;IAC7F,MAAM,EAAE,CAAC,KAAK,CACZ,eAAe,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC;4DACU,EACxD,CAAC,GAAG,EAAE,KAAK,CAAC,CACb,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAgB,EAAE,GAAW,EAAE,KAAmB;IAC9E,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzG,OAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAmC,EAAE,KAAK,IAAI,IAAI,CAAC;AACvE,CAAC"}
|
|
@@ -24,6 +24,14 @@ export interface MigrateOptions {
|
|
|
24
24
|
objectRls?: {
|
|
25
25
|
role: string;
|
|
26
26
|
};
|
|
27
|
+
/**
|
|
28
|
+
* dedicated schema for the engine's own tables (`weavekit_*` system tables,
|
|
29
|
+
* `weavekit_record__<object>` side tables, `weavekit_m2m__*` link tables).
|
|
30
|
+
* Default undefined = create them in the connection's `current_schema()`
|
|
31
|
+
* (legacy). When set, `migrate` creates the schema and qualifies those tables;
|
|
32
|
+
* customer/identity object tables stay in the object schema.
|
|
33
|
+
*/
|
|
34
|
+
systemSchema?: string;
|
|
27
35
|
/**
|
|
28
36
|
* Run additional writes in the SAME transaction as the DDL (after DDL +
|
|
29
37
|
* `schema.applied.*` meta + workflow-definition registration, before COMMIT).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAuBrC,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvB;;;;OAIG;IACH,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sDAAsD;IACtD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA4HD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAsK9G"}
|
|
@@ -6,10 +6,11 @@ import { buildExpectedTable, diffAll, diffRls, diffTable } from './diff.js';
|
|
|
6
6
|
import { inspectSchema } from './inspect.js';
|
|
7
7
|
import { buildLinkTables } from './link-table.js';
|
|
8
8
|
import { setMeta } from './meta.js';
|
|
9
|
-
import { createPool } from './pool.js';
|
|
9
|
+
import { createPool, searchPathOptions } from './pool.js';
|
|
10
10
|
import { buildRecordMetaTable } from './record-meta.js';
|
|
11
11
|
import { sqlIdent, sqlLiteral } from './sql-literals.js';
|
|
12
12
|
import { SYSTEM_TABLES, buildSystemTables, systemHardeningStatements } from './system-tables.js';
|
|
13
|
+
import { createSchemaScope, qualifyTable } from './schema-scope.js';
|
|
13
14
|
import { isSafeRlsRole } from '../rbac/index.js';
|
|
14
15
|
import { planObjectRls } from './object-rls.js';
|
|
15
16
|
/**
|
|
@@ -95,18 +96,23 @@ async function provisionRlsRole(pool, role, warnings) {
|
|
|
95
96
|
return true;
|
|
96
97
|
}
|
|
97
98
|
/** object-path RLS DDL (role provisioned first; skipped tables become warnings) */
|
|
98
|
-
async function objectRlsStatements(pool, registry, actual, objectRls, warnings) {
|
|
99
|
+
async function objectRlsStatements(pool, registry, actual, objectRls, warnings, scope) {
|
|
99
100
|
if (objectRls === undefined)
|
|
100
101
|
return [];
|
|
101
102
|
if (!(await provisionRlsRole(pool, objectRls.role, warnings)))
|
|
102
103
|
return [];
|
|
103
104
|
const { rows } = await pool.query('SELECT current_user AS u');
|
|
104
105
|
const owner = String(rows[0].u);
|
|
105
|
-
const plan = planObjectRls(registry, actual, objectRls.role, { owner });
|
|
106
|
+
const plan = planObjectRls(registry, actual, objectRls.role, { owner, scope });
|
|
106
107
|
for (const name of plan.skipped) {
|
|
107
108
|
warnings.push(`skip object RLS on "${name}": existing table needs "alter": true and ownership by ${owner}`);
|
|
108
109
|
}
|
|
109
|
-
|
|
110
|
+
const stmts = [...plan.statements];
|
|
111
|
+
// the RLS role must be able to resolve engine tables that live in the system schema
|
|
112
|
+
if (scope?.systemSchema !== undefined) {
|
|
113
|
+
stmts.unshift(`GRANT USAGE ON SCHEMA ${q(scope.systemSchema)} TO ${sqlIdent(objectRls.role)};`);
|
|
114
|
+
}
|
|
115
|
+
return stmts;
|
|
110
116
|
}
|
|
111
117
|
/**
|
|
112
118
|
* True when `PUBLIC` still holds `TRUNCATE` on `table`, i.e. the append-only
|
|
@@ -140,10 +146,14 @@ export async function migrate(registry, options = {}) {
|
|
|
140
146
|
throw new Error('DATABASE_URL is not set');
|
|
141
147
|
const dryRun = options.dryRun ?? false;
|
|
142
148
|
const warnings = [];
|
|
143
|
-
const
|
|
149
|
+
const scope = createSchemaScope(options.systemSchema);
|
|
150
|
+
const pool = createPool(url, searchPathOptions(scope.systemSchema));
|
|
144
151
|
try {
|
|
145
152
|
const defs = new Map([...systemObjects(), ...registry.list()].map((d) => [d.name, d]));
|
|
146
|
-
const
|
|
153
|
+
const objectActual = await inspectSchema(pool);
|
|
154
|
+
const systemActual = scope.systemSchema === undefined ? objectActual : await inspectSchema(pool, { schema: scope.systemSchema });
|
|
155
|
+
// merged view for object-RLS planning (spans object + system tables)
|
|
156
|
+
const actual = systemActual === objectActual ? objectActual : new Map([...objectActual, ...systemActual]);
|
|
147
157
|
if (options.rls !== undefined && !isSafeRlsRole(options.rls.role)) {
|
|
148
158
|
throw new Error(`invalid RLS role name "${options.rls.role}"`);
|
|
149
159
|
}
|
|
@@ -154,40 +164,40 @@ export async function migrate(registry, options = {}) {
|
|
|
154
164
|
// that opted in via `alter: true` are diffed against their existing table
|
|
155
165
|
// too (additive ALTER DDL only)
|
|
156
166
|
const expected = [...defs.values()]
|
|
157
|
-
.filter((d) => d.alter === true ||
|
|
167
|
+
.filter((d) => d.alter === true || objectActual.get(d.name) === undefined)
|
|
158
168
|
.map((d) => buildExpectedTable(d, defs, registry.fieldTypes));
|
|
159
|
-
const statements = diffAll(expected,
|
|
169
|
+
const statements = diffAll(expected, objectActual);
|
|
160
170
|
// native enum types must exist before the tables that reference them
|
|
161
171
|
const enumStatements = await buildEnumStatements(pool, defs, new Set(expected.map((t) => t.name)));
|
|
162
172
|
// engine-owned per-object record metadata side tables: one per object (R1),
|
|
163
173
|
// created idempotently for every object regardless of `alter`/ownership —
|
|
164
174
|
// they never touch the customer's own table
|
|
165
|
-
const metaTables = [...defs.keys()].map((name) => buildRecordMetaTable(name));
|
|
166
|
-
const metaStatements = diffAll(metaTables,
|
|
175
|
+
const metaTables = [...defs.keys()].map((name) => buildRecordMetaTable(name, scope));
|
|
176
|
+
const metaStatements = diffAll(metaTables, systemActual);
|
|
167
177
|
// engine-owned many-to-many link tables for every `multiRelation` field:
|
|
168
178
|
// one per (object, field), created idempotently regardless of `alter`.
|
|
169
|
-
const linkTables = buildLinkTables(defs, registry.fieldTypes);
|
|
170
|
-
const linkStatements = diffAll(linkTables,
|
|
179
|
+
const linkTables = buildLinkTables(defs, registry.fieldTypes, scope);
|
|
180
|
+
const linkStatements = diffAll(linkTables, systemActual);
|
|
171
181
|
// engine-owned system tables (metadata cache / seq / audit / approvals /
|
|
172
182
|
// timers / counters) + their ACL hardening: provisioned here (and only
|
|
173
183
|
// here) so the runtime never runs DDL and can be least-privileged.
|
|
174
184
|
// one-time reshape of the legacy workflow timer table
|
|
175
185
|
// (id/state/workflow_version -> record_key/node_id): engine-owned and
|
|
176
186
|
// transient, so drop+recreate is safe (there are no users yet).
|
|
177
|
-
const legacyTimers =
|
|
187
|
+
const legacyTimers = systemActual.get(SYSTEM_TABLES.WORKFLOW_TIMERS);
|
|
178
188
|
const dropLegacyTimers = legacyTimers !== undefined &&
|
|
179
189
|
legacyTimers.columns.some((c) => c.name === 'state') &&
|
|
180
190
|
!legacyTimers.columns.some((c) => c.name === 'record_key');
|
|
181
191
|
if (dropLegacyTimers)
|
|
182
|
-
|
|
183
|
-
const systemStatements = diffAll(buildSystemTables(),
|
|
184
|
-
const hardening = (await publicHasTruncate(pool, SYSTEM_TABLES.AUDIT)) ? systemHardeningStatements() : [];
|
|
192
|
+
systemActual.delete(SYSTEM_TABLES.WORKFLOW_TIMERS);
|
|
193
|
+
const systemStatements = diffAll(buildSystemTables(scope), systemActual);
|
|
194
|
+
const hardening = (await publicHasTruncate(pool, qualifyTable(SYSTEM_TABLES.AUDIT, scope))) ? systemHardeningStatements(scope) : [];
|
|
185
195
|
// existing tables are read-only unless the object opted in (`alter: true`):
|
|
186
196
|
// verify every declared field is a live column (prevents REST/MCP pointing
|
|
187
197
|
// at ghost columns). With `alter: true`, missing fields become ADD COLUMN
|
|
188
198
|
// instead of throwing.
|
|
189
199
|
for (const def of defs.values()) {
|
|
190
|
-
const actualTable =
|
|
200
|
+
const actualTable = objectActual.get(def.name);
|
|
191
201
|
if (actualTable === undefined)
|
|
192
202
|
continue; // new object, handled above
|
|
193
203
|
const cols = new Set(actualTable.columns.map((c) => c.name));
|
|
@@ -210,7 +220,7 @@ export async function migrate(registry, options = {}) {
|
|
|
210
220
|
}
|
|
211
221
|
}
|
|
212
222
|
}
|
|
213
|
-
const applied = expected.filter((t) => diffTable(t,
|
|
223
|
+
const applied = expected.filter((t) => diffTable(t, objectActual.get(t.name)).length > 0).map((t) => t.name);
|
|
214
224
|
// row-level security for the restricted-SQL role: provision the role
|
|
215
225
|
// (non-transactional) then diff the policy against the live RLS state.
|
|
216
226
|
// New tables always; existing tables only under `alter` and when the
|
|
@@ -223,7 +233,7 @@ export async function migrate(registry, options = {}) {
|
|
|
223
233
|
const { rows } = await pool.query('SELECT current_user AS u');
|
|
224
234
|
const currentUser = String(rows[0].u);
|
|
225
235
|
for (const def of registry.list()) {
|
|
226
|
-
const actualTable =
|
|
236
|
+
const actualTable = objectActual.get(def.name);
|
|
227
237
|
const applies = actualTable === undefined || (def.alter === true && actualTable.owner === currentUser);
|
|
228
238
|
if (!applies) {
|
|
229
239
|
if (actualTable !== undefined) {
|
|
@@ -238,21 +248,23 @@ export async function migrate(registry, options = {}) {
|
|
|
238
248
|
// ever granted, a second layer behind the sql-gate. The engine runs as
|
|
239
249
|
// the owner and bypasses RLS, so its own reads are unaffected.
|
|
240
250
|
for (const table of linkTables) {
|
|
241
|
-
if (
|
|
242
|
-
rlsStatements.push(`ALTER TABLE ${
|
|
251
|
+
if (systemActual.get(table.name)?.rlsEnabled !== true) {
|
|
252
|
+
rlsStatements.push(`ALTER TABLE ${qualifyTable(table.name, scope)} ENABLE ROW LEVEL SECURITY;`);
|
|
243
253
|
}
|
|
244
254
|
}
|
|
245
255
|
}
|
|
246
256
|
}
|
|
257
|
+
const sysSchema = scope.systemSchema;
|
|
247
258
|
const allStatements = [
|
|
259
|
+
...(sysSchema === undefined ? [] : [`CREATE SCHEMA IF NOT EXISTS ${q(sysSchema)};`]),
|
|
248
260
|
...enumStatements,
|
|
249
|
-
...(dropLegacyTimers ? [`DROP TABLE ${
|
|
261
|
+
...(dropLegacyTimers ? [`DROP TABLE ${qualifyTable(SYSTEM_TABLES.WORKFLOW_TIMERS, scope)};`] : []),
|
|
250
262
|
...statements,
|
|
251
263
|
...metaStatements,
|
|
252
264
|
...linkStatements,
|
|
253
265
|
...systemStatements,
|
|
254
266
|
...rlsStatements,
|
|
255
|
-
...(await objectRlsStatements(pool, registry, actual, options.objectRls, warnings)),
|
|
267
|
+
...(await objectRlsStatements(pool, registry, actual, options.objectRls, warnings, scope)),
|
|
256
268
|
...hardening,
|
|
257
269
|
];
|
|
258
270
|
// One transaction for DDL + `schema.applied.*` meta + workflow-definition
|
|
@@ -267,8 +279,8 @@ export async function migrate(registry, options = {}) {
|
|
|
267
279
|
await applyStatementsOn(client, allStatements);
|
|
268
280
|
const ts = new Date().toISOString();
|
|
269
281
|
for (const name of applied)
|
|
270
|
-
await setMeta(client, `schema.applied.${name}`, ts);
|
|
271
|
-
await registerWorkflowDefinitions(client, defs);
|
|
282
|
+
await setMeta(client, `schema.applied.${name}`, ts, scope);
|
|
283
|
+
await registerWorkflowDefinitions(client, defs, scope);
|
|
272
284
|
if (options.onCommit !== undefined)
|
|
273
285
|
await options.onCommit(client);
|
|
274
286
|
await client.query('COMMIT');
|
|
@@ -293,8 +305,8 @@ export async function migrate(registry, options = {}) {
|
|
|
293
305
|
* `version_seq` is a monotonic display/switch ordinal. Never rewrites or drops
|
|
294
306
|
* an existing row (append-only revision history for instance pinning).
|
|
295
307
|
*/
|
|
296
|
-
async function registerWorkflowDefinitions(db, defs) {
|
|
297
|
-
const table =
|
|
308
|
+
async function registerWorkflowDefinitions(db, defs, scope) {
|
|
309
|
+
const table = qualifyTable(SYSTEM_TABLES.WORKFLOW_DEFINITIONS, scope);
|
|
298
310
|
for (const def of defs.values()) {
|
|
299
311
|
if (def.workflow === undefined || def.workflowHash === undefined)
|
|
300
312
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/core/storage/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ObjectRegistry } from '../object/index.js';
|
|
2
2
|
import type { ActualTable } from './inspect.js';
|
|
3
|
+
import type { SchemaScope } from './schema-scope.js';
|
|
3
4
|
export interface ObjectRlsPlan {
|
|
4
5
|
statements: string[];
|
|
5
6
|
/** objects whose existing table cannot take RLS (not opted into `alter`, or not owned by the migrating role) */
|
|
@@ -19,5 +20,6 @@ export interface ObjectRlsPlan {
|
|
|
19
20
|
*/
|
|
20
21
|
export declare function planObjectRls(registry: ObjectRegistry, actual: ReadonlyMap<string, ActualTable>, role: string, options?: {
|
|
21
22
|
owner?: string;
|
|
23
|
+
scope?: SchemaScope;
|
|
22
24
|
}): ObjectRlsPlan;
|
|
23
25
|
//# sourceMappingURL=object-rls.d.ts.map
|