@weave-kit/engine 0.8.0 → 0.9.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 (147) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/adapters/graphql/http.js +1 -1
  3. package/dist/adapters/graphql/http.js.map +1 -1
  4. package/dist/adapters/graphql/loader.d.ts.map +1 -1
  5. package/dist/adapters/graphql/loader.js +2 -2
  6. package/dist/adapters/graphql/loader.js.map +1 -1
  7. package/dist/adapters/graphql/resolvers.d.ts.map +1 -1
  8. package/dist/adapters/graphql/resolvers.js +3 -2
  9. package/dist/adapters/graphql/resolvers.js.map +1 -1
  10. package/dist/adapters/graphql/types.d.ts +2 -0
  11. package/dist/adapters/graphql/types.d.ts.map +1 -1
  12. package/dist/adapters/mcp/generate.d.ts.map +1 -1
  13. package/dist/adapters/mcp/generate.js +1 -0
  14. package/dist/adapters/mcp/generate.js.map +1 -1
  15. package/dist/adapters/mcp/http.d.ts +2 -0
  16. package/dist/adapters/mcp/http.d.ts.map +1 -1
  17. package/dist/adapters/mcp/http.js +6 -1
  18. package/dist/adapters/mcp/http.js.map +1 -1
  19. package/dist/adapters/mcp/index.d.ts +2 -0
  20. package/dist/adapters/mcp/index.d.ts.map +1 -1
  21. package/dist/adapters/mcp/index.js +2 -1
  22. package/dist/adapters/mcp/index.js.map +1 -1
  23. package/dist/adapters/mcp/tools.d.ts.map +1 -1
  24. package/dist/adapters/mcp/tools.js +13 -4
  25. package/dist/adapters/mcp/tools.js.map +1 -1
  26. package/dist/adapters/rest/plugin.d.ts.map +1 -1
  27. package/dist/adapters/rest/plugin.js +11 -8
  28. package/dist/adapters/rest/plugin.js.map +1 -1
  29. package/dist/adapters/rest/workflow.js +8 -8
  30. package/dist/adapters/rest/workflow.js.map +1 -1
  31. package/dist/cli/commands/deploy.d.ts +6 -0
  32. package/dist/cli/commands/deploy.d.ts.map +1 -0
  33. package/dist/cli/commands/deploy.js +88 -0
  34. package/dist/cli/commands/deploy.js.map +1 -0
  35. package/dist/cli/index.js +13 -0
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/types/commands.d.ts +8 -0
  38. package/dist/cli/types/commands.d.ts.map +1 -1
  39. package/dist/cli/types/index.d.ts +1 -1
  40. package/dist/cli/types/index.d.ts.map +1 -1
  41. package/dist/cli/types/values.d.ts +2 -0
  42. package/dist/cli/types/values.d.ts.map +1 -1
  43. package/dist/cli/types/values.js +2 -0
  44. package/dist/cli/types/values.js.map +1 -1
  45. package/dist/core/audit/index.d.ts +2 -2
  46. package/dist/core/audit/index.d.ts.map +1 -1
  47. package/dist/core/audit/index.js +1 -1
  48. package/dist/core/audit/index.js.map +1 -1
  49. package/dist/core/audit/types.d.ts +23 -0
  50. package/dist/core/audit/types.d.ts.map +1 -1
  51. package/dist/core/audit/types.js +11 -0
  52. package/dist/core/audit/types.js.map +1 -1
  53. package/dist/core/storage/apply.d.ts +3 -1
  54. package/dist/core/storage/apply.d.ts.map +1 -1
  55. package/dist/core/storage/apply.js +6 -2
  56. package/dist/core/storage/apply.js.map +1 -1
  57. package/dist/core/storage/index.d.ts +1 -0
  58. package/dist/core/storage/index.d.ts.map +1 -1
  59. package/dist/core/storage/index.js.map +1 -1
  60. package/dist/core/storage/meta.d.ts +4 -3
  61. package/dist/core/storage/meta.d.ts.map +1 -1
  62. package/dist/core/storage/meta.js +5 -4
  63. package/dist/core/storage/meta.js.map +1 -1
  64. package/dist/core/storage/migrate.d.ts +8 -0
  65. package/dist/core/storage/migrate.d.ts.map +1 -1
  66. package/dist/core/storage/migrate.js +33 -12
  67. package/dist/core/storage/migrate.js.map +1 -1
  68. package/dist/core/storage/queryable.d.ts +14 -0
  69. package/dist/core/storage/queryable.d.ts.map +1 -0
  70. package/dist/core/storage/queryable.js +2 -0
  71. package/dist/core/storage/queryable.js.map +1 -0
  72. package/dist/core/storage/system-tables.d.ts +2 -0
  73. package/dist/core/storage/system-tables.d.ts.map +1 -1
  74. package/dist/core/storage/system-tables.js +39 -0
  75. package/dist/core/storage/system-tables.js.map +1 -1
  76. package/dist/core/types/index.d.ts +1 -0
  77. package/dist/core/types/index.d.ts.map +1 -1
  78. package/dist/core/types/index.js +1 -0
  79. package/dist/core/types/index.js.map +1 -1
  80. package/dist/core/types/principal.d.ts +34 -0
  81. package/dist/core/types/principal.d.ts.map +1 -0
  82. package/dist/core/types/principal.js +32 -0
  83. package/dist/core/types/principal.js.map +1 -0
  84. package/dist/runtime/data-access/cursor.d.ts +9 -0
  85. package/dist/runtime/data-access/cursor.d.ts.map +1 -0
  86. package/dist/runtime/data-access/cursor.js +26 -0
  87. package/dist/runtime/data-access/cursor.js.map +1 -0
  88. package/dist/runtime/data-access/index.d.ts +2 -0
  89. package/dist/runtime/data-access/index.d.ts.map +1 -1
  90. package/dist/runtime/data-access/index.js +2 -0
  91. package/dist/runtime/data-access/index.js.map +1 -1
  92. package/dist/runtime/data-access/query.d.ts +1 -1
  93. package/dist/runtime/data-access/query.d.ts.map +1 -1
  94. package/dist/runtime/data-access/query.js +109 -36
  95. package/dist/runtime/data-access/query.js.map +1 -1
  96. package/dist/runtime/data-access/rbac.d.ts +2 -2
  97. package/dist/runtime/data-access/rbac.d.ts.map +1 -1
  98. package/dist/runtime/data-access/rbac.js +86 -47
  99. package/dist/runtime/data-access/rbac.js.map +1 -1
  100. package/dist/runtime/data-access/types.d.ts +24 -9
  101. package/dist/runtime/data-access/types.d.ts.map +1 -1
  102. package/dist/runtime/data-access/types.js +9 -1
  103. package/dist/runtime/data-access/types.js.map +1 -1
  104. package/dist/runtime/engine.d.ts +8 -1
  105. package/dist/runtime/engine.d.ts.map +1 -1
  106. package/dist/runtime/engine.js +40 -13
  107. package/dist/runtime/engine.js.map +1 -1
  108. package/dist/runtime/git/sync.d.ts +18 -3
  109. package/dist/runtime/git/sync.d.ts.map +1 -1
  110. package/dist/runtime/git/sync.js +25 -25
  111. package/dist/runtime/git/sync.js.map +1 -1
  112. package/dist/runtime/metadata/cache.d.ts +17 -5
  113. package/dist/runtime/metadata/cache.d.ts.map +1 -1
  114. package/dist/runtime/metadata/cache.js +46 -19
  115. package/dist/runtime/metadata/cache.js.map +1 -1
  116. package/dist/runtime/metadata/index.d.ts +3 -1
  117. package/dist/runtime/metadata/index.d.ts.map +1 -1
  118. package/dist/runtime/metadata/index.js +2 -1
  119. package/dist/runtime/metadata/index.js.map +1 -1
  120. package/dist/runtime/metadata/revision.d.ts +41 -0
  121. package/dist/runtime/metadata/revision.d.ts.map +1 -0
  122. package/dist/runtime/metadata/revision.js +53 -0
  123. package/dist/runtime/metadata/revision.js.map +1 -0
  124. package/dist/runtime/tools/executor.d.ts.map +1 -1
  125. package/dist/runtime/tools/executor.js +2 -1
  126. package/dist/runtime/tools/executor.js.map +1 -1
  127. package/dist/subsystems/audit/index.d.ts +10 -2
  128. package/dist/subsystems/audit/index.d.ts.map +1 -1
  129. package/dist/subsystems/audit/index.js +14 -1
  130. package/dist/subsystems/audit/index.js.map +1 -1
  131. package/dist/subsystems/audit/outbox.d.ts +33 -0
  132. package/dist/subsystems/audit/outbox.d.ts.map +1 -0
  133. package/dist/subsystems/audit/outbox.js +111 -0
  134. package/dist/subsystems/audit/outbox.js.map +1 -0
  135. package/dist/subsystems/audit/store.d.ts +3 -2
  136. package/dist/subsystems/audit/store.d.ts.map +1 -1
  137. package/dist/subsystems/audit/store.js +9 -7
  138. package/dist/subsystems/audit/store.js.map +1 -1
  139. package/dist/subsystems/script/bridge.d.ts.map +1 -1
  140. package/dist/subsystems/script/bridge.js +2 -1
  141. package/dist/subsystems/script/bridge.js.map +1 -1
  142. package/dist/subsystems/workflow/scheduler.d.ts.map +1 -1
  143. package/dist/subsystems/workflow/scheduler.js +2 -1
  144. package/dist/subsystems/workflow/scheduler.js.map +1 -1
  145. package/dist/version.d.ts +1 -1
  146. package/dist/version.js +1 -1
  147. package/package.json +1 -1
