@noodleseed/one 0.35.0 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
File without changes
@@ -0,0 +1,16 @@
1
+ import type { PolicyAssignmentInput } from './policy.js';
2
+ export type PolicyMutationKind = 'apply' | 'delete';
3
+ type PolicyMutationComparable = Pick<PolicyAssignmentInput, 'id' | 'scope' | 'policy' | 'createdBySubject' | 'createdByEmail' | 'reason' | 'source' | 'metadata' | 'expectedVersion'>;
4
+ /**
5
+ * Produce the semantic identity of a policy mutation. The optimistic-version precondition is part of the
6
+ * request body and therefore part of its idempotency identity; only the idempotency key itself is absent.
7
+ * Empty metadata is equivalent to omitted metadata, matching the Postgres JSONB row projection.
8
+ */
9
+ export declare function policyMutationFingerprint(kind: PolicyMutationKind, input: PolicyMutationComparable): string;
10
+ /**
11
+ * Stable JSON used by mutation fingerprints: object keys are recursively sorted while array positions
12
+ * remain significant. Kept as a small exported internal helper so its ordering contract is directly tested.
13
+ */
14
+ export declare function canonicalJsonFingerprint(value: unknown): string;
15
+ export {};
16
+ //# sourceMappingURL=policy-idempotency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-idempotency.d.ts","sourceRoot":"","sources":["../src/policy-idempotency.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EAKtB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpD,KAAK,wBAAwB,GAAG,IAAI,CAClC,qBAAqB,EACnB,IAAI,GACJ,OAAO,GACP,QAAQ,GACR,kBAAkB,GAClB,gBAAgB,GAChB,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,iBAAiB,CACpB,CAAC;AAyBF;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAKR;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK/D"}
@@ -0,0 +1,58 @@
1
+ import { createHash } from 'node:crypto';
2
+ /**
3
+ * Produce the semantic identity of a policy mutation. The optimistic-version precondition is part of the
4
+ * request body and therefore part of its idempotency identity; only the idempotency key itself is absent.
5
+ * Empty metadata is equivalent to omitted metadata, matching the Postgres JSONB row projection.
6
+ */
7
+ export function policyMutationFingerprint(kind, input) {
8
+ const digest = createHash('sha256')
9
+ .update(canonicalJsonFingerprint(policyMutation(kind, input)))
10
+ .digest('hex');
11
+ return `v1:${digest}`;
12
+ }
13
+ /**
14
+ * Stable JSON used by mutation fingerprints: object keys are recursively sorted while array positions
15
+ * remain significant. Kept as a small exported internal helper so its ordering contract is directly tested.
16
+ */
17
+ export function canonicalJsonFingerprint(value) {
18
+ const serialized = JSON.stringify(canonicalizeJson(value));
19
+ if (serialized === undefined)
20
+ throw new Error('policy mutation fingerprint must be JSON-serializable');
21
+ return serialized;
22
+ }
23
+ function policyMutation(kind, input) {
24
+ const common = {
25
+ id: input.id,
26
+ createdBySubject: input.createdBySubject,
27
+ ...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
28
+ reason: input.reason,
29
+ source: input.source,
30
+ ...(input.expectedVersion !== undefined ? { expectedVersion: input.expectedVersion } : {}),
31
+ };
32
+ if (kind === 'delete')
33
+ return { kind, ...common };
34
+ return {
35
+ kind,
36
+ ...common,
37
+ scope: input.scope,
38
+ policy: input.policy,
39
+ ...(input.metadata !== undefined && Object.keys(input.metadata).length > 0
40
+ ? { metadata: input.metadata }
41
+ : {}),
42
+ };
43
+ }
44
+ function canonicalizeJson(value) {
45
+ if (Array.isArray(value))
46
+ return value.map(canonicalizeJson);
47
+ if (value === null || typeof value !== 'object')
48
+ return value;
49
+ const record = value;
50
+ const canonical = {};
51
+ for (const key of Object.keys(record).sort()) {
52
+ const child = record[key];
53
+ if (child !== undefined)
54
+ canonical[key] = canonicalizeJson(child);
55
+ }
56
+ return canonical;
57
+ }
58
+ //# sourceMappingURL=policy-idempotency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-idempotency.js","sourceRoot":"","sources":["../src/policy-idempotency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA+CzC;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAwB,EACxB,KAA+B;IAE/B,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;SAChC,MAAM,CAAC,wBAAwB,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC7D,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,OAAO,MAAM,MAAM,EAAE,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,IAAI,UAAU,KAAK,SAAS;QAC1B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,IAAwB,EAAE,KAA+B;IAC/E,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3F,CAAC;IACF,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAClD,OAAO;QACL,IAAI;QACJ,GAAG,MAAM;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC;YACxE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YAC9B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE9D,MAAM,MAAM,GAAG,KAA0C,CAAC;IAC1D,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { InMemoryPolicyCounterStore } from './policy-counters.js';
2
+ import { policyMutationFingerprint } from './policy-idempotency.js';
2
3
  import { validateSlug } from './store.js';
