@aldus-runtime/release 0.2.0-next.4 → 0.2.0-next.41
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/adapter.d.ts +75 -6
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +53 -1
- package/dist/adapter.js.map +1 -1
- package/dist/bundle.d.ts +12 -1
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +44 -2
- package/dist/bundle.js.map +1 -1
- package/dist/errors.d.ts +7 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +7 -0
- package/dist/errors.js.map +1 -1
- package/dist/executor.d.ts +15 -2
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +164 -5
- package/dist/executor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/operation.d.ts +46 -5
- package/dist/operation.d.ts.map +1 -1
- package/dist/operation.js +22 -0
- package/dist/operation.js.map +1 -1
- package/dist/ports.d.ts +1 -1
- package/package.json +5 -5
- package/src/adapter.ts +135 -9
- package/src/bundle.ts +50 -2
- package/src/errors.ts +7 -0
- package/src/executor.ts +197 -7
- package/src/index.ts +5 -0
- package/src/operation.ts +64 -0
- package/src/ports.ts +1 -1
package/dist/executor.js
CHANGED
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
* the work it describes did not.
|
|
24
24
|
*/
|
|
25
25
|
import { SCHEMA_VERSION, newEventId, newReleaseId } from "@aldus-runtime/core";
|
|
26
|
+
import { cannotEstablish, isCannotEstablish } from "./adapter.js";
|
|
26
27
|
import { assertBundleValid, deriveIdempotencyKey } from "./bundle.js";
|
|
27
28
|
import { ReleaseErrorCodes, releaseError } from "./errors.js";
|
|
28
29
|
import { latestByKey } from "./ports.js";
|
|
@@ -40,6 +41,37 @@ export const OPERATION_STATES = [
|
|
|
40
41
|
/** Deliberately not attempted — no authority, or nothing to do. */
|
|
41
42
|
"skipped",
|
|
42
43
|
];
|
|
44
|
+
/** What reconciliation did about one operation. */
|
|
45
|
+
/**
|
|
46
|
+
* Which reconciliation findings an operator is warned about (§20; #169).
|
|
47
|
+
*
|
|
48
|
+
* An **allow-list**, keyed on the action. It was a deny-list — any finding carrying an explanation
|
|
49
|
+
* except `confirmed_absent` — so every action added later was opted in by default, with nobody
|
|
50
|
+
* deciding. `not_reconciled_repeatable` was opted in exactly that way, and appeared in the
|
|
51
|
+
* warnings of every ordinary release of a bundle holding a repeatable operation, reporting that
|
|
52
|
+
* the expected thing had happened.
|
|
53
|
+
*
|
|
54
|
+
* Membership answers the question a warning asks: **did something go differently than intended?**
|
|
55
|
+
*
|
|
56
|
+
* - `repaired` — yes. The local record was wrong and had to be corrected.
|
|
57
|
+
* - `unavailable` — yes. Reconciliation could not run, so an operator is being told that a
|
|
58
|
+
* protection they may assume is absent.
|
|
59
|
+
* - `confirmed_absent` — no. The ordinary path; most operations in a fresh bundle are absent, and
|
|
60
|
+
* one line each would bury the two above.
|
|
61
|
+
* - `not_reconciled_repeatable` — no. The declared, approved state of the bundle. The reason is in
|
|
62
|
+
* the reconciliation report for anyone reading it.
|
|
63
|
+
*
|
|
64
|
+
* Adding an action now requires either adding it here or leaving it out, and both are decisions.
|
|
65
|
+
* Neither happens by default.
|
|
66
|
+
*/
|
|
67
|
+
const OPERATOR_FACING_FINDINGS = new Set([
|
|
68
|
+
"repaired",
|
|
69
|
+
"unavailable",
|
|
70
|
+
// Yes. The operation may or may not have happened and nobody can tell — the state an operator
|
|
71
|
+
// most needs to see, and the one the deny-list would have surfaced by accident rather than by
|
|
72
|
+
// decision (#169).
|
|
73
|
+
"cannot_establish",
|
|
74
|
+
]);
|
|
43
75
|
/** Executes release bundles, resumably. */
|
|
44
76
|
export class ReleaseExecutor {
|
|
45
77
|
#adapters;
|
|
@@ -91,7 +123,7 @@ export class ReleaseExecutor {
|
|
|
91
123
|
const latest = latestByKey(await this.#receipts.list(bundle.runId));
|
|
92
124
|
const findings = [];
|
|
93
125
|
const repaired = [];
|
|
94
|
-
for (const { operation, idempotencyKey } of this.#plan(bundle)) {
|
|
126
|
+
for (const { operation, criticality, idempotencyKey } of this.#plan(bundle)) {
|
|
95
127
|
const receipt = latest.get(idempotencyKey);
|
|
96
128
|
if (receipt !== undefined && receipt.status !== "pending") {
|
|
97
129
|
findings.push({
|
|
@@ -101,6 +133,21 @@ export class ReleaseExecutor {
|
|
|
101
133
|
});
|
|
102
134
|
continue;
|
|
103
135
|
}
|
|
136
|
+
// Asked of nothing, because the answer would change nothing. A repeatable operation may be
|
|
137
|
+
// performed again whatever the destination holds, so querying it buys no decision — and
|
|
138
|
+
// where reconciliation runs before execution, as it does inside `execute`, a "not there"
|
|
139
|
+
// reading can mean "the operation before it has not run yet" rather than "it did not
|
|
140
|
+
// happen". An adapter forced to answer that question has to invent one (#169).
|
|
141
|
+
if (operation.repeatable !== undefined) {
|
|
142
|
+
findings.push({
|
|
143
|
+
operationId: operation.operationId,
|
|
144
|
+
idempotencyKey,
|
|
145
|
+
action: "not_reconciled_repeatable",
|
|
146
|
+
explanation: `"${operation.operationId}" declares its effect safe to repeat, so the destination ` +
|
|
147
|
+
`was not queried: ${operation.repeatable.reason}`,
|
|
148
|
+
});
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
104
151
|
const adapter = this.#adapters.require(operation.destination);
|
|
105
152
|
if (adapter.lookup === undefined) {
|
|
106
153
|
findings.push({
|
|
@@ -117,8 +164,91 @@ export class ReleaseExecutor {
|
|
|
117
164
|
idempotencyKey,
|
|
118
165
|
runId: bundle.runId,
|
|
119
166
|
};
|
|
120
|
-
|
|
167
|
+
// Guarded, and the guard is criticality-aware. `reconcile` used to `await` this bare, so a
|
|
168
|
+
// throw from any operation's `lookup` aborted the whole pass before a single `execute` —
|
|
169
|
+
// a quota error raised while asking about a tidy-up blocked the upload beside it (#169).
|
|
170
|
+
//
|
|
171
|
+
// A required operation's throw still aborts. Fail-closed belongs where a mistake publishes
|
|
172
|
+
// twice; it does not belong where a best-effort tidy-up could not be queried.
|
|
173
|
+
let remote;
|
|
174
|
+
try {
|
|
175
|
+
remote = await adapter.lookup(request);
|
|
176
|
+
}
|
|
177
|
+
catch (thrown) {
|
|
178
|
+
if (criticality === "required")
|
|
179
|
+
throw thrown;
|
|
180
|
+
remote = cannotEstablish(`querying destination "${operation.destination}" failed: ${thrown instanceof Error ? thrown.message : String(thrown)}`);
|
|
181
|
+
}
|
|
182
|
+
if (isCannotEstablish(remote)) {
|
|
183
|
+
// Asked, and no answer. What happens next depends on what the operation is for.
|
|
184
|
+
if (criticality === "required") {
|
|
185
|
+
// Unknown must never license a publish. A required operation whose prior outcome cannot
|
|
186
|
+
// be established is refused before anything executes, because performing it might
|
|
187
|
+
// repeat it and skipping it might drop it, and neither is a choice to make blind.
|
|
188
|
+
throw releaseError(ReleaseErrorCodes.RECONCILIATION_UNAVAILABLE, `Whether required operation "${operation.operationId}" already happened could not be ` +
|
|
189
|
+
`established: ${remote.reason}. Executing would risk performing it twice and ` +
|
|
190
|
+
"skipping it would risk dropping it, so the bundle is refused until the outcome is " +
|
|
191
|
+
"known (contract §17).", {
|
|
192
|
+
category: "conflict",
|
|
193
|
+
retryable: false,
|
|
194
|
+
details: {
|
|
195
|
+
runId: bundle.runId,
|
|
196
|
+
operationId: operation.operationId,
|
|
197
|
+
destination: operation.destination,
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
// Best-effort: **no receipt**, and not performed this pass.
|
|
202
|
+
//
|
|
203
|
+
// Writing a `skipped` receipt was the obvious thing and it was wrong in the way this whole
|
|
204
|
+
// issue is about. `skipped` is terminal in both directions — `execute` skips it and
|
|
205
|
+
// `reconcile` treats it as already recorded — so one momentary query failure permanently
|
|
206
|
+
// retired the operation for that bundle. At the destination that produced #169 quota
|
|
207
|
+
// exhaustion is routine, so a rate limit while *asking about* a tidy-up would silently
|
|
208
|
+
// drop it forever, and the record would say `skipped`: a decision, when what happened was
|
|
209
|
+
// an unanswered question.
|
|
210
|
+
//
|
|
211
|
+
// A durable record of a transient failure is the same defect as a durable record of a
|
|
212
|
+
// search nobody performed. So the not-performing lives in this pass only — the finding and
|
|
213
|
+
// the warning say what happened now, and the next pass asks again.
|
|
214
|
+
//
|
|
215
|
+
// Not performed either, because executing on an unknown prior state is the other half of
|
|
216
|
+
// the trap: it might repeat an operation that already happened.
|
|
217
|
+
findings.push({
|
|
218
|
+
operationId: operation.operationId,
|
|
219
|
+
idempotencyKey,
|
|
220
|
+
action: "cannot_establish",
|
|
221
|
+
explanation: `Whether "${operation.operationId}" already happened could not be established, so it ` +
|
|
222
|
+
`was not attempted: ${remote.reason}`,
|
|
223
|
+
});
|
|
224
|
+
continue;
|
|
225
|
+
}
|
|
226
|
+
// Not an issued cannot-establish, so it must be the other arm — and that has to be checked
|
|
227
|
+
// rather than assumed. An assembled `{ reason: "..." }` is not an issued state, so
|
|
228
|
+
// `isCannotEstablish` correctly rejects it, and it would then reach `!remote.exists` with
|
|
229
|
+
// `exists` undefined and be recorded as `confirmed_absent`: a completed search, asserted
|
|
230
|
+
// from a value that is not a `RemoteState` at all.
|
|
231
|
+
//
|
|
232
|
+
// Fifth instance of the same lesson in this contract (#170 has the other four). A narrowing
|
|
233
|
+
// that trusts the declared type is not a narrowing.
|
|
234
|
+
if (typeof remote.exists !== "boolean") {
|
|
235
|
+
throw releaseError(ReleaseErrorCodes.OPERATION_INVALID, `The adapter for destination "${operation.destination}" answered the lookup for ` +
|
|
236
|
+
`"${operation.operationId}" with a value that is neither a remote state nor an ` +
|
|
237
|
+
"issued `cannotEstablish`. Reading it as absent would record a completed search that " +
|
|
238
|
+
"did not happen (contract §17).", {
|
|
239
|
+
category: "validation",
|
|
240
|
+
retryable: false,
|
|
241
|
+
details: {
|
|
242
|
+
runId: bundle.runId,
|
|
243
|
+
operationId: operation.operationId,
|
|
244
|
+
destination: operation.destination,
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
}
|
|
121
248
|
if (!remote.exists) {
|
|
249
|
+
// Reserved to a `lookup` that actually returned `exists: false`. Every other reason an
|
|
250
|
+
// operation might not have been found now has its own action, so this one means what it
|
|
251
|
+
// says: a completed search established that the destination does not hold it (#169).
|
|
122
252
|
findings.push({
|
|
123
253
|
operationId: operation.operationId,
|
|
124
254
|
idempotencyKey,
|
|
@@ -151,11 +281,18 @@ export class ReleaseExecutor {
|
|
|
151
281
|
assertBundleValid(bundle);
|
|
152
282
|
const warnings = [];
|
|
153
283
|
const written = [];
|
|
284
|
+
// Operations this pass must not attempt, held in memory and never written down. A best-effort
|
|
285
|
+
// operation whose prior state could not be established is not performed now — executing on an
|
|
286
|
+
// unknown prior state might repeat something that already happened — and leaves no durable
|
|
287
|
+
// trace, so the next pass asks again rather than finding a terminal receipt (#169).
|
|
288
|
+
const unestablished = new Set();
|
|
154
289
|
if (options.reconcile !== false) {
|
|
155
290
|
const report = await this.reconcile(bundle, { actor: options.actor });
|
|
156
291
|
written.push(...report.repaired);
|
|
157
292
|
for (const finding of report.findings) {
|
|
158
|
-
if (finding.
|
|
293
|
+
if (finding.action === "cannot_establish")
|
|
294
|
+
unestablished.add(finding.operationId);
|
|
295
|
+
if (finding.explanation !== undefined && OPERATOR_FACING_FINDINGS.has(finding.action)) {
|
|
159
296
|
warnings.push(finding.explanation);
|
|
160
297
|
}
|
|
161
298
|
}
|
|
@@ -172,13 +309,27 @@ export class ReleaseExecutor {
|
|
|
172
309
|
"succeed.");
|
|
173
310
|
continue;
|
|
174
311
|
}
|
|
312
|
+
// Skipped for this pass only. No receipt was written, so a later pass reaches the same
|
|
313
|
+
// operation with the same undecided state and asks the destination again.
|
|
314
|
+
if (unestablished.has(operation.operationId))
|
|
315
|
+
continue;
|
|
175
316
|
const existing = latest.get(idempotencyKey);
|
|
176
317
|
if (existing?.status === "succeeded" || existing?.status === "skipped")
|
|
177
318
|
continue;
|
|
178
319
|
// An operation whose outcome was never confirmed must not be retried (contract §17). If
|
|
179
320
|
// reconciliation could have resolved it, it already ran above and this receipt would be
|
|
180
321
|
// terminal; reaching here means the destination cannot be queried.
|
|
181
|
-
|
|
322
|
+
//
|
|
323
|
+
// Unless the operation says repeating it is safe, which is exactly the fact this refusal
|
|
324
|
+
// needs and previously had no way to hear. Without it a best-effort tidy-up whose outcome
|
|
325
|
+
// was once unconfirmed refused **every later release of that bundle** — the same operation
|
|
326
|
+
// whose failure `execute` treats as a warning, blocking the release forever because one
|
|
327
|
+
// past attempt went unanswered (#169).
|
|
328
|
+
if (existing?.status === "pending" && operation.repeatable !== undefined) {
|
|
329
|
+
warnings.push(`"${operation.operationId}" has an unconfirmed earlier outcome and declares its effect ` +
|
|
330
|
+
`safe to repeat, so it is being performed again: ${operation.repeatable.reason}`);
|
|
331
|
+
}
|
|
332
|
+
else if (existing?.status === "pending") {
|
|
182
333
|
throw releaseError(ReleaseErrorCodes.RECONCILIATION_UNAVAILABLE, `"${operation.operationId}" was attempted and its outcome was never confirmed, and ` +
|
|
183
334
|
`destination "${operation.destination}" cannot be queried to find out. Retrying ` +
|
|
184
335
|
"would risk performing it twice, so it is refused until the outcome is established.", {
|
|
@@ -248,7 +399,7 @@ export class ReleaseExecutor {
|
|
|
248
399
|
];
|
|
249
400
|
return entries.map((entry) => ({
|
|
250
401
|
...entry,
|
|
251
|
-
idempotencyKey: deriveIdempotencyKey(
|
|
402
|
+
idempotencyKey: deriveIdempotencyKey(entry.operation),
|
|
252
403
|
}));
|
|
253
404
|
}
|
|
254
405
|
/** Write a receipt and emit its event (contract §6.4, §17). */
|
|
@@ -258,6 +409,9 @@ export class ReleaseExecutor {
|
|
|
258
409
|
schemaVersion: SCHEMA_VERSION,
|
|
259
410
|
releaseId: this.#nextReleaseId(),
|
|
260
411
|
runId: bundle.runId,
|
|
412
|
+
// Recorded, never keyed on (ADR-0033). The trace can now say which release produced this
|
|
413
|
+
// receipt; matching still happens on what the operation does, so a resumed bundle finds it.
|
|
414
|
+
bundleId: bundle.bundleId,
|
|
261
415
|
destination: operation.destination,
|
|
262
416
|
operation: operation.kind,
|
|
263
417
|
idempotencyKey,
|
|
@@ -269,6 +423,11 @@ export class ReleaseExecutor {
|
|
|
269
423
|
...(outcome.status === "succeeded" && outcome.remoteUrl !== undefined
|
|
270
424
|
? { remoteUrl: outcome.remoteUrl }
|
|
271
425
|
: {}),
|
|
426
|
+
// Carried through to the durable record. A field an adapter can set and nothing reads is
|
|
427
|
+
// the defect #107 reported, one contract over.
|
|
428
|
+
...(outcome.status === "succeeded" && outcome.note !== undefined
|
|
429
|
+
? { note: outcome.note }
|
|
430
|
+
: {}),
|
|
272
431
|
// `pending` is not terminal, so it carries no completion time (contract §17).
|
|
273
432
|
...(outcome.status === "pending" ? {} : { completedAt: at }),
|
|
274
433
|
...(outcome.status === "failed"
|
package/dist/executor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @packageDocumentation
|
|
16
16
|
*/
|
|
17
|
-
export { AdapterRegistry, RecordingReleaseAdapter, type AdapterOutcome, type RecordingAdapterOptions, type ReleaseAdapter, type ReleaseRequest, type RemoteState, } from "./adapter.js";
|
|
17
|
+
export { AdapterRegistry, RecordingReleaseAdapter, cannotEstablish, isCannotEstablish, type AdapterOutcome, type CannotEstablish, type RecordingAdapterOptions, type ReleaseAdapter, type ReleaseRequest, type RemoteState, } from "./adapter.js";
|
|
18
18
|
export { gateEngineAuthorizer, permitAllAuthorizer, type AuthorityVerdict, type ReleaseAuthorizer, } from "./authorization.js";
|
|
19
19
|
export { assertBundleValid, deriveIdempotencyKey, operationsOf, type ReleaseBundle, } from "./bundle.js";
|
|
20
20
|
export { ReleaseErrorCodes, releaseError, type ReleaseErrorCode } from "./errors.js";
|
|
21
21
|
export { OPERATION_STATES, ReleaseExecutor, type BundleStatus, type ExecuteOptions, type OperationState, type OperationStatus, type ReconciliationFinding, type ReconciliationReport, type ReleaseExecutorOptions, type ReleaseOutcome, } from "./executor.js";
|
|
22
|
-
export { bestEffortOperation, requiredOperation, type BestEffortOperation, type OperationCriticality, type ReleaseOperation, type ReleaseOperationBase, type RequiredOperation, } from "./operation.js";
|
|
22
|
+
export { bestEffortOperation, repeatable, requiredOperation, type RepeatableDeclaration, type BestEffortOperation, type OperationCriticality, type ReleaseOperation, type ReleaseOperationBase, type RequiredOperation, } from "./operation.js";
|
|
23
23
|
export { MemoryReleaseEventSink, MemoryReleaseReceiptStore, eventStoreSink, latestByKey, runStoreReceipts, type ReleaseEventSink, type ReleaseReceiptStore, } from "./ports.js";
|
|
24
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @packageDocumentation
|
|
16
16
|
*/
|
|
17
|
-
export { AdapterRegistry, RecordingReleaseAdapter, } from "./adapter.js";
|
|
17
|
+
export { AdapterRegistry, RecordingReleaseAdapter, cannotEstablish, isCannotEstablish, } from "./adapter.js";
|
|
18
18
|
export { gateEngineAuthorizer, permitAllAuthorizer, } from "./authorization.js";
|
|
19
19
|
export { assertBundleValid, deriveIdempotencyKey, operationsOf, } from "./bundle.js";
|
|
20
20
|
export { ReleaseErrorCodes, releaseError } from "./errors.js";
|
|
21
21
|
export { OPERATION_STATES, ReleaseExecutor, } from "./executor.js";
|
|
22
|
-
export { bestEffortOperation, requiredOperation, } from "./operation.js";
|
|
22
|
+
export { bestEffortOperation, repeatable, requiredOperation, } from "./operation.js";
|
|
23
23
|
export { MemoryReleaseEventSink, MemoryReleaseReceiptStore, eventStoreSink, latestByKey, runStoreReceipts, } from "./ports.js";
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAOlB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAyB,MAAM,aAAa,CAAC;AAErF,OAAO,EACL,gBAAgB,EAChB,eAAe,GAShB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,GAOlB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,gBAAgB,GAGjB,MAAM,YAAY,CAAC"}
|
package/dist/operation.d.ts
CHANGED
|
@@ -12,14 +12,38 @@
|
|
|
12
12
|
* release that reports success. Requiring the caller to *place* the operation in one list or the
|
|
13
13
|
* other makes the mistake a type error rather than a typo.
|
|
14
14
|
*/
|
|
15
|
+
declare const CRITICALITY: unique symbol;
|
|
16
|
+
/** @see RepeatableDeclaration */
|
|
17
|
+
declare const REPEATABILITY: unique symbol;
|
|
15
18
|
/**
|
|
16
|
-
*
|
|
19
|
+
* A statement that an operation's effect may be performed more than once (§17, §19.1; #169).
|
|
20
|
+
*
|
|
21
|
+
* Minted by {@link repeatable} and not writable as an object literal, for the same reason
|
|
22
|
+
* `RequiredOperation` is not: this licenses re-performing a real external effect, and a shape a
|
|
23
|
+
* caller can assemble is a shape that gets assembled from configuration by someone who has not
|
|
24
|
+
* thought about it.
|
|
17
25
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
26
|
+
* The reason is **required**. An operation that may be repeated is one an approver is being asked
|
|
27
|
+
* to accept the repetition of, and "safe to repeat" with no account of why is not something anyone
|
|
28
|
+
* can approve or audit.
|
|
21
29
|
*/
|
|
22
|
-
|
|
30
|
+
export interface RepeatableDeclaration {
|
|
31
|
+
readonly [REPEATABILITY]: "repeatable";
|
|
32
|
+
/**
|
|
33
|
+
* Why repeating this effect is safe, for the approver and for the operator.
|
|
34
|
+
*
|
|
35
|
+
* Shown in the reconciliation finding that records the operation was not queried, so a reader
|
|
36
|
+
* sees the justification rather than only the outcome.
|
|
37
|
+
*/
|
|
38
|
+
readonly reason: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Declare that repeating this operation's effect is safe (§17, §19.1; #169).
|
|
42
|
+
*
|
|
43
|
+
* @throws {AldusError} when the reason is empty. A declaration that licenses repetition and says
|
|
44
|
+
* nothing about why is the thing this exists to prevent.
|
|
45
|
+
*/
|
|
46
|
+
export declare function repeatable(reason: string): RepeatableDeclaration;
|
|
23
47
|
/** Fields shared by both categories. */
|
|
24
48
|
export interface ReleaseOperationBase {
|
|
25
49
|
/**
|
|
@@ -63,6 +87,23 @@ export interface ReleaseOperationBase {
|
|
|
63
87
|
* The gate engine decides whether the authority is held; this package never re-decides it.
|
|
64
88
|
*/
|
|
65
89
|
requiresAuthority?: string;
|
|
90
|
+
/**
|
|
91
|
+
* Declares that repeating this operation's effect is safe (§17, §19.1; #169).
|
|
92
|
+
*
|
|
93
|
+
* **Absent means one-shot**, which is the conservative reading and the behaviour every existing
|
|
94
|
+
* bundle already has. Repetition is licensed only by saying so.
|
|
95
|
+
*
|
|
96
|
+
* In the **bundle**, not on the adapter and not in `RemoteState`. §13.4 binds a release approval
|
|
97
|
+
* to the bundle, so a fact that licenses re-performing an effect has to be visible in the
|
|
98
|
+
* artifact an approver approved — an adapter-side flag would let an adapter license repeating an
|
|
99
|
+
* operation the approver believed happened once.
|
|
100
|
+
*
|
|
101
|
+
* Not inferable from {@link ReleaseOperationBase} either. `deriveIdempotencyKey` documents its
|
|
102
|
+
* result as the key that makes re-running safe, and that holds only where the destination
|
|
103
|
+
* honours the key; plenty do not. A key's presence is a request, not a guarantee, so
|
|
104
|
+
* repeatability has to be stated.
|
|
105
|
+
*/
|
|
106
|
+
repeatable?: RepeatableDeclaration;
|
|
66
107
|
/** Opaque parameters passed through to the adapter. Never inspected here. */
|
|
67
108
|
parameters?: Readonly<Record<string, unknown>>;
|
|
68
109
|
}
|
package/dist/operation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"operation.d.ts","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC,iCAAiC;AACjC,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAWhE;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC;CACvC;AAED,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAEvE,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,iBAAiB,CAEpF;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,GAAG,mBAAmB,CAExF;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,aAAa,CAAC"}
|
package/dist/operation.js
CHANGED
|
@@ -12,6 +12,28 @@
|
|
|
12
12
|
* release that reports success. Requiring the caller to *place* the operation in one list or the
|
|
13
13
|
* other makes the mistake a type error rather than a typo.
|
|
14
14
|
*/
|
|
15
|
+
/**
|
|
16
|
+
* Brand distinguishing the two operation categories at the type level.
|
|
17
|
+
*
|
|
18
|
+
* Declared but never exported as a value, so an operation of either kind can only come from the
|
|
19
|
+
* constructor below. A caller cannot hand-write an object literal that satisfies
|
|
20
|
+
* {@link RequiredOperation}.
|
|
21
|
+
*/
|
|
22
|
+
import { ReleaseErrorCodes, releaseError } from "./errors.js";
|
|
23
|
+
/**
|
|
24
|
+
* Declare that repeating this operation's effect is safe (§17, §19.1; #169).
|
|
25
|
+
*
|
|
26
|
+
* @throws {AldusError} when the reason is empty. A declaration that licenses repetition and says
|
|
27
|
+
* nothing about why is the thing this exists to prevent.
|
|
28
|
+
*/
|
|
29
|
+
export function repeatable(reason) {
|
|
30
|
+
if (reason.trim().length === 0) {
|
|
31
|
+
throw releaseError(ReleaseErrorCodes.OPERATION_INVALID, "A repeatable declaration must say why repeating the effect is safe. It licenses performing " +
|
|
32
|
+
"an external effect more than once, and an approver cannot accept that from a bare flag " +
|
|
33
|
+
"(contract §13.4, §17).", { category: "validation", retryable: false, details: {} });
|
|
34
|
+
}
|
|
35
|
+
return { reason };
|
|
36
|
+
}
|
|
15
37
|
/** Declare an operation whose failure fails the release (contract §17). */
|
|
16
38
|
export function requiredOperation(operation) {
|
|
17
39
|
return { ...operation };
|
package/dist/operation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../src/operation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;GAMG;AACH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8B9D;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,CAChB,iBAAiB,CAAC,iBAAiB,EACnC,6FAA6F;YAC3F,yFAAyF;YACzF,wBAAwB,EAC1B,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAA2B,CAAC;AAC7C,CAAC;AA0FD,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,SAA+B;IAC/D,OAAO,EAAE,GAAG,SAAS,EAAuB,CAAC;AAC/C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,mBAAmB,CAAC,SAA+B;IACjE,OAAO,EAAE,GAAG,SAAS,EAAyB,CAAC;AACjD,CAAC"}
|
package/dist/ports.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ import type { EventStore, RunStore } from "@aldus-runtime/file-store";
|
|
|
14
14
|
* There is no update in place and no delete. §17's receipts are an audit record of what was
|
|
15
15
|
* attempted against a destination: an operation retried after a failure produces a second
|
|
16
16
|
* receipt, not an edit to the first, because the fact that the first attempt failed is what
|
|
17
|
-
* explains the retry. {@link
|
|
17
|
+
* explains the retry. {@link latestByKey} resolves the current outcome by reading them in order.
|
|
18
18
|
*/
|
|
19
19
|
export interface ReleaseReceiptStore {
|
|
20
20
|
/** Every receipt recorded for a Run, in the order they were appended. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aldus-runtime/release",
|
|
3
|
-
"version": "0.2.0-next.
|
|
3
|
+
"version": "0.2.0-next.41",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Aldus Release — release bundles, resumable idempotent operations, adapter contracts, and external-state reconciliation.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"typecheck:test": "tsc -p tsconfig.test.json"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@aldus-runtime/core": "0.2.0-next.
|
|
37
|
-
"@aldus-runtime/file-store": "0.2.0-next.
|
|
38
|
-
"@aldus-runtime/gate-engine": "0.2.0-next.
|
|
36
|
+
"@aldus-runtime/core": "0.2.0-next.41",
|
|
37
|
+
"@aldus-runtime/file-store": "0.2.0-next.41",
|
|
38
|
+
"@aldus-runtime/gate-engine": "0.2.0-next.41"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@aldus-runtime/testkit": "0.2.0-next.
|
|
41
|
+
"@aldus-runtime/testkit": "0.2.0-next.41",
|
|
42
42
|
"@types/node": "^26.2.0",
|
|
43
43
|
"typescript": "^7.0.2",
|
|
44
44
|
"vitest": "^4.1.10"
|