@sanoma-ai/workflows 0.10.2 → 0.10.6
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 +128 -17
- package/README.md +56 -13
- package/dist/apply.d.ts +11 -4
- package/dist/apply.js +127 -36
- package/dist/apply.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 +35 -3
- package/dist/client.js.map +1 -1
- package/dist/cloud-identity.d.ts +5 -1
- package/dist/cloud-identity.js +13 -77
- package/dist/cloud-identity.js.map +1 -1
- package/dist/config.d.ts +45 -4
- package/dist/config.js +73 -11
- package/dist/config.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 +29 -0
- package/dist/define.js +3 -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/dns.d.ts +20 -0
- package/dist/dns.js +26 -0
- package/dist/dns.js.map +1 -0
- package/dist/drift.d.ts +4 -2
- package/dist/drift.js +13 -4
- package/dist/drift.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/identity-broker.d.ts +14 -0
- package/dist/identity-broker.js +84 -0
- package/dist/identity-broker.js.map +1 -0
- package/dist/identity-provisioning.d.ts +29 -0
- package/dist/identity-provisioning.js +178 -0
- package/dist/identity-provisioning.js.map +1 -0
- package/dist/identity-service.d.ts +25 -0
- package/dist/identity-service.js +148 -0
- package/dist/identity-service.js.map +1 -0
- package/dist/index.d.ts +11 -6
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- 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 +85 -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/provisioning-identity.d.ts +27 -0
- package/dist/provisioning-identity.js +81 -0
- package/dist/provisioning-identity.js.map +1 -0
- package/dist/resource.d.ts +73 -10
- package/dist/resource.js +103 -14
- package/dist/resource.js.map +1 -1
- package/dist/resources.d.ts +4 -2
- package/dist/resources.js +16 -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 +182 -0
- package/dist/runtime-ops.js +294 -0
- package/dist/runtime-ops.js.map +1 -0
- package/dist/scenario.d.ts +6 -3
- package/dist/scenario.js +13 -1
- package/dist/scenario.js.map +1 -1
- 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 +2 -1
- package/package.json +5 -1
- package/src/apply.ts +166 -48
- package/src/call.ts +88 -18
- package/src/change.ts +9 -20
- package/src/client.ts +48 -7
- package/src/cloud-identity.ts +16 -76
- package/src/config.ts +116 -18
- package/src/db.ts +8 -1
- package/src/deadlines.ts +66 -20
- package/src/define.ts +33 -0
- package/src/deployment-key.ts +34 -8
- package/src/describe.ts +39 -2
- package/src/description.ts +2 -0
- package/src/dns.ts +29 -0
- package/src/drift.ts +13 -4
- package/src/host.ts +22 -6
- package/src/identity-broker.ts +94 -0
- package/src/identity-provisioning.ts +208 -0
- package/src/identity-service.ts +179 -0
- package/src/index.ts +20 -1
- package/src/ledger.ts +52 -1
- package/src/login-code.ts +52 -0
- package/src/op.ts +94 -11
- package/src/outline.ts +3 -3
- package/src/provisioning-identity.ts +106 -0
- package/src/resource.ts +155 -20
- package/src/resources.ts +14 -4
- package/src/run.ts +3 -0
- package/src/runtime-ops.ts +313 -0
- package/src/scenario.ts +24 -6
- 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/resources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
|
package/dist/run.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConnectionRef, ConnectionRegistry, ConnectionSnapshot } from "./connection.ts";
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
3
|
import type { Collection } from "./collection.ts";
|
|
4
|
+
import type { DeclaredObjects } from "./config.ts";
|
|
4
5
|
import type { DeadlineRegistry } from "./deadlines.ts";
|
|
5
6
|
import type { ApprovalState, Approver, Principal, WorkflowDefinition } from "./define.ts";
|
|
6
7
|
import type { Fake } from "./fake.ts";
|
|
@@ -50,6 +51,8 @@ export interface WorkerState {
|
|
|
50
51
|
/** The worker's `source`, when it was given one. */
|
|
51
52
|
source?: Source;
|
|
52
53
|
types: ReadonlyMap<string, Resource>;
|
|
54
|
+
/** The objects the data files declare, read at each call: a workflow's change operation may not aim at one (`refuseDeclared`). */
|
|
55
|
+
declaredObjects(): Promise<DeclaredObjects>;
|
|
53
56
|
/** The collections, by name, which scenarios' steps may name (`data.<name>`). */
|
|
54
57
|
collections: ReadonlyMap<string, Collection>;
|
|
55
58
|
steps: readonly Steps[];
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAoIrD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,iBAAiB,EAAO,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type CallContext } from "./op.ts";
|
|
3
|
+
import { type Tokens } from "./tokens.ts";
|
|
4
|
+
import { type IdentityProvisioning } from "./identity-provisioning.ts";
|
|
5
|
+
declare const IdentityTarget: ({ deployment }: {
|
|
6
|
+
deployment: string;
|
|
7
|
+
}) => string;
|
|
8
|
+
/**
|
|
9
|
+
* The runtime's own operations a workflow calls: `import { sanoma } from "sanoma"`, then
|
|
10
|
+
* `uses: [sanoma.secret.generate]` and `ctx.sanoma.secret.generate({ name, kind })`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const sanoma: import("./op.ts").Connector<"sanoma", {
|
|
13
|
+
readonly identity: {
|
|
14
|
+
readonly enroll: {
|
|
15
|
+
readonly effect: "access";
|
|
16
|
+
readonly idempotent: true;
|
|
17
|
+
readonly description: "Enroll a deployment identity, keeping its bootstrap credential in the secret store. A higher generation rotates it; mappings are immutable";
|
|
18
|
+
readonly input: z.ZodObject<{
|
|
19
|
+
deployment: z.ZodString;
|
|
20
|
+
company: z.ZodString;
|
|
21
|
+
environment: z.ZodString;
|
|
22
|
+
serviceAccount: z.ZodString;
|
|
23
|
+
generation: z.ZodNumber;
|
|
24
|
+
validUntil: z.ZodISODateTime;
|
|
25
|
+
store: z.ZodString;
|
|
26
|
+
}, z.core.$strip>;
|
|
27
|
+
readonly output: z.ZodObject<{
|
|
28
|
+
deployment: z.ZodString;
|
|
29
|
+
generation: z.ZodNumber;
|
|
30
|
+
store: z.ZodString;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
readonly target: typeof IdentityTarget;
|
|
33
|
+
readonly createsSecrets: ({ store }: {
|
|
34
|
+
store: string;
|
|
35
|
+
}) => string[];
|
|
36
|
+
};
|
|
37
|
+
readonly retire: {
|
|
38
|
+
readonly effect: "access";
|
|
39
|
+
readonly idempotent: true;
|
|
40
|
+
readonly description: "Shorten an old identity generation's validity after delivering its replacement; never extend access";
|
|
41
|
+
readonly input: z.ZodObject<{
|
|
42
|
+
deployment: z.ZodString;
|
|
43
|
+
company: z.ZodString;
|
|
44
|
+
environment: z.ZodString;
|
|
45
|
+
serviceAccount: z.ZodString;
|
|
46
|
+
generation: z.ZodNumber;
|
|
47
|
+
validUntil: z.ZodISODateTime;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
readonly output: z.ZodObject<{}, z.core.$strip>;
|
|
50
|
+
readonly target: typeof IdentityTarget;
|
|
51
|
+
};
|
|
52
|
+
readonly revoke: {
|
|
53
|
+
readonly effect: "access";
|
|
54
|
+
readonly idempotent: true;
|
|
55
|
+
readonly description: "Disable all token renewal for a deployment. This deployment id cannot be re-enrolled";
|
|
56
|
+
readonly input: z.ZodObject<{
|
|
57
|
+
deployment: z.ZodString;
|
|
58
|
+
company: z.ZodString;
|
|
59
|
+
environment: z.ZodString;
|
|
60
|
+
serviceAccount: z.ZodString;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
readonly output: z.ZodObject<{}, z.core.$strip>;
|
|
63
|
+
readonly target: typeof IdentityTarget;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
readonly secret: {
|
|
67
|
+
readonly generate: {
|
|
68
|
+
readonly effect: "write";
|
|
69
|
+
readonly idempotent: true;
|
|
70
|
+
readonly description: "Make a secret and store it under a name: a random value, or an RSA key pair whose private half (PEM) is stored and whose public half (OpenSSH) is answered. A name stored already is kept";
|
|
71
|
+
readonly input: z.ZodObject<{
|
|
72
|
+
name: z.ZodString;
|
|
73
|
+
kind: z.ZodEnum<{
|
|
74
|
+
random: "random";
|
|
75
|
+
"ssh-rsa": "ssh-rsa";
|
|
76
|
+
}>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
readonly output: z.ZodObject<{
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
publicKey: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
readonly target: ({ name }: {
|
|
83
|
+
name: string;
|
|
84
|
+
}) => string;
|
|
85
|
+
readonly createsSecrets: ({ name }: {
|
|
86
|
+
name: string;
|
|
87
|
+
}) => string[];
|
|
88
|
+
};
|
|
89
|
+
readonly delete: {
|
|
90
|
+
readonly effect: "write";
|
|
91
|
+
readonly idempotent: true;
|
|
92
|
+
readonly description: "Delete a stored secret; one not stored is nothing to do";
|
|
93
|
+
readonly input: z.ZodObject<{
|
|
94
|
+
name: z.ZodString;
|
|
95
|
+
}, z.core.$strip>;
|
|
96
|
+
readonly output: z.ZodObject<{}, z.core.$strip>;
|
|
97
|
+
readonly target: ({ name }: {
|
|
98
|
+
name: string;
|
|
99
|
+
}) => string;
|
|
100
|
+
readonly createsSecrets: ({ name }: {
|
|
101
|
+
name: string;
|
|
102
|
+
}) => string[];
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
readonly invite: {
|
|
106
|
+
readonly mint: {
|
|
107
|
+
readonly effect: "access";
|
|
108
|
+
readonly idempotent: true;
|
|
109
|
+
readonly description: "Ask an instance for an invite link that signs a declared person in: a request sealed under the instance's signing key, named by a secret marker, posted to its /auth/invite";
|
|
110
|
+
readonly input: z.ZodObject<{
|
|
111
|
+
host: z.ZodURL;
|
|
112
|
+
email: z.ZodEmail;
|
|
113
|
+
key: z.ZodObject<{
|
|
114
|
+
$secret: z.ZodString;
|
|
115
|
+
}, z.core.$strict>;
|
|
116
|
+
}, z.core.$strip>;
|
|
117
|
+
readonly output: z.ZodObject<{
|
|
118
|
+
url: z.ZodString;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
readonly target: ({ host }: {
|
|
121
|
+
host: string;
|
|
122
|
+
}) => string;
|
|
123
|
+
readonly opaque: readonly ["url"];
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
readonly token: {
|
|
127
|
+
readonly mint: {
|
|
128
|
+
readonly effect: "access";
|
|
129
|
+
readonly description: "Mint an api token acting for a subject in groups, store it under a name, and answer its id (never the token)";
|
|
130
|
+
readonly input: z.ZodObject<{
|
|
131
|
+
subject: z.ZodString;
|
|
132
|
+
groups: z.ZodArray<z.ZodString>;
|
|
133
|
+
store: z.ZodString;
|
|
134
|
+
}, z.core.$strip>;
|
|
135
|
+
readonly output: z.ZodObject<{
|
|
136
|
+
id: z.ZodString;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
readonly target: ({ subject }: {
|
|
139
|
+
subject: string;
|
|
140
|
+
}) => string;
|
|
141
|
+
readonly createsSecrets: ({ store }: {
|
|
142
|
+
store: string;
|
|
143
|
+
}) => string[];
|
|
144
|
+
};
|
|
145
|
+
readonly revoke: {
|
|
146
|
+
readonly effect: "access";
|
|
147
|
+
readonly idempotent: true;
|
|
148
|
+
readonly description: "Revoke an api token: it resolves to nobody from now on";
|
|
149
|
+
readonly input: z.ZodObject<{
|
|
150
|
+
id: z.ZodString;
|
|
151
|
+
}, z.core.$strip>;
|
|
152
|
+
readonly output: z.ZodObject<{}, z.core.$strip>;
|
|
153
|
+
readonly target: ({ id }: {
|
|
154
|
+
id: string;
|
|
155
|
+
}) => string;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
}>;
|
|
159
|
+
/**
|
|
160
|
+
* Posts the sealed `request` to the instance's `/auth/invite`, and answers the link it minted
|
|
161
|
+
* (`sanoma.invite.mint`, and going live's sign-in); a `DriverError` otherwise, retryable by status.
|
|
162
|
+
*/
|
|
163
|
+
export declare function postInvite(host: string, request: string): Promise<{
|
|
164
|
+
url: string;
|
|
165
|
+
}>;
|
|
166
|
+
/**
|
|
167
|
+
* The driver of the runtime's own operations, over the call's secrets and `tokens` (the config's
|
|
168
|
+
* database's, `tokenStore`); `invite` posts a sealed request to an instance (`postInvite` by default).
|
|
169
|
+
*/
|
|
170
|
+
export declare function runtimeDriver({ tokens, identities, invite, }: {
|
|
171
|
+
tokens: Tokens;
|
|
172
|
+
identities?: IdentityProvisioning;
|
|
173
|
+
invite?: (host: string, request: string, call: CallContext) => Promise<{
|
|
174
|
+
url: string;
|
|
175
|
+
}>;
|
|
176
|
+
}): import("./op.ts").Driver;
|
|
177
|
+
/**
|
|
178
|
+
* The runtime's own operations for one sandbox run: the run's secrets (in memory), tokens in
|
|
179
|
+
* memory, and an invite that posts nothing, answering a link on the host named.
|
|
180
|
+
*/
|
|
181
|
+
export declare const sandboxRuntimeDriver: () => import("./op.ts").Driver;
|
|
182
|
+
export {};
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { keyBytes } from "./deployment-key.js";
|
|
4
|
+
import { defineConnector, defineDriver, DriverError, retryableStatus } from "./op.js";
|
|
5
|
+
import { generateSecret, SECRET_NAME } from "./secret.js";
|
|
6
|
+
import { sealInvite } from "./seal.js";
|
|
7
|
+
import { errorMessage } from "./shared.js";
|
|
8
|
+
import { sourceKeyPair, sshPublicKey } from "./ssh-key.js";
|
|
9
|
+
import { memoryTokens } from "./tokens.js";
|
|
10
|
+
import { identityProvisioningCode, memoryIdentityProvisioning, } from "./identity-provisioning.js";
|
|
11
|
+
// What a workflow cannot do itself and the runtime does for it, as operations of the vendor
|
|
12
|
+
// `sanoma` (`sanoma.secret.*`, `sanoma.invite.mint`, `sanoma.token.*`): named in `uses`, decided by
|
|
13
|
+
// the policy, recorded in the ledger, and never answering a secret's value. `resolveConfig`
|
|
14
|
+
// registers them in every config with their driver (`runtimeDriver`), so a policy may name them;
|
|
15
|
+
// a sandbox run calls `sandboxRuntimeDriver`, over its own secrets and tokens, posting nothing.
|
|
16
|
+
/** A secret's name, as the store takes it (upper case), other than the runtime's own (`SANOMA_…`: its keys and credentials). */
|
|
17
|
+
const SecretName = z
|
|
18
|
+
.string()
|
|
19
|
+
.regex(SECRET_NAME, "a secret's name: upper case, A-Z, 0-9 and _")
|
|
20
|
+
.refine((name) => !name.startsWith("SANOMA_"), "a SANOMA_ name is the runtime's own, not a workflow's to use");
|
|
21
|
+
/** How long an instance gets to answer `POST /auth/invite`. */
|
|
22
|
+
const INVITE_TIMEOUT_MS = 10_000;
|
|
23
|
+
const DeploymentIdentity = z.object({
|
|
24
|
+
deployment: z.string().min(1).max(256),
|
|
25
|
+
company: z.string().min(1).max(256),
|
|
26
|
+
environment: z.string().min(1).max(256),
|
|
27
|
+
serviceAccount: z.string().regex(/^[a-z][a-z0-9-]+@[a-z][a-z0-9-]+\.iam\.gserviceaccount\.com$/),
|
|
28
|
+
});
|
|
29
|
+
const Generation = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
|
|
30
|
+
const IdentityTarget = ({ deployment }) => deployment;
|
|
31
|
+
// Enrollment implementations can see credential hashes and database credentials. Neither their
|
|
32
|
+
// errors nor causes may be captured in durable driver history, including on an uncertain commit.
|
|
33
|
+
async function identityWrite(write) {
|
|
34
|
+
try {
|
|
35
|
+
await write();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
const code = identityProvisioningCode(error) ?? "unavailable";
|
|
39
|
+
throw new DriverError(`Identity provisioning: ${code}`, { retryable: code === "unavailable" });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The runtime's own operations a workflow calls: `import { sanoma } from "sanoma"`, then
|
|
44
|
+
* `uses: [sanoma.secret.generate]` and `ctx.sanoma.secret.generate({ name, kind })`.
|
|
45
|
+
*/
|
|
46
|
+
export const sanoma = defineConnector("sanoma", {
|
|
47
|
+
identity: {
|
|
48
|
+
enroll: {
|
|
49
|
+
effect: "access",
|
|
50
|
+
idempotent: true,
|
|
51
|
+
description: "Enroll a deployment identity, keeping its bootstrap credential in the secret store. A higher generation rotates it; mappings are immutable",
|
|
52
|
+
input: DeploymentIdentity.extend({ generation: Generation, validUntil: z.iso.datetime(), store: SecretName }),
|
|
53
|
+
output: z.object({ deployment: z.string(), generation: Generation, store: z.string() }),
|
|
54
|
+
target: IdentityTarget,
|
|
55
|
+
createsSecrets: ({ store }) => [store],
|
|
56
|
+
},
|
|
57
|
+
retire: {
|
|
58
|
+
effect: "access",
|
|
59
|
+
idempotent: true,
|
|
60
|
+
description: "Shorten an old identity generation's validity after delivering its replacement; never extend access",
|
|
61
|
+
input: DeploymentIdentity.extend({ generation: Generation, validUntil: z.iso.datetime() }),
|
|
62
|
+
output: z.object({}),
|
|
63
|
+
target: IdentityTarget,
|
|
64
|
+
},
|
|
65
|
+
revoke: {
|
|
66
|
+
effect: "access",
|
|
67
|
+
idempotent: true,
|
|
68
|
+
description: "Disable all token renewal for a deployment. This deployment id cannot be re-enrolled",
|
|
69
|
+
input: DeploymentIdentity,
|
|
70
|
+
output: z.object({}),
|
|
71
|
+
target: IdentityTarget,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
secret: {
|
|
75
|
+
generate: {
|
|
76
|
+
effect: "write",
|
|
77
|
+
// A value stored is kept: a retry answers what the first try stored.
|
|
78
|
+
idempotent: true,
|
|
79
|
+
description: "Make a secret and store it under a name: a random value, or an RSA key pair whose private half (PEM) is stored and whose public half (OpenSSH) is answered. A name stored already is kept",
|
|
80
|
+
input: z.object({
|
|
81
|
+
name: SecretName,
|
|
82
|
+
kind: z.enum(["random", "ssh-rsa"]).describe("random: 32 random bytes; ssh-rsa: an RSA deploy key"),
|
|
83
|
+
}),
|
|
84
|
+
output: z.object({
|
|
85
|
+
name: z.string(),
|
|
86
|
+
publicKey: z.string().optional().describe("For ssh-rsa: the public half, `ssh-rsa <base64>`"),
|
|
87
|
+
}),
|
|
88
|
+
target: ({ name }) => name,
|
|
89
|
+
createsSecrets: ({ name }) => [name],
|
|
90
|
+
},
|
|
91
|
+
delete: {
|
|
92
|
+
effect: "write",
|
|
93
|
+
idempotent: true,
|
|
94
|
+
description: "Delete a stored secret; one not stored is nothing to do",
|
|
95
|
+
input: z.object({ name: SecretName }),
|
|
96
|
+
output: z.object({}),
|
|
97
|
+
target: ({ name }) => name,
|
|
98
|
+
createsSecrets: ({ name }) => [name],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
invite: {
|
|
102
|
+
mint: {
|
|
103
|
+
effect: "access",
|
|
104
|
+
// Each try seals a new request (good for `sealInvite`'s few minutes), and the instance's newest
|
|
105
|
+
// invite for an email replaces the last.
|
|
106
|
+
idempotent: true,
|
|
107
|
+
description: "Ask an instance for an invite link that signs a declared person in: a request sealed under the instance's signing key, named by a secret marker, posted to its /auth/invite",
|
|
108
|
+
input: z.object({
|
|
109
|
+
host: z.url({ protocol: /^https?$/ }).describe("The instance's address, such as https://acme.sanoma.work"),
|
|
110
|
+
email: z.email().describe("The email the instance's people file declares"),
|
|
111
|
+
key: z
|
|
112
|
+
.strictObject({ $secret: SecretName })
|
|
113
|
+
.describe('The instance\'s SANOMA_SIGNING_KEY, as stored here: secret("NAME")'),
|
|
114
|
+
}),
|
|
115
|
+
output: z.object({ url: z.string().describe("The one-use invite link the instance minted") }),
|
|
116
|
+
target: ({ host }) => host,
|
|
117
|
+
// A link that signs someone in: the ledger records that there was one, not what it was.
|
|
118
|
+
opaque: ["url"],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
token: {
|
|
122
|
+
mint: {
|
|
123
|
+
effect: "access",
|
|
124
|
+
description: "Mint an api token acting for a subject in groups, store it under a name, and answer its id (never the token)",
|
|
125
|
+
input: z.object({
|
|
126
|
+
subject: z.string().regex(/^\S+$/, "a principal's id, such as visitor:better-auth:<id>"),
|
|
127
|
+
groups: z.array(z.string().min(1)),
|
|
128
|
+
store: SecretName.describe("The secret the token is stored under"),
|
|
129
|
+
}),
|
|
130
|
+
output: z.object({ id: z.string() }),
|
|
131
|
+
target: ({ subject }) => subject,
|
|
132
|
+
createsSecrets: ({ store }) => [store],
|
|
133
|
+
},
|
|
134
|
+
revoke: {
|
|
135
|
+
effect: "access",
|
|
136
|
+
idempotent: true,
|
|
137
|
+
description: "Revoke an api token: it resolves to nobody from now on",
|
|
138
|
+
input: z.object({ id: z.string().min(1) }),
|
|
139
|
+
output: z.object({}),
|
|
140
|
+
target: ({ id }) => `token:${id}`,
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
/** A `DriverError` that a retry would not change. */
|
|
145
|
+
const refuse = (message) => new DriverError(`sanoma: ${message}`, { retryable: false });
|
|
146
|
+
/** The token id a call mints, from its idempotency key: the same on every try of one call, so a retry finds its own. */
|
|
147
|
+
function tokenIdOf(call) {
|
|
148
|
+
const hex = createHash("sha256").update(call.idempotencyKey).digest("hex");
|
|
149
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20, 32)}`;
|
|
150
|
+
}
|
|
151
|
+
/** The 32 bytes of a signing key stored as text (base64, or base64url as `generate` makes one), or a refusal. */
|
|
152
|
+
function signingKeyOf(secret, text) {
|
|
153
|
+
if (text === undefined)
|
|
154
|
+
throw refuse(`the secret ${secret} is not set: store the instance's signing key under it`);
|
|
155
|
+
const key = keyBytes(text);
|
|
156
|
+
if (!key)
|
|
157
|
+
throw refuse(`${secret} is not a signing key: 32 bytes in base64`);
|
|
158
|
+
return key;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Posts the sealed `request` to the instance's `/auth/invite`, and answers the link it minted
|
|
162
|
+
* (`sanoma.invite.mint`, and going live's sign-in); a `DriverError` otherwise, retryable by status.
|
|
163
|
+
*/
|
|
164
|
+
export async function postInvite(host, request) {
|
|
165
|
+
const at = new URL("/auth/invite", host);
|
|
166
|
+
let res;
|
|
167
|
+
try {
|
|
168
|
+
res = await fetch(at, {
|
|
169
|
+
method: "POST",
|
|
170
|
+
headers: { "content-type": "application/json" },
|
|
171
|
+
body: JSON.stringify({ request }),
|
|
172
|
+
// A redirect is answered as it is (a 3xx, not retried): the sealed request goes to `host` alone.
|
|
173
|
+
redirect: "manual",
|
|
174
|
+
signal: AbortSignal.timeout(INVITE_TIMEOUT_MS),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
throw new DriverError(`sanoma: ${at.host} could not be reached: ${errorMessage(err)}`, {
|
|
179
|
+
retryable: true,
|
|
180
|
+
cause: err,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
const body = (await res.json().catch(() => undefined));
|
|
184
|
+
if (res.ok && typeof body?.url === "string")
|
|
185
|
+
return { url: body.url };
|
|
186
|
+
const why = typeof body?.error === "string" ? `: ${body.error}` : res.ok ? ": no url" : "";
|
|
187
|
+
throw new DriverError(`sanoma: ${at.host} answered ${res.status} to POST /auth/invite${why}`, {
|
|
188
|
+
retryable: !res.ok && retryableStatus(res.status),
|
|
189
|
+
status: res.status,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The driver of the runtime's own operations, over the call's secrets and `tokens` (the config's
|
|
194
|
+
* database's, `tokenStore`); `invite` posts a sealed request to an instance (`postInvite` by default).
|
|
195
|
+
*/
|
|
196
|
+
export function runtimeDriver({ tokens, identities, invite = postInvite, }) {
|
|
197
|
+
return defineDriver(sanoma, {
|
|
198
|
+
identity: {
|
|
199
|
+
async enroll({ store, ...input }, call) {
|
|
200
|
+
if (!identities)
|
|
201
|
+
throw refuse("identity provisioning is not configured");
|
|
202
|
+
// Store before enrolling: a lost DB response retries with the same credential, never a new bearer.
|
|
203
|
+
const credential = await call.secrets.ensure(store, generateSecret);
|
|
204
|
+
if (!/^[A-Za-z0-9_-]{43}$/.test(credential))
|
|
205
|
+
throw refuse("invalid identity bootstrap credential");
|
|
206
|
+
await identityWrite(() => identities.enroll({ ...input, hash: createHash("sha256").update(credential).digest("hex") }));
|
|
207
|
+
return { deployment: input.deployment, generation: input.generation, store };
|
|
208
|
+
},
|
|
209
|
+
async retire(input) {
|
|
210
|
+
if (!identities)
|
|
211
|
+
throw refuse("identity provisioning is not configured");
|
|
212
|
+
await identityWrite(() => identities.retire(input));
|
|
213
|
+
return {};
|
|
214
|
+
},
|
|
215
|
+
async revoke(input) {
|
|
216
|
+
if (!identities)
|
|
217
|
+
throw refuse("identity provisioning is not configured");
|
|
218
|
+
await identityWrite(() => identities.revoke(input));
|
|
219
|
+
return {};
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
secret: {
|
|
223
|
+
async generate({ name, kind }, call) {
|
|
224
|
+
if (kind === "random") {
|
|
225
|
+
await call.secrets.ensure(name, generateSecret);
|
|
226
|
+
return { name };
|
|
227
|
+
}
|
|
228
|
+
// A pair made only when none is stored: the public half is always derived from what is.
|
|
229
|
+
let stored = await call.secrets.get(name);
|
|
230
|
+
if (stored === undefined) {
|
|
231
|
+
const pair = await sourceKeyPair();
|
|
232
|
+
stored = await call.secrets.ensure(name, () => pair.privateKey);
|
|
233
|
+
}
|
|
234
|
+
const publicKey = sshPublicKey(stored);
|
|
235
|
+
if (!publicKey)
|
|
236
|
+
throw refuse(`${name} holds a value that is not an RSA private key: delete it, or name another`);
|
|
237
|
+
return { name, publicKey };
|
|
238
|
+
},
|
|
239
|
+
async delete({ name }, call) {
|
|
240
|
+
await call.secrets.delete(name);
|
|
241
|
+
return {};
|
|
242
|
+
},
|
|
243
|
+
},
|
|
244
|
+
invite: {
|
|
245
|
+
async mint({ host, email, key }, call) {
|
|
246
|
+
const signingKey = signingKeyOf(key.$secret, await call.secrets.get(key.$secret));
|
|
247
|
+
const request = sealInvite({ email }, signingKey);
|
|
248
|
+
return invite(host, request, call);
|
|
249
|
+
},
|
|
250
|
+
},
|
|
251
|
+
token: {
|
|
252
|
+
async mint({ subject, groups, store }, call) {
|
|
253
|
+
const id = tokenIdOf(call);
|
|
254
|
+
const held = await call.secrets.get(store);
|
|
255
|
+
if (held !== undefined) {
|
|
256
|
+
// This call's own, stored by a try whose answer was lost.
|
|
257
|
+
if ((await tokens.resolve(held))?.principal.id === `token:${id}`)
|
|
258
|
+
return { id };
|
|
259
|
+
throw refuse(`${store} holds a value already: delete it, or store the token under another name`);
|
|
260
|
+
}
|
|
261
|
+
let token;
|
|
262
|
+
try {
|
|
263
|
+
({ token } = await tokens.mint({ id, subject, groups }));
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
// A try that minted this id and stopped before storing it left a token nobody holds: revoked here.
|
|
267
|
+
if ((await tokens.subjectOf(id)) === undefined)
|
|
268
|
+
throw err;
|
|
269
|
+
await tokens.revoke({ id });
|
|
270
|
+
throw refuse(`an earlier try minted token ${id} and stopped before storing it: it is revoked, start again`);
|
|
271
|
+
}
|
|
272
|
+
if ((await call.secrets.ensure(store, () => token)) !== token) {
|
|
273
|
+
await tokens.revoke({ id });
|
|
274
|
+
throw refuse(`${store} was stored by someone else meanwhile: the token minted is revoked`);
|
|
275
|
+
}
|
|
276
|
+
return { id };
|
|
277
|
+
},
|
|
278
|
+
async revoke({ id }) {
|
|
279
|
+
await tokens.revoke({ id });
|
|
280
|
+
return {};
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* The runtime's own operations for one sandbox run: the run's secrets (in memory), tokens in
|
|
287
|
+
* memory, and an invite that posts nothing, answering a link on the host named.
|
|
288
|
+
*/
|
|
289
|
+
export const sandboxRuntimeDriver = () => runtimeDriver({
|
|
290
|
+
tokens: memoryTokens(),
|
|
291
|
+
identities: memoryIdentityProvisioning(),
|
|
292
|
+
invite: async (host, _request, call) => ({ url: new URL(`/auth/invite/sandbox-${tokenIdOf(call)}`, host).href }),
|
|
293
|
+
});
|
|
294
|
+
//# sourceMappingURL=runtime-ops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-ops.js","sourceRoot":"","sources":["../src/runtime-ops.ts"],"names":[],"mappings":"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"}
|
package/dist/scenario.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RunSummary, SanomaClient } from "./client.ts";
|
|
2
|
-
import type { Approver } from "./define.ts";
|
|
2
|
+
import type { Approver, Principal } from "./define.ts";
|
|
3
3
|
import type { ResolvedConfig } from "./config.ts";
|
|
4
4
|
import type { Fake } from "./fake.ts";
|
|
5
5
|
import type { ConnectionRef } from "./connection.ts";
|
|
@@ -143,8 +143,11 @@ export interface Scenario {
|
|
|
143
143
|
text: string;
|
|
144
144
|
/** Every step in order, for a list and for marking graph nodes. */
|
|
145
145
|
steps: ScenarioStep[];
|
|
146
|
-
/**
|
|
147
|
-
|
|
146
|
+
/**
|
|
147
|
+
* Who starts the run when a `Given … is acting` says: a declared person or agent or `anonymous`
|
|
148
|
+
* by id, or a visitor, by id or, with the email and GitHub login its login verified, as a principal.
|
|
149
|
+
*/
|
|
150
|
+
startedBy?: Principal | string;
|
|
148
151
|
given: Given[];
|
|
149
152
|
input: unknown;
|
|
150
153
|
decisions: Decision[];
|
package/dist/scenario.js
CHANGED
|
@@ -151,6 +151,11 @@ function builtFor(scope) {
|
|
|
151
151
|
/** The built-in workflows, whose input is never made up: each field is optional, and left out unless given. */
|
|
152
152
|
/** A `Then` step of the generic steps: its expectation, checked against the run's records. */
|
|
153
153
|
const expecting = (expect) => ({ expect, verify: (run) => detailOf(expect, run.records) });
|
|
154
|
+
/** The scenario's visitor (`a visitor is acting`) with what its login verified, as `publicFront` passes it on. */
|
|
155
|
+
const visitorWith = (verified) => ({
|
|
156
|
+
...visitorPrincipal("scenario", "visitor"),
|
|
157
|
+
...verified,
|
|
158
|
+
});
|
|
154
159
|
/** The rules a scope has, and the parameter types their expressions use. */
|
|
155
160
|
function rulesOf(scope) {
|
|
156
161
|
const { types, collections } = scope;
|
|
@@ -208,6 +213,13 @@ function rulesOf(scope) {
|
|
|
208
213
|
{ kind: "actor", source: "{who} is acting", read: ([who]) => actorNamed(who) },
|
|
209
214
|
// A visitor of a public site, as a login would vouch for one; `anonymous` is a `{who}`.
|
|
210
215
|
{ kind: "actor", source: "a visitor is acting", read: () => visitorPrincipal("scenario", "visitor").id },
|
|
216
|
+
// A visitor with the email its login verified, and a GitHub login it linked.
|
|
217
|
+
{ kind: "actor", source: "a visitor {string} is acting", read: ([email]) => visitorWith({ email }) },
|
|
218
|
+
{
|
|
219
|
+
kind: "actor",
|
|
220
|
+
source: "a visitor {string} with GitHub {string} is acting",
|
|
221
|
+
read: ([email, github]) => visitorWith({ email, github }),
|
|
222
|
+
},
|
|
211
223
|
{
|
|
212
224
|
kind: "given",
|
|
213
225
|
source: "{op} was called with",
|
|
@@ -686,7 +698,7 @@ function compileWorld(built, specs) {
|
|
|
686
698
|
switch (rule.kind) {
|
|
687
699
|
case "actor":
|
|
688
700
|
if (spec.startedBy !== undefined)
|
|
689
|
-
throw new Error(`${spec.startedBy} is acting already: a run has one actor`);
|
|
701
|
+
throw new Error(`${typeof spec.startedBy === "string" ? spec.startedBy : spec.startedBy.id} is acting already: a run has one actor`);
|
|
690
702
|
spec.startedBy = rule.read(args, pickle);
|
|
691
703
|
break;
|
|
692
704
|
case "given": {
|