@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.
Files changed (87) hide show
  1. package/README.md +199 -7
  2. package/dist/scaffold/create-service.mjs +77 -0
  3. package/dist/scaffold/template/.env.example +2 -0
  4. package/dist/scaffold/template/README.md +37 -0
  5. package/dist/scaffold/template/gitignore +6 -0
  6. package/dist/scaffold/template/scripts/build.mjs +10 -0
  7. package/dist/scaffold/template/scripts/deploy.mjs +50 -0
  8. package/dist/scaffold/template/src/account.js +26 -0
  9. package/dist/scaffold/template/src/index.js +32 -0
  10. package/dist/scaffold/template/src/job.js +19 -0
  11. package/dist/schema/index.d.ts +2 -0
  12. package/dist/schema/index.js +1 -0
  13. package/dist/schema/modules/deployment/classes/cloudflare-deployment.d.ts +97 -0
  14. package/dist/schema/modules/deployment/classes/cloudflare-deployment.js +10 -0
  15. package/dist/schema/modules/deployment/classes/deployment-line.d.ts +23 -0
  16. package/dist/schema/modules/deployment/classes/deployment-line.js +24 -0
  17. package/dist/schema/modules/deployment/classes/deployment-on-line.d.ts +17 -0
  18. package/dist/schema/modules/deployment/classes/deployment-on-line.js +11 -0
  19. package/dist/schema/modules/deployment/classes/deployment.d.ts +98 -0
  20. package/dist/schema/modules/deployment/classes/deployment.js +32 -0
  21. package/dist/schema/modules/deployment/classes/index.d.ts +5 -0
  22. package/dist/schema/modules/deployment/classes/index.js +5 -0
  23. package/dist/schema/modules/deployment/classes/line-owned-by.d.ts +26 -0
  24. package/dist/schema/modules/deployment/classes/line-owned-by.js +19 -0
  25. package/dist/schema/modules/deployment/index.d.ts +6 -0
  26. package/dist/schema/modules/deployment/index.js +4 -0
  27. package/dist/schema/modules/deployment/policies/index.d.ts +4 -0
  28. package/dist/schema/modules/deployment/policies/index.js +4 -0
  29. package/dist/schema/modules/deployment/policies/own-deployment.d.ts +2 -0
  30. package/dist/schema/modules/deployment/policies/own-deployment.js +12 -0
  31. package/dist/schema/modules/deployment/policies/own-line.d.ts +5 -0
  32. package/dist/schema/modules/deployment/policies/own-line.js +10 -0
  33. package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.d.ts +2 -0
  34. package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.js +7 -0
  35. package/dist/schema/modules/deployment/policies/traverse-owned-line.d.ts +2 -0
  36. package/dist/schema/modules/deployment/policies/traverse-owned-line.js +7 -0
  37. package/dist/schema/modules/deployment/states/deployment-lifecycle.d.ts +27 -0
  38. package/dist/schema/modules/deployment/states/deployment-lifecycle.js +17 -0
  39. package/dist/schema/modules/deployment/states/index.d.ts +2 -0
  40. package/dist/schema/modules/deployment/states/index.js +1 -0
  41. package/dist/schema/modules/deployment/types/deployment-record.d.ts +35 -0
  42. package/dist/schema/modules/deployment/types/deployment-record.js +31 -0
  43. package/dist/schema/modules/deployment/types/deployment-retention.d.ts +13 -0
  44. package/dist/schema/modules/deployment/types/deployment-retention.js +5 -0
  45. package/dist/schema/modules/deployment/types/index.d.ts +4 -0
  46. package/dist/schema/modules/deployment/types/index.js +2 -0
  47. package/dist/schema/modules/service/classes/cloudflare-worker.d.ts +103 -37
  48. package/dist/schema/modules/service/classes/cloudflare-worker.js +4 -1
  49. package/dist/schema/modules/service/classes/service.d.ts +19 -19
  50. package/dist/schema/modules/service/functions/delete-service-secret.d.ts +1 -1
  51. package/dist/schema/modules/service/functions/delete-service.d.ts +1 -1
  52. package/dist/schema/modules/service/functions/delete-worker-secret.d.ts +1 -1
  53. package/dist/schema/modules/service/functions/delete-worker.d.ts +1 -1
  54. package/dist/schema/modules/service/functions/deploy-cloudflare-worker.d.ts +37 -1
  55. package/dist/schema/modules/service/functions/index.d.ts +1 -0
  56. package/dist/schema/modules/service/functions/index.js +1 -0
  57. package/dist/schema/modules/service/functions/list-service-logs.d.ts +1 -1
  58. package/dist/schema/modules/service/functions/list-service-schedules.d.ts +1 -1
  59. package/dist/schema/modules/service/functions/list-service-secret-names.d.ts +1 -1
  60. package/dist/schema/modules/service/functions/list-worker-logs.d.ts +1 -1
  61. package/dist/schema/modules/service/functions/list-worker-schedules.d.ts +1 -1
  62. package/dist/schema/modules/service/functions/list-worker-secret-names.d.ts +1 -1
  63. package/dist/schema/modules/service/functions/migrate-worker-ingress.d.ts +24 -0
  64. package/dist/schema/modules/service/functions/migrate-worker-ingress.js +26 -0
  65. package/dist/schema/modules/service/functions/replace-service-schedules.d.ts +1 -1
  66. package/dist/schema/modules/service/functions/replace-worker-schedules.d.ts +1 -1
  67. package/dist/schema/modules/service/functions/set-service-secret.d.ts +1 -1
  68. package/dist/schema/modules/service/functions/set-worker-secret.d.ts +3 -3
  69. package/dist/schema/modules/service/index.d.ts +2 -2
  70. package/dist/schema/modules/service/index.js +1 -1
  71. package/dist/schema/modules/service/types/content/index.d.ts +1 -0
  72. package/dist/schema/modules/service/types/content/index.js +1 -0
  73. package/dist/schema/modules/service/types/content/limits.d.ts +7 -0
  74. package/dist/schema/modules/service/types/content/limits.js +7 -0
  75. package/dist/schema/modules/service/types/deploy-cloudflare-worker.d.ts +110 -0
  76. package/dist/schema/modules/service/types/index.d.ts +2 -1
  77. package/dist/schema/modules/service/types/index.js +1 -1
  78. package/dist/schema/modules/service/types/legacy/service-deployment-content.js +15 -0
  79. package/dist/schema/modules/service/types/service-deployment-artifact-module.d.ts +23 -0
  80. package/dist/schema/modules/service/types/service-deployment-artifact-module.js +5 -3
  81. package/dist/schema/modules/service/types/service-deployment-assets.d.ts +36 -0
  82. package/dist/schema/modules/service/types/service-deployment-assets.js +5 -3
  83. package/dist/schema/modules/service/types/service-deployment-content.d.ts +18 -11
  84. package/dist/schema/modules/service/types/service-deployment-content.js +17 -8
  85. package/dist/schema/schema.d.ts +365 -62
  86. package/dist/schema/schema.js +10 -0
  87. 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").Property<z.ZodString, {
