@sanoma-ai/workflows 0.2.0 → 0.4.0
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 +121 -62
- package/dist/approvals.d.ts +11 -6
- package/dist/approvals.js +38 -10
- package/dist/approvals.js.map +1 -1
- package/dist/call-workflow.d.ts +16 -0
- package/dist/call-workflow.js +35 -0
- package/dist/call-workflow.js.map +1 -0
- package/dist/call.d.ts +33 -4
- package/dist/call.js +107 -42
- package/dist/call.js.map +1 -1
- package/dist/cedar.d.ts +87 -0
- package/dist/cedar.js +365 -0
- package/dist/cedar.js.map +1 -0
- package/dist/client.d.ts +85 -7
- package/dist/client.js +289 -25
- package/dist/client.js.map +1 -1
- package/dist/collection.d.ts +107 -0
- package/dist/collection.js +306 -0
- package/dist/collection.js.map +1 -0
- package/dist/config.d.ts +42 -14
- package/dist/config.js +82 -18
- package/dist/config.js.map +1 -1
- package/dist/constructors.d.ts +2 -0
- package/dist/constructors.js +5 -0
- package/dist/constructors.js.map +1 -0
- package/dist/data.d.ts +2 -0
- package/dist/data.js +3 -0
- package/dist/data.js.map +1 -0
- package/dist/datafile.d.ts +28 -2
- package/dist/datafile.js +118 -19
- package/dist/datafile.js.map +1 -1
- package/dist/db.d.ts +5 -3
- package/dist/db.js +88 -21
- package/dist/db.js.map +1 -1
- package/dist/define.d.ts +10 -4
- package/dist/define.js +1 -5
- package/dist/define.js.map +1 -1
- package/dist/describe.d.ts +45 -5
- package/dist/describe.js +72 -7
- package/dist/describe.js.map +1 -1
- package/dist/direct.d.ts +9 -0
- package/dist/direct.js +11 -0
- package/dist/direct.js.map +1 -0
- package/dist/errors.d.ts +16 -1
- package/dist/errors.js +30 -1
- package/dist/errors.js.map +1 -1
- package/dist/expectations.d.ts +3 -3
- package/dist/expectations.js +16 -7
- package/dist/expectations.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/dist/ledger.d.ts +12 -1
- package/dist/ledger.js +18 -11
- package/dist/ledger.js.map +1 -1
- package/dist/lint.d.ts +5 -4
- package/dist/lint.js +24 -7
- package/dist/lint.js.map +1 -1
- package/dist/op.d.ts +6 -0
- package/dist/op.js.map +1 -1
- package/dist/outline.d.ts +2 -0
- package/dist/outline.js +1 -1
- package/dist/outline.js.map +1 -1
- package/dist/paths.d.ts +4 -0
- package/dist/paths.js +17 -3
- package/dist/paths.js.map +1 -1
- package/dist/person.d.ts +61 -0
- package/dist/person.js +69 -0
- package/dist/person.js.map +1 -0
- package/dist/plugin.js +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/policy.d.ts +51 -55
- package/dist/policy.js +14 -36
- package/dist/policy.js.map +1 -1
- package/dist/resource.d.ts +21 -5
- package/dist/resource.js +12 -3
- package/dist/resource.js.map +1 -1
- package/dist/resources.d.ts +58 -6
- package/dist/resources.js +119 -26
- package/dist/resources.js.map +1 -1
- package/dist/run.d.ts +17 -1
- package/dist/run.js.map +1 -1
- package/dist/scenario.d.ts +16 -9
- package/dist/scenario.js +93 -20
- package/dist/scenario.js.map +1 -1
- package/dist/scenarios.d.ts +10 -6
- package/dist/scenarios.js +8 -4
- package/dist/scenarios.js.map +1 -1
- package/dist/schema.d.ts +32 -0
- package/dist/schema.js +225 -0
- package/dist/schema.js.map +1 -0
- package/dist/sdk.d.ts +34 -0
- package/dist/sdk.js +168 -0
- package/dist/sdk.js.map +1 -0
- package/dist/shared.d.ts +181 -5
- package/dist/shared.js +160 -7
- package/dist/shared.js.map +1 -1
- package/dist/sites.d.ts +52 -0
- package/dist/sites.js +174 -0
- package/dist/sites.js.map +1 -0
- package/dist/version.d.ts +3 -2
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/dist/worker.d.ts +3 -2
- package/dist/worker.js +24 -4
- package/dist/worker.js.map +1 -1
- package/oxlint.json +5 -16
- package/package.json +8 -3
- package/src/approvals.ts +49 -13
- package/src/call-workflow.ts +44 -0
- package/src/call.ts +157 -45
- package/src/cedar.ts +493 -0
- package/src/client.ts +368 -37
- package/src/collection.ts +431 -0
- package/src/config.ts +131 -34
- package/src/constructors.ts +4 -0
- package/src/data.ts +10 -0
- package/src/datafile.ts +141 -21
- package/src/db.ts +90 -22
- package/src/define.ts +11 -9
- package/src/describe.ts +113 -10
- package/src/direct.ts +15 -0
- package/src/errors.ts +36 -1
- package/src/expectations.ts +17 -8
- package/src/index.ts +33 -2
- package/src/ledger.ts +35 -17
- package/src/lint.ts +29 -12
- package/src/op.ts +6 -0
- package/src/outline.ts +1 -1
- package/src/paths.ts +18 -3
- package/src/person.ts +75 -0
- package/src/plugin.ts +1 -1
- package/src/policy.ts +59 -63
- package/src/resource.ts +35 -8
- package/src/resources.ts +165 -24
- package/src/run.ts +18 -1
- package/src/scenario.ts +128 -33
- package/src/scenarios.ts +15 -8
- package/src/schema.ts +261 -0
- package/src/sdk.ts +211 -0
- package/src/shared.ts +271 -8
- package/src/sites.ts +220 -0
- package/src/version.ts +3 -2
- package/src/worker.ts +29 -6
package/dist/datafile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datafile.js","sourceRoot":"","sources":["../src/datafile.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export type Db = Pick<Pool | Client, "query">;
|
|
|
6
6
|
export declare const CREDENTIALS_TABLE = "sanoma_credentials";
|
|
7
7
|
/** Where the Postgres ledger keeps its records. */
|
|
8
8
|
export declare const LEDGER_TABLE = "sanoma_ledger";
|
|
9
|
+
/** Where the collections keep their records (`collection.ts`): one row per collection and key, the record as JSON. */
|
|
10
|
+
export declare const DATA_TABLE = "sanoma_data";
|
|
9
11
|
/** The Postgres error code of `err`, or an empty string when it has none. */
|
|
10
12
|
export declare const pgCode: (err: unknown) => string;
|
|
11
13
|
/** True for the failure of a create that another process won: what was to be made is there. */
|
|
@@ -46,9 +48,9 @@ export declare function lazyPool(databaseUrl: string, what: string): LazyPool;
|
|
|
46
48
|
* Makes the database at `databaseUrl` ready for the runtime, once per process and URL: the
|
|
47
49
|
* database itself and DBOS's tables when they are not there yet (as a worker's launch makes
|
|
48
50
|
* them; credentials may be set, and a ledger read, before any worker has run), then the
|
|
49
|
-
* credentials and
|
|
50
|
-
* Two processes preparing one database both succeed
|
|
51
|
-
* preparation that fails is forgotten, so the next call tries again.
|
|
51
|
+
* credentials, ledger and data tables, and its idle-transaction timeout (`guardIdleTransactions`).
|
|
52
|
+
* Two processes preparing one database both succeed: the second waits for the first
|
|
53
|
+
* (`lockPreparation`). A preparation that fails is forgotten, so the next call tries again.
|
|
52
54
|
*/
|
|
53
55
|
export declare function prepareDatabase(databaseUrl: string): Promise<void>;
|
|
54
56
|
/**
|
package/dist/db.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { DBOS, DBOSClient } from "@dbos-inc/dbos-sdk";
|
|
2
|
-
import {
|
|
2
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
3
|
+
import { Client, escapeIdentifier, Pool } from "pg";
|
|
3
4
|
import { warn } from "./log.js";
|
|
4
5
|
import { errorMessage } from "./shared.js";
|
|
5
6
|
/** Where the credentials set from the app live. */
|
|
6
7
|
export const CREDENTIALS_TABLE = "sanoma_credentials";
|
|
7
8
|
/** Where the Postgres ledger keeps its records. */
|
|
8
9
|
export const LEDGER_TABLE = "sanoma_ledger";
|
|
10
|
+
/** Where the collections keep their records (`collection.ts`): one row per collection and key, the record as JSON. */
|
|
11
|
+
export const DATA_TABLE = "sanoma_data";
|
|
9
12
|
/** The runtime's tables, each with the word the messages name it by. */
|
|
10
13
|
const TABLES = [
|
|
11
14
|
[
|
|
@@ -21,11 +24,21 @@ const TABLES = [
|
|
|
21
24
|
`run_id text NOT NULL, seq integer NOT NULL, record jsonb NOT NULL); ` +
|
|
22
25
|
`CREATE INDEX IF NOT EXISTS ${LEDGER_TABLE}_run_seq ON ${LEDGER_TABLE} (run_id, seq, n)`,
|
|
23
26
|
],
|
|
27
|
+
[
|
|
28
|
+
"data",
|
|
29
|
+
`CREATE TABLE IF NOT EXISTS ${DATA_TABLE} (collection text NOT NULL, key text NOT NULL, record jsonb NOT NULL, ` +
|
|
30
|
+
"updated_at timestamptz NOT NULL DEFAULT now(), updated_by text NOT NULL, PRIMARY KEY (collection, key))",
|
|
31
|
+
],
|
|
24
32
|
];
|
|
25
33
|
/** The Postgres error code of `err`, or an empty string when it has none. */
|
|
26
34
|
export const pgCode = (err) => err?.code?.toString() ?? "";
|
|
27
|
-
/**
|
|
28
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Postgres's codes for a database, a row type or a table another process made first. Two racing
|
|
37
|
+
* `CREATE TABLE IF NOT EXISTS` both pass the check, and the loser fails on the table's row type in
|
|
38
|
+
* `pg_type`: as a unique violation (23505), or as a duplicate object (42710, "type ... already
|
|
39
|
+
* exists"). Two racing `CREATE DATABASE` fail as 42P04, or on `pg_database` as 23505.
|
|
40
|
+
*/
|
|
41
|
+
const MADE_ALREADY = new Set(["23505", "42P04", "42P07", "42710"]);
|
|
29
42
|
/** True for the failure of a create that another process won: what was to be made is there. */
|
|
30
43
|
export const madeAlready = (err) => MADE_ALREADY.has(pgCode(err));
|
|
31
44
|
/**
|
|
@@ -63,6 +76,8 @@ export const dbosClient = (databaseUrl, applicationName) => DBOSClient.create({
|
|
|
63
76
|
const IDLE_IN_TRANSACTION_TIMEOUT = "60s";
|
|
64
77
|
/** Postgres's code for a statement the role lacks the privilege for. */
|
|
65
78
|
const INSUFFICIENT_PRIVILEGE = "42501";
|
|
79
|
+
/** Postgres's code for a database that is not there (`invalid_catalog_name`). */
|
|
80
|
+
const NO_DATABASE = "3D000";
|
|
66
81
|
/**
|
|
67
82
|
* A pool for `what` on the database at `databaseUrl`, opened on the first `db()` once the
|
|
68
83
|
* database is prepared (`prepareDatabase`). A preparation that fails lets the pool go, so the
|
|
@@ -101,9 +116,9 @@ const prepared = new Map();
|
|
|
101
116
|
* Makes the database at `databaseUrl` ready for the runtime, once per process and URL: the
|
|
102
117
|
* database itself and DBOS's tables when they are not there yet (as a worker's launch makes
|
|
103
118
|
* them; credentials may be set, and a ledger read, before any worker has run), then the
|
|
104
|
-
* credentials and
|
|
105
|
-
* Two processes preparing one database both succeed
|
|
106
|
-
* preparation that fails is forgotten, so the next call tries again.
|
|
119
|
+
* credentials, ledger and data tables, and its idle-transaction timeout (`guardIdleTransactions`).
|
|
120
|
+
* Two processes preparing one database both succeed: the second waits for the first
|
|
121
|
+
* (`lockPreparation`). A preparation that fails is forgotten, so the next call tries again.
|
|
107
122
|
*/
|
|
108
123
|
export function prepareDatabase(databaseUrl) {
|
|
109
124
|
let preparing = prepared.get(databaseUrl);
|
|
@@ -117,36 +132,89 @@ export function prepareDatabase(databaseUrl) {
|
|
|
117
132
|
}
|
|
118
133
|
return preparing;
|
|
119
134
|
}
|
|
135
|
+
/** The error a preparation fails with, its cause `err`. */
|
|
136
|
+
const unprepared = (err) => new Error(`could not prepare the database: ${errorMessage(err)}`, { cause: err });
|
|
120
137
|
async function prepare(databaseUrl) {
|
|
138
|
+
const conn = await lockPreparation(databaseUrl).catch((err) => {
|
|
139
|
+
throw unprepared(err);
|
|
140
|
+
});
|
|
141
|
+
try {
|
|
142
|
+
await DBOS.migrate(databaseUrl).catch((err) => {
|
|
143
|
+
// A DBOS table made meanwhile by a release from before the lock, mid-upgrade: it is there.
|
|
144
|
+
if (!madeAlready(err))
|
|
145
|
+
throw unprepared(err);
|
|
146
|
+
});
|
|
147
|
+
for (const [what, ddl] of TABLES)
|
|
148
|
+
await createTable(conn, ddl, what);
|
|
149
|
+
await guardIdleTransactions(conn);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
// Ending the session releases the lock; a failure to end it must not hide the preparation's.
|
|
153
|
+
await conn.end().catch(() => undefined);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* A connection to the database at `databaseUrl` (made first when missing) holding the
|
|
158
|
+
* preparation's session lock until it ends, so a second process waits, then finds everything
|
|
159
|
+
* made. Racing `DBOS.migrate`s lose to each other in many ways (40P01, XX000), so the race is
|
|
160
|
+
* prevented rather than each loss forgiven. The lock is polled, never waited for by a blocked
|
|
161
|
+
* statement: `CREATE INDEX CONCURRENTLY` waits on that statement's snapshot, a deadlock Postgres
|
|
162
|
+
* cannot see (the lock's holder is this connection, not the migration's).
|
|
163
|
+
*/
|
|
164
|
+
async function lockPreparation(databaseUrl) {
|
|
165
|
+
const conn = await connect(databaseUrl).catch(async (err) => {
|
|
166
|
+
if (pgCode(err) !== NO_DATABASE)
|
|
167
|
+
throw err;
|
|
168
|
+
await createDatabase(databaseUrl);
|
|
169
|
+
return connect(databaseUrl);
|
|
170
|
+
});
|
|
121
171
|
try {
|
|
122
|
-
|
|
172
|
+
const ask = "SELECT pg_try_advisory_lock(hashtext('sanoma.prepareDatabase')) AS locked";
|
|
173
|
+
while (!(await conn.query(ask)).rows[0].locked)
|
|
174
|
+
await delay(50);
|
|
175
|
+
return conn;
|
|
123
176
|
}
|
|
124
177
|
catch (err) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
throw new Error(`could not prepare the database: ${errorMessage(err)}`, { cause: err });
|
|
178
|
+
await conn.end().catch(() => undefined);
|
|
179
|
+
throw err;
|
|
128
180
|
}
|
|
129
|
-
|
|
181
|
+
}
|
|
182
|
+
async function connect(databaseUrl) {
|
|
183
|
+
const conn = new Client({ connectionString: databaseUrl, connectionTimeoutMillis: 10_000 });
|
|
184
|
+
// An error nobody listens for ends the process; the query in flight fails with it.
|
|
185
|
+
conn.on("error", (err) => warn(`a preparation connection failed: ${errorMessage(err)}`));
|
|
130
186
|
await conn.connect();
|
|
187
|
+
return conn;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Makes the database at `databaseUrl` through its server's `postgres` database, as `DBOS.migrate`
|
|
191
|
+
* would. Another process making it first is no failure.
|
|
192
|
+
*/
|
|
193
|
+
async function createDatabase(databaseUrl) {
|
|
194
|
+
const url = new URL(databaseUrl);
|
|
195
|
+
const name = decodeURI(url.pathname.slice(1));
|
|
196
|
+
url.pathname = "/postgres";
|
|
197
|
+
const admin = await connect(url.toString());
|
|
131
198
|
try {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
199
|
+
await admin.query(`CREATE DATABASE ${escapeIdentifier(name)}`);
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
if (!madeAlready(err))
|
|
203
|
+
throw err;
|
|
135
204
|
}
|
|
136
205
|
finally {
|
|
137
|
-
await
|
|
206
|
+
await admin.end();
|
|
138
207
|
}
|
|
139
208
|
}
|
|
140
209
|
/**
|
|
141
210
|
* Sets `idle_in_transaction_session_timeout` on the database, for each session that starts after,
|
|
142
211
|
* as DBOS would per connection (`DBOS_DATABASE_OPTIONS`), unless the server, the role or the
|
|
143
|
-
* database sets it already.
|
|
144
|
-
*
|
|
212
|
+
* database sets it already. `db` holds the preparation's lock, so one process at a time. A role
|
|
213
|
+
* that may not alter the database leaves it, quietly: its administrator decides.
|
|
145
214
|
*/
|
|
146
215
|
async function guardIdleTransactions(db) {
|
|
147
216
|
try {
|
|
148
217
|
await db.query(`DO $$ BEGIN
|
|
149
|
-
PERFORM pg_advisory_xact_lock(hashtext('sanoma.idle_in_transaction_session_timeout'));
|
|
150
218
|
IF current_setting('idle_in_transaction_session_timeout') = '0' AND NOT EXISTS (
|
|
151
219
|
SELECT FROM pg_db_role_setting s JOIN pg_database d ON d.oid = s.setdatabase, unnest(s.setconfig) c
|
|
152
220
|
WHERE d.datname = current_database() AND s.setrole = 0 AND c LIKE 'idle_in_transaction_session_timeout=%'
|
|
@@ -157,9 +225,8 @@ async function guardIdleTransactions(db) {
|
|
|
157
225
|
END $$`);
|
|
158
226
|
}
|
|
159
227
|
catch (err) {
|
|
160
|
-
if (pgCode(err) !== INSUFFICIENT_PRIVILEGE)
|
|
161
|
-
throw
|
|
162
|
-
}
|
|
228
|
+
if (pgCode(err) !== INSUFFICIENT_PRIVILEGE)
|
|
229
|
+
throw unprepared(err);
|
|
163
230
|
}
|
|
164
231
|
}
|
|
165
232
|
/**
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/define.d.ts
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { type Op } from "./op.ts";
|
|
3
3
|
/**
|
|
4
|
-
* Who is acting: the person or
|
|
5
|
-
*
|
|
4
|
+
* Who is acting: the person or agent that starts a run, calls an operation or decides an
|
|
5
|
+
* approval. With people declared (`sanoma.person`, `sanoma.agent`, `sanoma.group` in data files),
|
|
6
|
+
* a principal is a declared one, its `groups` every group that lists it; an agent is in the group
|
|
7
|
+
* `agents`, and `onBehalfOf` names the person it acts for.
|
|
6
8
|
*/
|
|
7
9
|
export interface Principal {
|
|
8
10
|
id: string;
|
|
9
11
|
groups?: string[];
|
|
12
|
+
/** For an agent: the id of the person whose instruction it carries. */
|
|
13
|
+
onBehalfOf?: string;
|
|
10
14
|
}
|
|
11
15
|
export declare const Principal: z.ZodType<Principal>;
|
|
12
16
|
export type Builtin = "approval" | "sleep" | "all";
|
|
@@ -16,8 +20,6 @@ export type Approver = string | {
|
|
|
16
20
|
group: string;
|
|
17
21
|
};
|
|
18
22
|
export declare const Approver: z.ZodType<Approver>;
|
|
19
|
-
/** Why `by` may not decide the approval, naming who may. */
|
|
20
|
-
export declare const notApprover: ({ approver }: Pick<ApprovalState, "approver">, by: Principal) => string;
|
|
21
23
|
/** True when the two name the same approver: the same id, or the same group. */
|
|
22
24
|
export declare const sameApprover: (a: Approver, b: Approver) => boolean;
|
|
23
25
|
/** `covers` as given (operations), parsed to their ids. */
|
|
@@ -68,6 +70,8 @@ export interface ApprovalState extends Omit<ApprovalRequest, "covers"> {
|
|
|
68
70
|
opSeq?: number;
|
|
69
71
|
/** For a policy request: the held call's input. */
|
|
70
72
|
input?: unknown;
|
|
73
|
+
/** For a policy request: the policies that held the call, by id, when the policy names them. */
|
|
74
|
+
reasons?: string[];
|
|
71
75
|
status: "pending" | "approved" | "rejected";
|
|
72
76
|
requestedAt: number;
|
|
73
77
|
decidedBy?: string;
|
|
@@ -75,6 +79,8 @@ export interface ApprovalState extends Omit<ApprovalRequest, "covers"> {
|
|
|
75
79
|
note?: string;
|
|
76
80
|
/** The `id` of the decision message the run decided with, when it had one. */
|
|
77
81
|
decidedWith?: string;
|
|
82
|
+
/** Set when the run's own actor decided it: nobody else could (`mayDecide`). */
|
|
83
|
+
alone?: true;
|
|
78
84
|
/**
|
|
79
85
|
* Messages that were ignored: decisions sent by someone who may not decide the approval,
|
|
80
86
|
* and messages that were not a decision. `by` is the sender, when the message named one, and
|
package/dist/define.js
CHANGED
|
@@ -2,16 +2,12 @@ import { fileURLToPath } from "node:url";
|
|
|
2
2
|
import { getCallSites } from "node:util";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { isOp } from "./op.js";
|
|
5
|
-
import { approverLabel } from "./shared.js";
|
|
6
5
|
export const Principal = z.object({
|
|
7
6
|
id: z.string().regex(/\S/, "id must not be blank"),
|
|
8
7
|
groups: z.array(z.string()).optional(),
|
|
8
|
+
onBehalfOf: z.string().regex(/\S/, "onBehalfOf must not be blank").optional(),
|
|
9
9
|
});
|
|
10
10
|
export const Approver = z.union([z.string().regex(/\S/), z.object({ group: z.string().regex(/\S/) })], { error: 'needs an approver: a name, or { group: "name" }' });
|
|
11
|
-
/** Why `by` may not decide the approval, naming who may. */
|
|
12
|
-
export const notApprover = ({ approver }, by) => typeof approver === "string"
|
|
13
|
-
? `${by.id} is not the approver; ${approverLabel(approver)} is`
|
|
14
|
-
: `${by.id} is not in ${approverLabel(approver)}`;
|
|
15
11
|
/** True when the two name the same approver: the same id, or the same group. */
|
|
16
12
|
export const sameApprover = (a, b) => typeof a === "string" || typeof b === "string" ? a === b : a.group === b.group;
|
|
17
13
|
const notOps = "covers must be a list of operations";
|
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAW,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
|
package/dist/describe.d.ts
CHANGED
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { type LintProblem } from "./ast.ts";
|
|
2
|
+
import { type Field } from "./collection.ts";
|
|
2
3
|
import { type SanomaConfig } from "./config.ts";
|
|
3
4
|
import { type Builtin } from "./define.ts";
|
|
4
5
|
import { type Effect } from "./op.ts";
|
|
5
6
|
import { type Outline } from "./outline.ts";
|
|
6
7
|
import { type ResourceFields } from "./resource.ts";
|
|
7
|
-
import { type DataFiles, type DeclaredResource, type ResourceProblem } from "./resources.ts";
|
|
8
|
+
import { type DataFiles, type DeclaredCollection, type DeclaredResource, type ResourceProblem } from "./resources.ts";
|
|
9
|
+
import { type SiteEntry } from "./sites.ts";
|
|
8
10
|
export { outlineWorkflow, type Outline, type OutlineNode, type Span } from "./outline.ts";
|
|
9
11
|
export type { LintProblem } from "./ast.ts";
|
|
10
|
-
export { readDataFiles,
|
|
12
|
+
export { admit, readDataFiles, readPeople, type DataFiles, type DeclaredCollection, type DeclaredPeople, type DeclaredResource, type ResourceProblem, } from "./resources.ts";
|
|
11
13
|
export { formatOptions, renderDataFile, setFields, type DataFileContent } from "./writer.ts";
|
|
12
14
|
export { Reference, type DataValue } from "./datafile.ts";
|
|
15
|
+
/**
|
|
16
|
+
* The resources the config's data files declare, read without importing or running them; throws
|
|
17
|
+
* one error listing every problem, each at `file:line:column`, for a test or CI to fail on.
|
|
18
|
+
* `describeConfig` lists the same, with the problems beside them instead.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readResources(config: SanomaConfig): DeclaredResource[];
|
|
13
21
|
export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, type Binding, type Bindings, type Rebind, } from "./lockfile.ts";
|
|
22
|
+
export { readSites, type SiteCall, type SiteEntry } from "./sites.ts";
|
|
23
|
+
export { API_FILE, generateApi, writeApi, writeGenerated } from "./sdk.ts";
|
|
24
|
+
export { SCHEMA_FILE, schemaOf, schemaText, type CedarSchemaJson } from "./schema.ts";
|
|
14
25
|
export type { ApplyInput, ApplyPlan, ApplyReport, ApplyResult, PlanAnswer, PlanStep } from "./apply.ts";
|
|
15
26
|
/** What a workflow is, read from its definition: enough to draw a start form and show what it may call. */
|
|
16
27
|
export interface WorkflowEntry {
|
|
@@ -18,7 +29,7 @@ export interface WorkflowEntry {
|
|
|
18
29
|
title?: string;
|
|
19
30
|
trigger: "manual";
|
|
20
31
|
/**
|
|
21
|
-
* Set for a workflow the runtime adds itself, `drift` or `
|
|
32
|
+
* Set for a workflow the runtime adds itself, `drift`, `apply` or `call`, rather than the config: a label. It
|
|
22
33
|
* starts like any other.
|
|
23
34
|
*/
|
|
24
35
|
builtin?: true;
|
|
@@ -61,6 +72,8 @@ export interface OpEntry {
|
|
|
61
72
|
given?: string;
|
|
62
73
|
expect?: string;
|
|
63
74
|
};
|
|
75
|
+
/** Whether it may be called directly, outside a run (`isDirect`): the one rule, read here, never derived again. */
|
|
76
|
+
direct: boolean;
|
|
64
77
|
/** What a call sends, as JSON Schema (`io: "input"`: fields with defaults are optional). */
|
|
65
78
|
input: Record<string, unknown>;
|
|
66
79
|
/** What a call returns once its schema has parsed the vendor's reply (`io: "output"`). */
|
|
@@ -101,6 +114,21 @@ export interface ResourceTypeEntry {
|
|
|
101
114
|
/** Its operations' ids, sorted: `<id>.import` and `<id>.read`, and for a writable type its change operations. */
|
|
102
115
|
ops: string[];
|
|
103
116
|
}
|
|
117
|
+
/** A collection the config declares (`collection()`). */
|
|
118
|
+
export interface CollectionEntry {
|
|
119
|
+
name: string;
|
|
120
|
+
title?: string;
|
|
121
|
+
/** The field each record is found by. */
|
|
122
|
+
key: string;
|
|
123
|
+
/** Its fields as declared. */
|
|
124
|
+
fields: Record<string, Field>;
|
|
125
|
+
/** What `save` accepts, as JSON Schema, with `$id` `sanoma:collection/<name>`. */
|
|
126
|
+
record: Record<string, unknown>;
|
|
127
|
+
/** Its operations' ids: `data.<name>.get`, `.list`, `.save` and `.delete`. */
|
|
128
|
+
ops: string[];
|
|
129
|
+
/** Where `resources/data.ts` declares it, read as the data files are; absent for one declared elsewhere. */
|
|
130
|
+
declared?: DeclaredCollection;
|
|
131
|
+
}
|
|
104
132
|
/**
|
|
105
133
|
* A plain-JSON description of what a config can do: its workflows, the operations they call,
|
|
106
134
|
* and whether a policy gates them. The app server builds it from the config and sends it to the
|
|
@@ -116,6 +144,8 @@ export interface ConfigDescription {
|
|
|
116
144
|
vendors: Record<string, VendorEntry>;
|
|
117
145
|
/** The resource types the connectors declare, by `id`. */
|
|
118
146
|
resourceTypes: ResourceTypeEntry[];
|
|
147
|
+
/** The config's collections, by name. */
|
|
148
|
+
collections: CollectionEntry[];
|
|
119
149
|
/**
|
|
120
150
|
* The resources the data files under `resources/` declare, by file and then in file order,
|
|
121
151
|
* less any with a problem and any that names one.
|
|
@@ -125,17 +155,27 @@ export interface ConfigDescription {
|
|
|
125
155
|
orphans: DataFiles["orphans"];
|
|
126
156
|
/** What is wrong in the data files (`readDataFiles`), each at its file, relative to the root, line and column. A workflow's are on its entry. */
|
|
127
157
|
problems: ResourceProblem[];
|
|
128
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* `defined` when the root has `policies/**\/*.cedar` (else the policy is `allowAll`), with their
|
|
160
|
+
* `version`, or while they have `problems` (`policyProblems`), none: then every call and start is refused.
|
|
161
|
+
*/
|
|
129
162
|
policy: {
|
|
130
163
|
defined: boolean;
|
|
131
164
|
version?: string;
|
|
165
|
+
problems?: string[];
|
|
132
166
|
};
|
|
167
|
+
/**
|
|
168
|
+
* The sites under `sites/`, by name, with what each calls (`readSites`), and its calls to what
|
|
169
|
+
* the config does not have as its problems; none when the root has no `sites/`.
|
|
170
|
+
*/
|
|
171
|
+
sites: SiteEntry[];
|
|
133
172
|
}
|
|
134
173
|
/**
|
|
135
174
|
* Describes a config. Throws what `startWorker` would refuse (see `resolveConfig`), except missing
|
|
136
175
|
* credentials (`SanomaClient.credentials` gives their statuses) and what is wrong in a workflow's
|
|
137
176
|
* file, which the worker refuses when it reads the outline: that is data, on each workflow's
|
|
138
177
|
* entry, as the data files' problems are, `problems`, beside the resources read without any.
|
|
139
|
-
* Each workflow's file is read and parsed once, however many workflows it defines.
|
|
178
|
+
* Each workflow's file is read and parsed once, however many workflows it defines. The sites'
|
|
179
|
+
* code is read too (`readSites`): what each calls, and its calls to what the config lacks as its problems.
|
|
140
180
|
*/
|
|
141
181
|
export declare function describeConfig(config: SanomaConfig): ConfigDescription;
|