@lovrozagar/oat 0.7.7 → 0.8.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 (68) hide show
  1. package/README.md +90 -27
  2. package/dist/cli.js +4 -0
  3. package/dist/config/define-config.d.ts +39 -7
  4. package/dist/config/define-config.d.ts.map +1 -1
  5. package/dist/config/define-config.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/reference/defects.d.ts +7 -0
  8. package/dist/reference/defects.d.ts.map +1 -1
  9. package/dist/reference/defects.js +7 -0
  10. package/dist/reference/defects.js.map +1 -1
  11. package/dist/reference/http.d.ts.map +1 -1
  12. package/dist/reference/http.js +37 -0
  13. package/dist/reference/http.js.map +1 -1
  14. package/dist/reference/model.d.ts +2 -0
  15. package/dist/reference/model.d.ts.map +1 -1
  16. package/dist/reference/model.js +1 -0
  17. package/dist/reference/model.js.map +1 -1
  18. package/dist/reference/spec.d.ts.map +1 -1
  19. package/dist/reference/spec.js +4 -2
  20. package/dist/reference/spec.js.map +1 -1
  21. package/dist/report/console.d.ts.map +1 -1
  22. package/dist/report/console.js +58 -0
  23. package/dist/report/console.js.map +1 -1
  24. package/dist/runtime/auth.d.ts +4 -0
  25. package/dist/runtime/auth.d.ts.map +1 -1
  26. package/dist/runtime/auth.js +43 -12
  27. package/dist/runtime/auth.js.map +1 -1
  28. package/dist/runtime/checks.d.ts +8 -0
  29. package/dist/runtime/checks.d.ts.map +1 -1
  30. package/dist/runtime/checks.js +220 -13
  31. package/dist/runtime/checks.js.map +1 -1
  32. package/dist/runtime/client.d.ts +15 -0
  33. package/dist/runtime/client.d.ts.map +1 -1
  34. package/dist/runtime/client.js +55 -6
  35. package/dist/runtime/client.js.map +1 -1
  36. package/dist/runtime/cookies.d.ts +58 -0
  37. package/dist/runtime/cookies.d.ts.map +1 -0
  38. package/dist/runtime/cookies.js +191 -0
  39. package/dist/runtime/cookies.js.map +1 -0
  40. package/dist/runtime/exchanges.d.ts.map +1 -1
  41. package/dist/runtime/exchanges.js +14 -0
  42. package/dist/runtime/exchanges.js.map +1 -1
  43. package/dist/runtime/fixture.d.ts +10 -0
  44. package/dist/runtime/fixture.d.ts.map +1 -1
  45. package/dist/runtime/fixture.js +107 -0
  46. package/dist/runtime/fixture.js.map +1 -1
  47. package/dist/runtime/run.d.ts.map +1 -1
  48. package/dist/runtime/run.js +49 -2
  49. package/dist/runtime/run.js.map +1 -1
  50. package/dist/runtime/unique.d.ts +47 -0
  51. package/dist/runtime/unique.d.ts.map +1 -0
  52. package/dist/runtime/unique.js +185 -0
  53. package/dist/runtime/unique.js.map +1 -0
  54. package/dist/runtime/world.d.ts +8 -0
  55. package/dist/runtime/world.d.ts.map +1 -1
  56. package/dist/runtime/world.js +53 -8
  57. package/dist/runtime/world.js.map +1 -1
  58. package/dist/spec/extensions.d.ts +21 -0
  59. package/dist/spec/extensions.d.ts.map +1 -1
  60. package/dist/spec/extensions.js +64 -0
  61. package/dist/spec/extensions.js.map +1 -1
  62. package/dist/spec/graph.d.ts +8 -0
  63. package/dist/spec/graph.d.ts.map +1 -1
  64. package/dist/spec/graph.js +7 -1
  65. package/dist/spec/graph.js.map +1 -1
  66. package/labs/annotated-openapi.yaml +25 -0
  67. package/labs/oob-auth.config.ts +56 -20
  68. package/package.json +1 -1