13
+ url: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
14
14
  readonly required: false;
15
- }, never>;
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").Property<z.ZodString, {
41
+ digest: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
42
42
  readonly required: false;
43
- }, never>;
44
- deploymentReceipt: import("@astrale-os/sdk/schema").Property<z.ZodString, {
43
+ }>;
44
+ deploymentReceipt: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
45
45
  readonly required: false;
46
- }, never>;
47
- operationExpiresAt: import("@astrale-os/sdk/schema").Property<Readonly<{
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
- }, never>;
53
- error: import("@astrale-os/sdk/schema").Property<z.ZodString, {
52
+ }>;
53
+ error: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
54
54
  readonly required: false;
55
- }, never>;
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
- tenantDomainState: import("@astrale-os/sdk/schema").Property<z.ZodEnum<{
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
- }, never>;
135
- tenantDomainId: import("@astrale-os/sdk/schema").Property<z.ZodString, {
140
+ }>;
141
+ tenantDomainId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
136
142
  readonly required: false;
137
- }, never>;
138
- tenantCertificatePackId: import("@astrale-os/sdk/schema").Property<z.ZodString, {
143
+ }>;
144
+ tenantCertificatePackId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
139
145
  readonly required: false;
140
- }, never>;
141
- tenantZoneId: import("@astrale-os/sdk/schema").Property<z.ZodString, {
146
+ }>;
147
+ tenantZoneId: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
142
148
  readonly required: false;
