@pellux/goodvibes-sdk 0.25.8 → 0.25.10
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 +4 -0
- package/dist/_internal/contracts/artifacts/operator-contract.json +1 -1
- package/dist/_internal/contracts/generated/foundation-metadata.d.ts +1 -1
- package/dist/_internal/contracts/generated/foundation-metadata.js +1 -1
- package/dist/_internal/contracts/generated/operator-contract.js +1 -1
- package/dist/_internal/platform/batch/manager.d.ts.map +1 -1
- package/dist/_internal/platform/batch/manager.js +4 -0
- package/dist/_internal/platform/batch/types.d.ts +4 -0
- package/dist/_internal/platform/batch/types.d.ts.map +1 -1
- package/dist/_internal/platform/cloudflare/client.d.ts +3 -0
- package/dist/_internal/platform/cloudflare/client.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/client.js +9 -0
- package/dist/_internal/platform/cloudflare/config.d.ts +8 -0
- package/dist/_internal/platform/cloudflare/config.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/config.js +48 -0
- package/dist/_internal/platform/cloudflare/constants.d.ts +18 -0
- package/dist/_internal/platform/cloudflare/constants.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/constants.js +36 -0
- package/dist/_internal/platform/cloudflare/discovery.d.ts +23 -0
- package/dist/_internal/platform/cloudflare/discovery.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/discovery.js +57 -0
- package/dist/_internal/platform/cloudflare/index.d.ts +6 -0
- package/dist/_internal/platform/cloudflare/index.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/index.js +4 -0
- package/dist/_internal/platform/cloudflare/manager.d.ts +30 -0
- package/dist/_internal/platform/cloudflare/manager.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/manager.js +671 -0
- package/dist/_internal/platform/cloudflare/resources.d.ts +79 -0
- package/dist/_internal/platform/cloudflare/resources.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/resources.js +353 -0
- package/dist/_internal/platform/cloudflare/types.d.ts +689 -0
- package/dist/_internal/platform/cloudflare/types.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/types.js +10 -0
- package/dist/_internal/platform/cloudflare/utils.d.ts +14 -0
- package/dist/_internal/platform/cloudflare/utils.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/utils.js +222 -0
- package/dist/_internal/platform/cloudflare/worker-source.d.ts +2 -0
- package/dist/_internal/platform/cloudflare/worker-source.d.ts.map +1 -0
- package/dist/_internal/platform/cloudflare/worker-source.js +165 -0
- package/dist/_internal/platform/config/schema-domain-runtime.d.ts +24 -0
- package/dist/_internal/platform/config/schema-domain-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/config/schema-domain-runtime.js +169 -0
- package/dist/_internal/platform/config/schema-types.d.ts +26 -2
- package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/cloudflare-routes.d.ts +7 -0
- package/dist/_internal/platform/daemon/http/cloudflare-routes.d.ts.map +1 -0
- package/dist/_internal/platform/daemon/http/cloudflare-routes.js +201 -0
- package/dist/_internal/platform/daemon/http/router.d.ts +1 -1
- package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/router.js +15 -0
- package/dist/_internal/platform/version.js +1 -1
- package/dist/workers.d.ts +3 -0
- package/dist/workers.d.ts.map +1 -1
- package/dist/workers.js +13 -1
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CloudflareAccountLike, CloudflareApiClient, CloudflareComponent, CloudflareComponentSelection, CloudflareKvNamespaceLike, CloudflarePermissionGroupLike, CloudflareQueueLike, CloudflareTokenPermissionRequirement } from './types.js';
|
|
2
|
+
export declare function resolveComponents(selection: CloudflareComponentSelection | undefined): Readonly<Record<CloudflareComponent, boolean>>;
|
|
3
|
+
export declare function buildTokenRequirements(components: Readonly<Record<CloudflareComponent, boolean>>, includeBootstrap: boolean): readonly CloudflareTokenPermissionRequirement[];
|
|
4
|
+
export declare function selectPermissionGroups(requirements: readonly CloudflareTokenPermissionRequirement[], groups: readonly CloudflarePermissionGroupLike[]): readonly string[];
|
|
5
|
+
export declare function buildTokenResources(accountId: string, zoneId: string | undefined, components: Readonly<Record<CloudflareComponent, boolean>>): Record<string, string>;
|
|
6
|
+
export declare function collectSingleAccount(client: CloudflareApiClient, accountId: string, warnings: string[]): Promise<readonly CloudflareAccountLike[]>;
|
|
7
|
+
export declare function collectAsync<T>(iterable: AsyncIterable<T>, limit?: number): Promise<readonly T[]>;
|
|
8
|
+
export declare function clean(value: string | undefined): string;
|
|
9
|
+
export declare function stripTrailingSlash(value: string): string;
|
|
10
|
+
export declare function hostnameFromUrl(value: string): string;
|
|
11
|
+
export declare function requireQueueId(queue: CloudflareQueueLike, queueName: string): string;
|
|
12
|
+
export declare function requireKvNamespaceId(namespace: CloudflareKvNamespaceLike): string;
|
|
13
|
+
export declare function safeResponseText(response: Response): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,mBAAmB,EACnB,oCAAoC,EACrC,MAAM,YAAY,CAAC;AAGpB,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,4BAA4B,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAKrI;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,EAC1D,gBAAgB,EAAE,OAAO,GACxB,SAAS,oCAAoC,EAAE,CAwHjD;AAED,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,SAAS,oCAAoC,EAAE,EAC7D,MAAM,EAAE,SAAS,6BAA6B,EAAE,GAC/C,SAAS,MAAM,EAAE,CAoBnB;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,GACzD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAW3C;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAOpG;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,yBAAyB,GAAG,MAAM,CAGjF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { summarizeError } from '../utils/error-display.js';
|
|
2
|
+
import { COMPONENT_ORDER, DEFAULT_COMPONENTS } from './constants.js';
|
|
3
|
+
import { CloudflareControlPlaneError } from './types.js';
|
|
4
|
+
export function resolveComponents(selection) {
|
|
5
|
+
return COMPONENT_ORDER.reduce((components, component) => {
|
|
6
|
+
components[component] = selection?.[component] ?? DEFAULT_COMPONENTS[component];
|
|
7
|
+
return components;
|
|
8
|
+
}, { ...DEFAULT_COMPONENTS });
|
|
9
|
+
}
|
|
10
|
+
export function buildTokenRequirements(components, includeBootstrap) {
|
|
11
|
+
const requirements = [];
|
|
12
|
+
if (includeBootstrap) {
|
|
13
|
+
requirements.push({
|
|
14
|
+
component: 'bootstrap',
|
|
15
|
+
scope: 'account',
|
|
16
|
+
permission: 'Account API Tokens Write',
|
|
17
|
+
alternatives: ['API Tokens Write'],
|
|
18
|
+
reason: 'Create the narrower GoodVibes operational token from the temporary bootstrap token.',
|
|
19
|
+
}, {
|
|
20
|
+
component: 'bootstrap',
|
|
21
|
+
scope: 'account',
|
|
22
|
+
permission: 'Account Settings Read',
|
|
23
|
+
alternatives: ['Account Read'],
|
|
24
|
+
reason: 'Read the selected Cloudflare account during bootstrap validation.',
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
if (components.workers) {
|
|
28
|
+
requirements.push({
|
|
29
|
+
component: 'workers',
|
|
30
|
+
scope: 'account',
|
|
31
|
+
permission: 'Workers Scripts Write',
|
|
32
|
+
alternatives: ['Workers Scripts Edit', 'Worker Scripts Write'],
|
|
33
|
+
reason: 'Deploy the GoodVibes Worker bridge, install bindings, cron triggers, and Worker secrets.',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (components.queues) {
|
|
37
|
+
requirements.push({
|
|
38
|
+
component: 'queues',
|
|
39
|
+
scope: 'account',
|
|
40
|
+
permission: 'Workers Queues Write',
|
|
41
|
+
alternatives: ['Queues Write', 'Cloudflare Queues Write'],
|
|
42
|
+
reason: 'Create GoodVibes batch queues, dead-letter queues, and Worker consumers.',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (components.zeroTrustTunnel) {
|
|
46
|
+
requirements.push({
|
|
47
|
+
component: 'zeroTrustTunnel',
|
|
48
|
+
scope: 'account',
|
|
49
|
+
permission: 'Cloudflare Tunnel Write',
|
|
50
|
+
alternatives: ['Cloudflare Tunnels Write', 'Cloudflare Tunnel Edit'],
|
|
51
|
+
reason: 'Create and configure a remotely-managed Tunnel for daemon ingress.',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (components.zeroTrustAccess) {
|
|
55
|
+
requirements.push({
|
|
56
|
+
component: 'zeroTrustAccess',
|
|
57
|
+
scope: 'account',
|
|
58
|
+
permission: 'Access: Apps and Policies Write',
|
|
59
|
+
alternatives: ['Access Apps and Policies Write', 'Zero Trust Write'],
|
|
60
|
+
reason: 'Create/update the Access application that protects the daemon hostname.',
|
|
61
|
+
}, {
|
|
62
|
+
component: 'zeroTrustAccess',
|
|
63
|
+
scope: 'account',
|
|
64
|
+
permission: 'Access: Service Tokens Write',
|
|
65
|
+
alternatives: ['Access Service Tokens Write', 'Zero Trust Service Tokens Write'],
|
|
66
|
+
reason: 'Create a service token for GoodVibes daemon-to-Access authentication.',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (components.dns) {
|
|
70
|
+
requirements.push({
|
|
71
|
+
component: 'dns',
|
|
72
|
+
scope: 'zone',
|
|
73
|
+
permission: 'Zone Read',
|
|
74
|
+
alternatives: ['Zone Settings Read'],
|
|
75
|
+
reason: 'Discover/select the Cloudflare zone for GoodVibes hostnames.',
|
|
76
|
+
}, {
|
|
77
|
+
component: 'dns',
|
|
78
|
+
scope: 'zone',
|
|
79
|
+
permission: 'DNS Write',
|
|
80
|
+
alternatives: ['DNS Edit'],
|
|
81
|
+
reason: 'Create or update GoodVibes CNAME records.',
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (components.kv) {
|
|
85
|
+
requirements.push({
|
|
86
|
+
component: 'kv',
|
|
87
|
+
scope: 'account',
|
|
88
|
+
permission: 'Workers KV Storage Write',
|
|
89
|
+
alternatives: ['Workers KV Storage Edit', 'KV Storage Write'],
|
|
90
|
+
reason: 'Create and bind the GoodVibes KV namespace for lightweight edge state.',
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (components.durableObjects) {
|
|
94
|
+
requirements.push({
|
|
95
|
+
component: 'durableObjects',
|
|
96
|
+
scope: 'account',
|
|
97
|
+
permission: 'Workers Scripts Write',
|
|
98
|
+
alternatives: ['Workers Scripts Edit', 'Worker Scripts Write'],
|
|
99
|
+
reason: 'Apply the Worker migration and Durable Object binding used for edge coordination.',
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (components.secretsStore) {
|
|
103
|
+
requirements.push({
|
|
104
|
+
component: 'secretsStore',
|
|
105
|
+
scope: 'account',
|
|
106
|
+
permission: 'Secrets Store Write',
|
|
107
|
+
alternatives: ['Secrets Store Edit', 'Secrets Write'],
|
|
108
|
+
reason: 'Create or reuse a Cloudflare Secrets Store for future account-level secrets.',
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (components.r2) {
|
|
112
|
+
requirements.push({
|
|
113
|
+
component: 'r2',
|
|
114
|
+
scope: 'r2',
|
|
115
|
+
permission: 'Workers R2 Storage Write',
|
|
116
|
+
alternatives: ['R2 Storage Write', 'Workers R2 Storage Edit'],
|
|
117
|
+
reason: 'Create and bind a Standard R2 bucket for optional GoodVibes artifacts.',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return uniqueRequirements(requirements);
|
|
121
|
+
}
|
|
122
|
+
export function selectPermissionGroups(requirements, groups) {
|
|
123
|
+
const ids = [];
|
|
124
|
+
const missing = [];
|
|
125
|
+
for (const requirement of requirements) {
|
|
126
|
+
const names = [requirement.permission, ...(requirement.alternatives ?? [])];
|
|
127
|
+
const group = groups.find((entry) => entry.id && entry.name && names.some((name) => normalizePermissionName(entry.name) === normalizePermissionName(name)));
|
|
128
|
+
if (group?.id) {
|
|
129
|
+
ids.push(group.id);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
missing.push(`${requirement.permission} (${requirement.component})`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (missing.length > 0) {
|
|
136
|
+
throw new CloudflareControlPlaneError(`Could not resolve Cloudflare permission groups for: ${missing.join(', ')}. Use /api/cloudflare/token/requirements to show the exact required token shape and create the operational token manually if this Cloudflare account uses different permission names.`, 'CLOUDFLARE_PERMISSION_GROUPS_MISSING', 400);
|
|
137
|
+
}
|
|
138
|
+
return Array.from(new Set(ids));
|
|
139
|
+
}
|
|
140
|
+
export function buildTokenResources(accountId, zoneId, components) {
|
|
141
|
+
const resources = {
|
|
142
|
+
[`com.cloudflare.api.account.${accountId}`]: '*',
|
|
143
|
+
};
|
|
144
|
+
if (components.dns || components.zeroTrustAccess) {
|
|
145
|
+
resources[zoneId ? `com.cloudflare.api.account.zone.${zoneId}` : 'com.cloudflare.api.account.zone.*'] = '*';
|
|
146
|
+
}
|
|
147
|
+
if (components.r2) {
|
|
148
|
+
resources['com.cloudflare.edge.r2.bucket.*'] = '*';
|
|
149
|
+
}
|
|
150
|
+
return resources;
|
|
151
|
+
}
|
|
152
|
+
export async function collectSingleAccount(client, accountId, warnings) {
|
|
153
|
+
if (!accountId) {
|
|
154
|
+
warnings.push('The Cloudflare token cannot list accounts and no accountId was supplied.');
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
return [await client.accounts.get({ account_id: accountId })];
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
warnings.push(`Could not load Cloudflare account ${accountId}: ${summarizeError(error)}`);
|
|
162
|
+
return [];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export async function collectAsync(iterable, limit = 250) {
|
|
166
|
+
const items = [];
|
|
167
|
+
for await (const item of iterable) {
|
|
168
|
+
items.push(item);
|
|
169
|
+
if (items.length >= limit)
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
return items;
|
|
173
|
+
}
|
|
174
|
+
export function clean(value) {
|
|
175
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
176
|
+
}
|
|
177
|
+
export function stripTrailingSlash(value) {
|
|
178
|
+
return value.replace(/\/+$/, '');
|
|
179
|
+
}
|
|
180
|
+
export function hostnameFromUrl(value) {
|
|
181
|
+
if (!value)
|
|
182
|
+
return '';
|
|
183
|
+
try {
|
|
184
|
+
return new URL(value).hostname;
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return '';
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
export function requireQueueId(queue, queueName) {
|
|
191
|
+
if (queue.queue_id)
|
|
192
|
+
return queue.queue_id;
|
|
193
|
+
throw new CloudflareControlPlaneError(`Cloudflare Queue '${queueName}' did not include a queue_id.`, 'CLOUDFLARE_QUEUE_ID_MISSING', 502);
|
|
194
|
+
}
|
|
195
|
+
export function requireKvNamespaceId(namespace) {
|
|
196
|
+
if (namespace.id)
|
|
197
|
+
return namespace.id;
|
|
198
|
+
throw new CloudflareControlPlaneError('Cloudflare KV namespace did not include an id.', 'CLOUDFLARE_KV_NAMESPACE_ID_MISSING', 502);
|
|
199
|
+
}
|
|
200
|
+
export async function safeResponseText(response) {
|
|
201
|
+
try {
|
|
202
|
+
return await response.text();
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
return response.statusText;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
function uniqueRequirements(requirements) {
|
|
209
|
+
const seen = new Set();
|
|
210
|
+
const unique = [];
|
|
211
|
+
for (const requirement of requirements) {
|
|
212
|
+
const key = `${requirement.scope}:${requirement.permission}`;
|
|
213
|
+
if (seen.has(key))
|
|
214
|
+
continue;
|
|
215
|
+
seen.add(key);
|
|
216
|
+
unique.push(requirement);
|
|
217
|
+
}
|
|
218
|
+
return unique;
|
|
219
|
+
}
|
|
220
|
+
function normalizePermissionName(value) {
|
|
221
|
+
return value.toLowerCase().replace(/[^a-z0-9]+/g, '');
|
|
222
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-source.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/cloudflare/worker-source.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kCAAkC,QAoKvC,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
export const GOODVIBES_CLOUDFLARE_WORKER_MODULE = `
|
|
2
|
+
function json(body, status = 200) {
|
|
3
|
+
return new Response(JSON.stringify(body), {
|
|
4
|
+
status,
|
|
5
|
+
headers: { 'Content-Type': 'application/json' },
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function toRecord(value) {
|
|
10
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async function optionalJson(request) {
|
|
14
|
+
const text = await request.text();
|
|
15
|
+
if (!text.trim()) return {};
|
|
16
|
+
try {
|
|
17
|
+
return JSON.parse(text);
|
|
18
|
+
} catch {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function resolveDaemonUrl(env) {
|
|
24
|
+
return String(env.GOODVIBES_DAEMON_URL || '').replace(/\\/+$/, '');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function toDaemonBatchPath(pathname) {
|
|
28
|
+
if (pathname.startsWith('/api/batch')) return pathname;
|
|
29
|
+
if (pathname.startsWith('/batch/')) return '/api' + pathname;
|
|
30
|
+
if (pathname === '/batch') return '/api/batch';
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function requireWorkerAuth(request, env) {
|
|
35
|
+
const expected = String(env.GOODVIBES_WORKER_TOKEN || '');
|
|
36
|
+
if (!expected) return null;
|
|
37
|
+
const auth = request.headers.get('authorization') || '';
|
|
38
|
+
if (auth === 'Bearer ' + expected) return null;
|
|
39
|
+
return json({ error: 'Worker authorization required', code: 'WORKER_AUTH_REQUIRED' }, 401);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async function proxyDaemonJson(env, path, init) {
|
|
43
|
+
const baseUrl = resolveDaemonUrl(env);
|
|
44
|
+
if (!baseUrl) {
|
|
45
|
+
return json({ error: 'GOODVIBES_DAEMON_URL is not configured', code: 'DAEMON_URL_REQUIRED' }, 503);
|
|
46
|
+
}
|
|
47
|
+
const headers = new Headers();
|
|
48
|
+
if (init.body !== undefined) headers.set('Content-Type', 'application/json');
|
|
49
|
+
const token = String(env.GOODVIBES_OPERATOR_TOKEN || '');
|
|
50
|
+
if (token) headers.set('Authorization', 'Bearer ' + token);
|
|
51
|
+
return fetch(baseUrl + path + (init.search || ''), {
|
|
52
|
+
method: init.method,
|
|
53
|
+
headers,
|
|
54
|
+
body: init.body,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function handleQueuePayload(payload, env) {
|
|
59
|
+
if (payload.type === 'batch.tick') {
|
|
60
|
+
return proxyDaemonJson(env, '/api/batch/tick', {
|
|
61
|
+
method: 'POST',
|
|
62
|
+
body: JSON.stringify({ force: payload.force === true }),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return proxyDaemonJson(env, '/api/batch/jobs', {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
body: JSON.stringify({
|
|
68
|
+
...toRecord(payload.body),
|
|
69
|
+
source: {
|
|
70
|
+
kind: 'cloudflare-queue',
|
|
71
|
+
id: typeof payload.body?.id === 'string' ? payload.body.id : undefined,
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export class GoodVibesCoordinator {
|
|
78
|
+
constructor(state, env) {
|
|
79
|
+
this.state = state;
|
|
80
|
+
this.env = env;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async fetch(request) {
|
|
84
|
+
const url = new URL(request.url);
|
|
85
|
+
if (url.pathname === '/health') {
|
|
86
|
+
return json({ ok: true, service: 'goodvibes-cloudflare-coordinator' });
|
|
87
|
+
}
|
|
88
|
+
return json({ error: 'Not found', code: 'NOT_FOUND' }, 404);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export default {
|
|
93
|
+
async fetch(request, env) {
|
|
94
|
+
const url = new URL(request.url);
|
|
95
|
+
if (url.pathname === '/health' || url.pathname === '/batch/health') {
|
|
96
|
+
return json({ ok: true, service: 'goodvibes-cloudflare-worker' });
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const authError = requireWorkerAuth(request, env);
|
|
100
|
+
if (authError) return authError;
|
|
101
|
+
|
|
102
|
+
if (url.pathname === '/batch/tick/enqueue' && request.method === 'POST') {
|
|
103
|
+
const queue = env.GOODVIBES_BATCH_QUEUE;
|
|
104
|
+
if (!queue) return json({ error: 'GOODVIBES_BATCH_QUEUE is not bound', code: 'QUEUE_NOT_CONFIGURED' }, 503);
|
|
105
|
+
const body = await optionalJson(request);
|
|
106
|
+
await queue.send({
|
|
107
|
+
type: 'batch.tick',
|
|
108
|
+
force: toRecord(body).force === true,
|
|
109
|
+
enqueuedAt: Date.now(),
|
|
110
|
+
});
|
|
111
|
+
return json({ queued: true }, 202);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const daemonPath = toDaemonBatchPath(url.pathname);
|
|
115
|
+
if (!daemonPath) return json({ error: 'Not found', code: 'NOT_FOUND' }, 404);
|
|
116
|
+
|
|
117
|
+
if (url.pathname === '/batch/jobs/enqueue' && request.method === 'POST') {
|
|
118
|
+
if (String(env.GOODVIBES_QUEUE_JOB_PAYLOADS || '') !== 'true') {
|
|
119
|
+
return json({
|
|
120
|
+
error: 'Queueing full batch job payloads is disabled. Post /batch/jobs to proxy directly to the daemon, or enable queueJobPayloads explicitly.',
|
|
121
|
+
code: 'QUEUE_PAYLOADS_DISABLED',
|
|
122
|
+
}, 409);
|
|
123
|
+
}
|
|
124
|
+
const queue = env.GOODVIBES_BATCH_QUEUE;
|
|
125
|
+
if (!queue) return json({ error: 'GOODVIBES_BATCH_QUEUE is not bound', code: 'QUEUE_NOT_CONFIGURED' }, 503);
|
|
126
|
+
const body = await optionalJson(request);
|
|
127
|
+
await queue.send({
|
|
128
|
+
type: 'batch.job.create',
|
|
129
|
+
body: toRecord(body),
|
|
130
|
+
enqueuedAt: Date.now(),
|
|
131
|
+
});
|
|
132
|
+
return json({ queued: true }, 202);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const body = request.method === 'GET' || request.method === 'HEAD' ? undefined : await request.text();
|
|
136
|
+
return proxyDaemonJson(env, daemonPath, {
|
|
137
|
+
method: request.method,
|
|
138
|
+
body,
|
|
139
|
+
search: url.search,
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
|
|
143
|
+
async queue(batch, env) {
|
|
144
|
+
for (const message of batch.messages) {
|
|
145
|
+
try {
|
|
146
|
+
const response = await handleQueuePayload(message.body, env);
|
|
147
|
+
if (response.ok) {
|
|
148
|
+
message.ack?.();
|
|
149
|
+
} else {
|
|
150
|
+
message.retry?.();
|
|
151
|
+
}
|
|
152
|
+
} catch {
|
|
153
|
+
message.retry?.();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
async scheduled(_event, env) {
|
|
159
|
+
await proxyDaemonJson(env, '/api/batch/tick', {
|
|
160
|
+
method: 'POST',
|
|
161
|
+
body: JSON.stringify({ force: false }),
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
`.trim();
|
|
@@ -21,10 +21,34 @@ export declare const runtimeConfigDefaults: {
|
|
|
21
21
|
cloudflare: {
|
|
22
22
|
enabled: boolean;
|
|
23
23
|
freeTierMode: boolean;
|
|
24
|
+
accountId: string;
|
|
25
|
+
apiTokenRef: string;
|
|
26
|
+
zoneId: string;
|
|
27
|
+
zoneName: string;
|
|
28
|
+
workerName: string;
|
|
29
|
+
workerSubdomain: string;
|
|
30
|
+
workerHostname: string;
|
|
24
31
|
workerBaseUrl: string;
|
|
32
|
+
daemonBaseUrl: string;
|
|
33
|
+
daemonHostname: string;
|
|
25
34
|
workerTokenRef: string;
|
|
35
|
+
workerClientTokenRef: string;
|
|
36
|
+
workerCron: string;
|
|
26
37
|
queueName: string;
|
|
27
38
|
deadLetterQueueName: string;
|
|
39
|
+
tunnelName: string;
|
|
40
|
+
tunnelId: string;
|
|
41
|
+
tunnelTokenRef: string;
|
|
42
|
+
accessAppId: string;
|
|
43
|
+
accessServiceTokenId: string;
|
|
44
|
+
accessServiceTokenRef: string;
|
|
45
|
+
kvNamespaceName: string;
|
|
46
|
+
kvNamespaceId: string;
|
|
47
|
+
durableObjectNamespaceName: string;
|
|
48
|
+
durableObjectNamespaceId: string;
|
|
49
|
+
r2BucketName: string;
|
|
50
|
+
secretsStoreName: string;
|
|
51
|
+
secretsStoreId: string;
|
|
28
52
|
maxQueueOpsPerDay: number;
|
|
29
53
|
};
|
|
30
54
|
telemetry: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2HjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,uBAAuB,EAyMjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAAuB,EA+WnE,CAAC"}
|