@notionhq/apps 0.0.21 → 0.0.22
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 +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/workflow-access.d.ts +29 -0
- package/dist/workflow-access.d.ts.map +1 -1
- package/dist/workflow-access.js +23 -0
- package/dist/workflow.d.ts +1 -0
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +2 -0
- package/docs/BUILD.md +1 -1
- package/package.json +1 -1
- package/skills/notion-as-code/SKILL.md +2 -1
- package/skills/workflow/SKILL.md +5 -5
- package/src/cli/build.test.ts +5 -0
- package/src/index.ts +1 -0
- package/src/workflow-access-types.test.ts +8 -4
- package/src/workflow-access.ts +41 -0
- package/src/workflow.test.ts +5 -4
- package/src/workflow.ts +1 -0
package/README.md
CHANGED
|
@@ -9,6 +9,7 @@ The package root exports only resource and capability creation helpers:
|
|
|
9
9
|
|
|
10
10
|
```ts
|
|
11
11
|
import {
|
|
12
|
+
access,
|
|
12
13
|
page,
|
|
13
14
|
database,
|
|
14
15
|
teamspace,
|
|
@@ -113,7 +114,7 @@ credentials automatically, so do not configure or push `NOTION_API_TOKEN`.
|
|
|
113
114
|
Local execution needs the token in `.env` before making a Notion API request.
|
|
114
115
|
|
|
115
116
|
For a resource declared with Notion as Code, add a named runtime binding with
|
|
116
|
-
`access: { handbook:
|
|
117
|
+
`access: { handbook: access.view(handbook) }`. Cloud deployment
|
|
117
118
|
resolves the declaration's NaC `resourceId` to a live ID and exposes it to the
|
|
118
119
|
handler as `context.access.handbook.id`. Deployment also reconciles the declared
|
|
119
120
|
access through the existing Notion-module permissions. Those permissions, not
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export { page } from "./notion-as-code/page.js";
|
|
|
5
5
|
export { teamspace } from "./notion-as-code/teamspace.js";
|
|
6
6
|
export { view } from "./notion-as-code/view.js";
|
|
7
7
|
export { sync } from "./sync.js";
|
|
8
|
-
export { workflow, type Workflow, type WorkflowAccess, type WorkflowAccessAgentLevel, type WorkflowAccessBindings, type WorkflowAccessDeclaration, type WorkflowAccessDeclarations, type WorkflowAccessLevel, type WorkflowAccessLevelFor, type WorkflowAccessResource, type WorkflowAccessResourceLevel, type WorkflowAccessResourceType, type WorkflowAccessRequirement, type WorkflowAccessRequirements, type WorkflowAccessValue, type WorkflowConfiguration, type WorkflowContext, type WorkflowTriggerConfiguration, } from "./workflow.js";
|
|
8
|
+
export { access, workflow, type Workflow, type WorkflowAccess, type WorkflowAccessAgentLevel, type WorkflowAccessBindings, type WorkflowAccessDeclaration, type WorkflowAccessDeclarations, type WorkflowAccessLevel, type WorkflowAccessLevelFor, type WorkflowAccessResource, type WorkflowAccessResourceLevel, type WorkflowAccessResourceType, type WorkflowAccessRequirement, type WorkflowAccessRequirements, type WorkflowAccessValue, type WorkflowConfiguration, type WorkflowContext, type WorkflowTriggerConfiguration, } from "./workflow.js";
|
|
9
9
|
export type { WorkflowState, WorkflowStateValue } from "./workflow-state.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACN,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,4BAA4B,GACjC,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACN,MAAM,EACN,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,4BAA4B,GACjC,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,11 @@ import { teamspace } from "./notion-as-code/teamspace.js";
|
|
|
6
6
|
import { view } from "./notion-as-code/view.js";
|
|
7
7
|
import { sync } from "./sync.js";
|
|
8
8
|
import {
|
|
9
|
+
access,
|
|
9
10
|
workflow
|
|
10
11
|
} from "./workflow.js";
|
|
11
12
|
export {
|
|
13
|
+
access,
|
|
12
14
|
customAgent,
|
|
13
15
|
customBlock,
|
|
14
16
|
database,
|
|
@@ -3,6 +3,7 @@ import type { DataSourceHandle, DatabaseHandle, SingleSourceDatabaseHandle } fro
|
|
|
3
3
|
import type { PageHandle } from "./notion-as-code/page.js";
|
|
4
4
|
/** A Notion-as-Code resource that can provide a named workflow binding. */
|
|
5
5
|
export type WorkflowAccessResource = PageHandle | DatabaseHandle | SingleSourceDatabaseHandle | DataSourceHandle | CustomAgentHandle;
|
|
6
|
+
type WorkflowAccessContentResource = Exclude<WorkflowAccessResource, CustomAgentHandle>;
|
|
6
7
|
/** Resource kinds accepted by workflow access declarations. */
|
|
7
8
|
export type WorkflowAccessResourceType = WorkflowAccessResource["resourceType"];
|
|
8
9
|
/** Levels accepted by pages, databases, and data sources. */
|
|
@@ -50,6 +51,34 @@ export type WorkflowAccess<TAccess extends WorkflowAccessDeclarations = Workflow
|
|
|
50
51
|
}>;
|
|
51
52
|
/** Resolved NaC bindings keyed by public aliases, without declaration metadata. */
|
|
52
53
|
export type WorkflowAccessBindings = Readonly<Record<string, WorkflowAccessValue>>;
|
|
54
|
+
/** Create type-safe access declarations for Notion-as-Code resource handles. */
|
|
55
|
+
export declare const access: {
|
|
56
|
+
view: typeof view;
|
|
57
|
+
comment: typeof comment;
|
|
58
|
+
edit: typeof edit;
|
|
59
|
+
fullAccess: typeof fullAccess;
|
|
60
|
+
call: typeof call;
|
|
61
|
+
};
|
|
62
|
+
declare function view<TResource extends WorkflowAccessContentResource>(resource: TResource): Readonly<{
|
|
63
|
+
resource: TResource;
|
|
64
|
+
level: "view";
|
|
65
|
+
}>;
|
|
66
|
+
declare function comment<TResource extends WorkflowAccessContentResource>(resource: TResource): Readonly<{
|
|
67
|
+
resource: TResource;
|
|
68
|
+
level: "comment";
|
|
69
|
+
}>;
|
|
70
|
+
declare function edit<TResource extends WorkflowAccessContentResource>(resource: TResource): Readonly<{
|
|
71
|
+
resource: TResource;
|
|
72
|
+
level: "edit";
|
|
73
|
+
}>;
|
|
74
|
+
declare function fullAccess<TResource extends WorkflowAccessContentResource>(resource: TResource): Readonly<{
|
|
75
|
+
resource: TResource;
|
|
76
|
+
level: "fullAccess";
|
|
77
|
+
}>;
|
|
78
|
+
declare function call(resource: CustomAgentHandle): Readonly<{
|
|
79
|
+
resource: CustomAgentHandle;
|
|
80
|
+
level: "call";
|
|
81
|
+
}>;
|
|
53
82
|
/**
|
|
54
83
|
* Normalize public binding declarations without retaining the handle objects.
|
|
55
84
|
* Handles contain methods and schema objects, so they must never be cloned into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-access.d.ts","sourceRoot":"","sources":["../src/workflow-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EACX,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAC/B,UAAU,GACV,cAAc,GACd,0BAA0B,GAC1B,gBAAgB,GAChB,iBAAiB,CAAC;AAErB,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;AAEhF,6DAA6D;AAC7D,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;AAErF,iDAAiD;AACjD,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE9C,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,GAAG,wBAAwB,CAAC;AAEzF,4DAA4D;AAC5D,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,0BAA0B,IAC1E,KAAK,SAAS,aAAa,GAAG,wBAAwB,GAAG,2BAA2B,CAAC;AAEtF,KAAK,iBAAiB,CAAC,KAAK,SAAS,0BAA0B,IAAI,OAAO,CACzE,sBAAsB,EACtB;IAAE,YAAY,EAAE,KAAK,CAAA;CAAE,CACvB,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,yBAAyB,GAAG;KACtC,KAAK,IAAI,0BAA0B,GAAG;QACtC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;KAC9C;CACD,CAAC,0BAA0B,CAAC,CAAC;AAE9B,iFAAiF;AACjF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAE7F,qFAAqF;AACrF,MAAM,MAAM,yBAAyB,GAAG;KACtC,KAAK,IAAI,0BAA0B,GAAG;QACtC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;QACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;KAC9C;CACD,CAAC,0BAA0B,CAAC,CAAC;AAE9B,mEAAmE;AACnE,MAAM,MAAM,0BAA0B,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC;AAE7F,8DAA8D;AAC9D,MAAM,MAAM,mBAAmB,CAC9B,KAAK,SAAS,0BAA0B,GAAG,0BAA0B,IAClE,QAAQ,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;CACX,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,MAAM,cAAc,CACzB,OAAO,SAAS,0BAA0B,GAAG,0BAA0B,IACpE,QAAQ,CAAC;KACX,IAAI,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS;QAC9C,QAAQ,CAAC,QAAQ,EAAE;YAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,KAAK,CAAA;SAAE,CAAC;KAC1D,GACE,KAAK,SAAS,0BAA0B,GACvC,mBAAmB,CAAC,KAAK,CAAC,GAC1B,KAAK,GACN,KAAK;CACR,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-access.d.ts","sourceRoot":"","sources":["../src/workflow-access.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow-access.js
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
const access = {
|
|
2
|
+
view,
|
|
3
|
+
comment,
|
|
4
|
+
edit,
|
|
5
|
+
fullAccess,
|
|
6
|
+
call
|
|
7
|
+
};
|
|
8
|
+
function view(resource) {
|
|
9
|
+
return { resource, level: "view" };
|
|
10
|
+
}
|
|
11
|
+
function comment(resource) {
|
|
12
|
+
return { resource, level: "comment" };
|
|
13
|
+
}
|
|
14
|
+
function edit(resource) {
|
|
15
|
+
return { resource, level: "edit" };
|
|
16
|
+
}
|
|
17
|
+
function fullAccess(resource) {
|
|
18
|
+
return { resource, level: "fullAccess" };
|
|
19
|
+
}
|
|
20
|
+
function call(resource) {
|
|
21
|
+
return { resource, level: "call" };
|
|
22
|
+
}
|
|
1
23
|
const ACCESS_ALIAS_PATTERN = /^[a-zA-Z][a-zA-Z0-9_-]{0,127}$/;
|
|
2
24
|
const RESERVED_ACCESS_ALIASES = /* @__PURE__ */ new Set(["__proto__", "prototype", "constructor"]);
|
|
3
25
|
const RESOURCE_TYPES = {
|
|
@@ -130,6 +152,7 @@ function isRecord(value) {
|
|
|
130
152
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
131
153
|
}
|
|
132
154
|
export {
|
|
155
|
+
access,
|
|
133
156
|
hydrateWorkflowAccess,
|
|
134
157
|
normalizeWorkflowAccess
|
|
135
158
|
};
|
package/dist/workflow.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ type WorkflowHandlerResult = {
|
|
|
39
39
|
status: "success";
|
|
40
40
|
} | WorkflowWaitUntilResult;
|
|
41
41
|
export type { WorkflowAccess, WorkflowAccessAgentLevel, WorkflowAccessBindings, WorkflowAccessDeclaration, WorkflowAccessDeclarations, WorkflowAccessLevel, WorkflowAccessLevelFor, WorkflowAccessResource, WorkflowAccessResourceLevel, WorkflowAccessResourceType, WorkflowAccessRequirement, WorkflowAccessRequirements, WorkflowAccessValue, } from "./workflow-access.js";
|
|
42
|
+
export { access } from "./workflow-access.js";
|
|
42
43
|
export type WorkflowEvent = WorkflowEventMap[keyof WorkflowEventMap];
|
|
43
44
|
export type WorkflowEventForTrigger<T extends WorkflowTrigger> = WorkflowEventMap[T["type"]];
|
|
44
45
|
export type WorkflowEventForTriggers<T extends readonly WorkflowTrigger[]> = WorkflowEventForTrigger<T[number]>;
|
package/dist/workflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow.js
CHANGED
|
@@ -18,6 +18,7 @@ import { readRunMetadata } from "./runtime-metadata.js";
|
|
|
18
18
|
import { createWorkflowTriggers } from "./triggers.generated.js";
|
|
19
19
|
import { createWorkflowStepState } from "./workflow-state.js";
|
|
20
20
|
const MAX_WORKFLOW_WAIT_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
21
|
+
import { access } from "./workflow-access.js";
|
|
21
22
|
import {
|
|
22
23
|
connections
|
|
23
24
|
} from "./connections.js";
|
|
@@ -341,6 +342,7 @@ function isNodeError(error) {
|
|
|
341
342
|
return error instanceof Error && "code" in error;
|
|
342
343
|
}
|
|
343
344
|
export {
|
|
345
|
+
access,
|
|
344
346
|
connections,
|
|
345
347
|
workflow
|
|
346
348
|
};
|
package/docs/BUILD.md
CHANGED
|
@@ -209,7 +209,7 @@ resources may already have changed when a deployment fails.
|
|
|
209
209
|
|
|
210
210
|
## Workflow access
|
|
211
211
|
|
|
212
|
-
`workflow({ access: { handbook:
|
|
212
|
+
`workflow({ access: { handbook: access.view(handbook) }, ... })`
|
|
213
213
|
declares access to a NaC resource and a named runtime binding. The manifest
|
|
214
214
|
contains only the alias and its symbolic `{ type, resourceId, level }`
|
|
215
215
|
requirement; live IDs are not build output.
|
package/package.json
CHANGED
|
@@ -25,7 +25,8 @@ are shared across capabilities or do not have a natural capability owner. Module
|
|
|
25
25
|
evaluation must work without credentials or network access.
|
|
26
26
|
|
|
27
27
|
To configure a workflow's access to a declared page, database, data source, or
|
|
28
|
-
custom agent,
|
|
28
|
+
custom agent, use the matching helper, such as
|
|
29
|
+
`access: { guide: access.view(guide), analyst: access.call(analyst) }`.
|
|
29
30
|
The handler receives the live identity as `context.access.alias.id`; importing
|
|
30
31
|
a declaration alone does not request access. See the
|
|
31
32
|
[workflow skill](../workflow/SKILL.md#resources-created-with-the-app) for levels
|
package/skills/workflow/SKILL.md
CHANGED
|
@@ -132,7 +132,7 @@ export const guide = page({
|
|
|
132
132
|
Import the handle into the workflow and declare the named binding it needs:
|
|
133
133
|
|
|
134
134
|
```ts
|
|
135
|
-
import { workflow } from "@notionhq/apps";
|
|
135
|
+
import { access, workflow } from "@notionhq/apps";
|
|
136
136
|
import { triggers } from "@notionhq/apps/triggers";
|
|
137
137
|
|
|
138
138
|
import { guide } from "./sayHello/lib/notion.js";
|
|
@@ -141,7 +141,7 @@ export default workflow({
|
|
|
141
141
|
name: "Read guide",
|
|
142
142
|
description: "Reads the App's guide on a recurring schedule.",
|
|
143
143
|
triggers: [triggers.scheduled()],
|
|
144
|
-
access: { guide:
|
|
144
|
+
access: { guide: access.view(guide) },
|
|
145
145
|
handler: async (_event, context) => {
|
|
146
146
|
await context.step("Read guide", () =>
|
|
147
147
|
context.notion.pages.retrieve({ page_id: context.access.guide.id }),
|
|
@@ -155,9 +155,9 @@ declarations in `access` work too. Importing a declaration alone provisions the
|
|
|
155
155
|
resource but does not create a `context.access` alias. An `access` entry declares
|
|
156
156
|
the needed permission level and a named binding for that NaC resource.
|
|
157
157
|
|
|
158
|
-
`access`
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
`access.view()`, `access.comment()`, `access.edit()`, and `access.fullAccess()`
|
|
159
|
+
accept page, database, and data-source handles. `access.call()` accepts custom-agent
|
|
160
|
+
handles. Keys are workflow-local aliases. The handler's
|
|
161
161
|
typed `context.access` exposes each declared alias as a readonly `{ type, id }`,
|
|
162
162
|
not the declaration handle or a permission-management API. UI-granted resources
|
|
163
163
|
are permissions only: they do not create `context.access` aliases.
|
package/src/cli/build.test.ts
CHANGED
|
@@ -217,6 +217,11 @@ describe("buildApp", () => {
|
|
|
217
217
|
access: {
|
|
218
218
|
home: { type: "page", resourceId: "home", level: "view" },
|
|
219
219
|
records: { type: "database", resourceId: "records", level: "edit" },
|
|
220
|
+
fullRecords: {
|
|
221
|
+
type: "database",
|
|
222
|
+
resourceId: "records",
|
|
223
|
+
level: "fullAccess",
|
|
224
|
+
},
|
|
220
225
|
source: {
|
|
221
226
|
type: "dataSource",
|
|
222
227
|
resourceId: "records-source",
|
package/src/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { customAgent } from "./notion-as-code/custom-agent.js";
|
|
|
4
4
|
import { database } from "./notion-as-code/database.js";
|
|
5
5
|
import { page } from "./notion-as-code/page.js";
|
|
6
6
|
import { triggers } from "./triggers.generated.js";
|
|
7
|
-
import { workflow } from "./workflow.js";
|
|
7
|
+
import { access, workflow } from "./workflow.js";
|
|
8
8
|
|
|
9
9
|
it("infers access aliases and rejects resource-specific levels", () => {
|
|
10
10
|
const home = page({ resourceId: "home" });
|
|
@@ -28,15 +28,19 @@ it("infers access aliases and rejects resource-specific levels", () => {
|
|
|
28
28
|
description: "Checks access types",
|
|
29
29
|
triggers: [triggers.notionPageCreated()],
|
|
30
30
|
access: {
|
|
31
|
-
home:
|
|
32
|
-
singleDatabase:
|
|
33
|
-
multiDatabase:
|
|
31
|
+
home: access.view(home),
|
|
32
|
+
singleDatabase: access.edit(singleDatabase),
|
|
33
|
+
multiDatabase: access.fullAccess(multiDatabase),
|
|
34
|
+
source: access.comment(singleDatabase.dataSource),
|
|
35
|
+
agent: access.call(agent),
|
|
34
36
|
},
|
|
35
37
|
handler: (_event, context) => {
|
|
36
38
|
expectTypeOf(context.access.home.type).toEqualTypeOf<"page">();
|
|
37
39
|
expectTypeOf(context.access.home.id).toEqualTypeOf<string>();
|
|
38
40
|
expectTypeOf(context.access.singleDatabase.type).toEqualTypeOf<"database">();
|
|
39
41
|
expectTypeOf(context.access.multiDatabase.type).toEqualTypeOf<"database">();
|
|
42
|
+
expectTypeOf(context.access.source.type).toEqualTypeOf<"dataSource">();
|
|
43
|
+
expectTypeOf(context.access.agent.type).toEqualTypeOf<"customAgent">();
|
|
40
44
|
// @ts-expect-error Access aliases are limited to declarations.
|
|
41
45
|
void context.access.missing;
|
|
42
46
|
// @ts-expect-error Access values are readonly.
|
package/src/workflow-access.ts
CHANGED
|
@@ -14,6 +14,8 @@ export type WorkflowAccessResource =
|
|
|
14
14
|
| DataSourceHandle
|
|
15
15
|
| CustomAgentHandle;
|
|
16
16
|
|
|
17
|
+
type WorkflowAccessContentResource = Exclude<WorkflowAccessResource, CustomAgentHandle>;
|
|
18
|
+
|
|
17
19
|
/** Resource kinds accepted by workflow access declarations. */
|
|
18
20
|
export type WorkflowAccessResourceType = WorkflowAccessResource["resourceType"];
|
|
19
21
|
|
|
@@ -82,6 +84,45 @@ export type WorkflowAccess<
|
|
|
82
84
|
/** Resolved NaC bindings keyed by public aliases, without declaration metadata. */
|
|
83
85
|
export type WorkflowAccessBindings = Readonly<Record<string, WorkflowAccessValue>>;
|
|
84
86
|
|
|
87
|
+
/** Create type-safe access declarations for Notion-as-Code resource handles. */
|
|
88
|
+
export const access = {
|
|
89
|
+
view,
|
|
90
|
+
comment,
|
|
91
|
+
edit,
|
|
92
|
+
fullAccess,
|
|
93
|
+
call,
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
function view<TResource extends WorkflowAccessContentResource>(
|
|
97
|
+
resource: TResource,
|
|
98
|
+
): Readonly<{ resource: TResource; level: "view" }> {
|
|
99
|
+
return { resource, level: "view" };
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function comment<TResource extends WorkflowAccessContentResource>(
|
|
103
|
+
resource: TResource,
|
|
104
|
+
): Readonly<{ resource: TResource; level: "comment" }> {
|
|
105
|
+
return { resource, level: "comment" };
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function edit<TResource extends WorkflowAccessContentResource>(
|
|
109
|
+
resource: TResource,
|
|
110
|
+
): Readonly<{ resource: TResource; level: "edit" }> {
|
|
111
|
+
return { resource, level: "edit" };
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function fullAccess<TResource extends WorkflowAccessContentResource>(
|
|
115
|
+
resource: TResource,
|
|
116
|
+
): Readonly<{ resource: TResource; level: "fullAccess" }> {
|
|
117
|
+
return { resource, level: "fullAccess" };
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function call(
|
|
121
|
+
resource: CustomAgentHandle,
|
|
122
|
+
): Readonly<{ resource: CustomAgentHandle; level: "call" }> {
|
|
123
|
+
return { resource, level: "call" };
|
|
124
|
+
}
|
|
125
|
+
|
|
85
126
|
const ACCESS_ALIAS_PATTERN = /^[a-zA-Z][a-zA-Z0-9_-]{0,127}$/;
|
|
86
127
|
const RESERVED_ACCESS_ALIASES = new Set<string>(["__proto__", "prototype", "constructor"]);
|
|
87
128
|
const RESOURCE_TYPES: Record<WorkflowAccessResourceType, true> = {
|
package/src/workflow.test.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { customAgent } from "./notion-as-code/custom-agent.js";
|
|
|
12
12
|
import { database } from "./notion-as-code/database.js";
|
|
13
13
|
import { page } from "./notion-as-code/page.js";
|
|
14
14
|
import {
|
|
15
|
+
access,
|
|
15
16
|
connections,
|
|
16
17
|
workflow,
|
|
17
18
|
type StepContext,
|
|
@@ -1216,10 +1217,10 @@ describe("workflow", () => {
|
|
|
1216
1217
|
description: "Hydrates access",
|
|
1217
1218
|
triggers: [triggers.notionPageCreated()],
|
|
1218
1219
|
access: {
|
|
1219
|
-
home:
|
|
1220
|
-
table:
|
|
1221
|
-
source:
|
|
1222
|
-
agent:
|
|
1220
|
+
home: access.view(home),
|
|
1221
|
+
table: access.edit(table),
|
|
1222
|
+
source: access.comment(table.dataSource),
|
|
1223
|
+
agent: access.call(agent),
|
|
1223
1224
|
},
|
|
1224
1225
|
handler: (_event, context) => {
|
|
1225
1226
|
expectTypeOf(context.access.home.type).toEqualTypeOf<"page">();
|
package/src/workflow.ts
CHANGED
|
@@ -91,6 +91,7 @@ export type {
|
|
|
91
91
|
WorkflowAccessRequirements,
|
|
92
92
|
WorkflowAccessValue,
|
|
93
93
|
} from "./workflow-access.js";
|
|
94
|
+
export { access } from "./workflow-access.js";
|
|
94
95
|
export type WorkflowEvent = WorkflowEventMap[keyof WorkflowEventMap];
|
|
95
96
|
|
|
96
97
|
export type WorkflowEventForTrigger<T extends WorkflowTrigger> = WorkflowEventMap[T["type"]];
|