@sanoma-ai/workflows 0.1.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.
Files changed (184) hide show
  1. package/README.md +186 -76
  2. package/dist/apply-steps.d.ts +6 -0
  3. package/dist/apply-steps.js +93 -0
  4. package/dist/apply-steps.js.map +1 -0
  5. package/dist/apply.d.ts +197 -0
  6. package/dist/apply.js +470 -0
  7. package/dist/apply.js.map +1 -0
  8. package/dist/approvals.d.ts +11 -6
  9. package/dist/approvals.js +38 -10
  10. package/dist/approvals.js.map +1 -1
  11. package/dist/call-workflow.d.ts +16 -0
  12. package/dist/call-workflow.js +35 -0
  13. package/dist/call-workflow.js.map +1 -0
  14. package/dist/call.d.ts +35 -2
  15. package/dist/call.js +123 -43
  16. package/dist/call.js.map +1 -1
  17. package/dist/cedar.d.ts +87 -0
  18. package/dist/cedar.js +365 -0
  19. package/dist/cedar.js.map +1 -0
  20. package/dist/client.d.ts +123 -9
  21. package/dist/client.js +355 -34
  22. package/dist/client.js.map +1 -1
  23. package/dist/collection.d.ts +107 -0
  24. package/dist/collection.js +306 -0
  25. package/dist/collection.js.map +1 -0
  26. package/dist/config.d.ts +42 -14
  27. package/dist/config.js +109 -28
  28. package/dist/config.js.map +1 -1
  29. package/dist/constructors.d.ts +2 -0
  30. package/dist/constructors.js +5 -0
  31. package/dist/constructors.js.map +1 -0
  32. package/dist/credentials.d.ts +25 -0
  33. package/dist/credentials.js +73 -5
  34. package/dist/credentials.js.map +1 -1
  35. package/dist/data.d.ts +2 -0
  36. package/dist/data.js +3 -0
  37. package/dist/data.js.map +1 -0
  38. package/dist/datafile.d.ts +38 -3
  39. package/dist/datafile.js +166 -13
  40. package/dist/datafile.js.map +1 -1
  41. package/dist/db.d.ts +5 -3
  42. package/dist/db.js +88 -21
  43. package/dist/db.js.map +1 -1
  44. package/dist/define.d.ts +10 -4
  45. package/dist/define.js +1 -5
  46. package/dist/define.js.map +1 -1
  47. package/dist/describe.d.ts +54 -8
  48. package/dist/describe.js +84 -11
  49. package/dist/describe.js.map +1 -1
  50. package/dist/direct.d.ts +9 -0
  51. package/dist/direct.js +11 -0
  52. package/dist/direct.js.map +1 -0
  53. package/dist/drift.d.ts +64 -12
  54. package/dist/drift.js +118 -41
  55. package/dist/drift.js.map +1 -1
  56. package/dist/errors.d.ts +16 -1
  57. package/dist/errors.js +30 -1
  58. package/dist/errors.js.map +1 -1
  59. package/dist/expectations.d.ts +4 -4
  60. package/dist/expectations.js +43 -9
  61. package/dist/expectations.js.map +1 -1
  62. package/dist/host.d.ts +56 -0
  63. package/dist/host.js +45 -0
  64. package/dist/host.js.map +1 -0
  65. package/dist/index.d.ts +13 -5
  66. package/dist/index.js +15 -5
  67. package/dist/index.js.map +1 -1
  68. package/dist/ledger.d.ts +12 -1
  69. package/dist/ledger.js +18 -11
  70. package/dist/ledger.js.map +1 -1
  71. package/dist/lint.d.ts +5 -4
  72. package/dist/lint.js +24 -7
  73. package/dist/lint.js.map +1 -1
  74. package/dist/lockfile.d.ts +36 -0
  75. package/dist/lockfile.js +69 -0
  76. package/dist/lockfile.js.map +1 -0
  77. package/dist/op.d.ts +9 -0
  78. package/dist/op.js.map +1 -1
  79. package/dist/outline.d.ts +2 -0
  80. package/dist/outline.js +1 -1
  81. package/dist/outline.js.map +1 -1
  82. package/dist/paths.d.ts +4 -0
  83. package/dist/paths.js +17 -3
  84. package/dist/paths.js.map +1 -1
  85. package/dist/person.d.ts +61 -0
  86. package/dist/person.js +69 -0
  87. package/dist/person.js.map +1 -0
  88. package/dist/plugin.js +1 -1
  89. package/dist/plugin.js.map +1 -1
  90. package/dist/policy.d.ts +51 -55
  91. package/dist/policy.js +14 -36
  92. package/dist/policy.js.map +1 -1
  93. package/dist/resource.d.ts +207 -25
  94. package/dist/resource.js +184 -30
  95. package/dist/resource.js.map +1 -1
  96. package/dist/resources.d.ts +76 -9
  97. package/dist/resources.js +170 -30
  98. package/dist/resources.js.map +1 -1
  99. package/dist/run.d.ts +31 -1
  100. package/dist/run.js +6 -1
  101. package/dist/run.js.map +1 -1
  102. package/dist/sandbox.js +5 -1
  103. package/dist/sandbox.js.map +1 -1
  104. package/dist/scenario.d.ts +25 -9
  105. package/dist/scenario.js +125 -27
  106. package/dist/scenario.js.map +1 -1
  107. package/dist/scenarios.d.ts +10 -6
  108. package/dist/scenarios.js +8 -4
  109. package/dist/scenarios.js.map +1 -1
  110. package/dist/schema.d.ts +32 -0
  111. package/dist/schema.js +225 -0
  112. package/dist/schema.js.map +1 -0
  113. package/dist/sdk.d.ts +34 -0
  114. package/dist/sdk.js +168 -0
  115. package/dist/sdk.js.map +1 -0
  116. package/dist/secret.d.ts +42 -0
  117. package/dist/secret.js +58 -0
  118. package/dist/secret.js.map +1 -0
  119. package/dist/shared.d.ts +188 -4
  120. package/dist/shared.js +165 -5
  121. package/dist/shared.js.map +1 -1
  122. package/dist/sites.d.ts +52 -0
  123. package/dist/sites.js +174 -0
  124. package/dist/sites.js.map +1 -0
  125. package/dist/source.d.ts +58 -0
  126. package/dist/source.js +54 -0
  127. package/dist/source.js.map +1 -0
  128. package/dist/version.d.ts +3 -2
  129. package/dist/version.js +3 -2
  130. package/dist/version.js.map +1 -1
  131. package/dist/worker.d.ts +6 -2
  132. package/dist/worker.js +37 -8
  133. package/dist/worker.js.map +1 -1
  134. package/dist/writer.d.ts +35 -0
  135. package/dist/writer.js +201 -0
  136. package/dist/writer.js.map +1 -0
  137. package/oxlint.json +5 -16
  138. package/package.json +11 -1
  139. package/src/apply-steps.ts +110 -0
  140. package/src/apply.ts +626 -0
  141. package/src/approvals.ts +49 -13
  142. package/src/call-workflow.ts +44 -0
  143. package/src/call.ts +173 -46
  144. package/src/cedar.ts +493 -0
  145. package/src/client.ts +450 -49
  146. package/src/collection.ts +431 -0
  147. package/src/config.ts +168 -48
  148. package/src/constructors.ts +4 -0
  149. package/src/credentials.ts +90 -5
  150. package/src/data.ts +10 -0
  151. package/src/datafile.ts +207 -15
  152. package/src/db.ts +90 -22
  153. package/src/define.ts +11 -9
  154. package/src/describe.ts +146 -23
  155. package/src/direct.ts +15 -0
  156. package/src/drift.ts +155 -45
  157. package/src/errors.ts +36 -1
  158. package/src/expectations.ts +46 -11
  159. package/src/host.ts +96 -0
  160. package/src/index.ts +56 -2
  161. package/src/ledger.ts +35 -17
  162. package/src/lint.ts +29 -12
  163. package/src/lockfile.ts +95 -0
  164. package/src/op.ts +9 -0
  165. package/src/outline.ts +1 -1
  166. package/src/paths.ts +18 -3
  167. package/src/person.ts +75 -0
  168. package/src/plugin.ts +1 -1
  169. package/src/policy.ts +59 -63
  170. package/src/resource.ts +302 -52
  171. package/src/resources.ts +226 -30
  172. package/src/run.ts +33 -1
  173. package/src/sandbox.ts +5 -1
  174. package/src/scenario.ts +175 -43
  175. package/src/scenarios.ts +15 -8
  176. package/src/schema.ts +261 -0
  177. package/src/sdk.ts +211 -0
  178. package/src/secret.ts +92 -0
  179. package/src/shared.ts +279 -6
  180. package/src/sites.ts +220 -0
  181. package/src/source.ts +82 -0
  182. package/src/version.ts +3 -2
  183. package/src/worker.ts +45 -11
  184. package/src/writer.ts +225 -0
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ import { type WorkflowDefinition } from "./define.ts";
3
+ import type { Op } from "./op.ts";
4
+ export { CALL_WORKFLOW } from "./shared.ts";
5
+ /** The call workflow's input: the operation's id, and its input. */
6
+ export declare const CallInput: z.ZodObject<{
7
+ op: z.ZodString;
8
+ input: z.ZodUnknown;
9
+ }, z.core.$strip>;
10
+ /**
11
+ * The call workflow for a config: it `uses` every operation that may be called directly and has
12
+ * a driver; `resolveConfig` adds it when there is one. A run calls `input.op` with `input.input`,
13
+ * and returns its output; inside it the call is made as the person who started the run, so a
14
+ * collection's save records them as `updatedBy`.
15
+ */
16
+ export declare function callWorkflow(ops: ReadonlyMap<string, Op>, drivers: ReadonlyMap<string, unknown>, types: ReadonlyMap<string, unknown>): WorkflowDefinition<readonly Op[], typeof CallInput>;
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ import { defineWorkflow } from "./define.js";
3
+ import { isDirect } from "./direct.js";
4
+ export { CALL_WORKFLOW } from "./shared.js";
5
+ // The built-in `call` workflow: one operation that may be called directly (`isDirect`), as a run.
6
+ // `SanomaClient.call` starts it, as the person, when the policy holds a direct call for an
7
+ // approval, so the approval reaches the Inbox like any run's. It is a workflow like any other,
8
+ // held to the same lint: the call goes through `ctx`, under the policy, in the ledger.
9
+ /** The call workflow's input: the operation's id, and its input. */
10
+ export const CallInput = z.object({ op: z.string(), input: z.unknown() });
11
+ /**
12
+ * The call workflow for a config: it `uses` every operation that may be called directly and has
13
+ * a driver; `resolveConfig` adds it when there is one. A run calls `input.op` with `input.input`,
14
+ * and returns its output; inside it the call is made as the person who started the run, so a
15
+ * collection's save records them as `updatedBy`.
16
+ */
17
+ export function callWorkflow(ops, drivers, types) {
18
+ const uses = [...ops.values()]
19
+ .filter((op) => isDirect(op, types) && drivers.has(op.id))
20
+ .toSorted((a, b) => a.id.localeCompare(b.id));
21
+ return defineWorkflow({
22
+ // The literal, held to the one name: the outline finds a workflow by a string, or a const of its own file.
23
+ name: "call",
24
+ title: "Call an operation",
25
+ trigger: "manual",
26
+ input: CallInput,
27
+ uses,
28
+ // `ctx` refuses an operation that is not in `uses`: one that may not be called directly, or has no driver.
29
+ run: async (ctx, input) => {
30
+ const [vendor = "", resource = "", name = ""] = input.op.split(".");
31
+ return ctx[vendor][resource][name](input.input);
32
+ },
33
+ });
34
+ }
35
+ //# sourceMappingURL=call-workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-workflow.js","sourceRoot":"","sources":["../src/call-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAA2B,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,kGAAkG;AAClG,2FAA2F;AAC3F,+FAA+F;AAC/F,uFAAuF;AAEvF,oEAAoE;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,GAA4B,EAC5B,OAAqC,EACrC,KAAmC;IAEnC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;SAC3B,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzD,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,OAAO,cAAc,CAAC;QACpB,2GAA2G;QAC3G,IAAI,EAAE,MAAqC;QAC3C,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI;QACJ,2GAA2G;QAC3G,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpE,OAAO,GAAG,CAAC,MAAM,CAAE,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/dist/call.d.ts CHANGED
@@ -1,5 +1,8 @@
1
- import { type WorkflowDefinition } from "./define.ts";
2
- import type { Run, WorkerState } from "./run.ts";
1
+ import { type ApprovalState, type Principal, type WorkflowDefinition } from "./define.ts";
2
+ import type { Collection } from "./collection.ts";
3
+ import { type Op } from "./op.ts";
4
+ import { type Decision, type Policy, type PolicyCall, type RecordedDecision } from "./policy.ts";
5
+ import type { Run, StartHold, WorkerState } from "./run.ts";
3
6
  /**
4
7
  * True for a failure that is not the run's outcome, so the ledger does not record it: DBOS
5
8
  * cancelled the run or another process took it over, or the run's worker is stopping and the
@@ -12,6 +15,8 @@ import type { Run, WorkerState } from "./run.ts";
12
15
  * for good, and are recorded.
13
16
  */