@@ -1,21 +1,24 @@
1
- import { SchemaError, primaryFieldsOf, encodeRecordKey, decodeRecordKey, canonicalizePrimaryValue } from '../../core/index.js';
1
+ import { SchemaError, primaryFieldsOf, encodeRecordKey, decodeRecordKey, canonicalizePrimaryValue, principalActorId } from '../../core/index.js';
2
2
  import { DETAILS_COLUMNS, FIELD_TYPES, isSideTableVirtualField, RECORD_META_ID_FIELD, recordKeySql, recordMetaTableName } from '../../core/index.js';
3
3
  import { AUDIT_ACTOR_TYPES, DATA_ACTIONS } from '../../core/audit/index.js';
4
4
  import { NOOP_SCRIPT_DISPATCHER, SCRIPT_HOOKS } from '../../core/index.js';
5
5
  import { evaluateTransition } from '../tools/policies.js';
6
- import { buildCountSql, buildFindSql, scopeSuffix } from './builder.js';
6
+ import { buildCountSql, buildFindSql, resolvePagination, scopeSuffix } from './builder.js';
7
7
  import { deleteDetailsChildren, insertDetails } from './details.js';
8
8
  import { insertLinks, replaceLinks } from './link.js';
9
9
  import { runWorkflowTransition, getWorkflowStatus, acquireWorkflowLock, releaseWorkflowLock, getWorkflowHistory, getWorkflowTodos, overrideWorkflow, } from './workflow.js';
