@abloatai/transaction 0.56.0 → 0.57.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 (191) hide show
  1. package/CONVENTIONS.md +34 -0
  2. package/dist/coordination/index.d.ts +2 -2
  3. package/dist/coordination/index.d.ts.map +1 -1
  4. package/dist/coordination/index.js +1 -1
  5. package/dist/coordination/index.js.map +1 -1
  6. package/dist/coordination/schema.d.ts +0 -7
  7. package/dist/coordination/schema.d.ts.map +1 -1
  8. package/dist/coordination/schema.js +0 -4
  9. package/dist/coordination/schema.js.map +1 -1
  10. package/dist/errorCodes.d.ts +1 -0
  11. package/dist/errorCodes.d.ts.map +1 -1
  12. package/dist/errorCodes.js +1 -0
  13. package/dist/errorCodes.js.map +1 -1
  14. package/dist/readSetContext.d.ts.map +1 -1
  15. package/dist/readSetContext.js +8 -3
  16. package/dist/readSetContext.js.map +1 -1
  17. package/dist/resources/httpResources.d.ts +43 -22
  18. package/dist/resources/httpResources.d.ts.map +1 -1
  19. package/dist/resources/httpResources.js +81 -4
  20. package/dist/resources/httpResources.js.map +1 -1
  21. package/dist/resources/modelCreate.d.ts +21 -0
  22. package/dist/resources/modelCreate.d.ts.map +1 -0
  23. package/dist/resources/modelCreate.js +49 -0
  24. package/dist/resources/modelCreate.js.map +1 -0
  25. package/dist/resources/modelOperations.d.ts +24 -2
  26. package/dist/resources/modelOperations.d.ts.map +1 -1
  27. package/dist/resources/modelOperations.js.map +1 -1
  28. package/dist/resources/writeOptionsSchema.d.ts +14 -0
  29. package/dist/resources/writeOptionsSchema.d.ts.map +1 -1
  30. package/dist/resources/writeOptionsSchema.js +20 -0
  31. package/dist/resources/writeOptionsSchema.js.map +1 -1
  32. package/dist/schema/audit.d.ts +15 -0
  33. package/dist/schema/audit.d.ts.map +1 -0
  34. package/dist/schema/audit.js +90 -0
  35. package/dist/schema/audit.js.map +1 -0
  36. package/dist/schema/ddl.d.ts.map +1 -1
  37. package/dist/schema/ddl.js +68 -1
  38. package/dist/schema/ddl.js.map +1 -1
  39. package/dist/schema/index.d.ts +3 -1
  40. package/dist/schema/index.d.ts.map +1 -1
  41. package/dist/schema/index.js +3 -1
  42. package/dist/schema/index.js.map +1 -1
  43. package/dist/schema/model.d.ts +14 -0
  44. package/dist/schema/model.d.ts.map +1 -1
  45. package/dist/schema/model.js +2 -0
  46. package/dist/schema/model.js.map +1 -1
  47. package/dist/schema/openapi.d.ts.map +1 -1
  48. package/dist/schema/openapi.js +104 -2
  49. package/dist/schema/openapi.js.map +1 -1
  50. package/dist/schema/roles.d.ts +27 -0
  51. package/dist/schema/roles.d.ts.map +1 -1
  52. package/dist/schema/roles.js +40 -0
  53. package/dist/schema/roles.js.map +1 -1
  54. package/dist/schema/schema.d.ts +23 -4
  55. package/dist/schema/schema.d.ts.map +1 -1
  56. package/dist/schema/schema.js +30 -1
  57. package/dist/schema/schema.js.map +1 -1
  58. package/dist/schema/serialize.d.ts +4 -1
  59. package/dist/schema/serialize.d.ts.map +1 -1
  60. package/dist/schema/serialize.js +5 -1
  61. package/dist/schema/serialize.js.map +1 -1
  62. package/dist/schema/subject.d.ts +18 -0
  63. package/dist/schema/subject.d.ts.map +1 -0
  64. package/dist/schema/subject.js +27 -0
  65. package/dist/schema/subject.js.map +1 -0
  66. package/dist/server/adapter.d.ts +2 -0
  67. package/dist/server/adapter.d.ts.map +1 -1
  68. package/dist/server/readConfig.d.ts +3 -0
  69. package/dist/server/readConfig.d.ts.map +1 -1
  70. package/dist/server/readConfig.js +0 -21
  71. package/dist/server/readConfig.js.map +1 -1
  72. package/dist/source/adapters/drizzle.d.ts.map +1 -1
  73. package/dist/source/adapters/drizzle.js +37 -6
  74. package/dist/source/adapters/drizzle.js.map +1 -1
  75. package/dist/source/adapters/kysely.d.ts +2 -0
  76. package/dist/source/adapters/kysely.d.ts.map +1 -1
  77. package/dist/source/adapters/kysely.js +33 -5
  78. package/dist/source/adapters/kysely.js.map +1 -1
  79. package/dist/source/adapters/kyselyMutationCore.d.ts +4 -1
  80. package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
  81. package/dist/source/adapters/kyselyMutationCore.js +17 -8
  82. package/dist/source/adapters/kyselyMutationCore.js.map +1 -1
  83. package/dist/source/adapters/memory.d.ts.map +1 -1
  84. package/dist/source/adapters/memory.js +1 -0
  85. package/dist/source/adapters/memory.js.map +1 -1
  86. package/dist/source/adapters/prisma.d.ts.map +1 -1
  87. package/dist/source/adapters/prisma.js +59 -7
  88. package/dist/source/adapters/prisma.js.map +1 -1
  89. package/dist/source/contract.d.ts +14 -0
  90. package/dist/source/contract.d.ts.map +1 -1
  91. package/dist/source/contract.js +10 -0
  92. package/dist/source/contract.js.map +1 -1
  93. package/dist/source/factory.d.ts +7 -1
  94. package/dist/source/factory.d.ts.map +1 -1
  95. package/dist/source/factory.js +116 -5
  96. package/dist/source/factory.js.map +1 -1
  97. package/dist/source/index.d.ts +2 -1
  98. package/dist/source/index.d.ts.map +1 -1
  99. package/dist/source/index.js +1 -0
  100. package/dist/source/index.js.map +1 -1
  101. package/dist/source/migrations.d.ts.map +1 -1
  102. package/dist/source/migrations.js +21 -0
  103. package/dist/source/migrations.js.map +1 -1
  104. package/dist/source/subjectAuthorization.d.ts +16 -0
  105. package/dist/source/subjectAuthorization.d.ts.map +1 -0
  106. package/dist/source/subjectAuthorization.js +126 -0
  107. package/dist/source/subjectAuthorization.js.map +1 -0
  108. package/dist/source/types.d.ts +52 -2
  109. package/dist/source/types.d.ts.map +1 -1
  110. package/dist/source/types.js +1 -0
  111. package/dist/source/types.js.map +1 -1
  112. package/dist/syncLog/contract.d.ts +0 -6
  113. package/dist/syncLog/contract.d.ts.map +1 -1
  114. package/dist/syncLog/contract.js +0 -4
  115. package/dist/syncLog/contract.js.map +1 -1
  116. package/dist/testing/fixtures/httpResponses.d.ts +6 -0
  117. package/dist/testing/fixtures/httpResponses.d.ts.map +1 -1
  118. package/dist/testing/fixtures/httpResponses.js +1 -0
  119. package/dist/testing/fixtures/httpResponses.js.map +1 -1
  120. package/dist/transport/httpClient.d.ts +8 -1
  121. package/dist/transport/httpClient.d.ts.map +1 -1
  122. package/dist/transport/httpClient.js +51 -20
  123. package/dist/transport/httpClient.js.map +1 -1
  124. package/dist/transport/httpCommitRequest.d.ts +45 -0
  125. package/dist/transport/httpCommitRequest.d.ts.map +1 -0
  126. package/dist/transport/httpCommitRequest.js +67 -0
  127. package/dist/transport/httpCommitRequest.js.map +1 -0
  128. package/dist/transport/httpTransport.d.ts.map +1 -1
  129. package/dist/transport/httpTransport.js +69 -106
  130. package/dist/transport/httpTransport.js.map +1 -1
  131. package/dist/transport/httpTransportHelpers.d.ts +10 -0
  132. package/dist/transport/httpTransportHelpers.d.ts.map +1 -0
  133. package/dist/transport/httpTransportHelpers.js +46 -0
  134. package/dist/transport/httpTransportHelpers.js.map +1 -0
  135. package/dist/wire/apiLifecycle.d.ts +63 -0
  136. package/dist/wire/apiLifecycle.d.ts.map +1 -0
  137. package/dist/wire/apiLifecycle.js +89 -0
  138. package/dist/wire/apiLifecycle.js.map +1 -0
  139. package/dist/wire/commit.d.ts +74 -9
  140. package/dist/wire/commit.d.ts.map +1 -1
  141. package/dist/wire/commit.js +13 -1
  142. package/dist/wire/commit.js.map +1 -1
  143. package/dist/wire/index.d.ts +5 -2
  144. package/dist/wire/index.d.ts.map +1 -1
  145. package/dist/wire/index.js +12 -1
  146. package/dist/wire/index.js.map +1 -1
  147. package/dist/wire/rateLimit.d.ts +82 -0
  148. package/dist/wire/rateLimit.d.ts.map +1 -0
  149. package/dist/wire/rateLimit.js +142 -0
  150. package/dist/wire/rateLimit.js.map +1 -0
  151. package/package.json +1 -1
  152. package/src/coordination/index.ts +0 -2
  153. package/src/coordination/schema.ts +0 -7
  154. package/src/errorCodes.ts +6 -0
  155. package/src/readSetContext.ts +8 -2
  156. package/src/resources/httpResources.ts +116 -25
  157. package/src/resources/modelCreate.ts +73 -0
  158. package/src/resources/modelOperations.ts +29 -2
  159. package/src/resources/writeOptionsSchema.ts +28 -0
  160. package/src/schema/audit.ts +121 -0
  161. package/src/schema/ddl.ts +71 -1
  162. package/src/schema/index.ts +16 -0
  163. package/src/schema/model.ts +17 -0
  164. package/src/schema/openapi.ts +123 -2
  165. package/src/schema/roles.ts +53 -0
  166. package/src/schema/schema.ts +68 -3
  167. package/src/schema/serialize.ts +8 -1
  168. package/src/schema/subject.ts +43 -0
  169. package/src/server/adapter.ts +2 -0
  170. package/src/server/readConfig.ts +4 -0
  171. package/src/source/adapters/drizzle.ts +50 -6
  172. package/src/source/adapters/kysely.ts +47 -4
  173. package/src/source/adapters/kyselyMutationCore.ts +21 -9
  174. package/src/source/adapters/memory.ts +1 -0
  175. package/src/source/adapters/prisma.ts +70 -7
  176. package/src/source/contract.ts +11 -0
  177. package/src/source/factory.ts +141 -5
  178. package/src/source/index.ts +6 -0
  179. package/src/source/migrations.ts +21 -0
  180. package/src/source/subjectAuthorization.ts +182 -0
  181. package/src/source/types.ts +56 -2
  182. package/src/syncLog/contract.ts +0 -7
  183. package/src/testing/fixtures/httpResponses.ts +7 -0
  184. package/src/transport/httpClient.ts +85 -23
  185. package/src/transport/httpCommitRequest.ts +104 -0
  186. package/src/transport/httpTransport.ts +92 -142
  187. package/src/transport/httpTransportHelpers.ts +63 -0
  188. package/src/wire/apiLifecycle.ts +94 -0
  189. package/src/wire/commit.ts +16 -1
  190. package/src/wire/index.ts +31 -0
  191. package/src/wire/rateLimit.ts +155 -0
