@fungi.computer/oyster 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +1134 -2
- package/dist/agents.d.ts +114 -0
- package/dist/agents.js +322 -0
- package/dist/app-builds.d.ts +210 -0
- package/dist/app-builds.js +499 -0
- package/dist/app-sandbox.d.ts +2 -0
- package/dist/app-sandbox.js +2 -0
- package/dist/app-sources.d.ts +31 -0
- package/dist/app-sources.js +370 -0
- package/dist/app-storage.d.ts +141 -0
- package/dist/app-storage.js +281 -0
- package/dist/apps/gate.d.ts +105 -0
- package/dist/apps/gate.js +273 -0
- package/dist/apps/index.d.ts +5 -0
- package/dist/apps/index.js +5 -0
- package/dist/apps/installation.d.ts +248 -0
- package/dist/apps/installation.js +307 -0
- package/dist/apps/operations.d.ts +8 -0
- package/dist/apps/operations.js +98 -0
- package/dist/apps/tools.d.ts +33 -0
- package/dist/apps/tools.js +17 -0
- package/dist/auth.d.ts +11 -0
- package/dist/auth.js +93 -0
- package/dist/backend-request.d.ts +3 -0
- package/dist/backend-request.js +53 -0
- package/dist/build/artifact-writer.d.ts +40 -0
- package/dist/build/artifact-writer.js +181 -0
- package/dist/build/build-jobs.d.ts +128 -0
- package/dist/build/build-jobs.js +203 -0
- package/dist/build/build-policy.d.ts +10 -0
- package/dist/build/build-policy.js +10 -0
- package/dist/build/build-step.d.ts +37 -0
- package/dist/build/build-step.js +28 -0
- package/dist/build/bundled-html.d.ts +7 -0
- package/dist/build/bundled-html.js +64 -0
- package/dist/build/candidate-builder.d.ts +68 -0
- package/dist/build/candidate-builder.js +91 -0
- package/dist/build/candidate-cli.d.ts +1 -0
- package/dist/build/candidate-cli.js +119 -0
- package/dist/build/candidate-cli.mjs +28170 -0
- package/dist/build/content-objects.d.ts +37 -0
- package/dist/build/content-objects.js +53 -0
- package/dist/build/definition-emission.d.ts +34 -0
- package/dist/build/definition-emission.js +201 -0
- package/dist/build/effect.d.ts +249 -0
- package/dist/build/effect.js +436 -0
- package/dist/build/git-environment.d.ts +9 -0
- package/dist/build/git-environment.js +60 -0
- package/dist/build/html-recipe.d.ts +20 -0
- package/dist/build/html-recipe.js +51 -0
- package/dist/build/local-build.d.ts +67 -0
- package/dist/build/local-build.js +1128 -0
- package/dist/build/snapshot-package-store.d.ts +12 -0
- package/dist/build/snapshot-package-store.js +36 -0
- package/dist/build/snapshot-program-scripts.d.ts +6 -0
- package/dist/build/snapshot-program-scripts.js +2 -0
- package/dist/build/snapshot-programs/snapshot-path.d.ts +2 -0
- package/dist/build/snapshot-programs/snapshot-path.js +6 -0
- package/dist/build/submission-contract.d.ts +828 -0
- package/dist/build/submission-contract.js +180 -0
- package/dist/build/workspace-build.d.ts +55 -0
- package/dist/build/workspace-build.js +200 -0
- package/dist/build-contract.d.ts +7 -0
- package/dist/build-contract.js +7 -0
- package/dist/build-egress.d.ts +62 -0
- package/dist/build-egress.js +148 -0
- package/dist/build-jobs.d.ts +2 -0
- package/dist/build-jobs.js +2 -0
- package/dist/build.d.ts +12 -0
- package/dist/build.js +14 -0
- package/dist/capability-descriptor.d.ts +46 -0
- package/dist/capability-descriptor.js +51 -0
- package/dist/catalog-frame.d.ts +39 -0
- package/dist/catalog-frame.js +72 -0
- package/dist/cause-class.d.ts +19 -0
- package/dist/cause-class.js +54 -0
- package/dist/cloudflare.d.ts +123 -0
- package/dist/cloudflare.js +391 -0
- package/dist/computer-terminal.d.ts +38 -0
- package/dist/computer-terminal.js +410 -0
- package/dist/computer.d.ts +60 -0
- package/dist/computer.js +33 -0
- package/dist/event-recipients.d.ts +57 -0
- package/dist/event-recipients.js +144 -0
- package/dist/facet-invocation.d.ts +4 -0
- package/dist/facet-invocation.js +45 -0
- package/dist/files.d.ts +42 -0
- package/dist/files.js +123 -0
- package/dist/frame-binding-wire-script.d.ts +2 -0
- package/dist/frame-binding-wire-script.js +1 -0
- package/dist/frame-binding-wire.d.ts +28 -0
- package/dist/frame-binding-wire.js +54 -0
- package/dist/git-admission.d.ts +52 -0
- package/dist/git-admission.js +188 -0
- package/dist/git-auth.d.ts +11 -0
- package/dist/git-auth.js +27 -0
- package/dist/git-door.d.ts +35 -0
- package/dist/git-door.js +108 -0
- package/dist/git-journal.d.ts +31 -0
- package/dist/git-journal.js +188 -0
- package/dist/git.d.ts +31 -0
- package/dist/git.js +64 -0
- package/dist/guest-policy.d.ts +9 -0
- package/dist/guest-policy.js +13 -0
- package/dist/host.d.ts +244 -0
- package/dist/host.js +1043 -0
- package/dist/index.d.ts +166 -0
- package/dist/index.js +320 -0
- package/dist/installation-consent.d.ts +79 -0
- package/dist/installation-consent.js +82 -0
- package/dist/internal/background-origins.d.ts +3 -0
- package/dist/internal/background-origins.js +8 -0
- package/dist/internal/delivery.d.ts +12 -0
- package/dist/internal/delivery.js +167 -0
- package/dist/internal/host-gate.d.ts +14 -0
- package/dist/internal/host-gate.js +62 -0
- package/dist/internal/registry-installations.d.ts +6 -0
- package/dist/internal/registry-installations.js +12 -0
- package/dist/invocation.d.ts +251 -0
- package/dist/invocation.js +377 -0
- package/dist/keys.d.ts +48 -0
- package/dist/keys.js +52 -0
- package/dist/mcp-owner.d.ts +27 -0
- package/dist/mcp-owner.js +155 -0
- package/dist/mcp.d.ts +89 -0
- package/dist/mcp.js +429 -0
- package/dist/media.d.ts +23 -0
- package/dist/media.js +12 -0
- package/dist/pack.d.ts +79 -0
- package/dist/pack.js +151 -0
- package/dist/page/capabilities.d.ts +23 -0
- package/dist/page/capabilities.js +256 -0
- package/dist/page/computer-handles.d.ts +79 -0
- package/dist/page/computer-handles.js +44 -0
- package/dist/page/gill-observation.d.ts +4 -0
- package/dist/page/gill-observation.js +31 -0
- package/dist/page/lifetime.d.ts +6 -0
- package/dist/page/lifetime.js +19 -0
- package/dist/page/mount.d.ts +163 -0
- package/dist/page/mount.js +390 -0
- package/dist/page/storage.d.ts +3 -0
- package/dist/page/storage.js +82 -0
- package/dist/page/terminal.d.ts +5 -0
- package/dist/page/terminal.js +7 -0
- package/dist/page/window-launch.d.ts +18 -0
- package/dist/page/window-launch.js +11 -0
- package/dist/page-script.d.ts +14 -0
- package/dist/page-script.js +5 -0
- package/dist/r2-files.d.ts +3 -0
- package/dist/r2-files.js +79 -0
- package/dist/release.d.ts +83 -0
- package/dist/release.js +167 -0
- package/dist/root-data.d.ts +86 -0
- package/dist/root-data.js +69 -0
- package/dist/shell/app-directory.d.ts +542 -0
- package/dist/shell/app-directory.js +199 -0
- package/dist/shell/browser-actions.d.ts +7 -0
- package/dist/shell/browser-actions.js +56 -0
- package/dist/shell/command-host.d.ts +112 -0
- package/dist/shell/command-host.js +502 -0
- package/dist/shell/commands.d.ts +25 -0
- package/dist/shell/commands.js +78 -0
- package/dist/shell/index.d.ts +8 -0
- package/dist/shell/index.js +8 -0
- package/dist/shell/keys.d.ts +41 -0
- package/dist/shell/keys.js +134 -0
- package/dist/shell/shell-module.d.ts +55 -0
- package/dist/shell/shell-module.js +86 -0
- package/dist/shell/window-manager.d.ts +124 -0
- package/dist/shell/window-manager.js +711 -0
- package/dist/shell/workbench-contract.d.ts +68 -0
- package/dist/shell/workbench-contract.js +1 -0
- package/dist/shell/workbench-directory.d.ts +332 -0
- package/dist/shell/workbench-directory.js +35 -0
- package/dist/shell/workbench-host-types.d.ts +96 -0
- package/dist/shell/workbench-host-types.js +1 -0
- package/dist/shell/workbench-host.d.ts +34 -0
- package/dist/shell/workbench-host.js +347 -0
- package/dist/shell/workbench-model.d.ts +192 -0
- package/dist/shell/workbench-model.js +53 -0
- package/dist/shell/workbench.d.ts +4 -0
- package/dist/shell/workbench.js +2 -0
- package/dist/source/fork.d.ts +27 -0
- package/dist/source/fork.js +46 -0
- package/dist/source/index.d.ts +10 -0
- package/dist/source/index.js +10 -0
- package/dist/source/seed-receipt.d.ts +53 -0
- package/dist/source/seed-receipt.js +18 -0
- package/dist/source/team-source.d.ts +32 -0
- package/dist/source/team-source.js +42 -0
- package/dist/source/template-push.d.ts +33 -0
- package/dist/source/template-push.js +223 -0
- package/dist/source/template-repository.d.ts +4 -0
- package/dist/source/template-repository.js +21 -0
- package/dist/source/template-seed.d.ts +68 -0
- package/dist/source/template-seed.js +80 -0
- package/dist/standalone/agent-directory.d.ts +4 -0
- package/dist/standalone/agent-directory.js +4 -0
- package/dist/standalone/agents.d.ts +220 -0
- package/dist/standalone/agents.js +795 -0
- package/dist/standalone/app-builds-binding.d.ts +36 -0
- package/dist/standalone/app-builds-binding.js +119 -0
- package/dist/standalone/app-set.d.ts +91 -0
- package/dist/standalone/app-set.js +395 -0
- package/dist/standalone/app-source.d.ts +41 -0
- package/dist/standalone/app-source.js +59 -0
- package/dist/standalone/builds.d.ts +18 -0
- package/dist/standalone/builds.js +101 -0
- package/dist/standalone/computer-egress.d.ts +37 -0
- package/dist/standalone/computer-egress.js +111 -0
- package/dist/standalone/computer.d.ts +122 -0
- package/dist/standalone/computer.js +714 -0
- package/dist/standalone/install-apps-cli.d.ts +2 -0
- package/dist/standalone/install-apps-cli.js +126 -0
- package/dist/standalone/instance.d.ts +35 -0
- package/dist/standalone/instance.js +74 -0
- package/dist/standalone/media.d.ts +76 -0
- package/dist/standalone/media.js +227 -0
- package/dist/standalone/preview.d.ts +51 -0
- package/dist/standalone/preview.js +167 -0
- package/dist/standalone/registry.d.ts +102 -0
- package/dist/standalone/registry.js +193 -0
- package/dist/standalone/tenancy.d.ts +42 -0
- package/dist/standalone/tenancy.js +241 -0
- package/dist/standalone/worker.d.ts +55 -0
- package/dist/standalone/worker.js +147 -0
- package/dist/standalone/workflow-authority-readers.d.ts +16 -0
- package/dist/standalone/workflow-authority-readers.js +35 -0
- package/dist/standalone/workflow-binding.d.ts +216 -0
- package/dist/standalone/workflow-binding.js +217 -0
- package/dist/standalone/workflow-events.d.ts +46 -0
- package/dist/standalone/workflow-events.js +39 -0
- package/dist/standalone/workflow-git-capture.d.ts +7 -0
- package/dist/standalone/workflow-git-capture.js +62 -0
- package/dist/standalone/workflow-host.d.ts +931 -0
- package/dist/standalone/workflow-host.js +751 -0
- package/dist/standalone/workflow-node-capture.d.ts +13 -0
- package/dist/standalone/workflow-node-capture.js +72 -0
- package/dist/standalone/workflow-root-authority.d.ts +27 -0
- package/dist/standalone/workflow-root-authority.js +87 -0
- package/dist/standalone/workflow-schedules.d.ts +52 -0
- package/dist/standalone/workflow-schedules.js +40 -0
- package/dist/standalone/workflow-trigger-host.d.ts +1694 -0
- package/dist/standalone/workflow-trigger-host.js +52 -0
- package/dist/standalone/workflows.d.ts +657 -0
- package/dist/standalone/workflows.js +554 -0
- package/dist/storage-frame.d.ts +64 -0
- package/dist/storage-frame.js +28 -0
- package/dist/tenancy/auth0.d.ts +64 -0
- package/dist/tenancy/auth0.js +198 -0
- package/dist/tenancy/cloudflare/rate-limit.d.ts +8 -0
- package/dist/tenancy/cloudflare/rate-limit.js +19 -0
- package/dist/tenancy/cloudflare/registry.d.ts +50 -0
- package/dist/tenancy/cloudflare/registry.js +301 -0
- package/dist/tenancy/cloudflare.d.ts +2 -0
- package/dist/tenancy/cloudflare.js +2 -0
- package/dist/tenancy/cold-directory.d.ts +13 -0
- package/dist/tenancy/cold-directory.js +43 -0
- package/dist/tenancy/contracts.d.ts +195 -0
- package/dist/tenancy/contracts.js +1 -0
- package/dist/tenancy/index.d.ts +19 -0
- package/dist/tenancy/index.js +156 -0
- package/dist/tenancy/owner-key.d.ts +26 -0
- package/dist/tenancy/owner-key.js +63 -0
- package/dist/tenancy/oyster.d.ts +4 -0
- package/dist/tenancy/oyster.js +25 -0
- package/dist/tenancy/registry-record.d.ts +7 -0
- package/dist/tenancy/registry-record.js +44 -0
- package/dist/tenancy/registry.d.ts +27 -0
- package/dist/tenancy/registry.js +138 -0
- package/dist/tenancy/resolve.d.ts +7 -0
- package/dist/tenancy/resolve.js +64 -0
- package/dist/tenant.d.ts +81 -0
- package/dist/tenant.js +71 -0
- package/dist/testing/capabilities.d.ts +29 -0
- package/dist/testing/capabilities.js +130 -0
- package/dist/testing/catalog.d.ts +3 -0
- package/dist/testing/catalog.js +53 -0
- package/dist/testing/index.d.ts +10 -0
- package/dist/testing/index.js +10 -0
- package/dist/testing/installation.d.ts +11 -0
- package/dist/testing/installation.js +25 -0
- package/dist/testing/native-worker.d.ts +21 -0
- package/dist/testing/native-worker.js +106 -0
- package/dist/testing/worker.d.ts +18 -0
- package/dist/testing/worker.js +67 -0
- package/dist/testing/workers-runtime.d.ts +24 -0
- package/dist/testing/workers-runtime.js +33 -0
- package/dist/webhook-delivery.d.ts +14 -0
- package/dist/webhook-delivery.js +17 -0
- package/dist/workers-git.d.ts +285 -0
- package/dist/workers-git.js +1174 -0
- package/dist/workers.d.ts +352 -0
- package/dist/workers.js +868 -0
- package/docs/api/README.md +82 -0
- package/docs/api/agents.md +332 -0
- package/docs/api/app-storage.md +209 -0
- package/docs/api/apps.md +1375 -0
- package/docs/api/auth.md +63 -0
- package/docs/api/build-contract.md +1304 -0
- package/docs/api/build.md +1712 -0
- package/docs/api/cloudflare.md +421 -0
- package/docs/api/computer.md +203 -0
- package/docs/api/files.md +117 -0
- package/docs/api/git.md +470 -0
- package/docs/api/host.md +1328 -0
- package/docs/api/index.md +430 -0
- package/docs/api/invocation.md +738 -0
- package/docs/api/keys.md +175 -0
- package/docs/api/mcp.md +301 -0
- package/docs/api/media.md +40 -0
- package/docs/api/modules.md +50 -0
- package/docs/api/pack.md +141 -0
- package/docs/api/page/mount.md +298 -0
- package/docs/api/root-data.md +111 -0
- package/docs/api/shell/app-directory.md +599 -0
- package/docs/api/shell/command-host.md +224 -0
- package/docs/api/shell/commands.md +197 -0
- package/docs/api/shell/keys.md +183 -0
- package/docs/api/shell/shell-module.md +204 -0
- package/docs/api/shell/window-manager.md +267 -0
- package/docs/api/shell/workbench-directory.md +119 -0
- package/docs/api/shell/workbench.md +205 -0
- package/docs/api/shell.md +1915 -0
- package/docs/api/tenancy/auth0.md +110 -0
- package/docs/api/tenancy/cloudflare.md +221 -0
- package/docs/api/tenancy/cold-directory.md +46 -0
- package/docs/api/tenancy/owner-key.md +63 -0
- package/docs/api/tenancy/registry.md +77 -0
- package/docs/api/tenancy/resolve.md +69 -0
- package/docs/api/tenancy.md +430 -0
- package/docs/api/tenant.md +194 -0
- package/docs/api/workers-git.md +1646 -0
- package/docs/api/workers.md +1691 -0
- package/docs/site/agent-quickstart.mdx +346 -0
- package/examples/standalone/worker.ts +7 -0
- package/examples/standalone/wrangler.jsonc +82 -0
- package/package.json +300 -3
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/auth0
|
|
8
|
+
|
|
9
|
+
# tenancy/auth0
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### Auth0Transaction
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type Auth0Transaction = Readonly<{
|
|
17
|
+
tenantId: TenantId;
|
|
18
|
+
redirectUri: string;
|
|
19
|
+
state: string;
|
|
20
|
+
codeVerifier: string;
|
|
21
|
+
expiresAt: number;
|
|
22
|
+
}>;
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
One short-lived, single-use browser authorization transaction.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
### Auth0Session
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
type Auth0Session = Readonly<{
|
|
33
|
+
tenantId: TenantId;
|
|
34
|
+
identity: Identity;
|
|
35
|
+
expiresAt: number;
|
|
36
|
+
}>;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Server-owned verified identity session; browsers receive only its random handle.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### Auth0BrowserOptions
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
type Auth0BrowserOptions = Readonly<{
|
|
47
|
+
callbackPath: string;
|
|
48
|
+
resolveTenant: ReadonlyTenancy["resolve"];
|
|
49
|
+
registry: Pick<ReadonlyTenantRegistry, "get" | "membershipOf">;
|
|
50
|
+
transactions: Readonly<{
|
|
51
|
+
put: Promise<void>;
|
|
52
|
+
take: Promise<Readonly<{
|
|
53
|
+
tenantId: TenantId;
|
|
54
|
+
redirectUri: string;
|
|
55
|
+
state: string;
|
|
56
|
+
codeVerifier: string;
|
|
57
|
+
expiresAt: number;
|
|
58
|
+
}> | null>;
|
|
59
|
+
}>;
|
|
60
|
+
sessions: Readonly<{
|
|
61
|
+
put: Promise<void>;
|
|
62
|
+
get: Promise<Readonly<{
|
|
63
|
+
tenantId: TenantId;
|
|
64
|
+
identity: Identity;
|
|
65
|
+
expiresAt: number;
|
|
66
|
+
}> | null>;
|
|
67
|
+
}>;
|
|
68
|
+
}>;
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Host ports for optional browser login; stored state must be shared across host
|
|
72
|
+
instances.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### Auth0Options
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
type Auth0Options = Readonly<{
|
|
80
|
+
domain: string;
|
|
81
|
+
clientId: string;
|
|
82
|
+
audience: string;
|
|
83
|
+
clientSecret?: string;
|
|
84
|
+
fetch?: typeof globalThis.fetch;
|
|
85
|
+
browser?: Auth0BrowserOptions;
|
|
86
|
+
}>;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Auth0 issuer and audience configuration; browser login is opt-in.
|
|
90
|
+
|
|
91
|
+
## Functions
|
|
92
|
+
|
|
93
|
+
### auth0()
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
function auth0(options): AuthAdapter;
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Verify Auth0 identities; the registry alone supplies canonical membership and
|
|
100
|
+
role.
|
|
101
|
+
|
|
102
|
+
#### Parameters
|
|
103
|
+
|
|
104
|
+
| Parameter | Type |
|
|
105
|
+
| --------- | ------------------------------- |
|
|
106
|
+
| `options` | [`Auth0Options`](#auth0options) |
|
|
107
|
+
|
|
108
|
+
#### Returns
|
|
109
|
+
|
|
110
|
+
[`AuthAdapter`](../tenancy.md#authadapter)
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/cloudflare
|
|
8
|
+
|
|
9
|
+
# tenancy/cloudflare
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### RateLimitOptions
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type RateLimitOptions = Readonly<{
|
|
17
|
+
retryAfterSeconds: number;
|
|
18
|
+
}>;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Retry-After is an advisory response delay, not a configured quota or reset time.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
### RegistryAdmission
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
type RegistryAdmission = Readonly<{
|
|
29
|
+
tenant: Tenant;
|
|
30
|
+
membership: Membership | null;
|
|
31
|
+
}>;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The registry owner's atomic read of one host and one identity.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### AdmissionRecord
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
type AdmissionRecord = RegistryAdmission &
|
|
42
|
+
Readonly<{
|
|
43
|
+
host: string;
|
|
44
|
+
identity: Identity;
|
|
45
|
+
}>;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
One request's atomic registry read, with the host and identity it named.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### TenantAdmission
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
type TenantAdmission = AdmissionRecord & Brand<"TenantAdmission">;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
One atomic registry read for one request. Only
|
|
59
|
+
[durableObjectRegistry](#durableobjectregistry) constructs it, so lower layers
|
|
60
|
+
cannot mint authority.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### TenancyRegistryDO
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
type TenancyRegistryDO = ManagedTenantRegistry &
|
|
68
|
+
Required<Pick<ReadonlyTenantRegistry, "byDomain">> &
|
|
69
|
+
Readonly<{
|
|
70
|
+
admission: Promise<Readonly<{
|
|
71
|
+
tenant: Tenant;
|
|
72
|
+
membership: Membership | null;
|
|
73
|
+
}> | null>;
|
|
74
|
+
}> &
|
|
75
|
+
Rpc.DurableObjectBranded;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Native registry instance; its public shape exposes no runtime-private state.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### DomainRegistry
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
type DomainRegistry = ReadonlyTenantRegistry &
|
|
86
|
+
Required<Pick<ReadonlyTenantRegistry, "byDomain">>;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
A read-only registry that includes the provisioned-domain index.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### DurableReadonlyRegistry
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
type DurableReadonlyRegistry = DomainRegistry &
|
|
97
|
+
Readonly<{
|
|
98
|
+
admission: Promise<TenantAdmission | null>;
|
|
99
|
+
}>;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Read-only native registry, with one-read request admission.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### DurableRegistry
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
type DurableRegistry = ManagedTenantRegistry & DurableReadonlyRegistry;
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Managed native registry includes the provisioned-domain index.
|
|
113
|
+
|
|
114
|
+
## Variables
|
|
115
|
+
|
|
116
|
+
### TenancyRegistryDO
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
TenancyRegistryDO: (ctx) => TenancyRegistryDO;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Re-export from a host Worker and bind a SQLite-backed Durable Object namespace.
|
|
123
|
+
|
|
124
|
+
Re-export from a host Worker and bind a SQLite-backed Durable Object namespace.
|
|
125
|
+
|
|
126
|
+
#### Parameters
|
|
127
|
+
|
|
128
|
+
| Parameter | Type |
|
|
129
|
+
| --------- | -------------------- |
|
|
130
|
+
| `ctx` | `DurableObjectState` |
|
|
131
|
+
|
|
132
|
+
#### Returns
|
|
133
|
+
|
|
134
|
+
[`TenancyRegistryDO`](#tenancyregistrydo-1)
|
|
135
|
+
|
|
136
|
+
## Functions
|
|
137
|
+
|
|
138
|
+
### rateLimit()
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
function rateLimit(binding, options): TenancyPolicy;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Delegate abuse admission to the configured native binding, using only its key
|
|
145
|
+
API.
|
|
146
|
+
|
|
147
|
+
#### Parameters
|
|
148
|
+
|
|
149
|
+
| Parameter | Type |
|
|
150
|
+
| --------- | --------------------------------------- |
|
|
151
|
+
| `binding` | `Pick`\<`RateLimit`, `"limit"`\> |
|
|
152
|
+
| `options` | [`RateLimitOptions`](#ratelimitoptions) |
|
|
153
|
+
|
|
154
|
+
#### Returns
|
|
155
|
+
|
|
156
|
+
[`TenancyPolicy`](../tenancy.md#tenancypolicy)
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### durableObjectRegistry()
|
|
161
|
+
|
|
162
|
+
#### Call Signature
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
function durableObjectRegistry(binding, options): DurableReadonlyRegistry;
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Explicitly expose only read methods when the host requests a read-only facade.
|
|
169
|
+
|
|
170
|
+
##### Parameters
|
|
171
|
+
|
|
172
|
+
| Parameter | Type |
|
|
173
|
+
| ------------------ | ------------------------------------------------------------------------------------------------ |
|
|
174
|
+
| `binding` | `Pick`\<`DurableObjectNamespace`\<[`TenancyRegistryDO`](#tenancyregistrydo-1)\>, `"getByName"`\> |
|
|
175
|
+
| `options` | \{ `readonly`: `true`; \} |
|
|
176
|
+
| `options.readonly` | `true` |
|
|
177
|
+
|
|
178
|
+
##### Returns
|
|
179
|
+
|
|
180
|
+
[`DurableReadonlyRegistry`](#durablereadonlyregistry)
|
|
181
|
+
|
|
182
|
+
#### Call Signature
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
function durableObjectRegistry(binding, options?): DurableRegistry;
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Use one namespace's registry object as the tenant and owner mapping authority.
|
|
189
|
+
|
|
190
|
+
##### Parameters
|
|
191
|
+
|
|
192
|
+
| Parameter | Type |
|
|
193
|
+
| ------------------- | ------------------------------------------------------------------------------------------------ |
|
|
194
|
+
| `binding` | `Pick`\<`DurableObjectNamespace`\<[`TenancyRegistryDO`](#tenancyregistrydo-1)\>, `"getByName"`\> |
|
|
195
|
+
| `options?` | \{ `readonly?`: `false`; \} |
|
|
196
|
+
| `options.readonly?` | `false` |
|
|
197
|
+
|
|
198
|
+
##### Returns
|
|
199
|
+
|
|
200
|
+
[`DurableRegistry`](#durableregistry)
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### admittedRegistry()
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
function admittedRegistry(admission): DomainRegistry;
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Answer registry reads only from one request's admission. Any other tenant, host,
|
|
211
|
+
identity or member reads as absent, so every refusal stays closed.
|
|
212
|
+
|
|
213
|
+
#### Parameters
|
|
214
|
+
|
|
215
|
+
| Parameter | Type |
|
|
216
|
+
| ----------- | ------------------------------------- |
|
|
217
|
+
| `admission` | [`TenantAdmission`](#tenantadmission) |
|
|
218
|
+
|
|
219
|
+
#### Returns
|
|
220
|
+
|
|
221
|
+
[`DomainRegistry`](#domainregistry)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/cold-directory
|
|
8
|
+
|
|
9
|
+
# tenancy/cold-directory
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### ColdTenantDirectory
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type ColdTenantDirectory = Readonly<{
|
|
17
|
+
resolve: Promise<Readonly<{
|
|
18
|
+
scope: TenantScope;
|
|
19
|
+
auth: OysterAuth;
|
|
20
|
+
}> | null>;
|
|
21
|
+
}>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Live directory admission for a host-persisted tenant during background work.
|
|
25
|
+
|
|
26
|
+
## Functions
|
|
27
|
+
|
|
28
|
+
### coldTenantDirectory()
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
function coldTenantDirectory(registry): ColdTenantDirectory;
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Reconstruct background admission from the same host-owned tenant registry. Every
|
|
35
|
+
selection and member lookup reads current authority. This adapter has no
|
|
36
|
+
credential authority: its authenticate method always refuses requests.
|
|
37
|
+
|
|
38
|
+
#### Parameters
|
|
39
|
+
|
|
40
|
+
| Parameter | Type |
|
|
41
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
42
|
+
| `registry` | `Pick`\<[`ReadonlyTenantRegistry`](../tenancy.md#readonlytenantregistry), `"get"` \| `"status"` \| `"memberById"`\> |
|
|
43
|
+
|
|
44
|
+
#### Returns
|
|
45
|
+
|
|
46
|
+
[`ColdTenantDirectory`](#coldtenantdirectory)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/owner-key
|
|
8
|
+
|
|
9
|
+
# tenancy/owner-key
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### OwnerKeyRecord
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type OwnerKeyRecord = Readonly<{
|
|
17
|
+
key: string;
|
|
18
|
+
memberId: string;
|
|
19
|
+
}>;
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Stored owner verification material for one selected tenant.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
### OwnerKeyOptions
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
type OwnerKeyOptions = Readonly<{
|
|
30
|
+
registry: Pick<ReadonlyTenantRegistry, "get">;
|
|
31
|
+
keys: Readonly<{
|
|
32
|
+
get: Promise<Readonly<{
|
|
33
|
+
key: string;
|
|
34
|
+
memberId: string;
|
|
35
|
+
}> | null>;
|
|
36
|
+
}>;
|
|
37
|
+
login?: Readonly<{
|
|
38
|
+
resolveTenant: ReadonlyTenancy["resolve"];
|
|
39
|
+
}>;
|
|
40
|
+
}>;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Live owner authority and host-held verification material.
|
|
44
|
+
|
|
45
|
+
## Functions
|
|
46
|
+
|
|
47
|
+
### ownerKey()
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
function ownerKey(options): AuthAdapter;
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Reuse Oyster verification and admit only a current, explicitly stored owner.
|
|
54
|
+
|
|
55
|
+
#### Parameters
|
|
56
|
+
|
|
57
|
+
| Parameter | Type |
|
|
58
|
+
| --------- | ------------------------------------- |
|
|
59
|
+
| `options` | [`OwnerKeyOptions`](#ownerkeyoptions) |
|
|
60
|
+
|
|
61
|
+
#### Returns
|
|
62
|
+
|
|
63
|
+
[`AuthAdapter`](../tenancy.md#authadapter)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/registry
|
|
8
|
+
|
|
9
|
+
# tenancy/registry
|
|
10
|
+
|
|
11
|
+
## Type Aliases
|
|
12
|
+
|
|
13
|
+
### MemoryMembership
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
type MemoryMembership = Readonly<{
|
|
17
|
+
tenantId: TenantId;
|
|
18
|
+
identity: Identity;
|
|
19
|
+
memberId: string;
|
|
20
|
+
role: Membership["role"];
|
|
21
|
+
}>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Initial live membership records for a disposable in-memory registry.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
### MemoryRegistryOptions
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
type MemoryRegistryOptions = Readonly<{
|
|
32
|
+
tenants?: readonly Tenant[];
|
|
33
|
+
memberships?: readonly MemoryMembership[];
|
|
34
|
+
}>;
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Provisioned records and canonical member mappings owned by the host.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### MemoryRegistry
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
type MemoryRegistry = ManagedTenantRegistry &
|
|
45
|
+
Readonly<{
|
|
46
|
+
byDomain: Promise<Readonly<{
|
|
47
|
+
id: TenantId;
|
|
48
|
+
handle: string;
|
|
49
|
+
origin: string;
|
|
50
|
+
status: "active" | "suspended" | "deleting";
|
|
51
|
+
owners: readonly string[];
|
|
52
|
+
domains: readonly string[];
|
|
53
|
+
}> | null>;
|
|
54
|
+
}>;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The memory adapter always supplies the optional custom-domain index.
|
|
58
|
+
|
|
59
|
+
## Functions
|
|
60
|
+
|
|
61
|
+
### memoryRegistry()
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
function memoryRegistry(options?): MemoryRegistry;
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
In-memory tenant and member owner; create updates both atomically.
|
|
68
|
+
|
|
69
|
+
#### Parameters
|
|
70
|
+
|
|
71
|
+
| Parameter | Type |
|
|
72
|
+
| --------- | ------------------------------------------------- |
|
|
73
|
+
| `options` | [`MemoryRegistryOptions`](#memoryregistryoptions) |
|
|
74
|
+
|
|
75
|
+
#### Returns
|
|
76
|
+
|
|
77
|
+
[`MemoryRegistry`](#memoryregistry)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!-- Generated by Botanical API docs (TypeDoc + typedoc-plugin-markdown). Do not edit. -->
|
|
2
|
+
|
|
3
|
+
[**@fungi.computer/oyster**](../README.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
[@fungi.computer/oyster](../modules.md) / tenancy/resolve
|
|
8
|
+
|
|
9
|
+
# tenancy/resolve
|
|
10
|
+
|
|
11
|
+
## Functions
|
|
12
|
+
|
|
13
|
+
### subdomain()
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
function subdomain(baseDomain): TenantResolverAdapter<"origin">;
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Resolve a provisioned label immediately below a configured base hostname.
|
|
20
|
+
|
|
21
|
+
#### Parameters
|
|
22
|
+
|
|
23
|
+
| Parameter | Type |
|
|
24
|
+
| ------------ | -------- |
|
|
25
|
+
| `baseDomain` | `string` |
|
|
26
|
+
|
|
27
|
+
#### Returns
|
|
28
|
+
|
|
29
|
+
[`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"origin"`\>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### hosts()
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
function hosts(registry): TenantResolverAdapter<"origin">;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Resolve a provisioned custom domain through the registry's domain index.
|
|
40
|
+
|
|
41
|
+
#### Parameters
|
|
42
|
+
|
|
43
|
+
| Parameter | Type |
|
|
44
|
+
| ---------- | ---------------------------------------------------------------- |
|
|
45
|
+
| `registry` | [`ReadonlyTenantRegistry`](../tenancy.md#readonlytenantregistry) |
|
|
46
|
+
|
|
47
|
+
#### Returns
|
|
48
|
+
|
|
49
|
+
[`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"origin"`\>
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### path()
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
function path(pattern): TenantResolverAdapter<"path">;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Resolve provisioned path tenants for APIs; this resolver cannot host Oyster.
|
|
60
|
+
|
|
61
|
+
#### Parameters
|
|
62
|
+
|
|
63
|
+
| Parameter | Type |
|
|
64
|
+
| --------- | -------- |
|
|
65
|
+
| `pattern` | `string` |
|
|
66
|
+
|
|
67
|
+
#### Returns
|
|
68
|
+
|
|
69
|
+
[`TenantResolverAdapter`](../tenancy.md#tenantresolveradapter)\<`"path"`\>
|