10
10
  import { computeFormulas } from './formula.js';
11
11
  import { generateSeqNo } from './seqno.js';
12
+ import { subjectOf } from './types.js';
12
13
  import { validateRecord } from './validate.js';
13
- import { WRITE_MODES } from './values.js';
14
+ import { FILTER_OPS, SORT_DIRS, WRITE_MODES } from './values.js';
15
+ import { decodeCursor, encodeCursor } from './cursor.js';
14
16
  import { upsertRecordMeta, deleteRecordMeta } from '../record-meta/index.js';
15
17
  const q = (id) => `"${id}"`;
16
18
  /** cross-object formula authorization derived from the request context */
17
19
  function formulaAuth(ctx) {
18
- return { subject: ctx.subject, roles: ctx.subject?.roles ?? [], locale: ctx.locale };
20
+ const subject = subjectOf(ctx);
21
+ return { subject, roles: subject?.roles ?? [], locale: ctx.locale };
19
22
  }
20
23
  /** PG error 42703 = undefined_column: a query referenced a column that doesn't exist */
21
24
  function isUndefinedColumn(error) {
@@ -64,33 +67,42 @@ async function runTableQuery(q, objectName, sql, params, locale) {
64
67
  throw error;
65
68
  }
66
69
  }
67
- /** emit a write-audit event (fire-and-forget — audit never blocks the business path) */
68
- function auditWrite(sink, ctx, action, objectName, objectId, changes, error, before, after) {
70
+ /** emit a write-audit event (transaction-aware: in-tx when a tx-capable sink is active) */
71
+ async function auditWrite(sink, ctx, action, objectName, objectId, changes, error, before, after, client) {
69
72
  if (sink === undefined)
70
73
  return;
74
+ const principal = ctx.principal;
71
75
  const event = {
72
- actorType: ctx.subject !== undefined ? AUDIT_ACTOR_TYPES.USER : AUDIT_ACTOR_TYPES.SYSTEM,
73
- actorId: ctx.subject?.id ?? 'system',
76
+ actorType: principal.kind === 'user' ? AUDIT_ACTOR_TYPES.USER : AUDIT_ACTOR_TYPES.SYSTEM,
77
+ actorId: principalActorId(principal),
74
78
  action,
75
79
  objectName,
76
80
  objectId,
77
81
  changes,
78
82
  isError: error !== undefined,
79
83
  errorCode: error instanceof SchemaError ? error.code : undefined,
84
+ ...(ctx.requestId === undefined ? {} : { requestId: ctx.requestId }),
80
85
  timestamp: new Date(),
81
86
  };
82
87
  if (before !== undefined)
83
88
  event.before = before;
84
89
  if (after !== undefined)
85
90
  event.after = after;
91
+ // transactional/durable sinks write inside the business transaction; a throw
92
+ // here rolls the business write back (deliberate)
93
+ if (client !== undefined && sink.recordInTx !== undefined) {
94
+ await sink.recordInTx(event, client);
95
+ return;
96
+ }
86
97
  void sink.record(event);
87
98
  }
88
99
  /** rebuild `this.user` for hooks from the authenticated subject */
89
100
  function scriptUserOf(ctx) {
101
+ const subject = subjectOf(ctx);
90
102
  return {
91
- id: ctx.subject?.id ?? 'system',
92
- roles: ctx.subject?.roles ?? [],
93
- departmentId: ctx.subject?.departmentId,
103
+ id: subject?.id ?? 'system',
104
+ roles: subject?.roles ?? [],
105
+ departmentId: subject?.departmentId,
94
106
  };
95
107
  }
96
108
  const PARENT_COLUMNS = new Set([
@@ -110,12 +122,13 @@ function requireDef(ctx, objectName) {
110
122
  return def;
111
123
  }
112
124
  function bctx(ctx, objectName) {
125
+ const subject = subjectOf(ctx);
113
126
  return {
114
127
  object: objectName,
115
128
  locale: ctx.locale,
116
129
  allowParentCols: isDetailsChild(ctx.registry, objectName),
117
130
  lookup: ctx.registry,
118
- ...(ctx.subject === undefined ? {} : { subject: ctx.subject }),
131
+ ...(subject === undefined ? {} : { subject }),
119
132
  };
120
133
  }
121
134
  /** hidden select column carrying the SQL-computed record_key for a fetched row */
@@ -315,12 +328,45 @@ export class DefaultObjectDataAccess {
315
328
  ? error.message
316
329
  : String(error);
317
330
  warnings.push(message);
318
- auditWrite(this.audit, ctx, action, objectName, objectId, changes, error);
331
+ await auditWrite(this.audit, ctx, action, objectName, objectId, changes, error);
319
332
  }
320
333
  }
321
334
  async find(objectName, opts, ctx) {
322
335
  const def = requireDef(ctx, objectName);
323
336
  const q = ctx.client ?? ctx.pool;
337
+ const pks = primaryFieldsOf(def);
338
+ const { limit } = resolvePagination(opts);
339
+ // keyset cursor (single primary key): `pk > cursor` ordered by pk. A
340
+ // caller-provided sort is ignored in cursor mode (documented) so pages
341
+ // traverse one deterministic sequence.
342
+ if (opts.cursor !== undefined && pks.length === 1) {
343
+ const pkName = pks[0].name;
344
+ const cursorValue = decodeCursor(opts.cursor)[0];
345
+ const pageOpts = {
346
+ ...opts,
347
+ filter: { ...(opts.filter ?? {}), [pkName]: { [FILTER_OPS.GT]: cursorValue } },
348
+ sort: [{ field: pkName, dir: SORT_DIRS.ASC }],
349
+ offset: 0,
350
+ limit: limit + 1,
351
+ };
352
+ const meta = needsSideTable(pageOpts) ? { table: recordMetaTableName(def.name) } : undefined;
353
+ const buildCtx = { ...bctx(ctx, objectName), ...(meta === undefined ? {} : { meta }) };
354
+ const { sql, params } = buildFindSql(def, pageOpts, buildCtx, ctx.rowScope, pageOpts.exclude);
355
+ const { rows } = await runTableQuery(q, objectName, sql, params, ctx.locale);
356
+ const hasMore = rows.length > limit;
357
+ const pageRows = hasMore ? rows.slice(0, limit) : rows;
358
+ const last = pageRows[pageRows.length - 1];
359
+ const nextCursor = hasMore && last !== undefined ? encodeCursor([last[pkName]]) : undefined;
360
+ const { sql: countSql, params: countParams } = buildCountSql(def, opts, buildCtx, ctx.rowScope);
361
+ const { rows: countRows } = await runTableQuery(q, objectName, countSql, countParams, ctx.locale);
362
+ const loaded = await this.runOnLoad(objectName, pageRows, ctx);
363
+ return {
364
+ rows: loaded,
365
+ total: countRows[0].total,
366
+ hasMore,
367
+ ...(nextCursor === undefined ? {} : { nextCursor }),
368
+ };
369
+ }
324
370
  // `weave_*` virtual fields live in the engine side table; when referenced,
325
371
  // LEFT JOIN it and select/filter/sort them in SQL (never customer columns)
326
372
  const meta = needsSideTable(opts) ? { table: recordMetaTableName(def.name) } : undefined;
@@ -329,8 +375,9 @@ export class DefaultObjectDataAccess {
329
375
  const { rows } = await runTableQuery(q, objectName, sql, params, ctx.locale);
330
376
  const { sql: countSql, params: countParams } = buildCountSql(def, opts, buildCtx, ctx.rowScope);
331
377
  const { rows: countRows } = await runTableQuery(q, objectName, countSql, countParams, ctx.locale);
378
+ const total = countRows[0].total;
332
379
  const loaded = await this.runOnLoad(objectName, rows, ctx);
333
- return { rows: loaded, total: countRows[0].total };
380
+ return { rows: loaded, total, hasMore: (opts.offset ?? 0) + rows.length < total };
334
381
  }
335
382
  async findOne(objectName, id, ctx) {
336
383
  const def = requireDef(ctx, objectName);
@@ -428,9 +475,15 @@ export class DefaultObjectDataAccess {
428
475
  await runTableQuery(client, def.name, `UPDATE ${q(def.name)} SET ${setSql} WHERE ${pkWhereSql(def, formulaCols.length + 1)}`, [...formulaValues, ...pkValues], ctx.locale);
429
476
  }
430
477
  await this.writeRecordMeta(client, def, metaKey, ctx, now, true);
478
+ const auditInTx = this.audit?.recordInTx !== undefined;
479
+ if (auditInTx) {
480
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.CREATE, objectName, externalId, record, undefined, undefined, undefined, client);
481
+ }
431
482
  if (owned)
432
483
  await client.query('COMMIT');
433
- auditWrite(this.audit, ctx, DATA_ACTIONS.CREATE, objectName, externalId, record);
484
+ if (!auditInTx) {
485
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.CREATE, objectName, externalId, record);
486
+ }
434
487
  this.events?.publishRecordChange('created', objectName, externalId);
435
488
  await this.runAfterHook(SCRIPT_HOOKS.AFTER_UPDATE, DATA_ACTIONS.CREATE, objectName, record, payload, ctx, warnings, externalId);
436
489
  if (warnings.length > 0)
@@ -444,7 +497,7 @@ export class DefaultObjectDataAccess {
444
497
  const failedId = primaryNames(def).every((n) => data[n] !== undefined)
445
498
  ? externalIdOf(def, data)
446
499
  : undefined;
447
- auditWrite(this.audit, ctx, DATA_ACTIONS.CREATE, objectName, failedId, data, err);
500
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.CREATE, objectName, failedId, data, err);
448
501
  throw err;
449
502
  }
450
503
  finally {
@@ -523,9 +576,15 @@ export class DefaultObjectDataAccess {
523
576
  }
524
577
  await this.writeRecordMeta(client, def, metaKey, ctx, now, false);
525
578
  await replaceLinks(client, def, pkValues, payload, ctx.registry, ctx.locale);
579
+ const auditInTx = this.audit?.recordInTx !== undefined;
580
+ if (auditInTx) {
581
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.UPDATE, objectName, id, payload, undefined, this.replay ? existing : undefined, this.replay ? record : undefined, client);
582
+ }
526
583
  if (owned)
527
584
  await client.query('COMMIT');
528
- auditWrite(this.audit, ctx, DATA_ACTIONS.UPDATE, objectName, id, payload, undefined, this.replay ? existing : undefined, this.replay ? record : undefined);
585
+ if (!auditInTx) {
586
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.UPDATE, objectName, id, payload, undefined, this.replay ? existing : undefined, this.replay ? record : undefined);
587
+ }
529
588
  this.events?.publishRecordChange('updated', objectName, id);
