@sanoma-ai/workflows 0.10.1 → 0.10.3
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/CLOUD-IDENTITY.md +140 -0
- package/KMS-SECRETS.md +99 -0
- package/README.md +49 -11
- package/SECRET-SUPPORT.md +1 -1
- package/dist/apply.js +1 -1
- package/dist/apply.js.map +1 -1
- package/dist/authentication.d.ts +7 -2
- package/dist/authentication.js +2 -2
- package/dist/authentication.js.map +1 -1
- package/dist/call.d.ts +5 -2
- package/dist/call.js +65 -20
- package/dist/call.js.map +1 -1
- package/dist/change.d.ts +5 -6
- package/dist/change.js +6 -9
- package/dist/change.js.map +1 -1
- package/dist/client.d.ts +18 -0
- package/dist/client.js +37 -5
- package/dist/client.js.map +1 -1
- package/dist/cloud-identity.d.ts +52 -0
- package/dist/cloud-identity.js +222 -0
- package/dist/cloud-identity.js.map +1 -0
- package/dist/config.d.ts +42 -4
- package/dist/config.js +71 -10
- package/dist/config.js.map +1 -1
- package/dist/connection.js +8 -2
- package/dist/connection.js.map +1 -1
- package/dist/db.d.ts +2 -0
- package/dist/db.js +7 -0
- package/dist/db.js.map +1 -1
- package/dist/deadlines.d.ts +26 -13
- package/dist/deadlines.js +50 -11
- package/dist/deadlines.js.map +1 -1
- package/dist/define.d.ts +22 -0
- package/dist/define.js +2 -0
- package/dist/define.js.map +1 -1
- package/dist/deployment-key.d.ts +20 -1
- package/dist/deployment-key.js +28 -3
- package/dist/deployment-key.js.map +1 -1
- package/dist/describe.js +28 -1
- package/dist/describe.js.map +1 -1
- package/dist/description.d.ts +3 -0
- package/dist/description.js +2 -0
- package/dist/description.js.map +1 -1
- package/dist/host.d.ts +13 -4
- package/dist/host.js +14 -5
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/kms-secrets.d.ts +24 -0
- package/dist/kms-secrets.js +209 -0
- package/dist/kms-secrets.js.map +1 -0
- package/dist/ledger.d.ts +30 -1
- package/dist/ledger.js +31 -0
- package/dist/ledger.js.map +1 -1
- package/dist/login-code.d.ts +17 -0
- package/dist/login-code.js +32 -0
- package/dist/login-code.js.map +1 -0
- package/dist/op.d.ts +78 -10
- package/dist/op.js +20 -0
- package/dist/op.js.map +1 -1
- package/dist/outline.js +3 -3
- package/dist/outline.js.map +1 -1
- package/dist/resource.d.ts +6 -4
- package/dist/resource.js +8 -5
- package/dist/resource.js.map +1 -1
- package/dist/resources.d.ts +4 -2
- package/dist/resources.js +15 -6
- package/dist/resources.js.map +1 -1
- package/dist/run.d.ts +3 -0
- package/dist/run.js.map +1 -1
- package/dist/runtime-ops.d.ts +123 -0
- package/dist/runtime-ops.js +222 -0
- package/dist/runtime-ops.js.map +1 -0
- package/dist/seal.d.ts +27 -0
- package/dist/seal.js +76 -0
- package/dist/seal.js.map +1 -0
- package/dist/secret-store.d.ts +6 -4
- package/dist/secret-store.js +11 -6
- package/dist/secret-store.js.map +1 -1
- package/dist/secret.d.ts +7 -0
- package/dist/secret.js +13 -1
- package/dist/secret.js.map +1 -1
- package/dist/shared.d.ts +15 -4
- package/dist/shared.js +27 -7
- package/dist/shared.js.map +1 -1
- package/dist/ssh-key.d.ts +11 -0
- package/dist/ssh-key.js +44 -0
- package/dist/ssh-key.js.map +1 -0
- package/dist/tokens.d.ts +35 -0
- package/dist/tokens.js +71 -0
- package/dist/tokens.js.map +1 -0
- package/dist/wakeup-service.js +2 -7
- package/dist/wakeup-service.js.map +1 -1
- package/dist/wakeup.d.ts +18 -0
- package/dist/wakeup.js +15 -0
- package/dist/wakeup.js.map +1 -1
- package/dist/worker.d.ts +2 -2
- package/dist/worker.js +17 -9
- package/dist/worker.js.map +1 -1
- package/oxlint.json +3 -1
- package/package.json +15 -2
- package/src/apply.ts +1 -1
- package/src/authentication.ts +9 -2
- package/src/call.ts +88 -18
- package/src/change.ts +9 -20
- package/src/client.ts +50 -7
- package/src/cloud-identity.ts +266 -0
- package/src/config.ts +111 -17
- package/src/connection.ts +8 -2
- package/src/db.ts +8 -1
- package/src/deadlines.ts +66 -20
- package/src/define.ts +25 -0
- package/src/deployment-key.ts +34 -8
- package/src/describe.ts +39 -2
- package/src/description.ts +2 -0
- package/src/host.ts +22 -6
- package/src/index.ts +19 -1
- package/src/kms-secrets.ts +271 -0
- package/src/ledger.ts +52 -1
- package/src/login-code.ts +52 -0
- package/src/op.ts +84 -11
- package/src/outline.ts +3 -3
- package/src/resource.ts +8 -5
- package/src/resources.ts +13 -4
- package/src/run.ts +3 -0
- package/src/runtime-ops.ts +234 -0
- package/src/seal.ts +95 -0
- package/src/secret-store.ts +12 -9
- package/src/secret.ts +16 -1
- package/src/shared.ts +31 -7
- package/src/ssh-key.ts +48 -0
- package/src/tokens.ts +100 -0
- package/src/wakeup-service.ts +2 -8
- package/src/wakeup.ts +21 -0
- package/src/worker.ts +29 -11
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}
|
package/oxlint.json
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"name": "@sanoma-ai/workflows",
|
|
86
|
-
"allowImportNames": ["defineWorkflow", "mayDecide", "errorCode", "z"],
|
|
86
|
+
"allowImportNames": ["defineWorkflow", "mayDecide", "errorCode", "sanoma", "z"],
|
|
87
87
|
"allowTypeImports": true,
|
|
88
88
|
"message": "A workflow imports only these and types from @sanoma-ai/workflows: the rest (SanomaClient, startWorker, the ledger stores, config helpers) could start runs, approve its own approvals, forge the ledger or read credentials. Ask for approval with `ctx.approval`."
|
|
89
89
|
}
|
|
@@ -100,6 +100,8 @@
|
|
|
100
100
|
"@sanoma-ai/workflows/plugin",
|
|
101
101
|
"@sanoma-ai/workflows/scenario",
|
|
102
102
|
"@sanoma-ai/workflows/scenarios",
|
|
103
|
+
"@sanoma-ai/workflows/cloud-identity",
|
|
104
|
+
"@sanoma-ai/workflows/kms-secrets",
|
|
103
105
|
"@sanoma-ai/workflows/wakeup-service"
|
|
104
106
|
],
|
|
105
107
|
"message": "A workflow must call vendors through ctx, so the policy sees every call: import the connector itself, `@sanoma-ai/connector-<vendor>`."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanoma-ai/workflows",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.3",
|
|
4
4
|
"description": "Business processes as TypeScript functions, run durably on DBOS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"approvals",
|
|
@@ -24,8 +24,10 @@
|
|
|
24
24
|
"!src/AGENTS.md",
|
|
25
25
|
"oxlint.json",
|
|
26
26
|
"README.md",
|
|
27
|
+
"LICENSE",
|
|
27
28
|
"SECRET-SUPPORT.md",
|
|
28
|
-
"
|
|
29
|
+
"CLOUD-IDENTITY.md",
|
|
30
|
+
"KMS-SECRETS.md"
|
|
29
31
|
],
|
|
30
32
|
"type": "module",
|
|
31
33
|
"sideEffects": false,
|
|
@@ -75,6 +77,14 @@
|
|
|
75
77
|
"./wakeup-service": {
|
|
76
78
|
"types": "./dist/wakeup-service.d.ts",
|
|
77
79
|
"default": "./dist/wakeup-service.js"
|
|
80
|
+
},
|
|
81
|
+
"./cloud-identity": {
|
|
82
|
+
"types": "./dist/cloud-identity.d.ts",
|
|
83
|
+
"default": "./dist/cloud-identity.js"
|
|
84
|
+
},
|
|
85
|
+
"./kms-secrets": {
|
|
86
|
+
"types": "./dist/kms-secrets.d.ts",
|
|
87
|
+
"default": "./dist/kms-secrets.js"
|
|
78
88
|
}
|
|
79
89
|
},
|
|
80
90
|
"publishConfig": {
|
|
@@ -89,7 +99,10 @@
|
|
|
89
99
|
"@cucumber/query": "16.1.1",
|
|
90
100
|
"@dbos-inc/dbos-sdk": "^5.2.11",
|
|
91
101
|
"@faker-js/faker": "^10.6.0",
|
|
102
|
+
"@google-cloud/kms": "^6.3.0",
|
|
92
103
|
"ai": "7.0.153",
|
|
104
|
+
"crc-32": "^1.2.2",
|
|
105
|
+
"google-auth-library": "^11.3.2",
|
|
93
106
|
"oxc-parser": "^0.153.0",
|
|
94
107
|
"oxfmt": "^0.72.0",
|
|
95
108
|
"pg": "^8.23.1",
|
package/src/apply.ts
CHANGED
|
@@ -38,7 +38,7 @@ export { APPLY_WORKFLOW } from "./shared.ts";
|
|
|
38
38
|
// would make each match its declaration, asks one approval wherever the policy holds a change,
|
|
39
39
|
// then makes the changes in dependency order, keeping the lockfile's bindings as it goes. It is a
|
|
40
40
|
// workflow like any other, held to the same lint, so every vendor call goes through `ctx`. Only
|
|
41
|
-
// it may call a writable type's change operations (`isChangeOp`).
|
|
41
|
+
// it may call a writable type's change operations (`isChangeOp`) on a declared object.
|
|
42
42
|
|
|
43
43
|
/** What a person answers for a bound object the vendor no longer has (`gone`), or a binding no declaration has (`orphan`). */
|
|
44
44
|
export const PLAN_ANSWERS = ["recreate", "forget", "delete"] as const;
|
package/src/authentication.ts
CHANGED
|
@@ -10,6 +10,12 @@ export interface AuthenticationIdentity {
|
|
|
10
10
|
expiresAt?: number;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
/** Server-selected account reference for deployment-bound workload identity resolution. */
|
|
14
|
+
export interface AuthenticationContext {
|
|
15
|
+
readonly connectionId: string;
|
|
16
|
+
readonly vendor: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
13
19
|
export type AuthenticationProblem =
|
|
14
20
|
| "missing"
|
|
15
21
|
| "expired"
|
|
@@ -57,10 +63,11 @@ export function authenticationProblem(error: unknown): AuthenticationProblem | u
|
|
|
57
63
|
export async function verifyAuthentication(
|
|
58
64
|
method: Authentication,
|
|
59
65
|
credentials?: unknown,
|
|
66
|
+
context?: AuthenticationContext,
|
|
60
67
|
): Promise<AuthenticationIdentity> {
|
|
61
68
|
if (!method.verify) throw new AuthenticationError("unsupported");
|
|
62
69
|
try {
|
|
63
|
-
const identity = await method.verify(credentials);
|
|
70
|
+
const identity = await (method.kind === "workload-identity" ? method.verify(context) : method.verify(credentials));
|
|
64
71
|
if (
|
|
65
72
|
typeof identity?.account !== "string" ||
|
|
66
73
|
!identity.account.trim() ||
|
|
@@ -104,7 +111,7 @@ export type Authentication<S extends z.ZodType = z.ZodType> =
|
|
|
104
111
|
storage?: never;
|
|
105
112
|
version?: never;
|
|
106
113
|
schema?: never;
|
|
107
|
-
verify?(): Promise<AuthenticationIdentity>;
|
|
114
|
+
verify?(context?: AuthenticationContext): Promise<AuthenticationIdentity>;
|
|
108
115
|
};
|
|
109
116
|
|
|
110
117
|
export function defineAuthentication<S extends z.ZodType>(definition: Authentication<S>): Authentication<S> {
|
package/src/call.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
SleepFor,
|
|
12
12
|
type SleepRequest,
|
|
13
13
|
SleepUntil,
|
|
14
|
+
type StartedBy,
|
|
14
15
|
scriptPath,
|
|
15
16
|
type Use,
|
|
16
17
|
type WorkflowDefinition,
|
|
@@ -33,14 +34,18 @@ import { callAt, callName, type CallNode } from "./outline.ts";
|
|
|
33
34
|
import { allowAll, type Decision, type Policy, type PolicyCall, policyOpOf, type RecordedDecision } from "./policy.ts";
|
|
34
35
|
import type { Run, StartHold, WorkerState } from "./run.ts";
|
|
35
36
|
import { reservedFor, runtimeHold } from "./change.ts";
|
|
37
|
+
import { isChangeOp } from "./resource.ts";
|
|
36
38
|
import { readPeople } from "./resources.ts";
|
|
37
39
|
import {
|
|
40
|
+
APPLY_WORKFLOW,
|
|
38
41
|
approverLabel,
|
|
39
42
|
CALL_WORKFLOW,
|
|
40
43
|
CHANGE_MERGE,
|
|
41
44
|
DATA_VENDOR,
|
|
42
45
|
errorMessage,
|
|
43
46
|
fitsOp,
|
|
47
|
+
LOGIN_CODE_WORKFLOW,
|
|
48
|
+
problemLine,
|
|
44
49
|
type Saved,
|
|
45
50
|
WORKFLOW_ACTION,
|
|
46
51
|
} from "./shared.ts";
|
|
@@ -64,11 +69,18 @@ export function isInfrastructureError(err: unknown, state: Pick<WorkerState, "st
|
|
|
64
69
|
return takenByDbos(err) || (state.stopped && errorCode(err) === undefined);
|
|
65
70
|
}
|
|
66
71
|
|
|
67
|
-
/** The
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
/** The fields of a mail a `login-code` run sends that the ledger never shows: its body, which holds the code. */
|
|
73
|
+
const LOGIN_CODE_BODY = ["text", "html"];
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The value as the ledger records it: each of the operation's `opaque` fields as `"<name>"`, and
|
|
77
|
+
* in a run of `workflow` `login-code`, the mail's `text` and `html` too, so no colleague reads another's code.
|
|
78
|
+
*/
|
|
79
|
+
export function recorded(op: Op, value: unknown, workflow?: string): unknown {
|
|
80
|
+
const hidden = [...(op.opaque ?? []), ...(workflow === LOGIN_CODE_WORKFLOW ? LOGIN_CODE_BODY : [])];
|
|
81
|
+
if (!hidden.length || typeof value !== "object" || value === null || Array.isArray(value)) return value;
|
|
70
82
|
const out: Record<string, unknown> = { ...value };
|
|
71
|
-
for (const name of
|
|
83
|
+
for (const name of hidden) if (out[name] !== undefined) out[name] = `<${name}>`;
|
|
72
84
|
return out;
|
|
73
85
|
}
|
|
74
86
|
|
|
@@ -80,13 +92,12 @@ const isSchemaError = (err: unknown) => err instanceof Error && err.name === "Zo
|
|
|
80
92
|
|
|
81
93
|
/**
|
|
82
94
|
* Whether DBOS should try an idempotent step again: not when the reply failed the output
|
|
83
|
-
* schema (it would fail again), and not when the
|
|
84
|
-
*
|
|
85
|
-
* `instanceof`: the error may come from another copy of this package.
|
|
95
|
+
* schema (it would fail again), and not when the error says its answer is final (`retryable:
|
|
96
|
+
* false`: a `DriverError` for a 4xx, a `SecretStoreError` other than `unavailable`). Read by
|
|
97
|
+
* property, never `instanceof`: the error may come from another copy of this package.
|
|
86
98
|
*/
|
|
87
99
|
function shouldRetry(err: unknown): boolean {
|
|
88
|
-
|
|
89
|
-
return !(errorCode(err) === "driver_failed" && isFinal(err));
|
|
100
|
+
return !isSchemaError(err) && !isFinal(err);
|
|
90
101
|
}
|
|
91
102
|
|
|
92
103
|
/*
|
|
@@ -184,11 +195,20 @@ export function buildCtx(wf: WorkflowDefinition<any, any>, run: Run): any {
|
|
|
184
195
|
);
|
|
185
196
|
}
|
|
186
197
|
if (uses.includes("all")) members.all = placed("all", (node, list) => all(run, list, node.path));
|
|
187
|
-
return guarded(members, "ctx", wf.name);
|
|
198
|
+
return guarded(members, "ctx", wf.name, { startedBy: startedByOf(run.actor) });
|
|
188
199
|
}
|
|
189
200
|
|
|
190
|
-
/**
|
|
191
|
-
|
|
201
|
+
/** Who started the run, as `ctx.startedBy` shows it: a plain frozen record, whose absent fields read as undefined. */
|
|
202
|
+
const startedByOf = ({ id, email, subject }: Principal): StartedBy =>
|
|
203
|
+
Object.freeze({ id, ...(email && { email }), ...(subject && { subject }) });
|
|
204
|
+
|
|
205
|
+
/** `members`, each object in it included, refusing any member not in it (`strict`), with `plain`'s as they are. */
|
|
206
|
+
function guarded(
|
|
207
|
+
members: Record<string, unknown>,
|
|
208
|
+
path: string,
|
|
209
|
+
workflow: string,
|
|
210
|
+
plain: Record<string, unknown> = {},
|
|
211
|
+
): Record<string, unknown> {
|
|
192
212
|
const out: Record<string, unknown> = {};
|
|
193
213
|
for (const [key, value] of Object.entries(members)) {
|
|
194
214
|
out[key] =
|
|
@@ -196,7 +216,7 @@ function guarded(members: Record<string, unknown>, path: string, workflow: strin
|
|
|
196
216
|
? guarded(value as Record<string, unknown>, `${path}.${key}`, workflow)
|
|
197
217
|
: value;
|
|
198
218
|
}
|
|
199
|
-
return strict(out, path, workflow);
|
|
219
|
+
return strict({ ...out, ...plain }, path, workflow);
|
|
200
220
|
}
|
|
201
221
|
|
|
202
222
|
/** Where a `ctx` member was called from, as a stack frame says. */
|
|
@@ -425,6 +445,50 @@ function ask(
|
|
|
425
445
|
return policy.version === undefined ? decision : { ...decision, policyVersion: policy.version };
|
|
426
446
|
}
|
|
427
447
|
|
|
448
|
+
/**
|
|
449
|
+
* Refuses a change operation (`isChangeOp`) aimed at an object the data files declare, which only
|
|
450
|
+
* apply changes: an `update` or `delete` of an id the lockfile binds or a data file names, and a
|
|
451
|
+
* `create` or `update` whose identity (what its type's `find` makes of `desired`) a data file
|
|
452
|
+
* declares or the lockfile binds. Any other object is the workflow's own, its change an ordinary
|
|
453
|
+
* write. While the files have problems, which objects they declare is not known, so it refuses.
|
|
454
|
+
*/
|
|
455
|
+
async function refuseDeclared(run: Run, op: Op, input: unknown) {
|
|
456
|
+
const type = `${op.vendor}.${op.resource}`;
|
|
457
|
+
const { id, desired } = input as { id?: unknown; desired?: Record<string, unknown> };
|
|
458
|
+
const targets: string[] = [];
|
|
459
|
+
if (op.name !== "create" && typeof id === "string") targets.push(id);
|
|
460
|
+
const find = run.state.types.get(type)?.find;
|
|
461
|
+
if (op.name !== "delete" && desired && find) {
|
|
462
|
+
try {
|
|
463
|
+
targets.push(find(desired));
|
|
464
|
+
} catch (err) {
|
|
465
|
+
throw new SanomaError(
|
|
466
|
+
"invalid_input",
|
|
467
|
+
`${op.id}: its desired names no ${type} (${errorMessage(err)}), so it cannot be told from a declared one`,
|
|
468
|
+
{ op: op.id, workflow: run.workflow },
|
|
469
|
+
);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
if (!targets.length) return;
|
|
473
|
+
const declared = await run.state.declaredObjects();
|
|
474
|
+
if (declared.problems.length) {
|
|
475
|
+
throw new SanomaError(
|
|
476
|
+
"invalid_input",
|
|
477
|
+
`${op.id} waits for the data files to be fixed, since only apply changes a declared resource: ${declared.problems.map(problemLine).join("; ")}`,
|
|
478
|
+
{ op: op.id, workflow: run.workflow },
|
|
479
|
+
);
|
|
480
|
+
}
|
|
481
|
+
for (const target of targets) {
|
|
482
|
+
const key = declared.keys.get(`${type} ${target}`);
|
|
483
|
+
if (key === undefined) continue;
|
|
484
|
+
throw new SanomaError(
|
|
485
|
+
"invalid_input",
|
|
486
|
+
`${op.id} changes ${key}, a declared resource, which only apply does: change the data file instead`,
|
|
487
|
+
{ op: op.id, workflow: run.workflow, declared: key },
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
428
492
|
async function callOp(run: Run, id: string, input: unknown, place: Placed, ref?: ConnectionRef) {
|
|
429
493
|
// The worker's declaration, never the workflow's: its effect, schemas and retry setting.
|
|
430
494
|
const op = run.state.ops.get(id);
|
|
@@ -437,9 +501,8 @@ async function callOp(run: Run, id: string, input: unknown, place: Placed, ref?:
|
|
|
437
501
|
: `No connector or fake for ${id} in this worker: no fake its connectors attach implements it`,
|
|
438
502
|
);
|
|
439
503
|
}
|
|
440
|
-
// Only
|
|
441
|
-
|
|
442
|
-
const reserved = reservedFor(op, run.state.types);
|
|
504
|
+
// Only change takes a change's steps; `resolveConfig` refuses any other workflow that uses one.
|
|
505
|
+
const reserved = reservedFor(op);
|
|
443
506
|
if (reserved && run.workflow !== reserved.workflow) {
|
|
444
507
|
throw new SanomaError("invalid_input", `${op.id} ${reserved.does}, which only ${reserved.workflow} does`, {
|
|
445
508
|
op: op.id,
|
|
@@ -469,12 +532,15 @@ async function callOp(run: Run, id: string, input: unknown, place: Placed, ref?:
|
|
|
469
532
|
DBOS.runStep(
|
|
470
533
|
async () => {
|
|
471
534
|
if (run.sandbox === undefined) await run.state.connections?.assertCurrent(connection, run.actor.id);
|
|
535
|
+
// Read in the step, so a replay reuses the first answer, and asked again after each
|
|
536
|
+
// approval, so a call made after a long wait sees the files as they are then.
|
|
537
|
+
if (run.workflow !== APPLY_WORKFLOW && isChangeOp(op, run.state.types)) await refuseDeclared(run, op, parsed);
|
|
472
538
|
return decide(run, op, parsed, connection);
|
|
473
539
|
},
|
|
474
540
|
{ name: `policy:${op.id}` },
|
|
475
541
|
);
|
|
476
542
|
let decision = await decideStep();
|
|
477
|
-
const logged = recorded(op, parsed);
|
|
543
|
+
const logged = recorded(op, parsed, run.workflow);
|
|
478
544
|
const call = {
|
|
479
545
|
type: "op.called",
|
|
480
546
|
op: op.id,
|
|
@@ -567,7 +633,11 @@ async function callOp(run: Run, id: string, input: unknown, place: Placed, ref?:
|
|
|
567
633
|
try {
|
|
568
634
|
await write(
|
|
569
635
|
run,
|
|
570
|
-
entry(
|
|
636
|
+
entry(
|
|
637
|
+
run,
|
|
638
|
+
{ ...call, output: recorded(op, output, run.workflow), durationMs, attempt: result.attempt },
|
|
639
|
+
{ seq, at },
|
|
640
|
+
),
|
|
571
641
|
);
|
|
572
642
|
} catch (err) {
|
|
573
643
|
// The vendor acted, and nothing records it. A workflow that caught this and called again
|
package/src/change.ts
CHANGED
|
@@ -3,18 +3,9 @@ import type { ApprovalState, Approver } from "./define.ts";
|
|
|
3
3
|
import { errorInfo } from "./errors.ts";
|
|
4
4
|
import { type CallContext, defineConnector, defineDriver, type Driver, DriverError } from "./op.ts";
|
|
5
5
|
import { approve, approvedFor, type Decision, deny } from "./policy.ts";
|
|
6
|
-
import { isChangeOp, type Resource } from "./resource.ts";
|
|
7
6
|
import { currentRun } from "./run.ts";
|
|
8
7
|
import type { Secrets } from "./secret.ts";
|
|
9
|
-
import {
|
|
10
|
-
APPLY_WORKFLOW,
|
|
11
|
-
CHANGE_MERGE,
|
|
12
|
-
CHANGE_WORKFLOW,
|
|
13
|
-
DRAFT_ID,
|
|
14
|
-
errorMessage,
|
|
15
|
-
groupNamesOf,
|
|
16
|
-
type PeopleResource,
|
|
17
|
-
} from "./shared.ts";
|
|
8
|
+
import { CHANGE_MERGE, CHANGE_WORKFLOW, DRAFT_ID, errorMessage, groupNamesOf, type PeopleResource } from "./shared.ts";
|
|
18
9
|
import {
|
|
19
10
|
type CheckResult,
|
|
20
11
|
type RemoteContext,
|
|
@@ -117,17 +108,15 @@ export const changeOps = defineConnector("sanoma", {
|
|
|
117
108
|
|
|
118
109
|
/**
|
|
119
110
|
* The built-in workflow that alone may call `op`, what the operation does and what to do instead:
|
|
120
|
-
* `
|
|
121
|
-
*
|
|
122
|
-
*
|
|
111
|
+
* `change` for `sanoma.change.*`; undefined for any other. `resolveConfig` refuses a workflow that
|
|
112
|
+
* uses one, and a run's call of one outside its workflow fails. A resource type's change
|
|
113
|
+
* operations are not reserved: any workflow may call them for an object no data file declares,
|
|
114
|
+
* and the call refuses a declared one (`refuseDeclared` in `call.ts`), which only apply changes.
|
|
123
115
|
*/
|
|
124
|
-
export function reservedFor(
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
): { workflow: string; does: string; instead: string } | undefined {
|
|
128
|
-
if (isChangeOp(op, types)) {
|
|
129
|
-
return { workflow: APPLY_WORKFLOW, does: "changes a declared resource", instead: "change the data file" };
|
|
130
|
-
}
|
|
116
|
+
export function reservedFor(op: {
|
|
117
|
+
readonly vendor: string;
|
|
118
|
+
readonly resource: string;
|
|
119
|
+
}): { workflow: string; does: string; instead: string } | undefined {
|
|
131
120
|
if (op.vendor === "sanoma" && op.resource === "change") {
|
|
132
121
|
return { workflow: CHANGE_WORKFLOW, does: "changes the company's repository", instead: "send a draft for review" };
|
|
133
122
|
}
|
package/src/client.ts
CHANGED
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
} from "./approvals.ts";
|
|
27
27
|
import { beforeOf, decideCall, decideStart, recorded, startHoldOf } from "./call.ts";
|
|
28
28
|
import { type Chats, chatStore } from "./chats.ts";
|
|
29
|
+
import { type Tokens, tokenStore } from "./tokens.ts";
|
|
29
30
|
import { collectionsDriver } from "./collection.ts";
|
|
30
31
|
import { type ResolvedConfig, resolveConfig, type SanomaConfig } from "./config.ts";
|
|
31
32
|
import { configuredSecrets } from "./credentials.ts";
|
|
@@ -58,9 +59,9 @@ import {
|
|
|
58
59
|
SanomaError,
|
|
59
60
|
vendorCodeOf,
|
|
60
61
|
} from "./errors.ts";
|
|
61
|
-
import { insertRecord, type LedgerRecord, type OwnedLedger, ownedLedger } from "./ledger.ts";
|
|
62
|
+
import { insertRecord, lastSignIns, type LedgerRecord, loginRecord, type OwnedLedger, ownedLedger } from "./ledger.ts";
|
|
62
63
|
import { warn } from "./log.ts";
|
|
63
|
-
import type { CallContext, Driver, Op } from "./op.ts";
|
|
64
|
+
import type { CallContext, Driver, Op, SignInMethod } from "./op.ts";
|
|
64
65
|
import { allowAll, type RecordedDecision } from "./policy.ts";
|
|
65
66
|
import { admit, readPeople } from "./resources.ts";
|
|
66
67
|
import type { RunArgs, StartHold } from "./run.ts";
|
|
@@ -78,6 +79,7 @@ import {
|
|
|
78
79
|
errorMessage,
|
|
79
80
|
HOST_CHECK_AGENT,
|
|
80
81
|
isEnded,
|
|
82
|
+
isToken,
|
|
81
83
|
isVisitor,
|
|
82
84
|
refusalOf,
|
|
83
85
|
type RunStatus,
|
|
@@ -268,6 +270,8 @@ export class SanomaClient {
|
|
|
268
270
|
private readonly storedSecrets: SecretAccess;
|
|
269
271
|
/** The operator agent's chats: their rows and their transcripts, in the config's database. */
|
|
270
272
|
readonly chats: Chats;
|
|
273
|
+
/** The api tokens a public site's api takes as a bearer (`token:<id>`, a visitor): minted, revoked, resolved. */
|
|
274
|
+
readonly tokens: Tokens;
|
|
271
275
|
private readonly options: ClientOptions;
|
|
272
276
|
|
|
273
277
|
private constructor(
|
|
@@ -284,6 +288,7 @@ export class SanomaClient {
|
|
|
284
288
|
this.pool = lazyPool(config.databaseUrl, "client");
|
|
285
289
|
this.storedSecrets = configuredSecrets(config.secrets, () => this.db());
|
|
286
290
|
this.chats = chatStore(() => this.db());
|
|
291
|
+
this.tokens = tokenStore(() => this.db());
|
|
287
292
|
}
|
|
288
293
|
|
|
289
294
|
/**
|
|
@@ -315,11 +320,13 @@ export class SanomaClient {
|
|
|
315
320
|
input: z.input<S>,
|
|
316
321
|
options: StartOptions,
|
|
317
322
|
): Promise<string> {
|
|
318
|
-
const startedBy = await this.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
+
const startedBy = await this.withSubject(
|
|
324
|
+
await this.admitted(
|
|
325
|
+
parseOrThrow(
|
|
326
|
+
PrincipalOrId,
|
|
327
|
+
options?.startedBy,
|
|
328
|
+
'`startedBy` must be a principal, such as "alice" or { id: "alice" }',
|
|
329
|
+
),
|
|
323
330
|
),
|
|
324
331
|
);
|
|
325
332
|
if (typeof workflow === "string") {
|
|
@@ -639,6 +646,32 @@ export class SanomaClient {
|
|
|
639
646
|
return row ? { runId: row.workflowID, output: row.output, at: row.updatedAt ?? row.createdAt } : null;
|
|
640
647
|
}
|
|
641
648
|
|
|
649
|
+
/** Records that the declared `person` signed in to the staff login, by `method`: a ledger record outside any run. */
|
|
650
|
+
async recordSignIn(person: string, method: SignInMethod): Promise<void> {
|
|
651
|
+
const actor = await this.admitted({ id: person });
|
|
652
|
+
await this.audit.store.append(
|
|
653
|
+
loginRecord(this.config.appName, actor, { type: "signin.recorded", person: actor.id, method }),
|
|
654
|
+
);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
/** Records that `by` minted an invite for the declared `person`, good until `expiresAt`: a ledger record outside any run. */
|
|
658
|
+
async recordInvite(person: string, options: { by: string; expiresAt: Date }): Promise<void> {
|
|
659
|
+
const [actor, invited] = await Promise.all([this.admitted({ id: options.by }), this.admitted({ id: person })]);
|
|
660
|
+
await this.audit.store.append(
|
|
661
|
+
loginRecord(this.config.appName, actor, {
|
|
662
|
+
type: "invite.minted",
|
|
663
|
+
person: invited.id,
|
|
664
|
+
by: actor.id,
|
|
665
|
+
expiresAt: options.expiresAt.toISOString(),
|
|
666
|
+
}),
|
|
667
|
+
);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
/** When each of `people` last signed in to the staff login, and how, by id (`recordSignIn`); one who never did is left out. */
|
|
671
|
+
lastSignIns(people: readonly string[]): Promise<Record<string, { at: number; method: SignInMethod }>> {
|
|
672
|
+
return lastSignIns(this.audit.store, people);
|
|
673
|
+
}
|
|
674
|
+
|
|
642
675
|
/** The run's audit record, in order, from the ledger store. */
|
|
643
676
|
async ledger(runId: string): Promise<LedgerRecord[]> {
|
|
644
677
|
await this.mustExist(runId);
|
|
@@ -1262,6 +1295,7 @@ export class SanomaClient {
|
|
|
1262
1295
|
const identity = await verifyAuthentication(
|
|
1263
1296
|
method,
|
|
1264
1297
|
encoded === undefined ? undefined : decodeCredentials(method, encoded),
|
|
1298
|
+
{ connectionId: setup.id, vendor: setup.vendor },
|
|
1265
1299
|
);
|
|
1266
1300
|
if (setup.expectedAccount && setup.expectedAccount !== identity.account)
|
|
1267
1301
|
throw new AuthenticationError("wrong_account");
|
|
@@ -1330,6 +1364,7 @@ export class SanomaClient {
|
|
|
1330
1364
|
const identity = await verifyAuthentication(
|
|
1331
1365
|
method,
|
|
1332
1366
|
encoded === undefined ? undefined : decodeCredentials(method, encoded),
|
|
1367
|
+
{ connectionId: setup.id, vendor: setup.vendor },
|
|
1333
1368
|
);
|
|
1334
1369
|
if (identity.account !== review.account) throw new AuthenticationError("wrong_account");
|
|
1335
1370
|
if (JSON.stringify(identity.scopes) !== JSON.stringify([...new Set(review.scopes)].toSorted()))
|
|
@@ -1468,6 +1503,14 @@ export class SanomaClient {
|
|
|
1468
1503
|
return admit(principal, readPeople(this.config.root));
|
|
1469
1504
|
}
|
|
1470
1505
|
|
|
1506
|
+
/** An api token's principal (`token:<id>`) with the subject its row acts for, refused once the token is revoked; anyone else as given. */
|
|
1507
|
+
private async withSubject(principal: Principal): Promise<Principal> {
|
|
1508
|
+
if (!isToken(principal)) return principal;
|
|
1509
|
+
const subject = await this.tokens.subjectOf(principal.id.slice("token:".length));
|
|
1510
|
+
if (subject === undefined) throw new NotAdmittedError(principal.id);
|
|
1511
|
+
return { ...principal, subject };
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1471
1514
|
/** `options.by`, who sets or clears a credential, admitted (`admitted`): their id; never a visitor's. */
|
|
1472
1515
|
private async admittedBy(options: { by: string }): Promise<string> {
|
|
1473
1516
|
const by = parseOrThrow(z.string().min(1), options?.by, '`by` must name who is asking, such as "alice"');
|