@weave-kit/engine 1.4.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.
Files changed (182) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/README.md +15 -8
  3. package/dist/adapters/graphql/resolvers.d.ts +3 -2
  4. package/dist/adapters/graphql/resolvers.d.ts.map +1 -1
  5. package/dist/adapters/graphql/resolvers.js +1 -0
  6. package/dist/adapters/graphql/resolvers.js.map +1 -1
  7. package/dist/adapters/graphql/schema.d.ts.map +1 -1
  8. package/dist/adapters/graphql/schema.js +11 -1
  9. package/dist/adapters/graphql/schema.js.map +1 -1
  10. package/dist/adapters/mcp/generate.d.ts +0 -1
  11. package/dist/adapters/mcp/generate.d.ts.map +1 -1
  12. package/dist/adapters/mcp/generate.js +2 -12
  13. package/dist/adapters/mcp/generate.js.map +1 -1
  14. package/dist/adapters/mcp/tools.d.ts.map +1 -1
  15. package/dist/adapters/mcp/tools.js +2 -0
  16. package/dist/adapters/mcp/tools.js.map +1 -1
  17. package/dist/adapters/openapi/document.d.ts.map +1 -1
  18. package/dist/adapters/openapi/document.js +4 -3
  19. package/dist/adapters/openapi/document.js.map +1 -1
  20. package/dist/adapters/rest/plugin.d.ts.map +1 -1
  21. package/dist/adapters/rest/plugin.js +8 -1
  22. package/dist/adapters/rest/plugin.js.map +1 -1
  23. package/dist/cli/commands/deploy.d.ts.map +1 -1
  24. package/dist/cli/commands/deploy.js +8 -4
  25. package/dist/cli/commands/deploy.js.map +1 -1
  26. package/dist/cli/commands/dev.js +4 -4
  27. package/dist/cli/commands/dev.js.map +1 -1
  28. package/dist/cli/commands/doctor.d.ts.map +1 -1
  29. package/dist/cli/commands/doctor.js +69 -2
  30. package/dist/cli/commands/doctor.js.map +1 -1
  31. package/dist/cli/commands/migrate.d.ts.map +1 -1
  32. package/dist/cli/commands/migrate.js +6 -2
  33. package/dist/cli/commands/migrate.js.map +1 -1
  34. package/dist/cli/commands/workflow-switch.js +2 -2
  35. package/dist/cli/commands/workflow-switch.js.map +1 -1
  36. package/dist/cli/project-types/manifest.d.ts +7 -0
  37. package/dist/cli/project-types/manifest.d.ts.map +1 -1
  38. package/dist/cli/project-types/manifest.js +4 -0
  39. package/dist/cli/project-types/manifest.js.map +1 -1
  40. package/dist/cli/scaffold.d.ts.map +1 -1
  41. package/dist/cli/scaffold.js +33 -7
  42. package/dist/cli/scaffold.js.map +1 -1
  43. package/dist/core/api/params.d.ts.map +1 -1
  44. package/dist/core/api/params.js +3 -0
  45. package/dist/core/api/params.js.map +1 -1
  46. package/dist/core/api/types.d.ts +4 -1
  47. package/dist/core/api/types.d.ts.map +1 -1
  48. package/dist/core/i18n/ar.d.ts.map +1 -1
  49. package/dist/core/i18n/ar.js +1 -0
  50. package/dist/core/i18n/ar.js.map +1 -1
  51. package/dist/core/i18n/de.d.ts.map +1 -1
  52. package/dist/core/i18n/de.js +1 -0
  53. package/dist/core/i18n/de.js.map +1 -1
  54. package/dist/core/i18n/en.d.ts +1 -0
  55. package/dist/core/i18n/en.d.ts.map +1 -1
  56. package/dist/core/i18n/en.js +1 -0
  57. package/dist/core/i18n/en.js.map +1 -1
  58. package/dist/core/i18n/es.d.ts.map +1 -1
  59. package/dist/core/i18n/es.js +1 -0
  60. package/dist/core/i18n/es.js.map +1 -1
  61. package/dist/core/i18n/fr.d.ts.map +1 -1
  62. package/dist/core/i18n/fr.js +1 -0
  63. package/dist/core/i18n/fr.js.map +1 -1
  64. package/dist/core/i18n/hi.d.ts.map +1 -1
  65. package/dist/core/i18n/hi.js +1 -0
  66. package/dist/core/i18n/hi.js.map +1 -1
  67. package/dist/core/i18n/id.d.ts.map +1 -1
  68. package/dist/core/i18n/id.js +1 -0
  69. package/dist/core/i18n/id.js.map +1 -1
  70. package/dist/core/i18n/ja.d.ts.map +1 -1
  71. package/dist/core/i18n/ja.js +1 -0
  72. package/dist/core/i18n/ja.js.map +1 -1
  73. package/dist/core/i18n/ko.d.ts.map +1 -1
  74. package/dist/core/i18n/ko.js +1 -0
  75. package/dist/core/i18n/ko.js.map +1 -1
  76. package/dist/core/i18n/pt.d.ts.map +1 -1
  77. package/dist/core/i18n/pt.js +1 -0
  78. package/dist/core/i18n/pt.js.map +1 -1
  79. package/dist/core/i18n/ru.d.ts.map +1 -1
  80. package/dist/core/i18n/ru.js +1 -0
  81. package/dist/core/i18n/ru.js.map +1 -1
  82. package/dist/core/i18n/vi.d.ts.map +1 -1
  83. package/dist/core/i18n/vi.js +1 -0
  84. package/dist/core/i18n/vi.js.map +1 -1
  85. package/dist/core/i18n/zh-hant.d.ts.map +1 -1
  86. package/dist/core/i18n/zh-hant.js +1 -0
  87. package/dist/core/i18n/zh-hant.js.map +1 -1
  88. package/dist/core/i18n/zh.d.ts.map +1 -1
  89. package/dist/core/i18n/zh.js +1 -0
  90. package/dist/core/i18n/zh.js.map +1 -1
  91. package/dist/core/rbac/index.d.ts +1 -1
  92. package/dist/core/rbac/index.d.ts.map +1 -1
  93. package/dist/core/rbac/index.js +1 -1
  94. package/dist/core/rbac/index.js.map +1 -1
  95. package/dist/core/rbac/rls.d.ts +34 -0
  96. package/dist/core/rbac/rls.d.ts.map +1 -1
  97. package/dist/core/rbac/rls.js +110 -0
  98. package/dist/core/rbac/rls.js.map +1 -1
  99. package/dist/core/storage/diff.d.ts +11 -0
  100. package/dist/core/storage/diff.d.ts.map +1 -1
  101. package/dist/core/storage/diff.js +56 -12
  102. package/dist/core/storage/diff.js.map +1 -1
  103. package/dist/core/storage/index.d.ts +5 -2
  104. package/dist/core/storage/index.d.ts.map +1 -1
  105. package/dist/core/storage/index.js +4 -2
  106. package/dist/core/storage/index.js.map +1 -1
  107. package/dist/core/storage/inspect.d.ts +10 -0
  108. package/dist/core/storage/inspect.d.ts.map +1 -1
  109. package/dist/core/storage/inspect.js +33 -24
  110. package/dist/core/storage/inspect.js.map +1 -1
  111. package/dist/core/storage/link-table.d.ts +3 -2
  112. package/dist/core/storage/link-table.d.ts.map +1 -1
  113. package/dist/core/storage/link-table.js +5 -4
  114. package/dist/core/storage/link-table.js.map +1 -1
  115. package/dist/core/storage/meta.d.ts +3 -2
  116. package/dist/core/storage/meta.d.ts.map +1 -1
  117. package/dist/core/storage/meta.js +5 -4
  118. package/dist/core/storage/meta.js.map +1 -1
  119. package/dist/core/storage/migrate.d.ts +16 -0
  120. package/dist/core/storage/migrate.d.ts.map +1 -1
  121. package/dist/core/storage/migrate.js +54 -23
  122. package/dist/core/storage/migrate.js.map +1 -1
  123. package/dist/core/storage/object-rls.d.ts +25 -0
  124. package/dist/core/storage/object-rls.d.ts.map +1 -0
  125. package/dist/core/storage/object-rls.js +45 -0
  126. package/dist/core/storage/object-rls.js.map +1 -0
  127. package/dist/core/storage/pool.d.ts +7 -0
  128. package/dist/core/storage/pool.d.ts.map +1 -1
  129. package/dist/core/storage/pool.js +9 -0
  130. package/dist/core/storage/pool.js.map +1 -1
  131. package/dist/core/storage/record-meta.d.ts +2 -1
  132. package/dist/core/storage/record-meta.d.ts.map +1 -1
  133. package/dist/core/storage/record-meta.js +3 -1
  134. package/dist/core/storage/record-meta.js.map +1 -1
  135. package/dist/core/storage/schema-scope.d.ts +33 -0
  136. package/dist/core/storage/schema-scope.d.ts.map +1 -0
  137. package/dist/core/storage/schema-scope.js +45 -0
  138. package/dist/core/storage/schema-scope.js.map +1 -0
  139. package/dist/core/storage/system-tables.d.ts +3 -2
  140. package/dist/core/storage/system-tables.d.ts.map +1 -1
  141. package/dist/core/storage/system-tables.js +7 -4
  142. package/dist/core/storage/system-tables.js.map +1 -1
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +6 -3
  145. package/dist/index.js.map +1 -1
  146. package/dist/runtime/data-access/builder.d.ts +7 -0
  147. package/dist/runtime/data-access/builder.d.ts.map +1 -1
  148. package/dist/runtime/data-access/builder.js +12 -0
  149. package/dist/runtime/data-access/builder.js.map +1 -1
  150. package/dist/runtime/data-access/index.d.ts +3 -3
  151. package/dist/runtime/data-access/index.d.ts.map +1 -1
  152. package/dist/runtime/data-access/index.js +2 -2
  153. package/dist/runtime/data-access/index.js.map +1 -1
  154. package/dist/runtime/data-access/query.d.ts +49 -7
  155. package/dist/runtime/data-access/query.d.ts.map +1 -1
  156. package/dist/runtime/data-access/query.js +235 -113
  157. package/dist/runtime/data-access/query.js.map +1 -1
  158. package/dist/runtime/data-access/rls-session.d.ts +24 -0
  159. package/dist/runtime/data-access/rls-session.d.ts.map +1 -0
  160. package/dist/runtime/data-access/rls-session.js +30 -0
  161. package/dist/runtime/data-access/rls-session.js.map +1 -0
  162. package/dist/runtime/data-access/sql-executor.d.ts.map +1 -1
  163. package/dist/runtime/data-access/sql-executor.js +2 -16
  164. package/dist/runtime/data-access/sql-executor.js.map +1 -1
  165. package/dist/runtime/data-access/types.d.ts +10 -2
  166. package/dist/runtime/data-access/types.d.ts.map +1 -1
  167. package/dist/runtime/data-access/types.js.map +1 -1
  168. package/dist/runtime/data-access/values.d.ts +10 -0
  169. package/dist/runtime/data-access/values.d.ts.map +1 -1
  170. package/dist/runtime/data-access/values.js +9 -0
  171. package/dist/runtime/data-access/values.js.map +1 -1
  172. package/dist/runtime/engine.d.ts +44 -4
  173. package/dist/runtime/engine.d.ts.map +1 -1
  174. package/dist/runtime/engine.js +38 -4
  175. package/dist/runtime/engine.js.map +1 -1
  176. package/dist/runtime/git/sync.d.ts +6 -0
  177. package/dist/runtime/git/sync.d.ts.map +1 -1
  178. package/dist/runtime/git/sync.js +2 -0
  179. package/dist/runtime/git/sync.js.map +1 -1
  180. package/dist/version.d.ts +1 -1
  181. package/dist/version.js +1 -1
  182. package/package.json +1 -1