14
17
  export declare function isInfrastructureError(err: unknown, state: Pick<WorkerState, "stopped">): boolean;
18
+ /** The value as the ledger records it: each of the operation's `opaque` fields as `"<name>"`. */
19
+ export declare function recorded(op: Op, value: unknown): unknown;
15
20
  /**
16
21
  * Where a call is, as its records say: its outline node's `path`, and the step's name, as the
17
22
  * outline resolved it (`OutlineNode`'s `name`), or for a call the outline could not name, the
@@ -31,3 +36,31 @@ export interface Placed {
31
36
  * queued behind it, would never start.
32
37
  */
33
38
  export declare function buildCtx(wf: WorkflowDefinition<any, any>, run: Run): any;
39
+ /**
40
+ * Asks the policy about one call, with the record a collection's `save` or
41
+ * `delete` replaces as `before` (`beforeOf`). Runs inside a step, so it must have no side effects
42
+ * of its own.
43
+ */
44
+ export declare function decide(run: Run, op: Op, input: unknown): Promise<RecordedDecision>;
45
+ /**
46
+ * For a collection's `save` or `delete`, the record it replaces or removes, read once with the
47
+ * collection's `get` (`read`): `{ before }` when there is one, else nothing, and nothing read
48
+ * under `allowAll`, which reads no call. A failed read is named, keeping its error's code.
49
+ */
50
+ export declare function beforeOf(policy: Policy, op: Op, input: unknown, collections: ReadonlyMap<string, Collection>, read: (get: string, key: unknown) => Promise<unknown> | undefined): Promise<{
51
+ before?: unknown;
52
+ }>;
53
+ /**
54
+ * Asks `policy` about one call of `op` as `actor` in `run`: a direct call
55
+ * (`SanomaClient.call`), with the record a collection's write replaces as `before` (`beforeOf`).
56
+ */
57
+ export declare function decideCall(policy: Policy, op: Op, input: unknown, actor: Principal, run: PolicyCall["run"], before?: Pick<PolicyCall, "before">): RecordedDecision;
58
+ /**
59
+ * Asks the policy whether `actor` may start a run of `workflow` with `input` (`Policy.start`, the
60
+ * action `workflow:<name>`), as `SanomaClient.start` does before it queues one.
61
+ */
62
+ export declare function decideStart(policy: Policy, workflow: string, input: unknown, actor: Principal, approvals?: readonly ApprovalState[]): RecordedDecision;
63
+ /** The approval a start's `approve` answer waits on: whom it asks, its title, and the rules that held it. */
64
+ export declare function startHoldOf(workflow: string, { approver, title, reasons }: Extract<Decision, {
65
+ kind: "approve";
66
+ }>): StartHold;
package/dist/call.js CHANGED
@@ -7,8 +7,9 @@ import { currentGroup, entry, skipped, write, writeFailure } from "./ledger.js";
7
7
  import { shown } from "./log.js";
