@astrale-domains/services 0.4.4 → 0.4.6
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 +199 -7
- package/dist/scaffold/create-service.mjs +77 -0
- package/dist/scaffold/template/.env.example +2 -0
- package/dist/scaffold/template/README.md +37 -0
- package/dist/scaffold/template/gitignore +6 -0
- package/dist/scaffold/template/scripts/build.mjs +10 -0
- package/dist/scaffold/template/scripts/deploy.mjs +50 -0
- package/dist/scaffold/template/src/account.js +26 -0
- package/dist/scaffold/template/src/index.js +32 -0
- package/dist/scaffold/template/src/job.js +19 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.js +1 -0
- package/dist/schema/modules/deployment/classes/cloudflare-deployment.d.ts +97 -0
- package/dist/schema/modules/deployment/classes/cloudflare-deployment.js +10 -0
- package/dist/schema/modules/deployment/classes/deployment-line.d.ts +23 -0
- package/dist/schema/modules/deployment/classes/deployment-line.js +24 -0
- package/dist/schema/modules/deployment/classes/deployment-on-line.d.ts +17 -0
- package/dist/schema/modules/deployment/classes/deployment-on-line.js +11 -0
- package/dist/schema/modules/deployment/classes/deployment.d.ts +98 -0
- package/dist/schema/modules/deployment/classes/deployment.js +32 -0
- package/dist/schema/modules/deployment/classes/index.d.ts +5 -0
- package/dist/schema/modules/deployment/classes/index.js +5 -0
- package/dist/schema/modules/deployment/classes/line-owned-by.d.ts +26 -0
- package/dist/schema/modules/deployment/classes/line-owned-by.js +19 -0
- package/dist/schema/modules/deployment/index.d.ts +6 -0
- package/dist/schema/modules/deployment/index.js +4 -0
- package/dist/schema/modules/deployment/policies/index.d.ts +4 -0
- package/dist/schema/modules/deployment/policies/index.js +4 -0
- package/dist/schema/modules/deployment/policies/own-deployment.d.ts +2 -0
- package/dist/schema/modules/deployment/policies/own-deployment.js +12 -0
- package/dist/schema/modules/deployment/policies/own-line.d.ts +5 -0
- package/dist/schema/modules/deployment/policies/own-line.js +10 -0
- package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.d.ts +2 -0
- package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.js +7 -0
- package/dist/schema/modules/deployment/policies/traverse-owned-line.d.ts +2 -0
- package/dist/schema/modules/deployment/policies/traverse-owned-line.js +7 -0
- package/dist/schema/modules/deployment/states/deployment-lifecycle.d.ts +27 -0
- package/dist/schema/modules/deployment/states/deployment-lifecycle.js +17 -0
- package/dist/schema/modules/deployment/states/index.d.ts +2 -0
- package/dist/schema/modules/deployment/states/index.js +1 -0
- package/dist/schema/modules/deployment/types/deployment-record.d.ts +35 -0
- package/dist/schema/modules/deployment/types/deployment-record.js +31 -0
- package/dist/schema/modules/deployment/types/deployment-retention.d.ts +13 -0
- package/dist/schema/modules/deployment/types/deployment-retention.js +5 -0
- package/dist/schema/modules/deployment/types/index.d.ts +4 -0
- package/dist/schema/modules/deployment/types/index.js +2 -0
- package/dist/schema/modules/service/classes/cloudflare-worker.d.ts +103 -37
- package/dist/schema/modules/service/classes/cloudflare-worker.js +4 -1
- package/dist/schema/modules/service/classes/service.d.ts +19 -19
- package/dist/schema/modules/service/functions/delete-service-secret.d.ts +1 -1
- package/dist/schema/modules/service/functions/delete-service.d.ts +1 -1
- package/dist/schema/modules/service/functions/delete-worker-secret.d.ts +1 -1
- package/dist/schema/modules/service/functions/delete-worker.d.ts +1 -1
- package/dist/schema/modules/service/functions/deploy-cloudflare-worker.d.ts +37 -1
- package/dist/schema/modules/service/functions/index.d.ts +1 -0
- package/dist/schema/modules/service/functions/index.js +1 -0
- package/dist/schema/modules/service/functions/list-service-logs.d.ts +1 -1
- package/dist/schema/modules/service/functions/list-service-schedules.d.ts +1 -1
- package/dist/schema/modules/service/functions/list-service-secret-names.d.ts +1 -1
- package/dist/schema/modules/service/functions/list-worker-logs.d.ts +1 -1
- package/dist/schema/modules/service/functions/list-worker-schedules.d.ts +1 -1
- package/dist/schema/modules/service/functions/list-worker-secret-names.d.ts +1 -1
- package/dist/schema/modules/service/functions/migrate-worker-ingress.d.ts +24 -0
- package/dist/schema/modules/service/functions/migrate-worker-ingress.js +26 -0
- package/dist/schema/modules/service/functions/replace-service-schedules.d.ts +1 -1
- package/dist/schema/modules/service/functions/replace-worker-schedules.d.ts +1 -1
- package/dist/schema/modules/service/functions/set-service-secret.d.ts +1 -1
- package/dist/schema/modules/service/functions/set-worker-secret.d.ts +3 -3
- package/dist/schema/modules/service/index.d.ts +2 -2
- package/dist/schema/modules/service/index.js +1 -1
- package/dist/schema/modules/service/types/content/index.d.ts +1 -0
- package/dist/schema/modules/service/types/content/index.js +1 -0
- package/dist/schema/modules/service/types/content/limits.d.ts +7 -0
- package/dist/schema/modules/service/types/content/limits.js +7 -0
- package/dist/schema/modules/service/types/deploy-cloudflare-worker.d.ts +110 -0
- package/dist/schema/modules/service/types/index.d.ts +2 -1
- package/dist/schema/modules/service/types/index.js +1 -1
- package/dist/schema/modules/service/types/legacy/service-deployment-content.js +15 -0
- package/dist/schema/modules/service/types/service-deployment-artifact-module.d.ts +23 -0
- package/dist/schema/modules/service/types/service-deployment-artifact-module.js +5 -3
- package/dist/schema/modules/service/types/service-deployment-assets.d.ts +36 -0
- package/dist/schema/modules/service/types/service-deployment-assets.js +5 -3
- package/dist/schema/modules/service/types/service-deployment-content.d.ts +18 -11
- package/dist/schema/modules/service/types/service-deployment-content.js +17 -8
- package/dist/schema/schema.d.ts +365 -62
- package/dist/schema/schema.js +10 -0
- package/package.json +14 -12
|
@@ -10,9 +10,9 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
10
10
|
readonly properties: {
|
|
11
11
|
providerName: z.ZodString;
|
|
12
12
|
serviceKey: z.ZodString;
|
|
13
|
-
url: import("@astrale-os/sdk/schema").
|
|
13
|
+
url: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
14
14
|
readonly required: false;
|
|
15
|
-
}
|
|
15
|
+
}>;
|
|
16
16
|
state: import("@astrale-os/sdk/schema").StateProperty<import("@astrale-os/sdk/schema").StateMachine<{
|
|
17
17
|
readonly deploying: {
|
|
18
18
|
readonly recordProviderDeployment: "reconciling";
|
|
@@ -38,21 +38,21 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
38
38
|
required?: boolean;
|
|
39
39
|
description?: string;
|
|
40
40
|
}>;
|
|
41
|
-
digest: import("@astrale-os/sdk/schema").
|
|
41
|
+
digest: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
42
42
|
readonly required: false;
|
|
43
|
-
}
|
|
44
|
-
deploymentReceipt: import("@astrale-os/sdk/schema").
|
|
43
|
+
}>;
|
|
44
|
+
deploymentReceipt: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
45
45
|
readonly required: false;
|
|
46
|
-
}
|
|
47
|
-
operationExpiresAt: import("@astrale-os/sdk/schema").
|
|
46
|
+
}>;
|
|
47
|
+
operationExpiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<Readonly<{
|
|
48
48
|
readonly type: 'string';
|
|
49
49
|
readonly 'x-astrale-value-kind': 'instant';
|
|
50
50
|
}>, {
|
|
51
51
|
readonly required: false;
|
|
52
|
-
}
|
|
53
|
-
error: import("@astrale-os/sdk/schema").
|
|
52
|
+
}>;
|
|
53
|
+
error: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
54
54
|
readonly required: false;
|
|
55
|
-
}
|
|
55
|
+
}>;
|
|
56
56
|
};
|
|
57
57
|
readonly methods: {
|
|
58
58
|
setSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
@@ -61,12 +61,12 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
61
61
|
}, {
|
|
62
62
|
readonly mode: 'value';
|
|
63
63
|
readonly value: {
|
|
64
|
-
name: string;
|
|
65
|
-
} | {
|
|
66
64
|
kind: "rejected";
|
|
67
65
|
reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
|
|
66
|
+
} | {
|
|
67
|
+
name: string;
|
|
68
68
|
};
|
|
69
|
-
}, "authorized", false, true>>;
|
|
69
|
+
}, "authorized", false, true, undefined>>;
|
|
70
70
|
deleteSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
71
71
|
name: string;
|
|
72
72
|
}, {
|
|
@@ -77,11 +77,11 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
77
77
|
} | {
|
|
78
78
|
ok: true;
|
|
79
79
|
};
|
|
80
|
-
}, "authorized", false, true>>;
|
|
80
|
+
}, "authorized", false, true, undefined>>;
|
|
81
81
|
secrets: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
82
82
|
readonly mode: 'value';
|
|
83
83
|
readonly value: string[];
|
|
84
|
-
}, "authorized", false, true>>;
|
|
84
|
+
}, "authorized", false, true, undefined>>;
|
|
85
85
|
setSchedule: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
86
86
|
crons: string[];
|
|
87
87
|
}, {
|
|
@@ -92,11 +92,11 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
92
92
|
kind: "rejected";
|
|
93
93
|
reason: "invalid-schedule" | "service-unavailable";
|
|
94
94
|
};
|
|
95
|
-
}, "authorized", false, true>>;
|
|
95
|
+
}, "authorized", false, true, undefined>>;
|
|
96
96
|
schedules: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
97
97
|
readonly mode: 'value';
|
|
98
98
|
readonly value: string[];
|
|
99
|
-
}, "authorized", false, true>>;
|
|
99
|
+
}, "authorized", false, true, undefined>>;
|
|
100
100
|
logs: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
101
101
|
tail?: number | undefined;
|
|
102
102
|
since?: number | undefined;
|
|
@@ -108,7 +108,7 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
108
108
|
level: string;
|
|
109
109
|
line: string;
|
|
110
110
|
}[];
|
|
111
|
-
}, "authorized", false, true>>;
|
|
111
|
+
}, "authorized", false, true, undefined>>;
|
|
112
112
|
delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
113
113
|
readonly mode: 'value';
|
|
114
114
|
readonly value: {
|
|
@@ -117,7 +117,7 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
117
117
|
kind: "deleting";
|
|
118
118
|
retryAfterMs: number;
|
|
119
119
|
};
|
|
120
|
-
}, "authorized", false, true>>;
|
|
120
|
+
}, "authorized", false, true, undefined>>;
|
|
121
121
|
};
|
|
122
122
|
}>];
|
|
123
123
|
readonly properties: {
|
|
@@ -125,28 +125,46 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
125
125
|
plain: "plain";
|
|
126
126
|
revisioned: "revisioned";
|
|
127
127
|
}>;
|
|
128
|
-
|
|
128
|
+
tenantDomainDetachedAt: import("@astrale-os/sdk/schema").AuthoredProperty<Readonly<{
|
|
129
|
+
readonly type: 'string';
|
|
130
|
+
readonly 'x-astrale-value-kind': 'instant';
|
|
131
|
+
}>, {
|
|
132
|
+
readonly required: false;
|
|
133
|
+
}>;
|
|
134
|
+
tenantDomainState: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodEnum<{
|
|
129
135
|
absent: "absent";
|
|
130
136
|
attached: "attached";
|
|
131
137
|
unresolved: "unresolved";
|
|
132
138
|
}>, {
|
|
133
139
|
readonly required: false;
|
|
134
|
-
}
|
|
135
|
-
tenantDomainId: import("@astrale-os/sdk/schema").
|
|
140
|
+
}>;
|
|
141
|
+
tenantDomainId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
136
142
|
readonly required: false;
|
|
137
|
-
}
|
|
138
|
-
tenantCertificatePackId: import("@astrale-os/sdk/schema").
|
|
143
|
+
}>;
|
|
144
|
+
tenantCertificatePackId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
139
145
|
readonly required: false;
|
|
140
|
-
}
|
|
141
|
-
tenantZoneId: import("@astrale-os/sdk/schema").
|
|
146
|
+
}>;
|
|
147
|
+
tenantZoneId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
142
148
|
readonly required: false;
|
|
143
|
-
}
|
|
149
|
+
}>;
|
|
144
150
|
};
|
|
145
151
|
readonly methods: {
|
|
146
152
|
deploy: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
147
153
|
name?: string | undefined;
|
|
148
154
|
entry?: string | undefined;
|
|
149
155
|
modules?: ({
|
|
156
|
+
name: string;
|
|
157
|
+
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
158
|
+
content: {
|
|
159
|
+
encoding: "gzip" | "identity";
|
|
160
|
+
decodedSize: number;
|
|
161
|
+
contentBase64: string;
|
|
162
|
+
} | {
|
|
163
|
+
encoding: "gzip" | "identity";
|
|
164
|
+
decodedSize: number;
|
|
165
|
+
contentBase64Chunks: string[];
|
|
166
|
+
};
|
|
167
|
+
} | {
|
|
150
168
|
contentBase64: string;
|
|
151
169
|
name: string;
|
|
152
170
|
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
@@ -160,6 +178,18 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
160
178
|
release: {
|
|
161
179
|
entry: string;
|
|
162
180
|
modules: ({
|
|
181
|
+
name: string;
|
|
182
|
+
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
183
|
+
content: {
|
|
184
|
+
encoding: "gzip" | "identity";
|
|
185
|
+
decodedSize: number;
|
|
186
|
+
contentBase64: string;
|
|
187
|
+
} | {
|
|
188
|
+
encoding: "gzip" | "identity";
|
|
189
|
+
decodedSize: number;
|
|
190
|
+
contentBase64Chunks: string[];
|
|
191
|
+
};
|
|
192
|
+
} | {
|
|
163
193
|
contentBase64: string;
|
|
164
194
|
name: string;
|
|
165
195
|
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
@@ -184,6 +214,18 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
184
214
|
secrets?: Record<string, string> | undefined;
|
|
185
215
|
assets?: {
|
|
186
216
|
files: ({
|
|
217
|
+
path: string;
|
|
218
|
+
contentType?: string | undefined;
|
|
219
|
+
content: {
|
|
220
|
+
encoding: "gzip" | "identity";
|
|
221
|
+
decodedSize: number;
|
|
222
|
+
contentBase64: string;
|
|
223
|
+
} | {
|
|
224
|
+
encoding: "gzip" | "identity";
|
|
225
|
+
decodedSize: number;
|
|
226
|
+
contentBase64Chunks: string[];
|
|
227
|
+
};
|
|
228
|
+
} | {
|
|
187
229
|
contentBase64: string;
|
|
188
230
|
path: string;
|
|
189
231
|
contentType?: string | undefined;
|
|
@@ -215,19 +257,43 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
215
257
|
reason: "artifact-mode-conflict" | "invalid-deployment" | "service-unavailable";
|
|
216
258
|
message: string;
|
|
217
259
|
};
|
|
218
|
-
}, "authenticated", true, false>>;
|
|
260
|
+
}, "authenticated", true, false, undefined>>;
|
|
261
|
+
migrateIngress: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
262
|
+
action: "complete" | "detach" | "restore";
|
|
263
|
+
probe: {
|
|
264
|
+
path: string;
|
|
265
|
+
status: number;
|
|
266
|
+
bodySha256: string;
|
|
267
|
+
};
|
|
268
|
+
}, {
|
|
269
|
+
readonly mode: 'value';
|
|
270
|
+
readonly value: {
|
|
271
|
+
kind: "detached";
|
|
272
|
+
detachedAt: string;
|
|
273
|
+
} | {
|
|
274
|
+
kind: "migrated";
|
|
275
|
+
} | {
|
|
276
|
+
kind: "restored";
|
|
277
|
+
} | {
|
|
278
|
+
kind: "pending";
|
|
279
|
+
retryAfterMs: number;
|
|
280
|
+
} | {
|
|
281
|
+
kind: "rejected";
|
|
282
|
+
reason: "missing-location" | "not-detached" | "service-unavailable";
|
|
283
|
+
};
|
|
284
|
+
}, "authorized", false, false, undefined>>;
|
|
219
285
|
setSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
220
286
|
name: string;
|
|
221
287
|
value: string;
|
|
222
288
|
}, {
|
|
223
289
|
readonly mode: 'value';
|
|
224
290
|
readonly value: {
|
|
225
|
-
name: string;
|
|
226
|
-
} | {
|
|
227
291
|
kind: "rejected";
|
|
228
292
|
reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
|
|
293
|
+
} | {
|
|
294
|
+
name: string;
|
|
229
295
|
};
|
|
230
|
-
}, "authorized", false, false>>;
|
|
296
|
+
}, "authorized", false, false, undefined>>;
|
|
231
297
|
deleteSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
232
298
|
name: string;
|
|
233
299
|
}, {
|
|
@@ -238,11 +304,11 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
238
304
|
} | {
|
|
239
305
|
ok: true;
|
|
240
306
|
};
|
|
241
|
-
}, "authorized", false, false>>;
|
|
307
|
+
}, "authorized", false, false, undefined>>;
|
|
242
308
|
secrets: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
243
309
|
readonly mode: 'value';
|
|
244
310
|
readonly value: string[];
|
|
245
|
-
}, "authorized", false, false>>;
|
|
311
|
+
}, "authorized", false, false, undefined>>;
|
|
246
312
|
setSchedule: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
247
313
|
crons: string[];
|
|
248
314
|
}, {
|
|
@@ -253,11 +319,11 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
253
319
|
kind: "rejected";
|
|
254
320
|
reason: "invalid-schedule" | "service-unavailable";
|
|
255
321
|
};
|
|
256
|
-
}, "authorized", false, false>>;
|
|
322
|
+
}, "authorized", false, false, undefined>>;
|
|
257
323
|
schedules: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
258
324
|
readonly mode: 'value';
|
|
259
325
|
readonly value: string[];
|
|
260
|
-
}, "authorized", false, false>>;
|
|
326
|
+
}, "authorized", false, false, undefined>>;
|
|
261
327
|
logs: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
262
328
|
tail?: number | undefined;
|
|
263
329
|
since?: number | undefined;
|
|
@@ -269,7 +335,7 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
269
335
|
level: string;
|
|
270
336
|
line: string;
|
|
271
337
|
}[];
|
|
272
|
-
}, "authorized", false, false>>;
|
|
338
|
+
}, "authorized", false, false, undefined>>;
|
|
273
339
|
delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
274
340
|
readonly mode: 'value';
|
|
275
341
|
readonly value: {
|
|
@@ -278,7 +344,7 @@ export declare const CloudflareWorker: import("@astrale-os/sdk/schema").Authored
|
|
|
278
344
|
kind: "deleting";
|
|
279
345
|
retryAfterMs: number;
|
|
280
346
|
};
|
|
281
|
-
}, "authorized", false, false>>;
|
|
347
|
+
}, "authorized", false, false, undefined>>;
|
|
282
348
|
};
|
|
283
349
|
readonly policies: {
|
|
284
350
|
read: import("@astrale-os/sdk/schema").Policy;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { classIcon, nodeClass, property } from '@astrale-os/sdk/schema';
|
|
1
|
+
import { classIcon, nodeClass, property, schema as valueSchema } from '@astrale-os/sdk/schema';
|
|
2
2
|
import { CloudCog } from '@astrale-os/sdk/schema/icons';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { deleteWorkerSecret } from '../functions/delete-worker-secret.js';
|
|
@@ -7,6 +7,7 @@ import { deployCloudflareWorker } from '../functions/deploy-cloudflare-worker.js
|
|
|
7
7
|
import { listWorkerLogs } from '../functions/list-worker-logs.js';
|
|
8
8
|
import { listWorkerSchedules } from '../functions/list-worker-schedules.js';
|
|
9
9
|
import { listWorkerSecretNames } from '../functions/list-worker-secret-names.js';
|
|
10
|
+
import { migrateWorkerIngress } from '../functions/migrate-worker-ingress.js';
|
|
10
11
|
import { replaceWorkerSchedules } from '../functions/replace-worker-schedules.js';
|
|
11
12
|
import { setWorkerSecret } from '../functions/set-worker-secret.js';
|
|
12
13
|
import { OwnService } from '../policies/own-service.js';
|
|
@@ -17,6 +18,7 @@ export const CloudflareWorker = nodeClass({
|
|
|
17
18
|
extends: [Service],
|
|
18
19
|
properties: {
|
|
19
20
|
deploymentMode: z.enum(['plain', 'revisioned']),
|
|
21
|
+
tenantDomainDetachedAt: property(valueSchema.values.instant, { required: false }),
|
|
20
22
|
tenantDomainState: property(z.enum(['unresolved', 'absent', 'attached']), {
|
|
21
23
|
required: false,
|
|
22
24
|
}),
|
|
@@ -26,6 +28,7 @@ export const CloudflareWorker = nodeClass({
|
|
|
26
28
|
},
|
|
27
29
|
methods: {
|
|
28
30
|
deploy: deployCloudflareWorker,
|
|
31
|
+
migrateIngress: migrateWorkerIngress,
|
|
29
32
|
setSecret: setWorkerSecret,
|
|
30
33
|
deleteSecret: deleteWorkerSecret,
|
|
31
34
|
secrets: listWorkerSecretNames,
|
|
@@ -8,9 +8,9 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
8
8
|
readonly properties: {
|
|
9
9
|
providerName: z.ZodString;
|
|
10
10
|
serviceKey: z.ZodString;
|
|
11
|
-
url: import("@astrale-os/sdk/schema").
|
|
11
|
+
url: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
12
12
|
readonly required: false;
|
|
13
|
-
}
|
|
13
|
+
}>;
|
|
14
14
|
state: import("@astrale-os/sdk/schema").StateProperty<import("@astrale-os/sdk/schema").StateMachine<{
|
|
15
15
|
readonly deploying: {
|
|
16
16
|
readonly recordProviderDeployment: "reconciling";
|
|
@@ -36,21 +36,21 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
36
36
|
required?: boolean;
|
|
37
37
|
description?: string;
|
|
38
38
|
}>;
|
|
39
|
-
digest: import("@astrale-os/sdk/schema").
|
|
39
|
+
digest: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
40
40
|
readonly required: false;
|
|
41
|
-
}
|
|
42
|
-
deploymentReceipt: import("@astrale-os/sdk/schema").
|
|
41
|
+
}>;
|
|
42
|
+
deploymentReceipt: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
43
43
|
readonly required: false;
|
|
44
|
-
}
|
|
45
|
-
operationExpiresAt: import("@astrale-os/sdk/schema").
|
|
44
|
+
}>;
|
|
45
|
+
operationExpiresAt: import("@astrale-os/sdk/schema").AuthoredProperty<Readonly<{
|
|
46
46
|
readonly type: 'string';
|
|
47
47
|
readonly 'x-astrale-value-kind': 'instant';
|
|
48
48
|
}>, {
|
|
49
49
|
readonly required: false;
|
|
50
|
-
}
|
|
51
|
-
error: import("@astrale-os/sdk/schema").
|
|
50
|
+
}>;
|
|
51
|
+
error: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
|
|
52
52
|
readonly required: false;
|
|
53
|
-
}
|
|
53
|
+
}>;
|
|
54
54
|
};
|
|
55
55
|
readonly methods: {
|
|
56
56
|
setSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
@@ -59,12 +59,12 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
59
59
|
}, {
|
|
60
60
|
readonly mode: 'value';
|
|
61
61
|
readonly value: {
|
|
62
|
+
name: string;
|
|
63
|
+
} | {
|
|
62
64
|
kind: "rejected";
|
|
63
65
|
reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
|
|
64
|
-
} | {
|
|
65
|
-
name: string;
|
|
66
66
|
};
|
|
67
|
-
}, "authorized", false, true>>;
|
|
67
|
+
}, "authorized", false, true, undefined>>;
|
|
68
68
|
deleteSecret: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
69
69
|
name: string;
|
|
70
70
|
}, {
|
|
@@ -75,11 +75,11 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
75
75
|
} | {
|
|
76
76
|
ok: true;
|
|
77
77
|
};
|
|
78
|
-
}, "authorized", false, true>>;
|
|
78
|
+
}, "authorized", false, true, undefined>>;
|
|
79
79
|
secrets: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
80
80
|
readonly mode: 'value';
|
|
81
81
|
readonly value: string[];
|
|
82
|
-
}, "authorized", false, true>>;
|
|
82
|
+
}, "authorized", false, true, undefined>>;
|
|
83
83
|
setSchedule: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
84
84
|
crons: string[];
|
|
85
85
|
}, {
|
|
@@ -90,11 +90,11 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
90
90
|
kind: "rejected";
|
|
91
91
|
reason: "invalid-schedule" | "service-unavailable";
|
|
92
92
|
};
|
|
93
|
-
}, "authorized", false, true>>;
|
|
93
|
+
}, "authorized", false, true, undefined>>;
|
|
94
94
|
schedules: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
95
95
|
readonly mode: 'value';
|
|
96
96
|
readonly value: string[];
|
|
97
|
-
}, "authorized", false, true>>;
|
|
97
|
+
}, "authorized", false, true, undefined>>;
|
|
98
98
|
logs: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
99
99
|
tail?: number | undefined;
|
|
100
100
|
since?: number | undefined;
|
|
@@ -106,7 +106,7 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
106
106
|
level: string;
|
|
107
107
|
line: string;
|
|
108
108
|
}[];
|
|
109
|
-
}, "authorized", false, true>>;
|
|
109
|
+
}, "authorized", false, true, undefined>>;
|
|
110
110
|
delete: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
111
111
|
readonly mode: 'value';
|
|
112
112
|
readonly value: {
|
|
@@ -115,6 +115,6 @@ export declare const Service: import("@astrale-os/sdk/schema").AuthoredNodeClass
|
|
|
115
115
|
kind: "deleting";
|
|
116
116
|
retryAfterMs: number;
|
|
117
117
|
};
|
|
118
|
-
}, "authorized", false, true>>;
|
|
118
|
+
}, "authorized", false, true, undefined>>;
|
|
119
119
|
};
|
|
120
120
|
}>;
|
|
@@ -2,6 +2,18 @@ export declare const deployCloudflareWorker: import("@astrale-os/sdk/schema").Me
|
|
|
2
2
|
name?: string | undefined;
|
|
3
3
|
entry?: string | undefined;
|
|
4
4
|
modules?: ({
|
|
5
|
+
name: string;
|
|
6
|
+
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
7
|
+
content: {
|
|
8
|
+
encoding: "gzip" | "identity";
|
|
9
|
+
decodedSize: number;
|
|
10
|
+
contentBase64: string;
|
|
11
|
+
} | {
|
|
12
|
+
encoding: "gzip" | "identity";
|
|
13
|
+
decodedSize: number;
|
|
14
|
+
contentBase64Chunks: string[];
|
|
15
|
+
};
|
|
16
|
+
} | {
|
|
5
17
|
contentBase64: string;
|
|
6
18
|
name: string;
|
|
7
19
|
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
@@ -15,6 +27,18 @@ export declare const deployCloudflareWorker: import("@astrale-os/sdk/schema").Me
|
|
|
15
27
|
release: {
|
|
16
28
|
entry: string;
|
|
17
29
|
modules: ({
|
|
30
|
+
name: string;
|
|
31
|
+
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
32
|
+
content: {
|
|
33
|
+
encoding: "gzip" | "identity";
|
|
34
|
+
decodedSize: number;
|
|
35
|
+
contentBase64: string;
|
|
36
|
+
} | {
|
|
37
|
+
encoding: "gzip" | "identity";
|
|
38
|
+
decodedSize: number;
|
|
39
|
+
contentBase64Chunks: string[];
|
|
40
|
+
};
|
|
41
|
+
} | {
|
|
18
42
|
contentBase64: string;
|
|
19
43
|
name: string;
|
|
20
44
|
kind?: "data" | "esm" | "text" | "wasm" | undefined;
|
|
@@ -39,6 +63,18 @@ export declare const deployCloudflareWorker: import("@astrale-os/sdk/schema").Me
|
|
|
39
63
|
secrets?: Record<string, string> | undefined;
|
|
40
64
|
assets?: {
|
|
41
65
|
files: ({
|
|
66
|
+
path: string;
|
|
67
|
+
contentType?: string | undefined;
|
|
68
|
+
content: {
|
|
69
|
+
encoding: "gzip" | "identity";
|
|
70
|
+
decodedSize: number;
|
|
71
|
+
contentBase64: string;
|
|
72
|
+
} | {
|
|
73
|
+
encoding: "gzip" | "identity";
|
|
74
|
+
decodedSize: number;
|
|
75
|
+
contentBase64Chunks: string[];
|
|
76
|
+
};
|
|
77
|
+
} | {
|
|
42
78
|
contentBase64: string;
|
|
43
79
|
path: string;
|
|
44
80
|
contentType?: string | undefined;
|
|
@@ -70,4 +106,4 @@ export declare const deployCloudflareWorker: import("@astrale-os/sdk/schema").Me
|
|
|
70
106
|
reason: "artifact-mode-conflict" | "invalid-deployment" | "service-unavailable";
|
|
71
107
|
message: string;
|
|
72
108
|
};
|
|
73
|
-
}, "authenticated", true, false>>;
|
|
109
|
+
}, "authenticated", true, false, undefined>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const listServiceSchedules: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
2
2
|
readonly mode: 'value';
|
|
3
3
|
readonly value: string[];
|
|
4
|
-
}, "authorized", false, true>>;
|
|
4
|
+
}, "authorized", false, true, undefined>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const listServiceSecretNames: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
2
2
|
readonly mode: 'value';
|
|
3
3
|
readonly value: string[];
|
|
4
|
-
}, "authorized", false, true>>;
|
|
4
|
+
}, "authorized", false, true, undefined>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const listWorkerSchedules: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
2
2
|
readonly mode: 'value';
|
|
3
3
|
readonly value: string[];
|
|
4
|
-
}, "authorized", false, false>>;
|
|
4
|
+
}, "authorized", false, false, undefined>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const listWorkerSecretNames: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
|
|
2
2
|
readonly mode: 'value';
|
|
3
3
|
readonly value: string[];
|
|
4
|
-
}, "authorized", false, false>>;
|
|
4
|
+
}, "authorized", false, false, undefined>>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const migrateWorkerIngress: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
|
|
2
|
+
action: "complete" | "detach" | "restore";
|
|
3
|
+
probe: {
|
|
4
|
+
path: string;
|
|
5
|
+
status: number;
|
|
6
|
+
bodySha256: string;
|
|
7
|
+
};
|
|
8
|
+
}, {
|
|
9
|
+
readonly mode: 'value';
|
|
10
|
+
readonly value: {
|
|
11
|
+
kind: "detached";
|
|
12
|
+
detachedAt: string;
|
|
13
|
+
} | {
|
|
14
|
+
kind: "migrated";
|
|
15
|
+
} | {
|
|
16
|
+
kind: "restored";
|
|
17
|
+
} | {
|
|
18
|
+
kind: "pending";
|
|
19
|
+
retryAfterMs: number;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "rejected";
|
|
22
|
+
reason: "missing-location" | "not-detached" | "service-unavailable";
|
|
23
|
+
};
|
|
24
|
+
}, "authorized", false, false, undefined>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { method } from '@astrale-os/sdk/schema';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { OwnService } from '../policies/own-service.js';
|
|
4
|
+
export const migrateWorkerIngress = method({
|
|
5
|
+
description: 'Migrate legacy ingress to the shared wildcard, retaining cleanup evidence until verified; optionally restore the domain before finalization.',
|
|
6
|
+
auth: 'authorized',
|
|
7
|
+
input: z.strictObject({
|
|
8
|
+
action: z.enum(['detach', 'complete', 'restore']),
|
|
9
|
+
probe: z.strictObject({
|
|
10
|
+
path: z.string().min(1).max(1024),
|
|
11
|
+
status: z.number().int().min(200).max(299),
|
|
12
|
+
bodySha256: z.string().min(64).max(64),
|
|
13
|
+
}),
|
|
14
|
+
}),
|
|
15
|
+
output: z.discriminatedUnion('kind', [
|
|
16
|
+
z.strictObject({ kind: z.literal('detached'), detachedAt: z.string().min(20).max(30) }),
|
|
17
|
+
z.strictObject({ kind: z.literal('migrated') }),
|
|
18
|
+
z.strictObject({ kind: z.literal('restored') }),
|
|
19
|
+
z.strictObject({ kind: z.literal('pending'), retryAfterMs: z.number().int().positive() }),
|
|
20
|
+
z.strictObject({
|
|
21
|
+
kind: z.literal('rejected'),
|
|
22
|
+
reason: z.enum(['service-unavailable', 'missing-location', 'not-detached']),
|
|
23
|
+
}),
|
|
24
|
+
]),
|
|
25
|
+
policy: ({ check, self }) => check(OwnService, self),
|
|
26
|
+
});
|