@@ -20,6 +20,8 @@ export declare class AuthRefreshRequiredError extends Error {
20
20
  export interface PrincipalRuntime {
21
21
  id: string;
22
22
  headers: () => Record<string, string>;
23
+ /** Live credential string — last issued, not a cleared snapshot. */
24
+ credential: () => string;
23
25
  /** Address this principal was provisioned under, for cascade teardown. */
24
26
  address: string | null;
25
27
  /** Values bound during acquisition — roots discovered from the credential live here too. */
@@ -76,6 +78,8 @@ export declare function acquireLooksLikeRegister(spec: AcquireSpec, model: SpecM
76
78
  export declare function resolveOutOfBandValue(hook: Hooks["resolveOutOfBand"], address: string, kind: string, options: {
77
79
  label: string;
78
80
  outOfBand?: Partial<BackoffConfig>;
81
+ scope?: Record<string, string>;
82
+ headers?: Record<string, string>;
79
83
  }): Promise<string>;
80
84
  export declare function resolvePrincipalAuthValue(hook: Hooks["resolvePrincipalAuth"], fromHook: string, options: {
81
85
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  import { isHookAuth } from "../config/define-config.js";
10
10
  import { requestContent } from "../spec/collection.js";
11
11
  import { encodeRequest } from "./body.js";
12
+ import { cookiesFromRecordedHeaders, readSaveAs } from "./cookies.js";
12
13
  import { isAbsentValue, pollWithBackoff, resolveBackoff, worstCaseWaitMs } from "./poll.js";
13
14
  export const DEFAULT_REFRESH_BUFFER_MS = 30_000;
14
15
  /** Signup acquire without `auth.refresh` — re-running `steps` would register again. */
@@ -84,21 +85,25 @@ export async function runAuthSteps(steps, spec, context, initialScope = {}) {
84
85
  if ("outOfBand" in step) {
85
86
  const address = String(interpolate(step.outOfBand.address, scope));
86
87
  const value = await resolveOutOfBandValue(context.hooks.resolveOutOfBand, address, step.outOfBand.kind, {
88
+ headers: flowCredentialHeaders(spec, scope),
87
89
  label: `principal "${context.principalId}"`,
90
+ scope: { ...scope },
88
91
  ...(context.outOfBand === undefined ? {} : { outOfBand: context.outOfBand }),
89
92
  });
90
93
  scope[step.outOfBand.as] = value;
91
94
  continue;
92
95
  }
93
96
  const request = await resolveRequest(step, context, scope, index);
97
+ const liveHeaders = request.redirect === undefined ? {} : flowCredentialHeaders(spec, scope);
94
98
  last = await request.client.request(request.method, request.path, {
95
99
  ...(request.body === undefined ? {} : { body: request.body }),
96
100
  ...(request.contentType === undefined ? {} : { contentType: request.contentType }),
97
- ...(request.headers === undefined ? {} : { headers: request.headers }),
101
+ headers: { ...liveHeaders, ...request.headers },
98
102
  ...(request.query === undefined ? {} : { query: request.query }),
99
103
  /* Auth hops must not trigger refresh / 401-retry — that is how a refresh deadlocks. */
100
104
  skipAuthRefresh: true,
101
105
  ...("operationId" in step ? { operationId: step.operationId } : {}),
106
+ ...(request.redirect === undefined ? {} : { redirect: request.redirect }),
102
107
  });
103
108
  const acceptable = ("expect" in step ? step.expect : undefined) ?? [];
104
109
  const ok = acceptable.length > 0 ? acceptable.includes(last.status) : last.status < 300;
@@ -108,9 +113,24 @@ export async function runAuthSteps(steps, spec, context, initialScope = {}) {
108
113
  `${acceptable.length > 0 ? acceptable.join("/") : "2xx"}, got ${last.status} — ` +
109
114
  `${JSON.stringify(last.responseBody).slice(0, 200)}`);
110
115
  }
116
+ const saveAs = "saveAs" in step ? step.saveAs : undefined;
117
+ const cookies = last.cookies ?? cookiesFromRecordedHeaders(last.responseHeaders);
118
+ for (const [name, path] of Object.entries(saveAs ?? {})) {
119
+ const value = readSaveAs(path, {
120
+ body: last.responseBody,
121
+ cookies,
122
+ headers: last.responseHeaders,
123
+ readJson: readPath,
124
+ });
125
+ if (value === undefined || value === null) {
126
+ throw new Error(`oat: auth step ${index + 1} for "${context.principalId}" declares saveAs.${name} = ` +
127
+ `"${path}", which is not present in the response`);
128
+ }
129
+ scope[name] = String(value);
130
+ }
111
131
  const saveClaimsFrom = "saveClaimsFrom" in step ? step.saveClaimsFrom : undefined;
112
132
  if (saveClaimsFrom !== undefined) {
113
- const token = readPath(last.responseBody, saveClaimsFrom.token);
133
+ const token = claimsToken(saveClaimsFrom.token, last.responseBody, scope);
114
134
  const claims = typeof token === "string" ? jwtClaims(token) : null;
115
135
  if (claims === null) {
116
136
  throw new Error(`oat: auth step ${index + 1} for "${context.principalId}" expected a JWT at ` +
@@ -125,15 +145,6 @@ export async function runAuthSteps(steps, spec, context, initialScope = {}) {
125
145
  scope[name] = String(value);
126
146
  }
127
147
  }
128
- const saveAs = "saveAs" in step ? step.saveAs : undefined;
129
- for (const [name, path] of Object.entries(saveAs ?? {})) {
130
- const value = readPath(last.responseBody, path);
131
- if (value === undefined || value === null) {
132
- throw new Error(`oat: auth step ${index + 1} for "${context.principalId}" declares saveAs.${name} = ` +
133
- `"${path}", which is not present in the response`);
134
- }
135
- scope[name] = String(value);
136
- }
137
148
  }
138
149
  const credential = scope.credential ?? String(readPath(last?.responseBody, spec.credentialFrom) ?? "");
139
150
  if (credential === "" || credential === "undefined") {
@@ -175,6 +186,21 @@ function headerOf(headers, name) {
175
186
  }
176
187
  return undefined;
177
188
  }
189
+ function flowCredentialHeaders(spec, scope) {
190
+ const credential = scope.credential;
191
+ if (credential === undefined || credential === "")
192
+ return {};
193
+ const header = spec.header ?? "authorization";
194
+ const template = spec.template ?? "Bearer {credential}";
195
+ return { [header]: template.replace("{credential}", credential) };
196
+ }
197
+ /** JWT from a JSON body path, or a scope key bound by a prior / same-step `saveAs`. */
198
+ function claimsToken(address, body, scope) {
199
+ if (!address.startsWith("$") && !address.includes(".") && scope[address] !== undefined) {
200
+ return scope[address];
201
+ }
202
+ return readPath(body, address);
203
+ }
178
204
  function computeExpiry(spec, last, credential) {
179
205
  /* Prefer what the API states, then what the credential itself carries, then the configured
180
206
  * fallback. Guessing an expiry that is too long means requests start failing mid-run for
@@ -225,6 +251,7 @@ async function resolveRequest(step, context, scope, index) {
225
251
  client: target.client,
226
252
  method: step.method,
227
253
  path: String(interpolate(step.path, scope)),
254
+ redirect: step.redirect ?? "follow",
228
255
  ...(step.body === undefined ? {} : { body: interpolate(step.body, scope) }),
229
256
  ...(step.headers === undefined ? {} : { headers: interpolate(step.headers, scope) }),
230
257
  ...(step.query === undefined ? {} : { query: interpolate(step.query, scope) }),
@@ -282,7 +309,9 @@ export async function resolveOutOfBandValue(hook, address, kind, options) {
282
309
  "KV store or webhook sink — supply a function that can.");
283
310
  }
284
311
  const backoff = resolveBackoff(options.outOfBand);
285
- const value = await pollWithBackoff((attempt) => hook({ address, attempt, kind }), backoff, isAbsentValue);
312
+ const scope = options.scope ?? {};
313
+ const headers = options.headers ?? {};
314
+ const value = await pollWithBackoff((attempt) => hook({ address, attempt, headers, kind, scope }), backoff, isAbsentValue);
286
315
  if (typeof value === "string" && value !== "")
287
316
  return value;
288
317
  throw new Error(`oat: no "${kind}" value arrived for ${address} after ${backoff.attempts} attempts ` +
@@ -323,6 +352,7 @@ async function createHookPrincipal(id, spec, context) {
323
352
  const authValue = (token) => template.replace("{credential}", token);
324
353
  const runtime = {
325
354
  address: null,
355
+ credential: () => credential,
326
356
  expiresAt: null,
327
357
  headers: () => ({ [header]: authValue(credential) }),
328
358
  id,
@@ -390,6 +420,7 @@ async function createFlowPrincipal(id, spec, context) {
390
420
  const authValue = (token) => template.replace("{credential}", token);
391
421
  const runtime = {
392
422
  address: null,
423
+ credential: () => credential,
393
424
  expiresAt: null,
394
425
  headers: () => ({ [header]: authValue(credential) }),
395
426
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/runtime/auth.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,14 @@ export interface CheckContext {
61
61
  altScope: Record<string, string> | undefined;
62
62
  validator: SchemaValidator | undefined;
63
63
  seed: number;
64
+ /** Effective unique column sets for this entity (`[]` when the tag is absent or empty). */
65
+ uniqueSets: string[][];
66
+ /** First-variant create 409 adopted a same-tenant row; unique probes still run. */
67
+ uniqueAdopted: boolean;
68
+ /** Create operation for unique probes — still set after unique-409 adopt. */
69
+ uniqueCreateOp: OperationModel | undefined;
70
+ /** Update operation for unique probes — still set after unique-409 adopt. */
71
+ uniqueUpdateOp: OperationModel | undefined;
64
72
  /** File pool / dummy resolution for multipart parts. */
65
73
  uploads: UploadContext;
66
74
  /** Operations on this entity declared async via `x-async`. */
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/runtime/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../src/runtime/checks.ts"],"names":[],"mappings":"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"}
@@ -14,10 +14,12 @@ import { STRING_PAYLOADS, payloadFits } from "./payloads.js";
14
14
  import { describeFeatureGate, isDocumentedFeatureGateDenial, reportFeatureGateSchemaDrift } from "./feature-gate.js";
15
15
  import { driveAsync, inspectStreamAsync, matchesPredicate, resolveAsyncId } from "./async.js";
16
16
  import { resolveOutOfBandValue } from "./auth.js";
17
+ import { isAbsoluteHttpUrl } from "./cookies.js";
17
18
  import { buildCohort } from "./fixture.js";
18
19
  import { forEachInvocation } from "./upload-each.js";
19
20
  import { driveWait } from "./wait.js";
20
- import { fillPath } from "./world.js";
21
+ import { fillPath, isPlanLimitResponse } from "./world.js";
22
+ import { bodyPropertyNames, collisionCreateBody, collisionUpdatePatch, idempotencyHeaderRequired, probeableUniqueSets, reportUniqueSchemaDrift, uniquifyProbeBody, uniqueProbeHeaders, } from "./unique.js";
21
23
  import { bindAfterCreateEffects, bindCreatedScope, bindMissingPathParams, canFillPath, describeEffectHold, effectHolds, identityPathParam, } from "./effects.js";
22
24
  /* ------------------------------------------------------------------- helpers */
23
25
  /**
@@ -2733,8 +2735,10 @@ const inviteGrantsThenRevokes = {
2733
2735
  const kind = spec.tokenKind ?? `${ctx.entityName}-invite`;
2734
2736
  try {
2735
2737
  token = await resolveOutOfBandValue(ctx.hooks.resolveOutOfBand, delegate.inviteAs, kind, {
2738
+ headers: delegate.headers(),
2736
2739
  label: `invite to ${ctx.entityName}`,
2737
2740
  outOfBand: ctx.outOfBand,
2741
+ scope: { ...resource, inviteAs: delegate.inviteAs },
2738
2742
  });
2739
2743
  }
2740
2744
  catch (error) {
@@ -2748,18 +2752,31 @@ const inviteGrantsThenRevokes = {
2748
2752
  }
2749
2753
  }
2750
2754
  const acceptScope = { ...resource, token };
2751
- const acceptBody = documentedJsonBody(ctx, acceptOp, acceptScope);
2752
- const accepted = await ctx.client.request(acceptOp.method, fillPath(acceptOp.path, acceptScope), {
2753
- ...(acceptBody === undefined ? {} : { body: acceptBody }),
2754
- headers: {
2755
- ...delegate.headers(),
2756
- ...(acceptBody === undefined ? {} : { "content-type": "application/json" }),
2757
- },
2758
- operationId: acceptOp.operationId,
2759
- });
2760
- if (standDownForFeatureGate(ctx, acceptOp, accepted, this.id))
2755
+ let accepted;
2756
+ if (spec.acceptFrom === "link") {
2757
+ if (!isAbsoluteHttpUrl(token)) {
2758
+ return ctx.findings.unresolved(this.id, ctx.entityName, `x-invite.acceptFrom: link needs an absolute http(s) URL, got ${JSON.stringify(token)}`);
2759
+ }
2760
+ accepted = await ctx.client.request("GET", token, {
2761
+ headers: delegate.headers(),
2762
+ redirect: "follow",
2763
+ });
2764
+ }
2765
+ else {
2766
+ const acceptBody = documentedJsonBody(ctx, acceptOp, acceptScope);
2767
+ accepted = await ctx.client.request(acceptOp.method, fillPath(acceptOp.path, acceptScope), {
2768
+ ...(acceptBody === undefined ? {} : { body: acceptBody }),
2769
+ headers: {
2770
+ ...delegate.headers(),
2771
+ ...(acceptBody === undefined ? {} : { "content-type": "application/json" }),
2772
+ },
2773
+ operationId: acceptOp.operationId,
2774
+ });
2775
+ }
2776
+ if (spec.acceptFrom !== "link" && standDownForFeatureGate(ctx, acceptOp, accepted, this.id))
2761
2777
  return;
2762
- if (accepted.status >= 300) {
2778
+ const acceptFailed = spec.acceptFrom === "link" ? accepted.status >= 400 : accepted.status >= 300;
2779
+ if (acceptFailed) {
2763
2780
  return ctx.findings.unresolved(this.id, ctx.entityName, `accept returned ${accepted.status}`);
2764
2781
  }
2765
2782
  if ((await canRead()) === false) {
@@ -3160,7 +3177,11 @@ const successSchemaHonoured = {
3160
3177
  /** Builds a body that should be accepted, for use as the base of a negative probe. */
3161
3178
  function validBody(ctx, schema) {
3162
3179
  const [member] = buildCohort(schema, ctx.seed, ["baseline"], ctx.createOp?.operationId ?? ctx.entityName);
3163
- return member?.body ?? {};
3180
+ const body = member?.body ?? {};
3181
+ const sets = ctx.uniqueSets ?? [];
3182
+ if (sets.length === 0)
3183
+ return body;
3184
+ return uniquifyProbeBody(body, sets, schema, `p${ctx.seed}x${ctx.client.transcript.length}`);
3164
3185
  }
3165
3186
  /** Invite bodies must carry the peer's `inviteAs`, never a generated email. */
3166
3187
  function bodyForOp(ctx, op) {
@@ -5249,6 +5270,190 @@ const queryFilterSearchSortSelectCompose = {
5249
5270
  ctx.findings.backend(this.id, ctx.entityName, "filter ∩ search membership changes when sort and select join", `the four-axis listing returned ${combined.items.length}; filter+search alone returned ${base.items.length}.`, [base.last.exchange, combined.last.exchange]);
5250
5271
  },
5251
5272
  };
5273
+ /** Item GET when available — list projections can disagree with stored unique values. */
5274
+ async function liveRecord(ctx, id) {
5275
+ if (id === undefined || ctx.readOp === undefined)
5276
+ return undefined;
5277
+ try {
5278
+ const exchange = await ctx.client.get(fillPath(ctx.readOp.path, { ...ctx.scope, ...itemParamFor(ctx, id) }), {
5279
+ headers: ctx.auth(),
5280
+ });
5281
+ if (exchange.status >= 300 || exchange.responseBody === null || typeof exchange.responseBody !== "object") {
5282
+ return undefined;
5283
+ }
5284
+ return exchange.responseBody;
5285
+ }
5286
+ catch {
5287
+ return undefined;
5288
+ }
5289
+ }
5290
+ async function teardownCreatedId(ctx, id) {
5291
+ const deleteOp = ctx.deleteOp ?? ctx.model.byOperationId.get(ctx.model.entities.get(ctx.entityName)?.delete ?? "");
5292
+ if (deleteOp === undefined)
5293
+ return;
5294
+ try {
5295
+ await ctx.client.request("DELETE", fillPath(deleteOp.path, { ...ctx.scope, ...itemParamFor(ctx, id) }), {
5296
+ headers: ctx.auth(),
5297
+ });
5298
+ }
5299
+ catch {
5300
+ /* A leftover row is worse than a teardown 404. */
5301
+ }
5302
+ }
5303
+ const uniqueConflictCreate = {
5304
+ applicable: (ctx) => ctx.uniqueCreateOp !== undefined &&
5305
+ (ctx.uniqueSets?.length ?? 0) > 0 &&
5306
+ ctx.records.length > 0 &&
5307
+ probeableUniqueSets(ctx.uniqueCreateOp, ctx.model, "create", ctx.uniqueSets).length > 0,
5308
+ id: "create.unique-conflict-rejected",
5309
+ mutates: true,
5310
+ needs: "x-unique on create with at least one probeable column set, and a known row",
5311
+ async run(ctx) {
5312
+ const createOp = ctx.uniqueCreateOp;
5313
+ if (createOp === undefined)
5314
+ return;
5315
+ const sets = probeableUniqueSets(createOp, ctx.model, "create", ctx.uniqueSets);
5316
+ const schema = requestSchemaOf(ctx, createOp);
5317
+ const bodyCols = bodyPropertyNames(createOp, ctx.model);
5318
+ const path = fillPath(createOp.path, ctx.scope);
5319
+ const required = idempotencyHeaderRequired(createOp, ctx.model);
5320
+ const listLimit = ctx.query?.maxLimit ?? 100;
5321
+ const before = await list(ctx, q(ctx, { limit: listLimit }));
5322
+ const listResolved = before.exchange.status < 400;
5323
+ const evidence = listResolved ? [before.exchange] : [];
5324
+ const seedId = ctx.records[0] === undefined ? undefined : String(ctx.records[0][ctx.identity]);
5325
+ const known = (await liveRecord(ctx, seedId)) ?? ctx.records[0];
5326
+ if (known === undefined) {
5327
+ return ctx.findings.unresolved(this.id, ctx.entityName, "no known row to collide unique values against");
5328
+ }
5329
+ for (const [index, set] of sets.entries()) {
5330
+ const base = uniquifyProbeBody(validBody(ctx, schema ?? {}), ctx.uniqueSets, schema, `u${ctx.seed}${index}${ctx.client.transcript.length}`);
5331
+ const body = collisionCreateBody(base, known, set, ctx.scope, bodyCols, createOp.generated);
5332
+ if (body === null)
5333
+ continue;
5334
+ const headers = uniqueProbeHeaders(ctx.auth(), createOp.idempotencyHeader, required, `oat-unique-${ctx.entityName}-${ctx.seed}-${index}`);
5335
+ const encoded = await encodeOpBody(ctx, createOp, body);
5336
+ const probe = await ctx.client.request("POST", path, { ...encoded, headers, operationId: createOp.operationId });
5337
+ evidence.push(probe);
5338
+ if (standDownForFeatureGate(ctx, createOp, probe, this.id))
5339
+ continue;
5340
+ if (isPlanLimitResponse(probe.status, probe.responseBody)) {
5341
+ ctx.findings.gap(this.id, ctx.entityName, `${createOp.operationId} did not apply`, `${createOp.operationId} returned ${probe.status} (plan limit) on a unique-conflict ` +
5342
+ "probe, so uniqueness was not observed.");
5343
+ continue;
5344
+ }
5345
+ const after = await list(ctx, q(ctx, { limit: listLimit }));
5346
+ if (after.exchange.status < 400)
5347
+ evidence.push(after.exchange);
5348
+ if (probe.status === 409) {
5349
+ if (ctx.validator !== undefined) {
5350
+ reportUniqueSchemaDrift(ctx.findings, ctx.validator, createOp, ctx.model.rawOperations.get(createOp.operationId), probe, ctx.entityName);
5351
+ }
5352
+ if (listResolved && after.exchange.status < 400 && after.items.length > before.items.length) {
5353
+ ctx.findings.backend(this.id, ctx.entityName, "a unique-conflict 409 still grew the collection", `POST colliding ${set.join(", ")} returned 409 but the list grew from ` +
5354
+ `${before.items.length} to ${after.items.length}.`, [before.exchange, probe, after.exchange]);
5355
+ }
5356
+ continue;
5357
+ }
5358
+ if (probe.status >= 200 && probe.status < 300) {
5359
+ const returned = (probe.responseBody ?? {});
5360
+ const id = returned[ctx.identity];
5361
+ if (typeof id === "string" || typeof id === "number")
5362
+ await teardownCreatedId(ctx, String(id));
5363
+ ctx.findings.backend(this.id, ctx.entityName, "a duplicate unique-set create was accepted", `${createOp.operationId} returned ${probe.status} for a second create colliding ` +
5364
+ `${set.join(", ")}. A documented unique constraint must be 409, not 2xx.`, evidence.slice(-3));
5365
+ continue;
5366
+ }
5367
+ ctx.findings.unresolved(this.id, ctx.entityName, `unique probe for ${set.join(", ")} returned ${probe.status}, which is not a 409 unique conflict`);
5368
+ }
5369
+ },
5370
+ };
5371
+ const uniqueConflictUpdate = {
5372
+ applicable: (ctx) => ctx.uniqueUpdateOp !== undefined &&
5373
+ (ctx.uniqueSets?.length ?? 0) > 0 &&
5374
+ ctx.records.length >= 2 &&
5375
+ probeableUniqueSets(ctx.uniqueUpdateOp, ctx.model, "update", ctx.uniqueSets).length > 0,
5376
+ id: "update.unique-conflict-rejected",
5377
+ mutates: true,
5378
+ needs: "x-unique, an update operation with a probeable set, and two known rows",
5379
+ async run(ctx) {
5380
+ const updateOp = ctx.uniqueUpdateOp;
5381
+ if (updateOp === undefined)
5382
+ return;
5383
+ const sets = probeableUniqueSets(updateOp, ctx.model, "update", ctx.uniqueSets);
5384
+ const bodyCols = bodyPropertyNames(updateOp, ctx.model);
5385
+ const required = idempotencyHeaderRequired(updateOp, ctx.model);
5386
+ const listLimit = ctx.query?.maxLimit ?? 100;
5387
+ const before = await list(ctx, q(ctx, { limit: listLimit }));
5388
+ const listResolved = before.exchange.status < 400;
5389
+ const live = [];
5390
+ for (const row of ctx.records) {
5391
+ const id = String(row[ctx.identity]);
5392
+ live.push((await liveRecord(ctx, id)) ?? row);
5393
+ }
5394
+ if (live.length < 2) {
5395
+ return ctx.findings.unresolved(this.id, ctx.entityName, "need two live rows to PATCH one onto the other's unique values");
5396
+ }
5397
+ for (const [index, set] of sets.entries()) {
5398
+ const source = live[0];
5399
+ if (source === undefined)
5400
+ return;
5401
+ const target = live.find((row) => {
5402
+ if (String(row[ctx.identity]) === String(source[ctx.identity]))
5403
+ return false;
5404
+ return set.some((col) => JSON.stringify(row[col]) !== JSON.stringify(source[col]));
5405
+ });
5406
+ if (target === undefined)
5407
+ continue;
5408
+ const patch = collisionUpdatePatch(source, set, ctx.scope, bodyCols, updateOp.immutable, updateOp.generated);
5409
+ if (patch === null)
5410
+ continue;
5411
+ const id = String(target[ctx.identity]);
5412
+ const params = { ...ctx.scope, ...itemParamFor(ctx, id) };
5413
+ const headers = uniqueProbeHeaders(ctx.auth(), updateOp.idempotencyHeader, required, `oat-unique-patch-${ctx.entityName}-${ctx.seed}-${index}`);
5414
+ const encoded = await encodeOpBody(ctx, updateOp, patch);
5415
+ const probe = await ctx.client.request("PATCH", fillPath(updateOp.path, params), {
5416
+ ...encoded,
5417
+ headers,
5418
+ operationId: updateOp.operationId,
5419
+ });
5420
+ if (standDownForFeatureGate(ctx, updateOp, probe, this.id))
5421
+ continue;
5422
+ if (isPlanLimitResponse(probe.status, probe.responseBody)) {
5423
+ ctx.findings.gap(this.id, ctx.entityName, `${updateOp.operationId} did not apply`, `${updateOp.operationId} returned ${probe.status} (plan limit) on a unique-conflict ` +
5424
+ "probe, so uniqueness was not observed.");
5425
+ continue;
5426
+ }
5427
+ const after = await list(ctx, q(ctx, { limit: listLimit }));
5428
+ if (probe.status === 409) {
5429
+ if (ctx.validator !== undefined) {
5430
+ reportUniqueSchemaDrift(ctx.findings, ctx.validator, updateOp, ctx.model.rawOperations.get(updateOp.operationId), probe, ctx.entityName);
5431
+ }
5432
+ if (listResolved && after.exchange.status < 400 && after.items.length > before.items.length) {
5433
+ ctx.findings.backend(this.id, ctx.entityName, "a unique-conflict 409 still grew the collection", `PATCH colliding ${set.join(", ")} returned 409 but the list grew from ` +
5434
+ `${before.items.length} to ${after.items.length}.`, [before.exchange, probe, after.exchange]);
5435
+ }
5436
+ continue;
5437
+ }
5438
+ if (probe.status >= 200 && probe.status < 300) {
5439
+ const revert = {};
5440
+ for (const col of Object.keys(patch))
5441
+ revert[col] = target[col];
5442
+ if (Object.keys(revert).length > 0) {
5443
+ await ctx.client.request("PATCH", fillPath(updateOp.path, params), {
5444
+ ...(await encodeOpBody(ctx, updateOp, revert)),
5445
+ headers: ctx.auth(),
5446
+ });
5447
+ }
5448
+ ctx.findings.backend(this.id, ctx.entityName, "a duplicate unique-set update was accepted", `${updateOp.operationId} returned ${probe.status} when PATCHing a different row ` +
5449
+ `onto ${set.join(", ")} values already held by another row. A documented unique ` +
5450
+ "constraint must be 409, not 2xx.", [probe]);
5451
+ continue;
5452
+ }
5453
+ ctx.findings.unresolved(this.id, ctx.entityName, `unique PATCH for ${set.join(", ")} returned ${probe.status}, which is not a 409 unique conflict`);
5454
+ }
5455
+ },
5456
+ };
5252
5457
  export const CHECKS = [
5253
5458
  /* foundations — did the write land, is it visible, and do the paging primitives work at all.
5254
5459
  * Everything below assumes these hold, so they must be evaluated first for cascade
@@ -5308,6 +5513,8 @@ export const CHECKS = [
5308
5513
  filterLteIsLtOrEq,
5309
5514
  filterOrderedTriplePartitions,
5310
5515
  /* write semantics */
5516
+ uniqueConflictCreate,
5517
+ uniqueConflictUpdate,
5311
5518
  patchMinimality,
5312
5519
  immutableRejected,
5313
5520
  stringPayloadSurvives,