8
8
  import { isOp } from "./op.js";
9
9
  import { callAt, callName } from "./outline.js";
10
- import { DecisionSchema, policyOpOf } from "./policy.js";
11
- import { approverLabel, errorMessage, fitsOp } from "./shared.js";
10
+ import { allowAll, policyOpOf } from "./policy.js";
11
+ import { isChangeOp } from "./resource.js";
12
+ import { APPLY_WORKFLOW, approverLabel, CALL_WORKFLOW, DATA_VENDOR, errorMessage, fitsOp, WORKFLOW_ACTION, } from "./shared.js";
12
13
  /** DBOS took the run from this execution: it cancelled the run, or another process took it over. */
13
14
  const takenByDbos = (err) => causes(err).some((e) => e instanceof DBOSErrors.DBOSWorkflowCancelledError || e instanceof DBOSWorkflowConflictError);
14
15
  /**
@@ -26,7 +27,7 @@ export function isInfrastructureError(err, state) {
26
27
  return takenByDbos(err) || (state.stopped && errorCode(err) === undefined);
27
28
  }
28
29
  /** The value as the ledger records it: each of the operation's `opaque` fields as `"<name>"`. */
29
- function recorded(op, value) {
30
+ export function recorded(op, value) {
30
31
  if (!op.opaque?.length || typeof value !== "object" || value === null || Array.isArray(value))
31
32
  return value;
32
33
  const out = { ...value };
@@ -194,14 +195,6 @@ function strict(obj, path, workflow) {
194
195
  },
195
196
  });
