@lovrozagar/oat 0.12.20 → 0.13.1
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/README.md +6 -1
- package/dist/cli.js +1 -0
- package/dist/config/define-config.d.ts +77 -0
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js.map +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +1 -0
- package/dist/config/validate.js.map +1 -1
- package/dist/conformance/suite.d.ts.map +1 -1
- package/dist/conformance/suite.js +3 -0
- package/dist/conformance/suite.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/reference/defects.d.ts +7 -0
- package/dist/reference/defects.d.ts.map +1 -1
- package/dist/reference/defects.js +7 -0
- package/dist/reference/defects.js.map +1 -1
- package/dist/reference/http.js +1 -1
- package/dist/reference/http.js.map +1 -1
- package/dist/report/render.js +3 -3
- package/dist/report/render.js.map +1 -1
- package/dist/runtime/auth.d.ts +12 -0
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +5 -5
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/check-costs.d.ts.map +1 -1
- package/dist/runtime/check-costs.js +1 -0
- package/dist/runtime/check-costs.js.map +1 -1
- package/dist/runtime/check-ids.d.ts +1 -1
- package/dist/runtime/check-ids.d.ts.map +1 -1
- package/dist/runtime/check-ids.js +1 -0
- package/dist/runtime/check-ids.js.map +1 -1
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +199 -48
- package/dist/runtime/checks.js.map +1 -1
- package/dist/runtime/client.d.ts +2 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +6 -1
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/contract.d.ts +52 -0
- package/dist/runtime/contract.d.ts.map +1 -0
- package/dist/runtime/contract.js +247 -0
- package/dist/runtime/contract.js.map +1 -0
- package/dist/runtime/disposable.d.ts +26 -10
- package/dist/runtime/disposable.d.ts.map +1 -1
- package/dist/runtime/disposable.js +287 -145
- package/dist/runtime/disposable.js.map +1 -1
- package/dist/runtime/effects.d.ts +1 -1
- package/dist/runtime/effects.d.ts.map +1 -1
- package/dist/runtime/evidence.d.ts +21 -0
- package/dist/runtime/evidence.d.ts.map +1 -0
- package/dist/runtime/evidence.js +168 -0
- package/dist/runtime/evidence.js.map +1 -0
- package/dist/runtime/path.d.ts +6 -0
- package/dist/runtime/path.d.ts.map +1 -1
- package/dist/runtime/path.js +46 -0
- package/dist/runtime/path.js.map +1 -1
- package/dist/runtime/run.d.ts +3 -1
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +97 -14
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/scenario.d.ts +35 -0
- package/dist/runtime/scenario.d.ts.map +1 -0
- package/dist/runtime/scenario.js +319 -0
- package/dist/runtime/scenario.js.map +1 -0
- package/dist/runtime/scope.d.ts +28 -0
- package/dist/runtime/scope.d.ts.map +1 -1
- package/dist/runtime/scope.js +31 -4
- package/dist/runtime/scope.js.map +1 -1
- package/dist/runtime/teardown.d.ts +3 -0
- package/dist/runtime/teardown.d.ts.map +1 -1
- package/dist/runtime/teardown.js +7 -1
- package/dist/runtime/teardown.js.map +1 -1
- package/dist/runtime/transcript.d.ts.map +1 -1
- package/dist/runtime/transcript.js +9 -5
- package/dist/runtime/transcript.js.map +1 -1
- package/dist/spec/collection.d.ts +2 -1
- package/dist/spec/collection.d.ts.map +1 -1
- package/dist/spec/collection.js +13 -2
- package/dist/spec/collection.js.map +1 -1
- package/dist/spec/extensions.d.ts +6 -0
- package/dist/spec/extensions.d.ts.map +1 -1
- package/dist/spec/extensions.js +9 -1
- package/dist/spec/extensions.js.map +1 -1
- package/dist/spec/graph.d.ts +8 -0
- package/dist/spec/graph.d.ts.map +1 -1
- package/dist/spec/graph.js +44 -2
- package/dist/spec/graph.js.map +1 -1
- package/dist/spec/tag-schema.d.ts.map +1 -1
- package/dist/spec/tag-schema.js +2 -1
- package/dist/spec/tag-schema.js.map +1 -1
- package/docs/configuration.md +43 -1
- package/docs/reports.md +19 -1
- package/docs/tags.md +7 -2
- package/package.json +14 -14
|
@@ -1,14 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `x-destructive` runs as a second user
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* `x-destructive` runs as a second user, never the suite caller. That user signs up through the
|
|
3
|
+
* suite principal's own auth flow with a fresh address, or through the document's
|
|
4
|
+
* `x-fresh-principal` operation. Afterwards the suite caller's own read still answers 200. An
|
|
5
|
+
* operation that invalidates the caller read must leave that second user's credential refused,
|
|
6
|
+
* and a declared refresh must no longer renew it.
|
|
7
|
+
*
|
|
8
|
+
* What a destructive call needs beforehand — a second factor enabled, a credential registered,
|
|
9
|
+
* ownership handed off — is product knowledge. When the call is refused for want of it, the
|
|
10
|
+
* operation stays untested and a scenario sets the scene.
|
|
5
11
|
*/
|
|
12
|
+
import { isHookAuth } from "../config/define-config.js";
|
|
13
|
+
import { deriveCollectionShape, deriveIdentity, effective, successSchema } from "../spec/collection.js";
|
|
14
|
+
import { createPrincipal, readPath, runAuthSteps } from "./auth.js";
|
|
6
15
|
import { ASSERTED } from "./finding.js";
|
|
7
16
|
import { buildCohort, isOverflowError } from "./fixture.js";
|
|
8
17
|
import { applyResolveInput } from "./input.js";
|
|
9
|
-
import { requestSchemaOf } from "./world.js";
|
|
18
|
+
import { fillPath, requestSchemaOf } from "./world.js";
|
|
10
19
|
export const DISPOSABLE_CHECK_ID = "auth.destructive-spares-the-caller";
|
|
11
|
-
const
|
|
20
|
+
export const disposableCheck = {
|
|
21
|
+
id: DISPOSABLE_CHECK_ID,
|
|
22
|
+
mutates: true,
|
|
23
|
+
needs: "x-destructive, a way to sign up a second user, and a caller read",
|
|
24
|
+
plan: () => ({ ok: false }),
|
|
25
|
+
run: () => Promise.resolve(ASSERTED),
|
|
26
|
+
/* Destructive routes have no entity. `runDisposableOps` grades them after the entity loop. */
|
|
27
|
+
subjects: () => [],
|
|
28
|
+
};
|
|
12
29
|
export function destructiveOps(model) {
|
|
13
30
|
return model.operations.filter((op) => op.destructive);
|
|
14
31
|
}
|
|
@@ -21,182 +38,307 @@ export function signupOperationId(auth) {
|
|
|
21
38
|
}
|
|
22
39
|
return undefined;
|
|
23
40
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return REGISTER_LIKE.test(op.operationId) || REGISTER_LIKE.test(op.path);
|
|
41
|
+
/** The caller reading itself: an `identity: self` read with nothing to fill in. */
|
|
42
|
+
function callerRead(model) {
|
|
43
|
+
return model.operations.find((op) => op.identity === "self" && op.action === "read" && op.pathParams.length === 0);
|
|
28
44
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
31
|
-
if (preferred !== undefined && (preferred.freshPrincipal || looksLikeSignup(preferred)))
|
|
32
|
-
return preferred;
|
|
33
|
-
return model.operations.find((op) => op.freshPrincipal || looksLikeSignup(op));
|
|
45
|
+
function invalidatesCaller(op, read) {
|
|
46
|
+
return op.invalidates.some((route) => route === `${read.method.toUpperCase()} ${read.path}` || route === read.route);
|
|
34
47
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
return (reads.find((op) => op.operationId === "auth.getProfile" || op.path === "/v1/auth/me" || op.path === "/v1/me") ??
|
|
38
|
-
reads[0]);
|
|
39
|
-
}
|
|
40
|
-
function propertyNames(schema) {
|
|
41
|
-
const properties = schema.properties;
|
|
42
|
-
if (properties === null || typeof properties !== "object" || Array.isArray(properties))
|
|
43
|
-
return new Set();
|
|
44
|
-
return new Set(Object.keys(properties));
|
|
45
|
-
}
|
|
46
|
-
function requiredSchema(schema) {
|
|
47
|
-
const required = Array.isArray(schema.required)
|
|
48
|
-
? schema.required.filter((name) => typeof name === "string")
|
|
49
|
-
: [];
|
|
50
|
-
if (required.length === 0)
|
|
51
|
-
return schema;
|
|
52
|
-
const properties = schema.properties;
|
|
53
|
-
if (properties === null || typeof properties !== "object" || Array.isArray(properties))
|
|
54
|
-
return schema;
|
|
55
|
-
const source = properties;
|
|
56
|
-
const picked = {};
|
|
57
|
-
for (const name of required)
|
|
58
|
-
if (name in source)
|
|
59
|
-
picked[name] = source[name];
|
|
60
|
-
return { ...schema, properties: picked, required };
|
|
61
|
-
}
|
|
62
|
-
function tokenOf(body) {
|
|
63
|
-
if (body === null || typeof body !== "object")
|
|
48
|
+
function authFlowOf(auth) {
|
|
49
|
+
if (auth === undefined || isHookAuth(auth) || !("steps" in auth))
|
|
64
50
|
return null;
|
|
65
|
-
|
|
66
|
-
return typeof token === "string" && token !== "" ? token : null;
|
|
51
|
+
return auth;
|
|
67
52
|
}
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
53
|
+
function signupEmail(spec) {
|
|
54
|
+
for (const step of spec.steps) {
|
|
55
|
+
if ("bind" in step && typeof step.bind?.address === "string")
|
|
56
|
+
return step.bind.address;
|
|
57
|
+
if ("body" in step && step.body !== null && typeof step.body === "object" && "email" in step.body) {
|
|
58
|
+
const email = step.body.email;
|
|
59
|
+
if (typeof email === "string")
|
|
60
|
+
return email;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
function rewriteEmail(value, from, to) {
|
|
66
|
+
if (typeof value === "string")
|
|
67
|
+
return value.split(from).join(to);
|
|
68
|
+
if (Array.isArray(value))
|
|
69
|
+
return value.map((item) => rewriteEmail(item, from, to));
|
|
70
|
+
if (value !== null && typeof value === "object") {
|
|
71
|
+
const out = {};
|
|
72
|
+
for (const [key, item] of Object.entries(value))
|
|
73
|
+
out[key] = rewriteEmail(item, from, to);
|
|
74
|
+
return out;
|
|
80
75
|
}
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
/** The suite principal's signup flow, sent for a different address. Nothing else changes. */
|
|
79
|
+
export function freshSignupFlow(spec, email) {
|
|
80
|
+
const from = signupEmail(spec);
|
|
81
|
+
const copy = structuredClone(spec);
|
|
82
|
+
if (from === undefined || from === email)
|
|
83
|
+
return copy;
|
|
84
|
+
return rewriteEmail(copy, from, email);
|
|
85
|
+
}
|
|
86
|
+
export function disposableAddress(spec, nonce) {
|
|
87
|
+
const from = signupEmail(spec);
|
|
88
|
+
const at = from?.lastIndexOf("@") ?? -1;
|
|
89
|
+
const domain = at > 0 && from !== undefined ? from.slice(at + 1) : "example.test";
|
|
90
|
+
return `oat-disp-${nonce}@${domain}`;
|
|
91
|
+
}
|
|
92
|
+
/** Top-level strings a signup answered with — tokens a later body may need by the same name. */
|
|
93
|
+
function answered(exchange) {
|
|
94
|
+
const body = exchange?.responseBody;
|
|
95
|
+
if (body === null || typeof body !== "object" || Array.isArray(body))
|
|
96
|
+
return {};
|
|
97
|
+
return Object.fromEntries(Object.entries(body).filter(([, value]) => typeof value === "string"));
|
|
98
|
+
}
|
|
99
|
+
async function signUp(input, label) {
|
|
100
|
+
const flow = authFlowOf(input.authFlow);
|
|
101
|
+
/* Only a flow that signs up an address can sign up a different one; a fixed login would just
|
|
102
|
+
* hand back the suite user. */
|
|
103
|
+
if (flow !== null && input.hooks !== undefined && signupEmail(flow) !== undefined) {
|
|
104
|
+
const email = disposableAddress(flow, `${input.nonce ?? "user"}-${label}`);
|
|
105
|
+
const fresh = freshSignupFlow(flow, email);
|
|
106
|
+
const context = {
|
|
107
|
+
client: input.client,
|
|
108
|
+
hooks: input.hooks,
|
|
109
|
+
model: input.model,
|
|
110
|
+
principalId: `disposable-${label}`,
|
|
111
|
+
...(input.outOfBand === undefined ? {} : { outOfBand: input.outOfBand }),
|
|
112
|
+
};
|
|
113
|
+
const principal = await createPrincipal(`disposable-${label}`, fresh, context);
|
|
114
|
+
if (principal.credential() === "")
|
|
115
|
+
return null;
|
|
116
|
+
const signupId = signupOperationId(fresh);
|
|
117
|
+
const signup = input.client.transcript.findLast((exchange) => exchange.operationId === signupId && exchange.status >= 200 && exchange.status < 300);
|
|
118
|
+
const known = { ...answered(signup), ...principal.scope, email };
|
|
119
|
+
for (const step of fresh.steps) {
|
|
120
|
+
if ("body" in step && step.body !== null && typeof step.body === "object") {
|
|
121
|
+
for (const [key, value] of Object.entries(step.body))
|
|
122
|
+
known[key] ??= value;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const roots = {};
|
|
126
|
+
for (const [param, key] of Object.entries(input.rootsFromFlow ?? {})) {
|
|
127
|
+
const value = principal.scope[key];
|
|
128
|
+
if (value !== undefined)
|
|
129
|
+
roots[param] = value;
|
|
130
|
+
}
|
|
131
|
+
const refresh = fresh.refresh;
|
|
132
|
+
return {
|
|
133
|
+
headers: principal.headers,
|
|
134
|
+
known,
|
|
135
|
+
roots,
|
|
136
|
+
...(refresh === undefined
|
|
137
|
+
? {}
|
|
138
|
+
: {
|
|
139
|
+
renew: async () => {
|
|
140
|
+
const before = input.client.transcript.length;
|
|
141
|
+
try {
|
|
142
|
+
await runAuthSteps(refresh.steps, fresh, context, { ...principal.scope });
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
/* A refused refresh is what a revoked session should answer. */
|
|
146
|
+
}
|
|
147
|
+
return input.client.transcript.slice(before).at(-1);
|
|
148
|
+
},
|
|
149
|
+
}),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const register = input.model.operations.find((op) => op.freshPrincipal);
|
|
153
|
+
if (register === undefined)
|
|
154
|
+
return null;
|
|
81
155
|
const schema = requestSchemaOf(register, input.model);
|
|
82
156
|
let body = {};
|
|
83
157
|
if (schema !== null) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
distinct,
|
|
89
|
-
...(input.nonce === undefined ? {} : { nonce: input.nonce }),
|
|
90
|
-
});
|
|
91
|
-
body = member?.body ?? {};
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
if (!isOverflowError(error))
|
|
95
|
-
throw error;
|
|
96
|
-
input.grades.skipped(ids, error instanceof Error ? error.message : "register body could not be generated");
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
158
|
+
const [member] = buildCohort(schema, input.seed ?? 1, ["baseline"], register.operationId, {
|
|
159
|
+
nonce: `${input.nonce ?? "user"}${label}`,
|
|
160
|
+
});
|
|
161
|
+
body = member?.body ?? {};
|
|
99
162
|
if (input.resolveInput !== undefined) {
|
|
100
163
|
body = await applyResolveInput(body, register.operationId, schema, input.resolveInput);
|
|
101
164
|
}
|
|
102
165
|
}
|
|
103
|
-
const
|
|
166
|
+
const signup = await input.client.request(register.method, register.path, {
|
|
104
167
|
body,
|
|
105
168
|
headers: {},
|
|
106
169
|
operationId: register.operationId,
|
|
107
170
|
});
|
|
108
|
-
const token =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
171
|
+
const token = readPath(signup.responseBody, "$.access_token");
|
|
172
|
+
if (signup.status < 200 || signup.status >= 300 || typeof token !== "string" || token === "")
|
|
173
|
+
return null;
|
|
174
|
+
return { headers: () => ({ authorization: `Bearer ${token}` }), known: { ...answered(signup), ...body }, roots: {} };
|
|
175
|
+
}
|
|
176
|
+
function recordsOf(body, op, model) {
|
|
177
|
+
const raw = model.rawOperations.get(op.operationId);
|
|
178
|
+
const shape = raw === undefined ? null : deriveCollectionShape(successSchema(raw));
|
|
179
|
+
if (body === null || typeof body !== "object")
|
|
180
|
+
return [];
|
|
181
|
+
const value = shape?.key === null || shape?.key === undefined ? body : body[shape.key];
|
|
182
|
+
if (!Array.isArray(value))
|
|
183
|
+
return [];
|
|
184
|
+
return value.filter((item) => item !== null && typeof item === "object" && !Array.isArray(item));
|
|
185
|
+
}
|
|
186
|
+
function identityOf(list, model, param) {
|
|
187
|
+
const raw = model.rawOperations.get(list.operationId);
|
|
188
|
+
const shape = raw === undefined ? null : deriveCollectionShape(successSchema(raw));
|
|
189
|
+
const props = effective(shape?.itemSchema ?? null)?.properties;
|
|
190
|
+
if (props !== null && props !== undefined && typeof props === "object" && param in props)
|
|
191
|
+
return param;
|
|
192
|
+
return deriveIdentity(shape?.itemSchema ?? null, param) ?? "id";
|
|
193
|
+
}
|
|
194
|
+
/** The collection read one level up — `GET /a/{id}` lists for `DELETE /a/{id}/b/{item}`. */
|
|
195
|
+
function parentList(model, op) {
|
|
196
|
+
const parent = op.path.replace(/\/\{[^}]+\}$/, "");
|
|
197
|
+
return model.operations.find((item) => item.method.toUpperCase() === "GET" && item.path === parent);
|
|
198
|
+
}
|
|
199
|
+
function bodyFor(schema, known, generated) {
|
|
200
|
+
if (schema === null)
|
|
201
|
+
return undefined;
|
|
202
|
+
const out = generated !== null && typeof generated === "object" ? { ...generated } : {};
|
|
203
|
+
const props = schema.properties;
|
|
204
|
+
if (props !== null && props !== undefined && typeof props === "object") {
|
|
205
|
+
for (const name of Object.keys(props))
|
|
206
|
+
if (name in known)
|
|
207
|
+
out[name] = known[name];
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
}
|
|
211
|
+
export async function runDisposableOps(input) {
|
|
212
|
+
const ops = destructiveOps(input.model).filter((op) => input.mode === "full" || input.inScope(op.operationId));
|
|
213
|
+
if (ops.length === 0)
|
|
214
|
+
return;
|
|
215
|
+
input.checksRun?.add(DISPOSABLE_CHECK_ID);
|
|
216
|
+
const selfRead = callerRead(input.model);
|
|
217
|
+
if (selfRead === undefined) {
|
|
218
|
+
input.grades.skipped(ops.map((op) => op.operationId), "no caller read (an identity: self read)");
|
|
118
219
|
return;
|
|
119
220
|
}
|
|
120
|
-
|
|
121
|
-
|
|
221
|
+
/* An operation that ends the session gets a user of its own, so no order between them matters. */
|
|
222
|
+
let shared;
|
|
223
|
+
for (const [index, op] of ops.entries()) {
|
|
224
|
+
const ends = invalidatesCaller(op, selfRead);
|
|
225
|
+
let session;
|
|
226
|
+
try {
|
|
227
|
+
session = ends ? await signUp(input, `${index}`) : (shared ??= await signUp(input, "shared"));
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
input.grades.skipped([op.operationId], `the second user could not sign up: ${error instanceof Error ? error.message : String(error)}`);
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
if (session === null) {
|
|
234
|
+
input.grades.skipped([op.operationId], "no way to sign up a second user (an auth flow or x-fresh-principal)");
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
await runOne(op, session, selfRead, ends);
|
|
238
|
+
}
|
|
239
|
+
async function runOne(op, session, read, ends) {
|
|
122
240
|
const blame = input.findings.attributed([op.operationId]).ownedBy(DISPOSABLE_CHECK_ID);
|
|
123
|
-
const
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
241
|
+
const entity = op.entity ?? read.entity ?? "caller";
|
|
242
|
+
const values = { ...session.roots };
|
|
243
|
+
for (const param of op.pathParams) {
|
|
244
|
+
if (values[param] !== undefined)
|
|
245
|
+
continue;
|
|
246
|
+
const list = parentList(input.model, op);
|
|
247
|
+
if (list === undefined) {
|
|
248
|
+
input.grades.skipped([op.operationId], `unresolved param ${param}`);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const listed = await input.client.request(list.method, fillPath(list.path, values), {
|
|
252
|
+
headers: session.headers,
|
|
253
|
+
operationId: list.operationId,
|
|
254
|
+
});
|
|
255
|
+
const field = identityOf(list, input.model, param);
|
|
256
|
+
const row = recordsOf(listed.responseBody, list, input.model).find((item) => typeof item[field] === "string");
|
|
257
|
+
if (row === undefined) {
|
|
258
|
+
input.grades.skipped([op.operationId], "the list returned no id");
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
values[param] = String(row[field]);
|
|
262
|
+
}
|
|
263
|
+
const schema = requestSchemaOf(op, input.model);
|
|
264
|
+
let generated = {};
|
|
265
|
+
if (schema !== null) {
|
|
266
|
+
try {
|
|
267
|
+
generated = buildCohort(schema, input.seed ?? 1, ["baseline"], op.operationId, {
|
|
268
|
+
nonce: `${input.nonce ?? "user"}d`,
|
|
269
|
+
})[0]?.body;
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
if (!isOverflowError(error))
|
|
273
|
+
throw error;
|
|
274
|
+
}
|
|
275
|
+
if (input.resolveInput !== undefined && generated !== null && typeof generated === "object") {
|
|
276
|
+
generated = await applyResolveInput(generated, op.operationId, schema, input.resolveInput);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
const body = bodyFor(schema, session.known, generated);
|
|
280
|
+
const called = await input.client.request(op.method, fillPath(op.path, values), {
|
|
281
|
+
...(body === undefined ? {} : { body }),
|
|
282
|
+
headers: session.headers,
|
|
127
283
|
operationId: op.operationId,
|
|
128
284
|
});
|
|
129
|
-
if (called.status
|
|
130
|
-
blame.backend(DISPOSABLE_CHECK_ID, op.entity ?? read.entity ?? "caller", "the disposable call failed", `${op.operationId} returned ${called.status} for the second user.`, [signed, called]);
|
|
285
|
+
if (called.status >= 500) {
|
|
131
286
|
input.grades.graded([op.operationId], DISPOSABLE_CHECK_ID);
|
|
132
|
-
|
|
287
|
+
blame.backend(DISPOSABLE_CHECK_ID, entity, "the disposable call failed", `${op.operationId} returned ${called.status}.`, [called]);
|
|
288
|
+
return;
|
|
133
289
|
}
|
|
290
|
+
if (called.status < 200 || called.status >= 300) {
|
|
291
|
+
input.grades.skipped([op.operationId], `destructive call returned ${called.status}; a scenario must set the scene`);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
input.grades.graded([op.operationId], DISPOSABLE_CHECK_ID);
|
|
134
295
|
const caller = await input.client.request(read.method, read.path, {
|
|
135
296
|
headers: input.auth,
|
|
136
297
|
operationId: read.operationId,
|
|
137
298
|
});
|
|
138
299
|
if (caller.status !== 200) {
|
|
139
300
|
blame.backend(DISPOSABLE_CHECK_ID, read.entity ?? "caller", "the suite caller was logged out", `${op.operationId} ran as the second user, and the suite ${read.operationId} then returned ${caller.status}.`, [called, caller]);
|
|
140
|
-
|
|
141
|
-
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
let observation;
|
|
304
|
+
const param = op.pathParams.at(-1);
|
|
305
|
+
const list = parentList(input.model, op);
|
|
306
|
+
if (op.method.toUpperCase() === "DELETE" && param !== undefined && list !== undefined) {
|
|
307
|
+
const listed = await input.client.request(list.method, fillPath(list.path, values), {
|
|
308
|
+
headers: session.headers,
|
|
309
|
+
operationId: list.operationId,
|
|
310
|
+
});
|
|
311
|
+
const field = identityOf(list, input.model, param);
|
|
312
|
+
const value = values[param] ?? "";
|
|
313
|
+
if (listed.status >= 200 && listed.status < 300) {
|
|
314
|
+
if (recordsOf(listed.responseBody, list, input.model).some((row) => row[field] === value)) {
|
|
315
|
+
blame.backend(DISPOSABLE_CHECK_ID, entity, "the credential was still listed", `${op.operationId} returned ${called.status}, and the follow-up list still contained ${value}.`, [called, listed]);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
observation = { absent: true, path: "$", seq: listed.seq, value };
|
|
319
|
+
}
|
|
142
320
|
}
|
|
143
|
-
|
|
144
|
-
if (endsSession) {
|
|
321
|
+
if (ends) {
|
|
145
322
|
const gone = await input.client.request(read.method, read.path, {
|
|
146
|
-
headers:
|
|
323
|
+
headers: session.headers,
|
|
147
324
|
operationId: read.operationId,
|
|
148
325
|
});
|
|
149
|
-
const
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
headers: {},
|
|
156
|
-
operationId: renew.operationId,
|
|
157
|
-
});
|
|
326
|
+
const renewed = session.renew === undefined ? undefined : await session.renew();
|
|
327
|
+
const refused = gone.status === 401 || gone.status === 403 || gone.status === 404;
|
|
328
|
+
const renewRefused = renewed === undefined || (renewed.status >= 400 && renewed.status < 500);
|
|
329
|
+
if (!refused && !renewRefused) {
|
|
330
|
+
blame.backend(DISPOSABLE_CHECK_ID, entity, "the disposable session was still accepted", `${op.operationId} invalidates ${read.operationId}, and that read then returned ${gone.status} with the second user's credential.`, renewed === undefined ? [called, gone] : [called, gone, renewed]);
|
|
331
|
+
return;
|
|
158
332
|
}
|
|
159
|
-
|
|
160
|
-
(
|
|
161
|
-
|
|
162
|
-
blame.backend(DISPOSABLE_CHECK_ID, op.entity ?? read.entity ?? "caller", "the disposable session was still accepted", `${op.operationId} invalidates ${read.operationId}, and that read then returned ${gone.status} with the second user's credential.`, renewExchange === undefined ? [called, gone] : [called, gone, renewExchange]);
|
|
333
|
+
if (refused && renewed !== undefined && !renewRefused) {
|
|
334
|
+
blame.backend(DISPOSABLE_CHECK_ID, entity, "the refresh token still renews after the session ended", `${op.operationId} ended the session, and the declared refresh then returned ${renewed.status}.`, [called, gone, renewed]);
|
|
335
|
+
return;
|
|
163
336
|
}
|
|
337
|
+
observation = refused
|
|
338
|
+
? { seq: gone.seq, status: gone.status }
|
|
339
|
+
: { seq: renewed.seq, status: renewed.status };
|
|
164
340
|
}
|
|
165
|
-
input.grades.
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
function renewOperation(model, exceptId) {
|
|
169
|
-
return model.operations.find((op) => {
|
|
170
|
-
if (op.operationId === exceptId)
|
|
171
|
-
return false;
|
|
172
|
-
const schema = requestSchemaOf(op, model);
|
|
173
|
-
const properties = schema?.properties;
|
|
174
|
-
if (properties === null || typeof properties !== "object" || Array.isArray(properties))
|
|
175
|
-
return false;
|
|
176
|
-
return "refresh_token" in properties;
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
function bodyFrom(schema, issued) {
|
|
180
|
-
if (schema === null)
|
|
181
|
-
return {};
|
|
182
|
-
const properties = schema.properties;
|
|
183
|
-
if (properties === null || typeof properties !== "object" || Array.isArray(properties))
|
|
184
|
-
return {};
|
|
185
|
-
const body = {};
|
|
186
|
-
for (const name of Object.keys(properties)) {
|
|
187
|
-
const value = issued[name];
|
|
188
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
189
|
-
body[name] = value;
|
|
341
|
+
input.grades.prove(op.operationId, observation === undefined ? { call: called.seq } : { call: called.seq, observation });
|
|
190
342
|
}
|
|
191
|
-
return body;
|
|
192
343
|
}
|
|
193
|
-
export const disposableCheck = {
|
|
194
|
-
id: DISPOSABLE_CHECK_ID,
|
|
195
|
-
mutates: true,
|
|
196
|
-
needs: "x-destructive, a register operation, and a caller read",
|
|
197
|
-
plan: () => ({ ok: false }),
|
|
198
|
-
run: () => Promise.resolve(ASSERTED),
|
|
199
|
-
/* Destructive routes have no entity. `runDisposableOps` grades them after the entity loop. */
|
|
200
|
-
subjects: () => [],
|
|
201
|
-
};
|
|
202
344
|
//# sourceMappingURL=disposable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/runtime/disposable.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/runtime/disposable.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,7 @@ export declare function bindCreatedScope(model: SpecModel, entityName: string, w
|
|
|
40
40
|
* The entity scope only has parent ids. Bind the seeded row's id when the path still needs it.
|
|
41
41
|
*/
|
|
42
42
|
export declare function bindInstanceScope(model: SpecModel, entityName: string, identity: string, records: readonly Record<string, unknown>[], scope: Record<string, string>): Record<string, string>;
|
|
43
|
-
/** `x-bind` strings: a literal, `$.…` on the
|
|
43
|
+
/** `x-bind` strings: a literal, `$.…` on the instance as it is now, or `before:$.…` on the prelude body. */
|
|
44
44
|
export interface ActionBind {
|
|
45
45
|
path: Record<string, string>;
|
|
46
46
|
body: Record<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/runtime/effects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGjD,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/F,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,CAGvE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAG7D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAWtG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI3D;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAK/E;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,SAAI,GAAG,MAAM,GAAG,SAAS,CAmBnG;AAED,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAU9E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,SAAS,MAAM,EAAO,GAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED,
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/runtime/effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exchanges behind a matrix pass. A check that passed proved a property; the report also
|
|
3
|
+
* names the call and the later exchange that shows it, so a reader can audit the claim without
|
|
4
|
+
* trusting oat. Bodies are read through the client, which may have moved older ones to disk.
|
|
5
|
+
*/
|
|
6
|
+
import type { SpecModel } from "../spec/graph.ts";
|
|
7
|
+
import type { Client } from "./client.ts";
|
|
8
|
+
import type { GradeLedger } from "./scope.ts";
|
|
9
|
+
/** A JSON path (`[*]` for arrays) to a string node equal to `value`, or null. */
|
|
10
|
+
export declare function pathTo(body: unknown, value: string, prefix?: string, depth?: number): string | null;
|
|
11
|
+
/**
|
|
12
|
+
* Evidence for every operation a check graded without naming its exchanges: the call, and the
|
|
13
|
+
* first nearby exchange that holds a value the call put into the world. A write no later read
|
|
14
|
+
* shows keeps only its call, and the report calls that pass `contract`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function proveFromTranscript(input: {
|
|
17
|
+
model: SpecModel;
|
|
18
|
+
client: Client;
|
|
19
|
+
grades: GradeLedger;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/runtime/evidence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,aAAa,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAA;AAoC3D,iFAAiF;AACjF,wBAAgB,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,SAAM,EAAE,KAAK,SAAI,GAAG,MAAM,GAAG,IAAI,CAgB3F;AAiFD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,SAAS,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,WAAW,CAAA;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhB"}
|