530
589
  await this.runAfterHook(SCRIPT_HOOKS.AFTER_UPDATE, DATA_ACTIONS.UPDATE, objectName, record, payload, ctx, warnings, id);
531
590
  if (warnings.length > 0)
@@ -536,7 +595,7 @@ export class DefaultObjectDataAccess {
536
595
  catch (err) {
537
596
  if (owned)
538
597
  await client.query('ROLLBACK');
539
- auditWrite(this.audit, ctx, DATA_ACTIONS.UPDATE, objectName, id, changes, err);
598
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.UPDATE, objectName, id, changes, err);
540
599
  throw err;
541
600
  }
542
601
  finally {
@@ -580,22 +639,23 @@ export class DefaultObjectDataAccess {
580
639
  // guardrail policy + approval gate (shared policy set with the open contract):
581
640
  // a policy self-filters on `workflow.transition.<object>.<action>`; a node may
582
641
  // also declare `requiresApproval`. deny → error; requireApproval → pending.
583
- const currentNode = await getWorkflowStatus(client, def, id, ctx.subject);
642
+ const currentNode = await getWorkflowStatus(client, def, id, subjectOf(ctx));
584
643
  const nodeDef = currentNode.node === undefined ? undefined : def.workflow.nodes.find((n) => n.id === currentNode.node);
585
644
  const requireApproval = nodeDef?.requiresApproval === true;
586
645
  if (this.policies.length > 0 || requireApproval) {
587
- const actorId = ctx.subject?.id ?? 'system';
646
+ const subject = subjectOf(ctx);
647
+ const actorId = subject?.id ?? principalActorId(ctx.principal);
588
648
  const guardrailCtx = {
589
649
  actor: { key: actorId, label: actorId, onBehalfOf: actorId },
590
- subject: ctx.subject ?? { id: 'system', roles: [] },
650
+ subject: subject ?? { id: 'system', roles: [] },
591
651
  action: `workflow.transition.${def.name}.${action}`,
592
652
  args: { object: def.name, id, action },
593
653
  dataAccess: toolDataAccessOver(this, {
594
654
  pool: ctx.pool,
595
655
  registry: ctx.registry,
656
+ principal: ctx.principal,
596
657
  ...(ctx.locale === undefined ? {} : { locale: ctx.locale }),
597
658
  ...(ctx.client === undefined ? {} : { client: ctx.client }),
598
- ...(ctx.subject === undefined ? {} : { subject: ctx.subject }),
599
659
  }),
600
660
  };
601
661
  const gate = await evaluateTransition(this.policies, this.approvals, guardrailCtx, requireApproval);
@@ -606,15 +666,22 @@ export class DefaultObjectDataAccess {
606
666
  throw new SchemaError('workflow.transition.pending', { object: objectName, action, approvalKey: gate.approvalKey }, ctx.locale);
607
667
  }
608
668
  }
609
- const outcome = await runWorkflowTransition(client, def, id, action, ctx.subject, payload, ctx.locale);
610
- if (owned)
611
- await client.query('COMMIT');
612
- auditWrite(this.audit, ctx, DATA_ACTIONS.TRANSITION, objectName, id, {
669
+ const outcome = await runWorkflowTransition(client, def, id, action, subjectOf(ctx), payload, ctx.locale);
670
+ const transitionChanges = {
613
671
  action,
614
672
  node: outcome.toNodeId ?? null,
615
673
  from: outcome.fromNodeId ?? null,
616
674
  ...(def.workflowHash === undefined ? {} : { workflowHash: def.workflowHash }),
617
- });
675
+ };
676
+ const auditInTx = this.audit?.recordInTx !== undefined;
677
+ if (auditInTx) {
678
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.TRANSITION, objectName, id, transitionChanges, undefined, undefined, undefined, client);
679
+ }
680
+ if (owned)
681
+ await client.query('COMMIT');
682
+ if (!auditInTx) {
683
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.TRANSITION, objectName, id, transitionChanges);
684
+ }
618
685
  this.events?.publishRecordChange('updated', objectName, id);