@@ -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()::regnamespace`);
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) {
@@ -85,28 +86,36 @@ export async function inspectSchema(pool, options = {}) {
85
86
  t.owner = row.owner;
86
87
  }
87
88
  }
88
- const policyRows = await pool.query(`SELECT tablename, policyname FROM pg_policies WHERE schemaname = current_schema()`);
89
+ const policyRows = await pool.query(`SELECT c.relname AS tablename, p.polname AS policyname, d.description
90
+ FROM pg_policy p
91
+ JOIN pg_class c ON c.oid = p.polrelid
92
+ LEFT JOIN pg_description d ON d.objoid = p.oid AND d.classoid = 'pg_policy'::regclass
93
+ WHERE c.relnamespace = to_regnamespace(COALESCE($1::text, current_schema()))`, [schemaParam]);
89
94
  for (const row of policyRows.rows) {
90
95
  const t = tables.get(row.tablename);
91
- if (t !== undefined)
96
+ if (t !== undefined) {
92
97
  (t.rlsPolicies ??= []).push(row.policyname);
98
+ (t.rlsPolicyComments ??= {})[row.policyname] = row.description;
99
+ }
93
100
  }
94
- // roles granted SELECT (for the restricted-SQL role grant; PUBLIC grants are
95
- // ignored — if PUBLIC has SELECT the role inherits it, and a redundant GRANT
96
- // would just be emitted)
97
- const grantRows = await pool.query(`SELECT c.relname AS table_name, r.rolname AS role
101
+ // per-role table privileges (PUBLIC grants are ignored — if PUBLIC holds a
102
+ // privilege the role inherits it, and a redundant GRANT would just be emitted)
103
+ const grantRows = await pool.query(`SELECT c.relname AS table_name, r.rolname AS role, acl.privilege_type AS privilege
98
104
  FROM pg_class c
99
105
  JOIN pg_namespace n ON c.relnamespace = n.oid
100
106
  CROSS JOIN LATERAL aclexplode(COALESCE(c.relacl, acldefault('r', c.relowner))) acl
101
107
  JOIN pg_roles r ON r.oid = acl.grantee
102
- WHERE n.nspname = current_schema() AND acl.privilege_type = 'SELECT'`);
108
+ WHERE n.nspname = COALESCE($1::text, current_schema())`, [schemaParam]);
103
109
  for (const row of grantRows.rows) {
104
110
  const t = tables.get(row.table_name);
105
- if (t !== undefined)
111
+ if (t === undefined)
112
+ continue;
113
+ ((t.grants ??= {})[row.role] ??= []).push(row.privilege);
114
+ if (row.privilege === 'SELECT')
106
115
  (t.selectGrantedTo ??= []).push(row.role);
107
116
  }
108
117
  if (options.detail === true) {
109
- await loadDetail(pool, tables);
118
+ await loadDetail(pool, tables, schemaParam);
110
119
  }
111
120
  return tables;
112
121
  }
@@ -115,15 +124,15 @@ export async function inspectSchema(pool, options = {}) {
115
124
  * unique constraints, FK on-delete actions). Runs only when `detail` is set so
116
125
  * `migrate`/drift checks stay query-lean.
117
126
  */
118
- async function loadDetail(pool, tables) {
127
+ async function loadDetail(pool, tables, schemaParam) {
119
128
  const enumRows = await pool.query(`SELECT c.relname AS table_name, a.attname AS column_name, e.enumlabel AS label