@@ -70,6 +70,19 @@ export function sqlType(fieldType) {
70
70
  }
71
71
  }
72
72
  const BASE_COLUMNS = new Set(['id']);
73
+ function subjectPredicate(model, rule) {
74
+ const meta = model.fields[rule.field];
75
+ if (!meta) {
76
+ throw new AbloValidationError(`subject field ${JSON.stringify(rule.field)} is not declared`, {
77
+ code: 'schema_definition_invalid',
78
+ param: 'subject.field',
79
+ });
80
+ }
81
+ const column = meta.column ?? camelToSnake(rule.field);
82
+ const prefix = `${rule.group}:`.replace(/'/g, "''");
83
+ return (`COALESCE(NULLIF(current_setting('app.current_subject_groups', true), ''), '[]')::jsonb ` +
84
+ `? ('${prefix}' || ${q(column)}::text)`);
85
+ }
73
86
  // ── Foreign keys (relation-driven, sync-safe) ────────────────────────────────
74
87
  /**
75
88
  * A Postgres-identifier-safe constraint name ≤63 bytes. When the natural
@@ -250,7 +263,21 @@ export function generateProvisionPlan(schema, targetSchema, opts = {}) {
250
263
  statements.push(`ALTER TABLE ${qt} ENABLE ROW LEVEL SECURITY;`);
251
264
  statements.push(`ALTER TABLE ${qt} FORCE ROW LEVEL SECURITY;`);
252
265
  const policy = `${table}_tenant_isolation`;
253
- const predicate = `${q(orgCol)} = current_setting('app.current_org_id', true)`;
266
+ const predicates = [
267
+ `${q(orgCol)} = current_setting('app.current_org_id', true)`,
268
+ ...(model.subject ? [subjectPredicate(model, model.subject)] : []),
269
+ ];
270
+ const predicate = predicates.length === 1
271
+ ? predicates[0]
272
+ : predicates.map((part) => `(${part})`).join(' AND ');
273
+ statements.push(`DROP POLICY IF EXISTS ${q(policy)} ON ${qt};`);
274
+ statements.push(`CREATE POLICY ${q(policy)} ON ${qt}\n USING (${predicate})\n WITH CHECK (${predicate});`);
275
+ }
276
+ else if (model.subject) {
277
+ statements.push(`ALTER TABLE ${qt} ENABLE ROW LEVEL SECURITY;`);
278
+ statements.push(`ALTER TABLE ${qt} FORCE ROW LEVEL SECURITY;`);
279
+ const policy = `${table}_subject_isolation`;
280
+ const predicate = subjectPredicate(model, model.subject);
254
281
  statements.push(`DROP POLICY IF EXISTS ${q(policy)} ON ${qt};`);
255
282
  statements.push(`CREATE POLICY ${q(policy)} ON ${qt}\n USING (${predicate})\n WITH CHECK (${predicate});`);
256
283
  }
@@ -484,6 +511,46 @@ export function generateMigrationPlan(steps, opts) {
484
511
  concurrent.push(...fk.concurrent);
485
512
  }
486
513
  }
514
+ // Subject authorization is metadata rather than a field diff. Reconcile when
515
+ // that metadata changes, or when the protected field's physical column
516
+ // changes. An identical empty migration must remain a true no-op.
517
+ for (const [key, model] of Object.entries(next.models)) {
518
+ if ((model.plane ?? 'tenant') === 'control')
519
+ continue;
520
+ const previousModel = prev?.models[key];
521
+ const subjectChanged = JSON.stringify(previousModel?.subject) !== JSON.stringify(model.subject);
522
+ const subjectColumnChanged = steps.some((step) => 'model' in step && step.model === key &&
523
+ step.kind === 'alter_field' &&
524
+ (step.field === model.subject?.field || step.field === previousModel?.subject?.field) &&
525
+ step.changes.column !== undefined);
526
+ if (!subjectChanged && !subjectColumnChanged)
527
+ continue;
528
+ const table = model.tableName ?? key;
529
+ const qt = qtFor(table);
530
+ const orgCol = tenancyColumn(resolveTenancy(model));
531
+ const tenantPolicy = `${table}_tenant_isolation`;
532
+ const subjectPolicy = `${table}_subject_isolation`;
533
+ if (orgCol || model.subject) {
534
+ statements.push(`ALTER TABLE ${qt} ENABLE ROW LEVEL SECURITY;`);
535
+ statements.push(`ALTER TABLE ${qt} FORCE ROW LEVEL SECURITY;`);
536
+ statements.push(`DROP POLICY IF EXISTS ${q(tenantPolicy)} ON ${qt};`);
537
+ statements.push(`DROP POLICY IF EXISTS ${q(subjectPolicy)} ON ${qt};`);
538
+ const parts = [
539
+ ...(orgCol ? [`${q(orgCol)} = current_setting('app.current_org_id', true)`] : []),
540
+ ...(model.subject ? [subjectPredicate(model, model.subject)] : []),
541
+ ];
542
+ const predicate = parts.length === 1
543
+ ? parts[0]
544
+ : parts.map((part) => `(${part})`).join(' AND ');
545
+ const policy = orgCol ? tenantPolicy : subjectPolicy;
546
+ statements.push(`CREATE POLICY ${q(policy)} ON ${qt}\n USING (${predicate})\n WITH CHECK (${predicate});`);
547
+ }
548
+ else if (previousModel?.subject) {
549
+ statements.push(`DROP POLICY IF EXISTS ${q(subjectPolicy)} ON ${qt};`);
550
+ statements.push(`ALTER TABLE ${qt} NO FORCE ROW LEVEL SECURITY;`);
551
+ statements.push(`ALTER TABLE ${qt} DISABLE ROW LEVEL SECURITY;`);
552
+ }
553
+ }
487
554
  return { appSchema: targetSchema, statements, concurrent };
488
555
  }
489
556
  //# sourceMappingURL=ddl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../src/schema/ddl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ddl.js","sourceRoot":"","sources":["../../src/schema/ddl.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,10 @@ export { syncDeltaActionSchema, wireDeltaDataSchema, participantRefSchema, syncD
31
31
  export { model, scopeKindOf, LoadStrategy, DEFAULT_LOAD_STRATEGY, loadsAtBootstrap, type ModelDef, type ModelOptions, type PersistOptions, type RelationRecord, type GrantsRef, type ConflictAxis, } from './model.js';
32
32
  export { coordination, humansOverwrite, humansReject, humansNotify, agentsOverwrite, agentsReject, agentsNotify, systemOverwrite, systemReject, systemNotify, type ConflictRule, } from './coordination.js';
33
33
  export { mutable, readOnly, type SugarOptions } from './sugar.js';
34
- export { defineSchema, composeIdentitySyncGroups, type Schema, type SchemaRecord, type Model, type Row, type InferCreate, type InferRow, type InferModelNames, type BaseModelFields, type InsertValue, type UpsertValue, type UpdateValue, type DeleteId, type DefineSchemaOptions, type Casing, type CasingConvention, type CasingFn, composeEntitySyncGroups, intersectRequestedWithAllowed, type IdentityRole, type IdentityContext, type IdentityRoleSource, type EntityRole, type EntityContext, type EntityRoleSource, type RoleSource, type RoleContext, type SyncGroup, type SyncGroupRef, type SyncGroupInput, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, identityAnchor, IDENTITY_ANCHOR_KINDS, type IdentityAnchorKind, syncGroupSchema, syncGroupRefSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, type GroupsInput, type SessionSettings, type SessionSettingSource, RESERVED_SESSION_SETTINGS, } from './schema.js';
34
+ export { defineSchema, composeIdentitySyncGroups, type Schema, type SchemaRecord, type Model, type Row, type InferCreate, type InferRow, type InferModelNames, type BaseModelFields, type InsertValue, type UpsertValue, type UpdateValue, type Clearable, type DeleteId, type DefineSchemaOptions, type Casing, type CasingConvention, type CasingFn, composeEntitySyncGroups, syncGroupsForRow, InvalidRecordSubjectError, type RecordSyncGroupSpec, intersectRequestedWithAllowed, type IdentityRole, type IdentityContext, type IdentityRoleSource, type EntityRole, type EntityContext, type EntityRoleSource, type RoleSource, type RoleContext, type SyncGroup, type SyncGroupRef, type SyncGroupInput, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, identityAnchor, IDENTITY_ANCHOR_KINDS, type IdentityAnchorKind, syncGroupSchema, syncGroupRefSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, type GroupsInput, type SessionSettings, type SessionSettingSource, RESERVED_SESSION_SETTINGS, } from './schema.js';
35
35
  export { serializeSchema, parseSchema, toSchemaJSON, fromSchemaJSON, schemaHash, modelHash, type SchemaJSON, type ModelJSON, type RelationJSON, } from './serialize.js';
36
+ export { auditSchemaAccessPolicies, type SchemaAuditFinding, } from './audit.js';
37
+ export { subjectRuleSchema, subjectGroupForRow, subjectAuthorized, type SubjectRule, } from './subject.js';
36
38
  export { selectModels, omitModels, omittedModelError } from './select.js';
37
39
  export { generateProvisionPlan, generateMigrationPlan, appSchemaName, camelToSnake, snakeToCamel, q, sqlType, type ProvisionPlan, type MigrationPlan, } from './ddl.js';
38
40
  export { PG_LOCK_NOT_AVAILABLE, resolveDdlLockTimeout, resolveDdlMaxLockAttempts, ddlLockRetryBackoffMs, type DdlLockEnv, } from './ddlLock.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -56,9 +56,11 @@ export { coordination, humansOverwrite, humansReject, humansNotify, agentsOverwr
56
56
  // sensible defaults for everything else.
57
57
  export { mutable, readOnly } from './sugar.js';
58
58
  // Schema definition + type inference
59
- export { defineSchema, composeIdentitySyncGroups, composeEntitySyncGroups, intersectRequestedWithAllowed, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, identityAnchor, IDENTITY_ANCHOR_KINDS, syncGroupSchema, syncGroupRefSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, RESERVED_SESSION_SETTINGS, } from './schema.js';
59
+ export { defineSchema, composeIdentitySyncGroups, composeEntitySyncGroups, syncGroupsForRow, InvalidRecordSubjectError, intersectRequestedWithAllowed, identityRole, entityRole, extractIdentityIds, extractEntityIds, syncGroup, identityAnchor, IDENTITY_ANCHOR_KINDS, syncGroupSchema, syncGroupRefSchema, syncGroupInputSchema, isSyncGroupInput, identityRoleSchema, entityRoleSchema, roleSchema, roleSourceSchema, scopeSchema, grantsRefSchema, groupsInputSchema, RESERVED_SESSION_SETTINGS, } from './schema.js';
60
60
  // Schema ⇄ JSON — serialize a schema for transport and rebuild it on the far side.
61
61
  export { serializeSchema, parseSchema, toSchemaJSON, fromSchemaJSON, schemaHash, modelHash, } from './serialize.js';
62
+ export { auditSchemaAccessPolicies, } from './audit.js';
63
+ export { subjectRuleSchema, subjectGroupForRow, subjectAuthorized, } from './subject.js';
62
64
  // Schema projection — derive an app's subset from one canonical schema.
63
65
  export { selectModels, omitModels, omittedModelError } from './select.js';
64
66
  // Schema → Postgres DDL — shared by the host implementation and the command-line tools.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@
20
20
  import { z } from 'zod';
21
21
  import type { RelationDef } from './relation.js';
22
22
  import type { EntityRole, GroupsInput } from './roles.js';
23
+ import type { SubjectRule } from './subject.js';
23
24
  import { type FieldMeta } from './field.js';
24
25
  import { type Tenancy, type PolicyInput } from './tenancy.js';
25
26
  export type { ScopedViaRef, Tenancy, PolicyInput } from './tenancy.js';
@@ -123,6 +124,13 @@ export interface ModelOptions {
123
124
  * model is built.
124
125
  */
125
126
  policy?: PolicyInput;
127
+ /**
128
+ * Credential-bound row authorization below organization tenancy. The named
129
+ * row field must match a trusted credential group: `{ field: 'workspaceId',
130
+ * group: 'workspace' }` authorizes only rows whose `workspaceId` has a
131
+ * matching `workspace:<id>` group on the request.
132
+ */
133
+ subject?: SubjectRule;
126
134
  /**
127
135
  * Which database a model's rows live in. `tenant` (the default) is tenant data
128
136
  * that provisioning places in the customer's own database; `control` is Ablo's own
@@ -146,6 +154,8 @@ export interface ModelOptions {
146
154
  * - `roles` — explicit record-to-group roles keyed on a plain field, for routing
147
155
  * that does not follow a relation, such as fanning a message into a recipient's
148
156
  * inbox. Accepts one role or many.
157
+ * - `routingOnly: true` — explicitly acknowledges that these delivery groups
158
+ * are intentionally narrower than the model's independently safe read policy.
149
159
  *
150
160
  * ```ts
151
161
  * // archiveMember: { userId, archiveId }
@@ -308,6 +318,8 @@ export interface ModelDef<Shape extends z.ZodRawShape = z.ZodRawShape, R extends
308
318
  /** The canonical tenancy descriptor for this model, normalized from the `policy`
309
319
  * option at build time. See {@link ModelOptions.policy}. */
310
320
  readonly tenancy: Tenancy;
321
+ /** Credential-bound row authorization. See {@link ModelOptions.subject}. */
322
+ readonly subject?: SubjectRule;
311
323
  /** Which database this model's rows live in — `tenant` (default) can be a
312
324
  * customer's own database; `control` is Ablo's. See {@link ModelOptions.plane}. */
313
325
  readonly plane?: ModelResidency;
@@ -317,6 +329,8 @@ export interface ModelDef<Shape extends z.ZodRawShape = z.ZodRawShape, R extends
317
329
  readonly grants?: GrantsRef;
318
330
  /** Explicit record-to-group roles, normalized to an array. See {@link ModelOptions.groups}. */
319
331
  readonly entityRoles?: readonly EntityRole[];
332
+ /** Explicit acknowledgement that sync groups are routing, not row access. */
333
+ readonly routingOnly?: true;
320
334
  /** The write-conflict disposition per committer kind, carried as plain data. See
321
335
  * {@link ModelOptions.conflict}. */
322
336
  readonly conflict?: ConflictAxis;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
@@ -95,11 +95,13 @@ export function model(shape, options) {
95
95
  // Normalize the `policy` option into the canonical tenancy descriptor (defaults
96
96
  // to a row-local organization column).
97
97
  tenancy: resolvePolicy(options?.policy),
98
+ subject: options?.subject,
98
99
  plane: options?.plane ?? DEFAULT_RESIDENCY,
99
100
  // Unpack the `groups` option into the individual routing fields the server reads.
100
101
  scope: options?.groups?.root,
101
102
  grants: options?.groups?.grants,
102
103
  entityRoles: normalizeEntityRoles(options?.groups?.roles),
104
+ routingOnly: options?.groups?.routingOnly,
103
105
  // The conflict disposition is already plain data, so it passes through unchanged.
104
106
  conflict: options?.conflict,
105
107
  mutable: options?.mutable ?? true,
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/schema/model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/schema/openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA2DxD,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAoapC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,sBAA2B,GAAG,IAAI,CAobtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,YAAY,EACpD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,sBAA2B,GACnC,IAAI,CAoHN"}
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/schema/openapi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyExD,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6gBpC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,sBAA2B,GAAG,IAAI,CAqbtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,YAAY,EACpD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,sBAA2B,GACnC,IAAI,CAqHN"}
@@ -9,6 +9,11 @@ import { commitRequestSchema, commitReceiptSchema, commitRecordSchema, commitRec
9
9
  import { CURSOR_PARAM, CURSOR_PARAM_ALIAS } from '../wire/listEnvelope.js';
10
10
  import { claimRequestSchema, claimHeartbeatRequestSchema, listQuerySchema, claimStateSchema, claimAcquiredResponseSchema, claimQueuedResponseSchema, claimHeartbeatReplySchema, claimHeartbeatBatchReplySchema, claimListQuerySchema, claimListResponseSchema, claimReorderRequestSchema, claimReorderReplySchema, claimReleaseReplySchema, } from '../wire/claims.js';
11
11
  import { errorEnvelopeSchema } from '../wire/errorEnvelope.js';
12
+ // The lifecycle promise and the rate-limit fields are contract, not prose about
13
+ // contract: the document renders the same constants the server emits, so the
14
+ // published policy cannot describe a signal the runtime does not send.
15
+ import { API_DEPRECATION_HEADER, API_LIFECYCLE, API_SUNSET_HEADER, API_VERSION_HEADER, } from '../wire/apiLifecycle.js';
16
+ import { RATE_LIMIT_HEADER, RATE_LIMIT_POLICY_HEADER, RETRY_AFTER_HEADER, } from '../wire/rateLimit.js';
12
17
  import { modelReadResponseSchema, modelListResponseSchema } from '../wire/modelResponses.js';
13
18
  import { modelMutationRequestSchema } from '../wire/modelMutations.js';
14
19
  import { logListResponseSchema, logQuerySchema } from '../wire/feedEvent.js';
@@ -299,6 +304,96 @@ const claimIdParam = () => ({
299
304
  * shape would drift silently, and the tests would pin the copy to itself.
300
305
  */
301
306
  const commitBody = () => jsonBody(derive(commitRequestSchema, 'input'));
307
+ /**
308
+ * The response headers every operation carries, declared once under
309
+ * `components/headers` and referenced from each response.
310
+ *
311
+ * A header a caller is expected to act on has to be IN the document to be
312
+ * actionable: a generated client surfaces what the spec declares and drops what
313
+ * it does not, so an undeclared `RateLimit` is a header the caller never sees
314
+ * and therefore never paces against. Declaring them here rather than at each
315
+ * response is what keeps one description of each — the reason the names are
316
+ * imported rather than typed out.
317
+ */
318
+ const RESPONSE_HEADER_COMPONENTS = {
319
+ AbloVersion: {
320
+ description: 'The date-stamped contract version this response was served under. Record ' +
321
+ 'the value your integration was built against; a change means something ' +
322
+ 'observable was added.',
323
+ schema: { type: 'string', examples: ['2026-08-15'] },
324
+ },
325
+ RateLimitPolicy: {
326
+ description: 'The standing allowance for this credential kind, as a Structured Fields ' +
327
+ 'List: `"secret";q=600;w=12`. It does not move between responses, so read ' +
328
+ 'it once and pace against it.',
329
+ schema: { type: 'string', examples: ['"secret";q=600;w=12'] },
330
+ },
331
+ RateLimit: {
332
+ description: 'This caller\u2019s live position in the allowance: `r` units left, `t` ' +
333
+ 'seconds until they refill. Present once the request is attributed to a ' +
334
+ 'credential.',
335
+ schema: { type: 'string', examples: ['"secret";r=412;t=8'] },
336
+ },
337
+ RetryAfter: {
338
+ description: 'Whole seconds to wait before retrying. Sent with 429 and 503.',
339
+ schema: { type: 'integer', minimum: 1, examples: [8] },
340
+ },
341
+ RequestId: {
342
+ description: 'Correlation id for this request, repeated in the error envelope\u2019s ' +
343
+ '`request_id`. Quote it in a support request.',
344
+ schema: { type: 'string', examples: ['req_52bb7f46-17bc-4f2d-9988-89d1398d2990'] },
345
+ },
346
+ Deprecation: {
347
+ description: 'Present only on a route being withdrawn: an sf-Date of when the ' +
348
+ 'deprecation took effect (RFC 9745). The route still answers normally.',
349
+ schema: { type: 'string', examples: ['@1774483200'] },
350
+ },
351
+ Sunset: {
352
+ description: 'Present only on a route being withdrawn: the HTTP-date it stops ' +
353
+ 'answering (RFC 8594). Never less than the published notice window after ' +
354
+ `\`${API_DEPRECATION_HEADER}\`.`,
355
+ schema: { type: 'string', examples: ['Tue, 08 Sep 2026 00:00:00 GMT'] },
356
+ },
357
+ };
358
+ const headerRef = (name) => ({ $ref: `#/components/headers/${name}` });
359
+ /** Carried by every response, whatever its status. */
360
+ const UNIVERSAL_RESPONSE_HEADERS = {
361
+ [API_VERSION_HEADER]: headerRef('AbloVersion'),
362
+ 'X-Request-Id': headerRef('RequestId'),
363
+ [RATE_LIMIT_POLICY_HEADER]: headerRef('RateLimitPolicy'),
364
+ [RATE_LIMIT_HEADER]: headerRef('RateLimit'),
365
+ [API_DEPRECATION_HEADER]: headerRef('Deprecation'),
366
+ [API_SUNSET_HEADER]: headerRef('Sunset'),
367
+ };
368
+ /** Statuses where a wait is what resolves the failure, so `Retry-After` is sent. */
369
+ const RETRY_AFTER_STATUSES = new Set(['429', '503']);
370
+ /**
371
+ * Stamp the documented headers onto every response of every operation.
372
+ *
373
+ * Runs after the responses are built — including the canonical error ones — so
374
+ * a response added later cannot quietly ship without them.
375
+ */
376
+ function attachResponseHeaders(paths) {
377
+ for (const rawPathItem of Object.values(paths)) {
378
+ const pathItem = rawPathItem;
379
+ for (const [method, rawOperation] of Object.entries(pathItem)) {
380
+ if (!HTTP_METHODS.has(method))
381
+ continue;
382
+ const operation = rawOperation;
383
+ const responses = (operation.responses ?? {});
384
+ for (const [status, rawResponse] of Object.entries(responses)) {
385
+ const response = rawResponse;
386
+ response.headers = {
387
+ ...UNIVERSAL_RESPONSE_HEADERS,
388
+ ...(RETRY_AFTER_STATUSES.has(status)
389
+ ? { [RETRY_AFTER_HEADER]: headerRef('RetryAfter') }
390
+ : {}),
391
+ ...(response.headers ?? {}),
392
+ };
393
+ }
394
+ }
395
+ }
396
+ }
302
397
  /** The envelope shared by both specs — same server, same auth, same version. */
303
398
  function envelope(options, description, paths, schemas) {
304
399
  return {
@@ -306,7 +401,11 @@ function envelope(options, description, paths, schemas) {
306
401
  info: {
307
402
  title: options.title ?? 'Ablo API',
308
403
  version: options.version ?? 'development',
309
- description,
404
+ // The lifecycle policy travels WITH the routes it governs. An agent
405
+ // deciding whether to integrate needs to know the surface will not move
406
+ // under it, and a policy published somewhere else is one it has to go
407
+ // find — so the document that describes the calls describes the promise.
408
+ description: `${description}\n\n${API_LIFECYCLE}`,
310
409
  license: {
311
410
  name: 'Apache License 2.0',
312
411
  identifier: 'Apache-2.0',
@@ -316,8 +415,9 @@ function envelope(options, description, paths, schemas) {
316
415
  security: [{ bearerAuth: [] }],
317
416
  components: {
318
417
  securitySchemes: {
319
- bearerAuth: { type: 'http', scheme: 'bearer', description: 'Your Ablo API key (sk_ / rk_).' },
418
+ bearerAuth: { type: 'http', scheme: 'bearer', description: 'Your Ablo API key (sk_\u2026 / rk_\u2026).' },
320
419
  },
420
+ headers: { ...RESPONSE_HEADER_COMPONENTS },
321
421
  schemas,
322
422
  },
323
423
  paths,
@@ -759,6 +859,7 @@ export function abloOpenApi(options = {}) {
759
859
  };
760
860
  applyOperationIds(paths, ABLO_OPERATION_IDS);
761
861
  attachCanonicalErrors(paths);
862
+ attachResponseHeaders(paths);
762
863
  return envelope(options, 'Ablo collaboration infrastructure: commit, read, and claim. `{model}` is any model ' +
763
864
  'from your pushed schema — the routes are the same whichever it is. ' +
764
865
  'Authenticate every request with your API key as a Bearer token.', paths, abloComponentSchemas());
@@ -873,6 +974,7 @@ export function schemaToOpenApi(schema, options = {}) {
873
974
  operationIds['GET /v1/commits/{id}'] = 'getCommit';
874
975
  applyOperationIds(paths, operationIds);
875
976
  attachCanonicalErrors(paths);
977
+ attachResponseHeaders(paths);
876
978
  Object.assign(schemas, abloComponentSchemas());
877
979
  return envelope(options, 'Generated from your pushed Ablo schema — these routes are your models. ' +
878
980
  'Authenticate every request with your API key as a Bearer token.', paths, schemas);