3
4
  export class PolicyConflictError extends Error {
4
5
  status = 409;
@@ -59,7 +60,7 @@ export class InMemoryPolicyAssignmentStore {
59
60
  }
60
61
  #append(input, tombstone) {
61
62
  const current = latest(this.#records, input.id);
62
- const fingerprint = JSON.stringify({ input, tombstone });
63
+ const fingerprint = policyMutationFingerprint(tombstone ? 'delete' : 'apply', input);
63
64
  if (input.idempotencyKey !== undefined) {
64
65
  const existing = this.#idempotency.get(input.idempotencyKey);
65
66
  if (existing !== undefined) {
@@ -237,6 +238,7 @@ function normalizePolicyInput(input) {
237
238
  if (!Number.isInteger(input.expectedVersion ?? 0) || (input.expectedVersion ?? 0) < 0) {
238
239
  throw new Error('expectedVersion must be a non-negative integer');
239
240
  }
241
+ const metadata = input.metadata !== undefined ? validatePolicyMetadata(input.metadata) : undefined;
240
242
  return {
241
243
  id: validatePolicyId(input.id),
242
244
  scope: validatePolicyScope(input.scope),
@@ -247,7 +249,7 @@ function normalizePolicyInput(input) {
247
249
  : {}),
248
250
  reason,
249
251
  source: input.source,
250
- ...(input.metadata !== undefined ? { metadata: validatePolicyMetadata(input.metadata) } : {}),
252
+ ...(metadata !== undefined && Object.keys(metadata).length > 0 ? { metadata } : {}),
251
253
  ...(input.expectedVersion !== undefined ? { expectedVersion: input.expectedVersion } : {}),
252
254
  ...(input.idempotencyKey !== undefined
253
255
  ? { idempotencyKey: validateNonEmpty('idempotencyKey', input.idempotencyKey) }
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-policy.d.ts","sourceRoot":"","sources":["../../src/store/postgres-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAGtB,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,gBAAgB,CAAC,CAuD3B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,gBAAgB,CAAC,CA4D3B;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAWtC;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAWtC;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAIvC;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAetC"}
1
+ {"version":3,"file":"postgres-policy.d.ts","sourceRoot":"","sources":["../../src/store/postgres-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,IAAI,CAAC;AAC3C,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EAGlB,MAAM,cAAc,CAAC;AAQtB,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,qBAAqB,EAC5B,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,gBAAgB,CAAC,CAwD3B;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,MAAM,IAAI,GACd,OAAO,CAAC,gBAAgB,CAAC,CA8D3B;AAED,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAWtC;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAWtC;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAIvC;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAWtC"}
@@ -1,28 +1,33 @@
1
- import { InMemoryPolicyAssignmentStore, PolicyConflictError } from '../policy.js';
1
+ import { InMemoryPolicyAssignmentStore, PolicyConflictError, validatePolicyAssignmentInput, } from '../policy.js';
2
+ import { policyMutationFingerprint } from '../policy-idempotency.js';
2
3
  export async function putPolicyAssignmentRow(pool, input, now) {
3
4
  // Reuse the in-memory validator so both backends enforce the same policy shape.
5
+ const normalized = validatePolicyAssignmentInput(input);
4
6
  const validator = new InMemoryPolicyAssignmentStore({ now });
5
- const validated = await validator.putPolicyAssignment(input);
6
- await pool.query('BEGIN');
7
- try {
7
+ const validated = await validator.putPolicyAssignment(withoutExpectedVersion(normalized));
8
+ const mutationFingerprint = policyMutationFingerprint('apply', normalized);
9
+ return withPolicyTransaction(pool, async (client) => {
10
+ if (validated.idempotencyKey !== undefined) {
11
+ await lockPolicyIdempotencyKey(client, validated.idempotencyKey);
12
+ }
13
+ await lockPolicyId(client, validated.id);
8
14
  if (validated.idempotencyKey !== undefined) {
9
- const replay = await idempotentReplay(pool, validated.idempotencyKey, validated);
15
+ const replay = await idempotentReplay(client, validated.idempotencyKey, 'apply', normalized);
10
16
  if (replay !== undefined) {
11
- await pool.query('COMMIT');
12
17
  return replay;
13
18
  }
14
19
  }
15
- const { rows: versionRows } = await pool.query('SELECT version FROM policy_assignments WHERE id = $1 ORDER BY version DESC LIMIT 1 FOR UPDATE', [validated.id]);
20
+ const { rows: versionRows } = await client.query('SELECT version FROM policy_assignments WHERE id = $1 ORDER BY version DESC LIMIT 1 FOR UPDATE', [validated.id]);
16
21
  const currentVersion = Number(versionRows[0]?.version ?? 0);
17
22
  if (input.expectedVersion !== undefined && input.expectedVersion !== currentVersion) {
18
23
  throw new PolicyConflictError(`expected policy version ${input.expectedVersion}, found ${currentVersion}`, currentVersion);
19
24
  }
20
25
  const version = currentVersion + 1;
21
- await pool.query('UPDATE policy_assignments SET active = false WHERE id = $1 AND active = true', [validated.id]);
22
- const { rows } = await pool.query(`INSERT INTO policy_assignments
26
+ await client.query('UPDATE policy_assignments SET active = false WHERE id = $1 AND active = true', [validated.id]);
27
+ const { rows } = await client.query(`INSERT INTO policy_assignments
23
28
  (id, version, active, scope, policy, created_at, created_by_subject, created_by_email,
24
- reason, source, metadata, tombstone, idempotency_key)
25
- VALUES ($1, $2, true, $3::jsonb, $4::jsonb, $5, $6, $7, $8, $9, $10::jsonb, false, $11)
29
+ reason, source, metadata, tombstone, idempotency_key, mutation_fingerprint)
30
+ VALUES ($1, $2, true, $3::jsonb, $4::jsonb, $5, $6, $7, $8, $9, $10::jsonb, false, $11, $12)
26
31
  RETURNING *`, [
27
32
  validated.id,
28
33
  version,
@@ -35,51 +40,52 @@ export async function putPolicyAssignmentRow(pool, input, now) {
35
40
  validated.source,
36
41
  JSON.stringify(validated.metadata ?? {}),
37
42
  validated.idempotencyKey ?? null,
43
+ mutationFingerprint,
38
44
  ]);
39
- await pool.query('COMMIT');
40
45
  return policyRowToRecord(rows[0]);
41
- }
42
- catch (error) {
43
- await pool.query('ROLLBACK');
44
- throw error;
45
- }
46
+ });
46
47
  }
47
48
  export async function deletePolicyAssignmentRow(pool, input, now) {
48
- await pool.query('BEGIN');
49
- try {
50
- if (input.idempotencyKey !== undefined) {
51
- const replay = await idempotentReplay(pool, input.idempotencyKey);
49
+ const normalized = validatePolicyAssignmentInput({
50
+ id: input.id,
51
+ scope: { level: 'platform' },
52
+ policy: { schemaVersion: 1 },
53
+ createdBySubject: input.createdBySubject,
54
+ ...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
55
+ reason: input.reason,
56
+ source: input.source,
57
+ ...(input.expectedVersion !== undefined ? { expectedVersion: input.expectedVersion } : {}),
58
+ ...(input.idempotencyKey !== undefined ? { idempotencyKey: input.idempotencyKey } : {}),
59
+ });
60
+ const validator = new InMemoryPolicyAssignmentStore({ now });
61
+ const validated = await validator.putPolicyAssignment(withoutExpectedVersion(normalized));
62
+ const mutationFingerprint = policyMutationFingerprint('delete', normalized);
63
+ return withPolicyTransaction(pool, async (client) => {
64
+ if (validated.idempotencyKey !== undefined) {
65
+ await lockPolicyIdempotencyKey(client, validated.idempotencyKey);
66
+ }
67
+ await lockPolicyId(client, validated.id);
68
+ if (validated.idempotencyKey !== undefined) {
69
+ const replay = await idempotentReplay(client, validated.idempotencyKey, 'delete', normalized);
52
70
  if (replay !== undefined) {
53
- await pool.query('COMMIT');
54
71
  return replay;
55
72
  }
56
73
  }
57
- const history = await listPolicyAssignmentHistoryRows(pool, input.id);
74
+ const history = await listPolicyAssignmentHistoryWithClient(client, input.id);
58
75
  const current = history[history.length - 1];
59
76
  const currentVersion = current?.version ?? 0;
60
77
  if (input.expectedVersion !== undefined && input.expectedVersion !== currentVersion) {
61
78
  throw new PolicyConflictError(`expected policy version ${input.expectedVersion}, found ${currentVersion}`, currentVersion);
62
79
  }
63
- const validator = new InMemoryPolicyAssignmentStore({ now });
64
- const validated = await validator.putPolicyAssignment({
65
- id: input.id,
66
- scope: current?.scope ?? { level: 'platform' },
67
- policy: { schemaVersion: 1 },
68
- createdBySubject: input.createdBySubject,
69
- ...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
70
- reason: input.reason,
71
- source: input.source,
72
- ...(input.idempotencyKey !== undefined ? { idempotencyKey: input.idempotencyKey } : {}),
73
- });
74
- await pool.query('UPDATE policy_assignments SET active = false WHERE id = $1 AND active = true', [validated.id]);
75
- const { rows } = await pool.query(`INSERT INTO policy_assignments
80
+ await client.query('UPDATE policy_assignments SET active = false WHERE id = $1 AND active = true', [validated.id]);
81
+ const { rows } = await client.query(`INSERT INTO policy_assignments
76
82
  (id, version, active, scope, policy, created_at, created_by_subject, created_by_email,
77
- reason, source, metadata, tombstone, idempotency_key)
78
- VALUES ($1, $2, false, $3::jsonb, $4::jsonb, $5, $6, $7, $8, $9, $10::jsonb, true, $11)
83
+ reason, source, metadata, tombstone, idempotency_key, mutation_fingerprint)
84
+ VALUES ($1, $2, false, $3::jsonb, $4::jsonb, $5, $6, $7, $8, $9, $10::jsonb, true, $11, $12)
79
85
  RETURNING *`, [
80
86
  validated.id,
81
87
  currentVersion + 1,
82
- JSON.stringify(validated.scope),
88
+ JSON.stringify(current?.scope ?? validated.scope),
83
89
  JSON.stringify(validated.policy),
84
90
  now(),
85
91
  validated.createdBySubject,
@@ -88,14 +94,10 @@ export async function deletePolicyAssignmentRow(pool, input, now) {
88
94
  validated.source,
89
95
  JSON.stringify(validated.metadata ?? {}),
90
96
  validated.idempotencyKey ?? null,
97
+ mutationFingerprint,
91
98
  ]);
92
- await pool.query('COMMIT');
93
99
  return policyRowToRecord(rows[0]);
94
- }
95
- catch (error) {
96
- await pool.query('ROLLBACK');
97
- throw error;
98
- }
100
+ });
99
101
  }
100
102
  export async function listActivePolicyAssignmentRows(pool, context) {
101
103
  const { rows } = await pool.query(`SELECT *
@@ -132,7 +134,10 @@ export async function listPolicyAssignmentHistoryRows(pool, id) {
132
134
  reason: 'validator',
133
135
  source: 'system',
134
136
  });
135
- const { rows } = await pool.query('SELECT * FROM policy_assignments WHERE id = $1 ORDER BY version ASC', [id]);
137
+ return listPolicyAssignmentHistoryWithClient(pool, id);
138
+ }
139
+ async function listPolicyAssignmentHistoryWithClient(client, id) {
140
+ const { rows } = await client.query('SELECT * FROM policy_assignments WHERE id = $1 ORDER BY version ASC', [id]);
136
141
  return rows.map(policyRowToRecord);
137
142
  }
138
143
  function orgFilterMatches(scope, org) {
@@ -193,36 +198,58 @@ function policyRowToRecord(row) {
193
198
  ...(row.idempotency_key !== null ? { idempotencyKey: row.idempotency_key } : {}),
194
199
  };
195
200
  }
196
- async function idempotentReplay(pool, idempotencyKey, validated) {
197
- const { rows } = await pool.query('SELECT * FROM policy_assignments WHERE idempotency_key = $1', [idempotencyKey]);
201
+ async function idempotentReplay(client, idempotencyKey, kind, normalized) {
202
+ const { rows } = await client.query('SELECT * FROM policy_assignments WHERE idempotency_key = $1', [idempotencyKey]);
198
203
  if (rows.length === 0)
199
204
  return undefined;
200
- const existing = policyRowToRecord(rows[0]);
201
- if (validated !== undefined &&
202
- JSON.stringify({
203
- id: existing.id,
204
- scope: existing.scope,
205
- policy: existing.policy,
206
- createdBySubject: existing.createdBySubject,
207
- createdByEmail: existing.createdByEmail,
208
- reason: existing.reason,
209
- source: existing.source,
210
- metadata: existing.metadata,
211
- }) !==
212
- JSON.stringify({
213
- id: validated.id,
214
- scope: validated.scope,
215
- policy: validated.policy,
216
- createdBySubject: validated.createdBySubject,
217
- createdByEmail: validated.createdByEmail,
218
- reason: validated.reason,
219
- source: validated.source,
220
- metadata: validated.metadata,
221
- })) {
205
+ const row = rows[0];
206
+ const existing = policyRowToRecord(row);
207
+ const incomingFingerprint = policyMutationFingerprint(kind, normalized);
208
+ if (row.mutation_fingerprint !== incomingFingerprint) {
222
209
  throw new PolicyConflictError('idempotency key was already used with a different body');
223
210
  }
224
211
  return existing;
225
212
  }
213
+ async function lockPolicyIdempotencyKey(client, idempotencyKey) {
214
+ await lockPolicyMutation(client, `policy-idempotency:${idempotencyKey}`);
215
+ }
216
+ async function lockPolicyId(client, policyId) {
217
+ await lockPolicyMutation(client, `policy-id:${policyId}`);
218
+ }
219
+ async function lockPolicyMutation(client, lockKey) {
220
+ await client.query('SELECT pg_advisory_xact_lock(hashtextextended($1, 0))', [lockKey]);
221
+ }
222
+ async function withPolicyTransaction(pool, operation) {
223
+ const client = await pool.connect();
224
+ try {
225
+ await client.query('BEGIN');
226
+ try {
227
+ const result = await operation(client);
228
+ await client.query('COMMIT');
229
+ return result;
230
+ }
231
+ catch (error) {
232
+ await client.query('ROLLBACK');
233
+ throw error;
234
+ }
235
+ }
236
+ finally {
237
+ client.release();
238
+ }
239
+ }
240
+ function withoutExpectedVersion(input) {
241
+ return {
242
+ id: input.id,
243
+ scope: input.scope,
244
+ policy: input.policy,
245
+ createdBySubject: input.createdBySubject,
246
+ ...(input.createdByEmail !== undefined ? { createdByEmail: input.createdByEmail } : {}),
247
+ reason: input.reason,
248
+ source: input.source,
249
+ ...(input.metadata !== undefined ? { metadata: input.metadata } : {}),
250
+ ...(input.idempotencyKey !== undefined ? { idempotencyKey: input.idempotencyKey } : {}),
251
+ };
252
+ }
226
253
  function parseJson(value) {
227
254
  return typeof value === 'string' ? JSON.parse(value) : value;
228
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-policy.js","sourceRoot":"","sources":["../../src/store/postgres-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-policy.js","sourceRoot":"","sources":["../../src/store/postgres-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-schema.d.ts","sourceRoot":"","sources":["../../src/store/postgres-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK/B;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAyTpE"}
1
+ {"version":3,"file":"postgres-schema.d.ts","sourceRoot":"","sources":["../../src/store/postgres-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK/B;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA6TpE"}
@@ -213,6 +213,7 @@ export async function ensureArtifactSchema(pool) {
213
213
  metadata jsonb NOT NULL DEFAULT '{}',
214
214
  tombstone boolean NOT NULL DEFAULT false,
215
215
  idempotency_key text,
216
+ mutation_fingerprint text,
216
217
  PRIMARY KEY (id, version)
217
218
  )
218
219
  `);
@@ -222,6 +223,7 @@ export async function ensureArtifactSchema(pool) {
222
223
  await pool.query(`ALTER TABLE policy_assignments ADD COLUMN IF NOT EXISTS metadata jsonb NOT NULL DEFAULT '{}'`);
223
224
  await pool.query(`ALTER TABLE policy_assignments ADD COLUMN IF NOT EXISTS tombstone boolean NOT NULL DEFAULT false`);
224
225
  await pool.query(`ALTER TABLE policy_assignments ADD COLUMN IF NOT EXISTS idempotency_key text`);
226
+ await pool.query(`ALTER TABLE policy_assignments ADD COLUMN IF NOT EXISTS mutation_fingerprint text`);
225
227
  await pool.query(`
226
228
  CREATE UNIQUE INDEX IF NOT EXISTS policy_assignments_idempotency_idx
227
229
  ON policy_assignments (idempotency_key)
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-schema.js","sourceRoot":"","sources":["../../src/store/postgres-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-schema.js","sourceRoot":"","sources":["../../src/store/postgres-schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.35.0",
3
+ "version": "0.35.2",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
6
6
  "license": "Apache-2.0",