619
686
  this.events?.publishRecordTransitioned(objectName, id, outcome.fromNodeId ?? '', outcome.toNodeId ?? '', action, def.workflow.version, def.workflowHash);
620
687
  if (outcome.nodeId !== undefined) {
@@ -638,7 +705,7 @@ export class DefaultObjectDataAccess {
638
705
  catch (err) {
639
706
  if (owned)
640
707
  await client.query('ROLLBACK');
641
- auditWrite(this.audit, ctx, DATA_ACTIONS.TRANSITION, objectName, id, { action }, err);
708
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.TRANSITION, objectName, id, { action }, err);
642
709
  throw err;
643
710
  }
644
711
  finally {
@@ -654,17 +721,17 @@ export class DefaultObjectDataAccess {
654
721
  if (def.workflow === undefined) {
655
722
  throw new SchemaError('workflow.transition.unknown', { object: objectName, action: 'status' }, ctx.locale);
656
723
  }
657
- return getWorkflowStatus(ctx.client ?? ctx.pool, def, id, ctx.subject);
724
+ return getWorkflowStatus(ctx.client ?? ctx.pool, def, id, subjectOf(ctx));
658
725
  }
659
726
  /** Acquire/renew the caller's presence lock on the current step (TTL lease). */
660
727
  async acquireWorkflowLock(objectName, id, ctx) {
661
728
  const def = requireDef(ctx, objectName);
662
- return acquireWorkflowLock(ctx.pool, def, id, ctx.subject, ctx.locale);
729
+ return acquireWorkflowLock(ctx.pool, def, id, subjectOf(ctx), ctx.locale);
663
730
  }
664
731
  /** Release the caller's presence lock. */
665
732
  async releaseWorkflowLock(objectName, id, ctx) {
666
733
  const def = requireDef(ctx, objectName);
667
- await releaseWorkflowLock(ctx.pool, def, id, ctx.subject);
734
+ await releaseWorkflowLock(ctx.pool, def, id, subjectOf(ctx));
668
735
  }
669
736
  /** Read a record's workflow history (steps + workitems). */
670
737
  async workflowHistory(objectName, id, ctx) {
@@ -676,7 +743,7 @@ export class DefaultObjectDataAccess {
676
743
  }
677
744
  /** The subject's pending workitems across all objects. */
678
745
  async workflowTodos(ctx) {
679
- return getWorkflowTodos(ctx.pool, ctx.subject);
746
+ return getWorkflowTodos(ctx.pool, subjectOf(ctx));
680
747
  }
681
748
  /** Admin override: jump the record to a node or terminate the instance. */
682
749
  async overrideWorkflow(objectName, id, patch, ctx) {
@@ -696,7 +763,7 @@ export class DefaultObjectDataAccess {
696
763
  try {
697
764
  if (owned)
698
765
  await client.query('BEGIN');
699
- const result = await overrideWorkflow(client, def, id, patch, ctx.subject, ctx.locale);
766
+ const result = await overrideWorkflow(client, def, id, patch, subjectOf(ctx), ctx.locale);
700
767
  if (owned)
701
768
  await client.query('COMMIT');
702
769
  if (result.nodeId !== undefined) {
@@ -722,7 +789,7 @@ export class DefaultObjectDataAccess {
722
789
  * inside the caller's transaction. `created` also stamps the creation facts.
723
790
  */
724
791
  async writeRecordMeta(client, def, key, ctx, now, created) {
725
- const actor = ctx.subject?.id ?? 'system';
792
+ const actor = subjectOf(ctx)?.id ?? principalActorId(ctx.principal);
726
793
  await upsertRecordMeta(client, def.name, key, created
727
794
  ? { createdBy: actor, modifiedBy: actor, createdTime: now, modifiedTime: now }
728
795
  : { modifiedBy: actor, modifiedTime: now });
@@ -762,9 +829,15 @@ export class DefaultObjectDataAccess {
762
829
  if (res.rowCount === 0)
763
830
  throw new SchemaError('data.recordNotFound', { object: objectName, id }, ctx.locale);
764
831
  await deleteRecordMeta(client, def.name, metaKey);
832
+ const auditInTx = this.audit?.recordInTx !== undefined;
833
+ if (auditInTx) {
834
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.DELETE, objectName, id, undefined, undefined, this.replay ? existing : undefined, undefined, client);
835
+ }
765
836
  if (owned)
766
837
  await client.query('COMMIT');
767
- auditWrite(this.audit, ctx, DATA_ACTIONS.DELETE, objectName, id, undefined, undefined, this.replay ? existing : undefined);
838
+ if (!auditInTx) {
839
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.DELETE, objectName, id, undefined, undefined, this.replay ? existing : undefined);
840
+ }
768
841
  this.events?.publishRecordChange('deleted', objectName, id);
769
842
  await this.workflowTimers?.cancel(objectName, id).catch(() => { });
770
843
  await this.runAfterHook(SCRIPT_HOOKS.AFTER_DELETE, DATA_ACTIONS.DELETE, objectName, existing, {}, ctx, warnings, id);
@@ -774,7 +847,7 @@ export class DefaultObjectDataAccess {
774
847
  catch (err) {
775
848
  if (owned)
776
849
  await client.query('ROLLBACK');
777
- auditWrite(this.audit, ctx, DATA_ACTIONS.DELETE, objectName, id, undefined, err);
850
+ await auditWrite(this.audit, ctx, DATA_ACTIONS.DELETE, objectName, id, undefined, err);
778
851
  throw err;
779
852
  }
780
853
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/runtime/data-access/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/runtime/data-access/query.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,11 @@ import type { ObjectDataAccess } from './types.js';
3
3
  /**
4
4
  * Decorate an object data-access with RBAC enforcement.
5
5
  *
6
- * Reads the authenticated `subject` from the execution context and:
6
+ * Reads the principal from the execution context and:
7
7
  * - find/findOne: injects the row-level scope and excludes hidden fields
8
8
  * - create/update/delete: authorizes the operation, filters update changes to
9
9
  * the allowed field set, and scopes update/delete to the read row scope
10
- * - no subject → pass-through (unrestricted, for internal/admin use)
10
+ * - a `system` principal → pass-through (explicit, capability-tagged)
11
11
  */
12
12
  export declare function withRbac(inner: ObjectDataAccess, options?: {
13
13
  audit?: AuditSink;
@@ -1 +1 @@
1
- {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/rbac.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EAA8C,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwF/F;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAO,GAAG,gBAAgB,CAkOvG"}
1
+ {"version":3,"file":"rbac.d.ts","sourceRoot":"","sources":["../../../src/runtime/data-access/rbac.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,KAAK,EAA8C,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6F/F;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,SAAS,CAAA;CAAO,GAAG,gBAAgB,CAqQvG"}