196
197
  }
197
- /** Checks a policy's answer, and copies it so nothing else the policy returned is recorded. */
198
- function checkDecision(decision, opId) {
199
- const parsed = DecisionSchema.safeParse(decision);
200
- if (parsed.success)
201
- return parsed.data;
202
- const why = parsed.error.issues[0]?.message ?? "not a decision";
203
- throw new Error(`The policy returned ${shown(decision)} for ${opId}: ${why}; use allow(), deny(reason) or approve(approver)`);
204
- }
205
198
  /** The resource instance the call acts on, from the operation's `target`, when it declares one. */
206
199
  function targetOf(op, input) {
207
200
  if (!op.target)
@@ -212,41 +205,113 @@ function targetOf(op, input) {
212
205
  }
213
206
  return { target };
214
207
  }
215
- /** Asks the policy. Runs inside a step, so it must have no side effects of its own. */
216
- async function decide(run, op, input) {
217
- const call = {
218
- op: policyOpOf(op),
219
- effect: op.effect,
220
- ...targetOf(op, input),
221
- input,
222
- actor: run.actor,
223
- run: { id: run.id, workflow: run.workflow, approvals: structuredClone(run.approvals) },
208
+ /**
209
+ * Asks the policy about one call, with the record a collection's `save` or
210
+ * `delete` replaces as `before` (`beforeOf`). Runs inside a step, so it must have no side effects
211
+ * of its own.
212
+ */
213
+ export async function decide(run, op, input) {
214
+ const seen = { id: run.id, workflow: run.workflow, approvals: structuredClone(run.approvals) };
215
+ const { policy } = run.state;
216
+ // Keyed by the call (`seq` was taken for it), so a fake answers each read afresh.
217
+ const before = await beforeOf(policy, op, input, run.state.collections, (get, key) => driverOf(run, get)?.({ key }, { idempotencyKey: `${run.id}:${run.seq}:before`, runId: run.id, opId: get, attempt: 1, secrets: secretsOf(run) }));
218
+ const call = { ...callOf(op, input, run.actor, seen), ...before };
219
+ return ask(policy, op.id, () => policy(call), run.state);
220
+ }
221
+ /** The run's function for an operation: its own fake's in a sandbox run, never a vendor's; else the driver's. */
222
+ const driverOf = (run, id) => (run.sandbox === undefined ? run.state.drivers : run.fakeDrivers)?.get(id);
223
+ /** The secrets a run's calls read: its own in a sandbox run, else the stored ones. */
224
+ const secretsOf = (run) => (run.sandbox === undefined ? run.state.secrets : run.fakeSecrets);
225
+ /** One call of `op` as `actor` in `run`, as a policy sees it. */
226
+ const callOf = (op, input, actor, run) => ({
227
+ op: policyOpOf(op),
228
+ effect: op.effect,
229
+ ...targetOf(op, input),
230
+ input,
231
+ actor,
232
+ run,
233
+ });
234
+ /**
235
+ * For a collection's `save` or `delete`, the record it replaces or removes, read once with the
236
+ * collection's `get` (`read`): `{ before }` when there is one, else nothing, and nothing read
237
+ * under `allowAll`, which reads no call. A failed read is named, keeping its error's code.
238
+ */
239
+ export async function beforeOf(policy, op, input, collections, read) {
240
+ const collection = op.vendor === DATA_VENDOR ? collections.get(op.resource) : undefined;
241
+ if (policy === allowAll || !collection || (op.name !== "save" && op.name !== "delete"))
242
+ return {};
243
+ const key = op.name === "save"
244
+ ? input.record[collection.key]
245
+ : input.key;
246
+ let saved;
247
+ try {
248
+ saved = (await read(`${DATA_VENDOR}.${op.resource}.get`, key));
249
+ }
250
+ catch (err) {
251
+ if (takenByDbos(err))
252
+ throw err;
253
+ throw keepCode(new Error(`Reading the record ${op.id} replaces failed: ${errorMessage(err)}`, { cause: err }), err);
254
+ }
255
+ return saved ? { before: saved.record } : {};
256
+ }
257
+ /**
258
+ * Asks `policy` about one call of `op` as `actor` in `run`: a direct call
259
+ * (`SanomaClient.call`), with the record a collection's write replaces as `before` (`beforeOf`).
260
+ */
261
+ export function decideCall(policy, op, input, actor, run, before = {}) {
262
+ const call = { ...callOf(op, input, actor, run), ...before };
263
+ return ask(policy, op.id, () => policy(call));
264
+ }
265
+ /**
266
+ * Asks the policy whether `actor` may start a run of `workflow` with `input` (`Policy.start`, the
267
+ * action `workflow:<name>`), as `SanomaClient.start` does before it queues one.
268
+ */
269
+ export function decideStart(policy, workflow, input, actor, approvals = []) {
270
+ return ask(policy, `${WORKFLOW_ACTION}${workflow}`, () => policy.start(actor, workflow, input, approvals));
271
+ }
272
+ /** The approval a start's `approve` answer waits on: whom it asks, its title, and the rules that held it. */
273
+ export function startHoldOf(workflow, { approver, title, reasons }) {
274
+ return {
275
+ approver,
276
+ title: title ?? `${WORKFLOW_ACTION}${workflow} needs ${approverLabel(approver)}`,
277
+ ...(reasons && { reasons }),
224
278
  };
225
- let answer;
279
+ }
280
+ /**
281
+ * The policy's answer about `id` (`answer`), with its version. A policy that fails is named in
282
+ * the error, with its error's code, unless the worker is stopping (`state`).
283
+ */
284
+ function ask(policy, id, answer, state = { stopped: false }) {
285
+ let decision;
226
286
  try {
227
- answer = await run.state.policy(call);
287
+ decision = answer();
228
288
  }
229
289
  catch (err) {
230
290
  // Named here, so the run's error and the ledger say which call the policy failed on, with
231
291
  // the code the policy's error had.
232
- if (isInfrastructureError(err, run.state))
292
+ if (isInfrastructureError(err, state))
233
293
  throw err;
234
- throw keepCode(new Error(`The policy failed deciding ${op.id}: ${errorMessage(err)}`, { cause: err }), err);
294
+ throw keepCode(new Error(`The policy failed deciding ${id}: ${errorMessage(err)}`, { cause: err }), err);
235
295
  }
236
- const decision = checkDecision(answer, op.id);
237
- const policyVersion = run.state.policy.version;
238
- return policyVersion === undefined ? decision : { ...decision, policyVersion };
296
+ return policy.version === undefined ? decision : { ...decision, policyVersion: policy.version };
239
297
  }
240
298
  async function callOp(run, id, input, place) {
241
299
  // The worker's declaration, never the workflow's: its effect, schemas and retry setting.
242
300
  const op = run.state.ops.get(id);
243
301
  // A sandbox run calls its own fakes, never a vendor.
244
- const fn = run.sandbox === undefined ? run.state.drivers.get(id) : run.fakeDrivers?.get(id);
302
+ const fn = driverOf(run, id);
245
303
  if (!op || !fn) {
246
304
  throw new Error(run.sandbox === undefined
247
305
  ? `No connector or driver for ${id} in this worker`
248
306
  : `No connector or fake for ${id} in this worker: no fake its connectors attach implements it`);
249
307
  }
308
+ // Only apply changes a declared resource; `resolveConfig` refuses any other workflow that uses such an operation.
309
+ if (isChangeOp(op, run.state.types) && run.workflow !== APPLY_WORKFLOW) {
310
+ throw new SanomaError("invalid_input", `${op.id} changes a declared resource, which only ${APPLY_WORKFLOW} does`, {
311
+ op: op.id,
312
+ workflow: run.workflow,
313
+ });
314
+ }
250
315
  const parsed = parseOrThrow(op.input, input, `The input to ${op.id} does not match its schema`, { op: op.id });
251
316
  // The call's identity (its ledger seq and id, and the driver's idempotency key) is taken
252
317
  // before the first await, so it depends only on the order the workflow made its calls. A
@@ -256,23 +321,27 @@ async function callOp(run, id, input, place) {
256
321
  // The decision is recorded as a step, so a replay reuses it instead of asking a policy
257
322
  // that may have changed since. The policy must still be deterministic: a run that fails
258
323
  // before the step is recorded asks again.
259
- const decision = await DBOS.runStep(() => decide(run, op, parsed), { name: `policy:${op.id}` });
324
+ const decideStep = () => DBOS.runStep(() => decide(run, op, parsed), { name: `policy:${op.id}` });
325
+ let decision = await decideStep();
260
326
  const logged = recorded(op, parsed);
261
327
  const call = { type: "op.called", op: op.id, ...place, effect: op.effect, input: logged, decision };
262
- if (decision.kind === "deny") {
263
- const err = new PolicyDeniedError(op.id, decision.reason);
264
- await writeFailure(run, entry(run, { ...call, error: errorInfo(err), durationMs: 0 }, { seq }), err);
265
- throw err;
266
- }
267
- if (decision.kind === "approve") {
328
+ // Each hold is lifted in turn: once one is approved, the policy is asked again, with it.
329
+ for (;;) {
330
+ if (decision.kind === "deny") {
331
+ const err = new PolicyDeniedError(op.id, decision.reason);
332
+ await writeFailure(run, entry(run, { ...call, decision, error: errorInfo(err), durationMs: 0 }, { seq }), err);
333
+ throw err;
334
+ }
335
+ if (decision.kind !== "approve")
336
+ break;
268
337
  const title = decision.title ?? `${op.id} needs ${approverLabel(decision.approver)}`;
269
- // A hold covers the call it held, and any other operations the policy named.
270
- const covers = [...new Set([op.id, ...(decision.covers ?? [])])];
271
338
  try {
272
- await awaitApproval(run, title, { approver: decision.approver, covers }, place, {
339
+ // A hold covers the call it held.
340
+ await awaitApproval(run, title, { approver: decision.approver, covers: [op.id] }, place, {
273
341
  op: op.id,
274
342
  seq,
275
343
  input: logged,
344
+ reasons: decision.reasons,
276
345
  });
277
346
  }
278
347
  catch (err) {
@@ -283,6 +352,7 @@ async function callOp(run, id, input, place) {
283
352
  }
284
353
  throw err;
285
354
  }
355
+ decision = await decideStep();
286
356
  }
287
357
  const started = Date.now();
288
358
  // The try DBOS is on, as it passes it to the step. The last try's error is not retried, so
@@ -293,7 +363,16 @@ async function callOp(run, id, input, place) {
293
363
  result = await DBOS.runStep(async () => {
294
364
  const at = Date.now();
295
365
  attempt = DBOS.stepStatus?.currentAttempt ?? 1;
296
- const context = { idempotencyKey: `${run.id}:${seq}`, runId: run.id, opId: op.id, attempt };
366
+ const secrets = secretsOf(run);
367
+ const context = {
368
+ idempotencyKey: `${run.id}:${seq}`,
369
+ runId: run.id,
370
+ opId: op.id,
371
+ attempt,
372
+ secrets,
373
+ // A call run is the person's direct call held for an approval: made as them, as it would have been.
374
+ by: run.workflow === CALL_WORKFLOW ? run.actor.id : `run:${run.id}`,
375
+ };
297
376
  // A live driver's `env` is checked here, inside the step, by the guard `indexDrivers` put
298
377
  // on its function: the refusal is the call's failure, recorded and never retried.
299
378
  const output = op.output.parse(await fn(parsed, context));
@@ -372,13 +451,14 @@ async function all(run, list, node) {
372
451
  }
373
452
  /**
374
453
  * Waits, durably, until the time or for the duration the request names, and records when it
375
- * ends. For a duration that is the time the sleep started plus the duration, as the runtime saw
376
- * it (`Date.now()`, which adds no DBOS call): a replay may compute another, but the store keeps
454
+ * ends. For a duration that is the record's `at` plus the duration, one read of the runtime's
455
+ * clock (`Date.now()`, which adds no DBOS call): a replay may compute another, but the store keeps
377
456
  * the first record with the id, so the record says what the first execution waited for.
378
457
  */
379
458
  async function sleep(run, raw, at) {
380
459
  const req = checkSleep(raw);
381
460
  const seq = run.seq++;
461
+ const started = Date.now();
382
462
  let until;
383
463
  let ms;
384
464
  if ("until" in req) {
@@ -392,9 +472,9 @@ async function sleep(run, raw, at) {
392
472
  (req.minutes ?? 0) * 60_000 +
393
473
  (req.hours ?? 0) * 3_600_000 +
394
474
  (req.days ?? 0) * 86_400_000;
395
- until = Date.now() + ms;
475
+ until = started + ms;
396
476
  }
397
- await write(run, entry(run, { type: "sleep.started", ...at, until }, { seq }));
477
+ await write(run, entry(run, { type: "sleep.started", ...at, until }, { seq, at: started }));
398
478
  // A time already past waits not at all, and adds no step. A sandbox run never waits.
399
479
  if (ms > 0 && run.sandbox === undefined)
400
480
  await DBOS.sleep(ms);
package/dist/call.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../src/call.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EACL,UAAU,EAEV,qBAAqB,EACrB,QAAQ,EAER,UAAU,EACV,UAAU,GAGX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,MAAM,EACN,SAAS,EACT,SAAS,EACT,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAoB,IAAI,EAAW,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAiB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAmB,UAAU,EAAyB,MAAM,aAAa,CAAC;AAEjG,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAElE,oGAAoG;AACpG,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE,CACnC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,UAAU,CAAC,0BAA0B,IAAI,CAAC,YAAY,yBAAyB,CAAC,CAAC;AAExH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY,EAAE,KAAmC;IACrF,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;AAC7E,CAAC;AAED,iGAAiG;AACjG,SAAS,QAAQ,CAAC,EAAM,EAAE,KAAc;IACtC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5G,MAAM,GAAG,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,MAAM;QAAE,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,GAAG,CAAC;IACnF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uDAAuD;AACvD,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,qFAAqF;AACrF,MAAM,aAAa,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC;AAExF;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,MAAM,CAAI,GAAQ,EAAE,IAAsB;IACjD,4FAA4F;IAC5F,4FAA4F;IAC5F,6FAA6F;IAC7F,sFAAsF;IACtF,8CAA8C;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI;SAClB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C,IAAI,CAAC,GAAG,EAAE;QACT,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IACL,6FAA6F;IAC7F,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAEtB,kGAAkG;AAClG,SAAS,aAAa,CAAC,GAAQ;IAC7B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC,EAAE,2DAA2D,EAAE;YAC3G,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAYD,sIAAsI;AACtI,MAAM,KAAK,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAgC,EAAE,GAAQ;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,IAAsB,CAAC;IACvC,4HAA4H;IAC5H,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,IAA0D,EAAE,EAAE,CAC1F,KAAK,UAAU,MAAM,CAAC,GAAG,IAAe;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IACJ,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9C,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAChD,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;IACvB,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAa,EAAE,GAAoB,EAAE,EAAE,CAClF,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CACf,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CACtG,CACF,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5C,iCAAiC;QACjC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,uFAAuF;AACvF,SAAS,OAAO,CAAC,OAAgC,EAAE,IAAY,EAAE,QAAgB;IAC/E,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC;YACN,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;gBACzC,CAAC,CAAC,OAAO,CAAC,KAAgC,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,QAAQ,CAAC;gBACvE,CAAC,CAAC,KAAK,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AASD;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,EAAY;IAC5B,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;IACpC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,KAAK,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,wGAAwG;IACxG,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACnD,MAAM,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,GAAQ,EAAE,EAAY,EAAE,IAAY;IACrD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,gCAAgC,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAC5B,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI;QAAE,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,2BAA2B,QAAQ,YAAY,CAAC,CAAC;IAChG,iGAAiG;IACjG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAAE,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,6BAA6B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,GAAQ,EAAE,IAAY,EAAE,IAA0B,EAAE,GAAW;IACnF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC;IACpG,OAAO,IAAI,WAAW,CACpB,qBAAqB,EACrB,OAAO,IAAI,oBAAoB,KAAK,KAAK,GAAG,8DAA8D;QACxG,mEAAmE,EACrE,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAC7D,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,SAAS,MAAM,CAAmB,GAAM,EAAE,IAAY,EAAE,QAAgB;IACtE,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE;QACpB,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ;YACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,IAAI,MAAM;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1G,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,GAAG,sDAAsD,QAAQ,GAAG,CAAC,CAAC;QACnG,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,+FAA+F;AAC/F,SAAS,aAAa,CAAC,QAAiB,EAAE,IAAY;IACpD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,gBAAgB,CAAC;IAChE,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,GAAG,kDAAkD,CAC7G,CAAC;AACJ,CAAC;AAED,mGAAmG;AACnG,SAAS,QAAQ,CAAC,EAAM,EAAE,KAAc;IACtC,IAAI,CAAC,EAAE,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,yBAAyB,OAAO,MAAM,gBAAgB,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,uFAAuF;AACvF,KAAK,UAAU,MAAM,CAAC,GAAQ,EAAE,EAAM,EAAE,KAAc;IACpD,MAAM,IAAI,GAAe;QACvB,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;QAClB,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;QACtB,KAAK;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;KACvF,CAAC;IACF,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0FAA0F;QAC1F,mCAAmC;QACnC,IAAI,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,GAAG,CAAC;QACrD,MAAM,QAAQ,CAAC,IAAI,KAAK,CAAC,8BAA8B,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9G,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IAC/C,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,aAAa,EAAE,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,GAAQ,EAAE,EAAU,EAAE,KAAc,EAAE,KAAa;IACvE,yFAAyF;IACzF,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjC,qDAAqD;IACrD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,GAAG,CAAC,OAAO,KAAK,SAAS;YACvB,CAAC,CAAC,8BAA8B,EAAE,iBAAiB;YACnD,CAAC,CAAC,4BAA4B,EAAE,8DAA8D,CACjG,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,EAAE,4BAA4B,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/G,yFAAyF;IACzF,yFAAyF;IACzF,uFAAuF;IACvF,gFAAgF;IAChF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,uFAAuF;IACvF,wFAAwF;IACxF,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAW,CAAC;IAE7G,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACrG,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,EAAE,UAAU,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,6EAA6E;QAC7E,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE;gBAC9E,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,GAAG;gBACH,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAI,GAAmB,CAAC,IAAI,CAAC,UAAoB,CAAC;gBAChE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;gBAChG,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,2FAA2F;IAC3F,mFAAmF;IACnF,IAAI,OAA2B,CAAC;IAChC,IAAI,MAA4E,CAAC;IACjF,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CACzB,KAAK,IAAI,EAAE;YACT,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,IAAI,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAgB,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;YACzG,0FAA0F;YAC1F,kFAAkF;YAClF,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;QAC9D,CAAC,EACD;YACE,IAAI,EAAE,EAAE,CAAC,EAAE;YACX,cAAc,EAAE,EAAE,CAAC,UAAU;YAC7B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,YAAY;SACpE,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wFAAwF;QACxF,qFAAqF;QACrF,MAAM,MAAM,GAAG,KAAK,CAClB,GAAG,EACH,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EACrG,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CACrB,CAAC;QACF,IAAI,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,MAAM,EAAE,6BAA6B,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;YACzG,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,KAAK,CACT,GAAG,EACH,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACxG,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yFAAyF;QACzF,mFAAmF;QACnF,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,mDAAmD,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAa,EAAE,GAAoB;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,qBAAqB,EAAE,GAAG,EAAE,iBAAiB,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAChG,OAAO,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;AACtD,CAAC;AAED,oGAAoG;AACpG,SAAS,UAAU,CAAC,GAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC;IACxE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,GAAG,CAAC,GAAQ,EAAE,IAAa,EAAE,IAAY;IACtD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,gEAAgE,EAAE;YACvG,KAAK,EAAE,KAAK,CAAC,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IACD,gGAAgG;IAChG,IAAI,GAAG,CAAC,KAAK;QAAE,MAAM,IAAI,WAAW,CAAC,eAAe,EAAE,wDAAwD,CAAC,CAAC;IAChH,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAc,EAAE,CAAC;IAC9B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;YAAS,CAAC;QACT,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,KAAK,CAAC,GAAQ,EAAE,GAAY,EAAE,EAAU;IACrD,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,KAAa,CAAC;IAClB,IAAI,EAAU,CAAC;IACf,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,KAAK,GAAG,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1E,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,EAAE;YACA,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;gBACb,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK;gBAC1B,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM;gBAC3B,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,SAAS;gBAC5B,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC;QAC/B,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;IAC1B,CAAC;IACD,MAAM,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/E,qFAAqF;IACrF,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../src/call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { ResolvedConfig } from "./config.ts";
2
+ import { type Policy } from "./policy.ts";
3
+ import { type PeopleResource } from "./shared.ts";
4
+ /** Where a company's policies are, under its root. */
5
+ export declare const POLICIES_DIR = "policies";
6
+ /** One policy, as loaded: its id, its text and where it is written, and the annotations Sanoma reads. */
7
+ export interface CedarPolicySource {
8
+ /** Its `@id`, else `<file>#<n>`, counting from 1 in the order written. */
9
+ id: string;
10
+ text: string;
11
+ /** Relative to the root, such as `policies/money.cedar`. */
12
+ file: string;
13
+ /** The line and column its text starts at in `file`, from 1. */
14
+ line: number;
15
+ column: number;
16
+ effect: "permit" | "forbid";
17
+ /** `@hold(...)`: a declared group, a declared person's id, or `on-behalf-of`. */
18
+ hold?: string;
19
+ /** `@title(...)`: the Inbox title of its hold. */
20
+ title?: string;
21
+ /** `@reason(...)`: the message of its deny. */
22
+ reason?: string;
23
+ }
24
+ /** What is wrong in the policies, at a file, line and column when Cedar says where. */
25
+ export interface PolicyProblem {
26
+ file?: string;
27
+ line?: number;
28
+ column?: number;
29
+ /** The policy's id, when the problem is in one. */
30
+ policy?: string;
31
+ message: string;
32
+ }
33
+ /** `<root>/policies/**\/*.cedar`, sorted by path, each relative to the root with `/` between its parts. */
34
+ export declare function readPolicyFiles(root: string): {
35
+ file: string;
36
+ text: string;
37
+ }[];
38
+ /**
39
+ * Each file's policies, in the order written (`policySetTextToParts`, which sorts them, then
40
+ * their places in the text), each with its id and annotations (`policyToJson`): built once, the
41
+ * map from a policy's id to what decides its answer. A file that does not parse, a template and
42
+ * two policies with one id are problems.
43
+ */
44
+ export declare function loadPolicies(files: readonly {
45
+ file: string;
46
+ text: string;
47
+ }[]): {
48
+ policies: CedarPolicySource[];
49
+ problems: PolicyProblem[];
50
+ };
51
+ /**
52
+ * The policies checked against the schema of the resolved config (`validate`, strict), and what
53
+ * Cedar cannot check: a `permit` (the runtime's is the only one), and a `@hold` naming neither a
54
+ * declared group, nor a declared person, nor `on-behalf-of`. In the order written, each at its
55
+ * file, line and column, once per place: a policy scoped to every action fails the same way for each.
56
+ */
57
+ export declare function validatePolicies(resolved: Pick<ResolvedConfig, "ops" | "workflows" | "collections">, policies: readonly CedarPolicySource[], people: readonly PeopleResource[]): PolicyProblem[];
58
+ /**
59
+ * The policy a repo's Cedar files make, the runtime's `permit` added; its `version` a hash of the
60
+ * policies' ids and text. It decides each call with `statefulIsAuthorized`
61
+ * over the policy set and the schema of `resolved` (`schemaOf`), each parsed once:
62
+ *
63
+ * - allow: `allow`, with the policies that allowed as `reasons`;
64
+ * - deny, a determining `forbid` without `@hold`: `deny` with its `@reason`, or "Refused by <id>";
65
+ * - deny by `@hold` forbids only: each lifted once an approval addressed to its approver and
66
+ * covering the operation is approved (`approvedFor`); allowed when all are, else `approve` for
67
+ * the first, in the order written, with its `@title` and its id as `reasons`.
68
+ *
69
+ * An approver is a declared group (`{ group }`), a declared person's id, or the principal's
70
+ * `onBehalfOf`; a principal acting for no one makes `on-behalf-of` a deny, "cannot resolve
71
+ * approver". A policy that fails to evaluate is a deny naming it (Cedar would skip it), as is one
72
+ * reading a field a `before` lacks: a record saved under fields since changed is asked about
73
+ * without the schema, so it can still be fixed or deleted.
74
+ * `preview` asks the same ahead of a call, its context unknown; `start`, about a run's start.
75
+ */
76
+ export declare function cedarPolicy(resolved: Pick<ResolvedConfig, "ops" | "workflows" | "collections">, policies: readonly CedarPolicySource[], people: readonly PeopleResource[]): Policy;
77
+ /**
78
+ * The policy of the repo at `root`: its `policies/**\/*.cedar` over `resolved` and the people its
79
+ * data files declare (`readPeople`, `cedarPolicy`), or `allowAll` when it has none. With problems
80
+ * (`loadPolicies`, `validatePolicies`), each a printable line (`file:line:col: <policy id>:
81
+ * <message>`), a policy that refuses every call, start and preview naming the first: a repo never
82
+ * runs on part of its rules.
83
+ */
84
+ export declare function policyAt(root: string | undefined, resolved: Pick<ResolvedConfig, "ops" | "workflows" | "collections">): {
85
+ policy: Policy;
86
+ problems: string[];
87
+ };