120
129
  FROM pg_attribute a
121
130
  JOIN pg_class c ON a.attrelid = c.oid
122
131
  JOIN pg_namespace n ON c.relnamespace = n.oid
123
132
  JOIN pg_type t ON a.atttypid = t.oid
124
133
  JOIN pg_enum e ON e.enumtypid = t.oid
125
- WHERE n.nspname = current_schema() AND a.attnum > 0 AND NOT a.attisdropped
126
- 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]);
127
136
  for (const row of enumRows.rows) {
128
137
  const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
129
138
  if (col !== undefined)
@@ -137,8 +146,8 @@ async function loadDetail(pool, tables) {
137
146
  JOIN pg_type at ON a.atttypid = at.oid
138
147
  JOIN pg_type et ON at.typelem = et.oid
139
148
  JOIN pg_enum e ON e.enumtypid = et.oid
140
- WHERE n.nspname = current_schema() AND a.attnum > 0 AND NOT a.attisdropped
141
- 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]);
142
151
  for (const row of arrayEnumRows.rows) {
143
152
  const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
144
153
  if (col === undefined)
@@ -149,7 +158,7 @@ async function loadDetail(pool, tables) {
149
158
  const tableComments = await pool.query(`SELECT c.relname AS table_name, obj_description(c.oid, 'pg_class') AS comment
150
159
  FROM pg_class c
151
160
  JOIN pg_namespace n ON c.relnamespace = n.oid
152
- WHERE n.nspname = current_schema() AND c.relkind = 'r'`);
161
+ WHERE n.nspname = COALESCE($1::text, current_schema()) AND c.relkind = 'r'`, [schemaParam]);
153
162
  for (const row of tableComments.rows) {
154
163
  const t = tables.get(row.table_name);
155
164
  if (t !== undefined && row.comment !== null)
@@ -159,7 +168,7 @@ async function loadDetail(pool, tables) {
159
168
  FROM pg_class c
160
169
  JOIN pg_namespace n ON c.relnamespace = n.oid
161
170
  JOIN pg_attribute a ON a.attrelid = c.oid AND a.attnum > 0 AND NOT a.attisdropped
162
- WHERE n.nspname = current_schema() AND c.relkind = 'r'`);
171
+ WHERE n.nspname = COALESCE($1::text, current_schema()) AND c.relkind = 'r'`, [schemaParam]);
163
172
  for (const row of columnComments.rows) {
164
173
  const col = tables.get(row.table_name)?.columns.find((c) => c.name === row.column_name);
165
174
  if (col !== undefined && row.comment !== null)
@@ -170,7 +179,7 @@ async function loadDetail(pool, tables) {
170
179
  JOIN pg_class c ON i.indrelid = c.oid
171
180
  JOIN pg_namespace n ON c.relnamespace = n.oid
172
181
  JOIN pg_attribute a ON a.attrelid = c.oid AND a.attnum = ANY(i.indkey)
173
- 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]);
174
183
  for (const row of uniqueRows.rows) {
175
184
  const t = tables.get(row.table_name);
176
185
  if (t !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/core/storage/inspect.ts"],"names":[],"mappings":"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"}
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;AAE1F;;;;;;;;;;;;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,GACxD,aAAa,CAmDf;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC3C,QAAQ,GAAE,iBAA+C,GACxD,aAAa,EAAE,CAQjB"}
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":"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"}
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;AAInD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzF;AAED,sDAAsD;AACtD,wBAAsB,OAAO,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGnF"}
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":"AAEA,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAgB,EAAE,GAAW,EAAE,KAAa;IACxE,MAAM,EAAE,CAAC,KAAK,CACZ,eAAe,UAAU;4DAC+B,EACxD,CAAC,GAAG,EAAE,KAAK,CAAC,CACb,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAgB,EAAE,GAAW;IACzD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,UAAU,iBAAiB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,OAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAmC,EAAE,KAAK,IAAI,IAAI,CAAC;AACvE,CAAC"}
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"}
@@ -16,6 +16,22 @@ export interface MigrateOptions {
16
16
  rls?: {
17
17
  role: string;
18
18
  };
19
+ /**
20
+ * object-path RLS (`EngineConfig.rls.enforce`): provision `role` and the
21
+ * per-table `TO <role>` policies + privileges the engine's own data access
22
+ * runs under. Same table gating as `rls` (new tables, or `alter` + owned).
23
+ */
24
+ objectRls?: {
25
+ role: string;
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;
19
35
  /**
20
36
  * Run additional writes in the SAME transaction as the DDL (after DDL +
21
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;AAoBrC,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;;;;;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;AAmGD;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CA2J9G"}
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,11 +6,13 @@ 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';
15
+ import { planObjectRls } from './object-rls.js';
14
16
  /**
15
17
  * Advisory-lock key serializing `migrate`/`deploy apply` writes across
16
18
  * processes (stable across releases; `0x77656176` = 'weav', fits int4).
@@ -93,6 +95,25 @@ async function provisionRlsRole(pool, role, warnings) {
93
95
  }
94
96
  return true;
95
97
  }
98
+ /** object-path RLS DDL (role provisioned first; skipped tables become warnings) */
99
+ async function objectRlsStatements(pool, registry, actual, objectRls, warnings, scope) {
100
+ if (objectRls === undefined)
101
+ return [];
102
+ if (!(await provisionRlsRole(pool, objectRls.role, warnings)))
103
+ return [];
104
+ const { rows } = await pool.query('SELECT current_user AS u');
105
+ const owner = String(rows[0].u);
106
+ const plan = planObjectRls(registry, actual, objectRls.role, { owner, scope });
107
+ for (const name of plan.skipped) {
108
+ warnings.push(`skip object RLS on "${name}": existing table needs "alter": true and ownership by ${owner}`);
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;
116
+ }
96
117
  /**
97
118
  * True when `PUBLIC` still holds `TRUNCATE` on `table`, i.e. the append-only
98
119
  * hardening `REVOKE` is worth emitting. New tables grant nothing to `PUBLIC`
@@ -125,51 +146,58 @@ export async function migrate(registry, options = {}) {
125
146
  throw new Error('DATABASE_URL is not set');
126
147
  const dryRun = options.dryRun ?? false;
127
148
  const warnings = [];
128
- const pool = createPool(url);
149
+ const scope = createSchemaScope(options.systemSchema);
150
+ const pool = createPool(url, searchPathOptions(scope.systemSchema));
129
151
  try {
130
152
  const defs = new Map([...systemObjects(), ...registry.list()].map((d) => [d.name, d]));
131
- const actual = await inspectSchema(pool);
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]);
132
157
  if (options.rls !== undefined && !isSafeRlsRole(options.rls.role)) {
133
158
  throw new Error(`invalid RLS role name "${options.rls.role}"`);
134
159
  }
160
+ if (options.objectRls !== undefined && !isSafeRlsRole(options.objectRls.role)) {
161
+ throw new Error(`invalid RLS role name "${options.objectRls.role}"`);
162
+ }
135
163
  // new objects (no live table by that name) are diffed and created; objects
136
164
  // that opted in via `alter: true` are diffed against their existing table
137
165
  // too (additive ALTER DDL only)
138
166
  const expected = [...defs.values()]
139
- .filter((d) => d.alter === true || actual.get(d.name) === undefined)
167
+ .filter((d) => d.alter === true || objectActual.get(d.name) === undefined)
140
168
  .map((d) => buildExpectedTable(d, defs, registry.fieldTypes));
141
- const statements = diffAll(expected, actual);
169
+ const statements = diffAll(expected, objectActual);
142
170
  // native enum types must exist before the tables that reference them
143
171
  const enumStatements = await buildEnumStatements(pool, defs, new Set(expected.map((t) => t.name)));
144
172
  // engine-owned per-object record metadata side tables: one per object (R1),
145
173
  // created idempotently for every object regardless of `alter`/ownership —
146
174
  // they never touch the customer's own table
147
- const metaTables = [...defs.keys()].map((name) => buildRecordMetaTable(name));
148
- const metaStatements = diffAll(metaTables, actual);
175
+ const metaTables = [...defs.keys()].map((name) => buildRecordMetaTable(name, scope));
176
+ const metaStatements = diffAll(metaTables, systemActual);
149
177
  // engine-owned many-to-many link tables for every `multiRelation` field:
150
178
  // one per (object, field), created idempotently regardless of `alter`.
151
- const linkTables = buildLinkTables(defs, registry.fieldTypes);
152
- const linkStatements = diffAll(linkTables, actual);
179
+ const linkTables = buildLinkTables(defs, registry.fieldTypes, scope);
180
+ const linkStatements = diffAll(linkTables, systemActual);
153
181
  // engine-owned system tables (metadata cache / seq / audit / approvals /
154
182
  // timers / counters) + their ACL hardening: provisioned here (and only
155
183
  // here) so the runtime never runs DDL and can be least-privileged.
156
184
  // one-time reshape of the legacy workflow timer table
157
185
  // (id/state/workflow_version -> record_key/node_id): engine-owned and
158
186
  // transient, so drop+recreate is safe (there are no users yet).
159
- const legacyTimers = actual.get(SYSTEM_TABLES.WORKFLOW_TIMERS);
187
+ const legacyTimers = systemActual.get(SYSTEM_TABLES.WORKFLOW_TIMERS);
160
188
  const dropLegacyTimers = legacyTimers !== undefined &&
161
189
  legacyTimers.columns.some((c) => c.name === 'state') &&
162
190
  !legacyTimers.columns.some((c) => c.name === 'record_key');
163
191
  if (dropLegacyTimers)
164
- actual.delete(SYSTEM_TABLES.WORKFLOW_TIMERS);
165
- const systemStatements = diffAll(buildSystemTables(), actual);
166
- 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) : [];
167
195
  // existing tables are read-only unless the object opted in (`alter: true`):
168
196
  // verify every declared field is a live column (prevents REST/MCP pointing
169
197
  // at ghost columns). With `alter: true`, missing fields become ADD COLUMN
170
198
  // instead of throwing.
171
199
  for (const def of defs.values()) {
172
- const actualTable = actual.get(def.name);
200
+ const actualTable = objectActual.get(def.name);
173
201
  if (actualTable === undefined)
174
202
  continue; // new object, handled above
175
203
  const cols = new Set(actualTable.columns.map((c) => c.name));
@@ -192,7 +220,7 @@ export async function migrate(registry, options = {}) {
192
220
  }
193
221
  }
194
222
  }
195
- const applied = expected.filter((t) => diffTable(t, actual.get(t.name)).length > 0).map((t) => t.name);
223
+ const applied = expected.filter((t) => diffTable(t, objectActual.get(t.name)).length > 0).map((t) => t.name);
196
224
  // row-level security for the restricted-SQL role: provision the role
197
225
  // (non-transactional) then diff the policy against the live RLS state.
198
226
  // New tables always; existing tables only under `alter` and when the
@@ -205,7 +233,7 @@ export async function migrate(registry, options = {}) {
205
233
  const { rows } = await pool.query('SELECT current_user AS u');
206
234
  const currentUser = String(rows[0].u);
207
235
  for (const def of registry.list()) {
208
- const actualTable = actual.get(def.name);
236
+ const actualTable = objectActual.get(def.name);
209
237
  const applies = actualTable === undefined || (def.alter === true && actualTable.owner === currentUser);
210
238
  if (!applies) {
211
239
  if (actualTable !== undefined) {
@@ -220,20 +248,23 @@ export async function migrate(registry, options = {}) {
220
248
  // ever granted, a second layer behind the sql-gate. The engine runs as
221
249
  // the owner and bypasses RLS, so its own reads are unaffected.
222
250
  for (const table of linkTables) {
223
- if (actual.get(table.name)?.rlsEnabled !== true) {
224
- rlsStatements.push(`ALTER TABLE ${q(table.name)} ENABLE ROW LEVEL SECURITY;`);
251
+ if (systemActual.get(table.name)?.rlsEnabled !== true) {
252
+ rlsStatements.push(`ALTER TABLE ${qualifyTable(table.name, scope)} ENABLE ROW LEVEL SECURITY;`);
225
253
  }
226
254
  }
227
255
  }
228
256
  }
257
+ const sysSchema = scope.systemSchema;
229
258
  const allStatements = [
259
+ ...(sysSchema === undefined ? [] : [`CREATE SCHEMA IF NOT EXISTS ${q(sysSchema)};`]),
230
260
  ...enumStatements,
231
- ...(dropLegacyTimers ? [`DROP TABLE ${q(SYSTEM_TABLES.WORKFLOW_TIMERS)};`] : []),
261
+ ...(dropLegacyTimers ? [`DROP TABLE ${qualifyTable(SYSTEM_TABLES.WORKFLOW_TIMERS, scope)};`] : []),
232
262
  ...statements,
233
263
  ...metaStatements,
234
264
  ...linkStatements,
235
265
  ...systemStatements,
236
266
  ...rlsStatements,
267
+ ...(await objectRlsStatements(pool, registry, actual, options.objectRls, warnings, scope)),
237
268
  ...hardening,
238
269
  ];
239
270
  // One transaction for DDL + `schema.applied.*` meta + workflow-definition
@@ -248,8 +279,8 @@ export async function migrate(registry, options = {}) {
248
279
  await applyStatementsOn(client, allStatements);
249
280
  const ts = new Date().toISOString();
250
281
  for (const name of applied)
251
- await setMeta(client, `schema.applied.${name}`, ts);
252
- await registerWorkflowDefinitions(client, defs);
282
+ await setMeta(client, `schema.applied.${name}`, ts, scope);
283
+ await registerWorkflowDefinitions(client, defs, scope);
253
284
  if (options.onCommit !== undefined)
254
285
  await options.onCommit(client);
255
286
  await client.query('COMMIT');
@@ -274,8 +305,8 @@ export async function migrate(registry, options = {}) {
274
305
  * `version_seq` is a monotonic display/switch ordinal. Never rewrites or drops
275
306
  * an existing row (append-only revision history for instance pinning).
276
307
  */
277
- async function registerWorkflowDefinitions(db, defs) {
278
- const table = q(SYSTEM_TABLES.WORKFLOW_DEFINITIONS);
308
+ async function registerWorkflowDefinitions(db, defs, scope) {
309
+ const table = qualifyTable(SYSTEM_TABLES.WORKFLOW_DEFINITIONS, scope);
279
310
  for (const def of defs.values()) {
280
311
  if (def.workflow === undefined || def.workflowHash === undefined)
281
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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"}
@@ -0,0 +1,25 @@
1
+ import type { ObjectRegistry } from '../object/index.js';
2
+ import type { ActualTable } from './inspect.js';
3
+ import type { SchemaScope } from './schema-scope.js';
4
+ export interface ObjectRlsPlan {
5
+ statements: string[];
6
+ /** objects whose existing table cannot take RLS (not opted into `alter`, or not owned by the migrating role) */
7
+ skipped: string[];
8
+ }
9
+ /**
10
+ * Plan the object-path RLS DDL (`EngineConfig.rls.enforce`) for every registry
11
+ * object: per-table policies + privileges for `role`, plus read access to the
12
+ * engine tables the scoped queries touch (identity directory for department /
13
+ * external-id scopes, record-metadata side tables, multiRelation link tables).
14
+ *
15
+ * With `owner` (migrate), an existing table is only touched when the object
16
+ * opted into `alter` and `owner` owns it — enabling RLS on a shared customer
17
+ * table would also hide its rows from other non-owner roles. Without `owner`
18
+ * (startup / doctor check) every object is planned, so any remaining statement
19
+ * means the database is not provisioned.
20
+ */
21
+ export declare function planObjectRls(registry: ObjectRegistry, actual: ReadonlyMap<string, ActualTable>, role: string, options?: {
22
+ owner?: string;
23
+ scope?: SchemaScope;
24
+ }): ObjectRlsPlan;
25
+ //# sourceMappingURL=object-rls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-rls.d.ts","sourceRoot":"","sources":["../../../src/core/storage/object-rls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gHAAgH;IAChH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAO,GACpD,aAAa,CAwBf"}