143
- }, never>;
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").Property<z.ZodString, {
11
+ url: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
12
12
  readonly required: false;
13
- }, never>;
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").Property<z.ZodString, {
39
+ digest: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
40
40
  readonly required: false;
41
- }, never>;
42
- deploymentReceipt: import("@astrale-os/sdk/schema").Property<z.ZodString, {
41
+ }>;
42
+ deploymentReceipt: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
43
43
  readonly required: false;
44
- }, never>;
45
- operationExpiresAt: import("@astrale-os/sdk/schema").Property<Readonly<{
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
- }, never>;
51
- error: import("@astrale-os/sdk/schema").Property<z.ZodString, {
50
+ }>;
51
+ error: import("@astrale-os/sdk/schema").AuthoredProperty<z.ZodString, {
52
52
  readonly required: false;
53
- }, never>;
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
  }>;
@@ -8,4 +8,4 @@ export declare const deleteServiceSecret: import("@astrale-os/sdk/schema").Metho
8
8
  kind: "rejected";
9
9
  reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
10
10
  };
11
- }, "authorized", false, true>>;
11
+ }, "authorized", false, true, undefined>>;
@@ -6,4 +6,4 @@ export declare const deleteService: import("@astrale-os/sdk/schema").Method<impo
6
6
  kind: "deleting";
7
7
  retryAfterMs: number;
8
8
  };
9
- }, "authorized", false, true>>;
9
+ }, "authorized", false, true, undefined>>;
@@ -8,4 +8,4 @@ export declare const deleteWorkerSecret: import("@astrale-os/sdk/schema").Method
8
8
  kind: "rejected";
9
9
  reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
10
10
  };
11
- }, "authorized", false, false>>;
11
+ }, "authorized", false, false, undefined>>;
@@ -6,4 +6,4 @@ export declare const deleteWorker: import("@astrale-os/sdk/schema").Method<impor
6
6
  kind: "deleting";
7
7
  retryAfterMs: number;
8
8
  };
9
- }, "authorized", false, false>>;
9
+ }, "authorized", false, false, undefined>>;
@@ -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,3 +1,4 @@
1
+ export { migrateWorkerIngress } from './migrate-worker-ingress.js';
1
2
  export { deleteServiceSecret } from './delete-service-secret.js';
2
3
  export { deleteService } from './delete-service.js';
3
4
  export { deployCloudflareWorker } from './deploy-cloudflare-worker.js';
@@ -1,3 +1,4 @@
1
+ export { migrateWorkerIngress } from './migrate-worker-ingress.js';
1
2
  export { deleteServiceSecret } from './delete-service-secret.js';
2
3
  export { deleteService } from './delete-service.js';
3
4
  export { deployCloudflareWorker } from './deploy-cloudflare-worker.js';
@@ -9,4 +9,4 @@ export declare const listServiceLogs: import("@astrale-os/sdk/schema").Method<im
9
9
  level: string;
10
10
  line: string;
11
11
  }[];
12
- }, "authorized", false, true>>;
12
+ }, "authorized", false, true, 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>>;
@@ -9,4 +9,4 @@ export declare const listWorkerLogs: import("@astrale-os/sdk/schema").Method<imp
9
9
  level: string;
10
10
  line: string;
11
11
  }[];
12
- }, "authorized", false, false>>;
12
+ }, "authorized", false, false, 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
+ });
@@ -8,4 +8,4 @@ export declare const replaceServiceSchedules: import("@astrale-os/sdk/schema").M
8
8
  kind: "rejected";
9
9
  reason: "invalid-schedule" | "service-unavailable";
10
10
  };
11
- }, "authorized", false, true>>;
11
+ }, "authorized", false, true, undefined>>;
@@ -8,4 +8,4 @@ export declare const replaceWorkerSchedules: import("@astrale-os/sdk/schema").Me
8
8
  kind: "rejected";
9
9
  reason: "invalid-schedule" | "service-unavailable";
10
10
  };
11
- }, "authorized", false, false>>;
11
+ }, "authorized", false, false, undefined>>;
@@ -9,4 +9,4 @@ export declare const setServiceSecret: import("@astrale-os/sdk/schema").Method<i
9
9
  } | {
10
10
  name: string;
11
11
  };
12
- }, "authorized", false, true>>;
12
+ }, "authorized", false, true, undefined>>;