@astrale-domains/services 0.4.9 → 0.5.1

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 (181) hide show
  1. package/README.md +153 -816
  2. package/dist/schema/index.d.ts +4 -5
  3. package/dist/schema/index.js +2 -3
  4. package/dist/schema/modules/deployment/classes/cloudflare-deployment.d.ts +4 -321
  5. package/dist/schema/modules/deployment/classes/cloudflare-deployment.js +1 -19
  6. package/dist/schema/modules/deployment/classes/current-deployment.d.ts +20 -0
  7. package/dist/schema/modules/deployment/classes/current-deployment.js +13 -0
  8. package/dist/schema/modules/deployment/classes/{deployment-on-line.d.ts → deployment-of.d.ts} +3 -3
  9. package/dist/schema/modules/deployment/classes/deployment-of.js +11 -0
  10. package/dist/schema/modules/deployment/classes/deployment.d.ts +9 -57
  11. package/dist/schema/modules/deployment/classes/deployment.js +9 -23
  12. package/dist/schema/modules/deployment/classes/index.d.ts +2 -3
  13. package/dist/schema/modules/deployment/classes/index.js +2 -3
  14. package/dist/schema/modules/deployment/errors/deployment-not-found.d.ts +2 -5
  15. package/dist/schema/modules/deployment/errors/deployment-not-found.js +2 -5
  16. package/dist/schema/modules/deployment/errors/index.d.ts +0 -2
  17. package/dist/schema/modules/deployment/errors/index.js +0 -2
  18. package/dist/schema/modules/deployment/functions/index.d.ts +0 -10
  19. package/dist/schema/modules/deployment/functions/index.js +0 -10
  20. package/dist/schema/modules/deployment/functions/retire-deployment.d.ts +8 -7
  21. package/dist/schema/modules/deployment/functions/retire-deployment.js +8 -7
  22. package/dist/schema/modules/deployment/index.d.ts +6 -6
  23. package/dist/schema/modules/deployment/index.js +7 -5
  24. package/dist/schema/modules/deployment/policies/index.d.ts +1 -4
  25. package/dist/schema/modules/deployment/policies/index.js +1 -4
  26. package/dist/schema/modules/deployment/policies/own-deployment.d.ts +1 -1
  27. package/dist/schema/modules/deployment/policies/own-deployment.js +6 -7
  28. package/dist/schema/modules/deployment/policies/traverse-owned-service-deployment.d.ts +2 -0
  29. package/dist/schema/modules/deployment/policies/traverse-owned-service-deployment.js +7 -0
  30. package/dist/schema/modules/deployment/states/deployment-lifecycle.d.ts +6 -9
  31. package/dist/schema/modules/deployment/states/deployment-lifecycle.js +6 -7
  32. package/dist/schema/modules/deployment/types/deployment-hosting.d.ts +9 -28
  33. package/dist/schema/modules/deployment/types/deployment-hosting.js +3 -3
  34. package/dist/schema/modules/deployment/types/deployment-request.d.ts +12 -40
  35. package/dist/schema/modules/deployment/types/deployment-request.js +17 -9
  36. package/dist/schema/modules/deployment/types/deployment-response.d.ts +7 -15
  37. package/dist/schema/modules/deployment/types/deployment-response.js +2 -2
  38. package/dist/schema/modules/deployment/types/deployment-retire.d.ts +1 -1
  39. package/dist/schema/modules/deployment/types/deployment-secret.d.ts +0 -39
  40. package/dist/schema/modules/deployment/types/deployment-secret.js +0 -34
  41. package/dist/schema/modules/deployment/types/deployment-summary.d.ts +14 -45
  42. package/dist/schema/modules/deployment/types/deployment-summary.js +9 -8
  43. package/dist/schema/modules/deployment/types/index.d.ts +7 -3
  44. package/dist/schema/modules/deployment/types/index.js +4 -2
  45. package/dist/schema/modules/{service → deployment}/types/service-deployment-artifact-module.d.ts +2 -20
  46. package/dist/schema/modules/deployment/types/service-deployment-artifact-module.js +10 -0
  47. package/dist/schema/modules/{service → deployment}/types/service-deployment-assets.d.ts +4 -20
  48. package/dist/schema/modules/{service → deployment}/types/service-deployment-assets.js +4 -7
  49. package/dist/schema/modules/service/classes/cloudflare-service.d.ts +321 -0
  50. package/dist/schema/modules/service/classes/cloudflare-service.js +35 -0
  51. package/dist/schema/modules/service/classes/index.d.ts +1 -1
  52. package/dist/schema/modules/service/classes/index.js +1 -1
  53. package/dist/schema/modules/service/classes/service.d.ts +18 -107
  54. package/dist/schema/modules/service/classes/service.js +16 -27
  55. package/dist/schema/modules/service/errors/index.d.ts +1 -0
  56. package/dist/schema/modules/service/errors/index.js +1 -0
  57. package/dist/schema/modules/service/errors/service-not-found.d.ts +7 -0
  58. package/dist/schema/modules/service/errors/service-not-found.js +8 -0
  59. package/dist/schema/modules/service/functions/delete-service.d.ts +1 -1
  60. package/dist/schema/modules/service/functions/delete-service.js +1 -1
  61. package/dist/schema/modules/{deployment/functions/deploy-cloudflare-deployment.d.ts → service/functions/deploy-service.d.ts} +20 -35
  62. package/dist/schema/modules/service/functions/deploy-service.js +15 -0
  63. package/dist/schema/modules/service/functions/describe-hosting.d.ts +8 -0
  64. package/dist/schema/modules/service/functions/describe-hosting.js +11 -0
  65. package/dist/schema/modules/service/functions/index.d.ts +5 -10
  66. package/dist/schema/modules/service/functions/index.js +5 -10
  67. package/dist/schema/modules/{deployment/functions/list-cloudflare-deployments.d.ts → service/functions/list-service-deployments.d.ts} +8 -12
  68. package/dist/schema/modules/service/functions/list-service-deployments.js +10 -0
  69. package/dist/schema/modules/service/functions/list-service-logs.d.ts +2 -1
  70. package/dist/schema/modules/service/functions/list-service-logs.js +1 -1
  71. package/dist/schema/modules/service/functions/list-service-schedules.d.ts +1 -1
  72. package/dist/schema/modules/service/functions/list-service-schedules.js +1 -1
  73. package/dist/schema/modules/service/functions/list-service-secret-names.d.ts +1 -1
  74. package/dist/schema/modules/service/functions/list-service-secret-names.js +1 -1
  75. package/dist/schema/modules/service/functions/promote-service.d.ts +14 -0
  76. package/dist/schema/modules/service/functions/promote-service.js +4 -0
  77. package/dist/schema/modules/service/functions/replace-service-schedules.d.ts +1 -1
  78. package/dist/schema/modules/service/functions/replace-service-schedules.js +1 -4
  79. package/dist/schema/modules/service/functions/set-service-secret.d.ts +4 -2
  80. package/dist/schema/modules/service/functions/set-service-secret.js +1 -1
  81. package/dist/schema/modules/service/functions/transfer-service.d.ts +14 -0
  82. package/dist/schema/modules/service/functions/transfer-service.js +4 -0
  83. package/dist/schema/modules/service/index.d.ts +5 -5
  84. package/dist/schema/modules/service/index.js +5 -4
  85. package/dist/schema/modules/service/policies/act-as.d.ts +6 -0
  86. package/dist/schema/modules/service/policies/act-as.js +10 -0
  87. package/dist/schema/modules/service/policies/index.d.ts +1 -0
  88. package/dist/schema/modules/service/policies/index.js +1 -0
  89. package/dist/schema/modules/service/states/service-lifecycle.d.ts +7 -20
  90. package/dist/schema/modules/service/states/service-lifecycle.js +6 -21
  91. package/dist/schema/modules/service/types/index.d.ts +1 -13
  92. package/dist/schema/modules/service/types/index.js +1 -8
  93. package/dist/schema/modules/service/types/service-management.d.ts +65 -24
  94. package/dist/schema/modules/service/types/service-management.js +46 -21
  95. package/dist/schema/schema.d.ts +252 -758
  96. package/dist/schema/schema.js +7 -11
  97. package/package.json +2 -9
  98. package/dist/scaffold/create-service.mjs +0 -77
  99. package/dist/scaffold/template/.env.example +0 -2
  100. package/dist/scaffold/template/README.md +0 -37
  101. package/dist/scaffold/template/gitignore +0 -6
  102. package/dist/scaffold/template/scripts/build.mjs +0 -10
  103. package/dist/scaffold/template/scripts/deploy.mjs +0 -50
  104. package/dist/scaffold/template/src/account.js +0 -26
  105. package/dist/scaffold/template/src/index.js +0 -32
  106. package/dist/scaffold/template/src/job.js +0 -19
  107. package/dist/schema/modules/deployment/classes/deployment-line.d.ts +0 -23
  108. package/dist/schema/modules/deployment/classes/deployment-line.js +0 -24
  109. package/dist/schema/modules/deployment/classes/deployment-on-line.js +0 -11
  110. package/dist/schema/modules/deployment/classes/line-owned-by.d.ts +0 -26
  111. package/dist/schema/modules/deployment/classes/line-owned-by.js +0 -19
  112. package/dist/schema/modules/deployment/errors/deployment-label-not-found.d.ts +0 -12
  113. package/dist/schema/modules/deployment/errors/deployment-label-not-found.js +0 -11
  114. package/dist/schema/modules/deployment/errors/deployment-registry-only.d.ts +0 -11
  115. package/dist/schema/modules/deployment/errors/deployment-registry-only.js +0 -12
  116. package/dist/schema/modules/deployment/functions/deploy-cloudflare-deployment.js +0 -14
  117. package/dist/schema/modules/deployment/functions/describe-deployment-hosting.d.ts +0 -8
  118. package/dist/schema/modules/deployment/functions/describe-deployment-hosting.js +0 -11
  119. package/dist/schema/modules/deployment/functions/expire-deployment-previews.d.ts +0 -16
  120. package/dist/schema/modules/deployment/functions/expire-deployment-previews.js +0 -14
  121. package/dist/schema/modules/deployment/functions/list-cloudflare-deployment-secret-names.d.ts +0 -5
  122. package/dist/schema/modules/deployment/functions/list-cloudflare-deployment-secret-names.js +0 -4
  123. package/dist/schema/modules/deployment/functions/list-cloudflare-deployments.js +0 -10
  124. package/dist/schema/modules/deployment/functions/list-deployment-secret-names.d.ts +0 -4
  125. package/dist/schema/modules/deployment/functions/list-deployment-secret-names.js +0 -6
  126. package/dist/schema/modules/deployment/functions/read-deployment-last-calls.d.ts +0 -10
  127. package/dist/schema/modules/deployment/functions/read-deployment-last-calls.js +0 -13
  128. package/dist/schema/modules/deployment/functions/retain-deployment.d.ts +0 -12
  129. package/dist/schema/modules/deployment/functions/retain-deployment.js +0 -13
  130. package/dist/schema/modules/deployment/functions/set-cloudflare-deployment-secret.d.ts +0 -18
  131. package/dist/schema/modules/deployment/functions/set-cloudflare-deployment-secret.js +0 -7
  132. package/dist/schema/modules/deployment/functions/set-deployment-secret.d.ts +0 -14
  133. package/dist/schema/modules/deployment/functions/set-deployment-secret.js +0 -3
  134. package/dist/schema/modules/deployment/policies/act-for-organization.d.ts +0 -6
  135. package/dist/schema/modules/deployment/policies/act-for-organization.js +0 -10
  136. package/dist/schema/modules/deployment/policies/own-line.d.ts +0 -5
  137. package/dist/schema/modules/deployment/policies/own-line.js +0 -10
  138. package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.d.ts +0 -2
  139. package/dist/schema/modules/deployment/policies/traverse-owned-line-deployment.js +0 -7
  140. package/dist/schema/modules/deployment/policies/traverse-owned-line.d.ts +0 -2
  141. package/dist/schema/modules/deployment/policies/traverse-owned-line.js +0 -7
  142. package/dist/schema/modules/deployment/types/deployment-retention.d.ts +0 -49
  143. package/dist/schema/modules/deployment/types/deployment-retention.js +0 -45
  144. package/dist/schema/modules/service/classes/cloudflare-worker.d.ts +0 -352
  145. package/dist/schema/modules/service/classes/cloudflare-worker.js +0 -41
  146. package/dist/schema/modules/service/functions/delete-service-secret.d.ts +0 -11
  147. package/dist/schema/modules/service/functions/delete-service-secret.js +0 -3
  148. package/dist/schema/modules/service/functions/delete-worker-secret.d.ts +0 -11
  149. package/dist/schema/modules/service/functions/delete-worker-secret.js +0 -7
  150. package/dist/schema/modules/service/functions/delete-worker.d.ts +0 -9
  151. package/dist/schema/modules/service/functions/delete-worker.js +0 -7
  152. package/dist/schema/modules/service/functions/deploy-cloudflare-worker.d.ts +0 -109
  153. package/dist/schema/modules/service/functions/deploy-cloudflare-worker.js +0 -9
  154. package/dist/schema/modules/service/functions/list-worker-logs.d.ts +0 -12
  155. package/dist/schema/modules/service/functions/list-worker-logs.js +0 -7
  156. package/dist/schema/modules/service/functions/list-worker-schedules.d.ts +0 -4
  157. package/dist/schema/modules/service/functions/list-worker-schedules.js +0 -7
  158. package/dist/schema/modules/service/functions/list-worker-secret-names.d.ts +0 -4
  159. package/dist/schema/modules/service/functions/list-worker-secret-names.js +0 -7
  160. package/dist/schema/modules/service/functions/migrate-worker-ingress.d.ts +0 -24
  161. package/dist/schema/modules/service/functions/migrate-worker-ingress.js +0 -26
  162. package/dist/schema/modules/service/functions/replace-worker-schedules.d.ts +0 -11
  163. package/dist/schema/modules/service/functions/replace-worker-schedules.js +0 -7
  164. package/dist/schema/modules/service/functions/set-worker-secret.d.ts +0 -12
  165. package/dist/schema/modules/service/functions/set-worker-secret.js +0 -7
  166. package/dist/schema/modules/service/types/deploy-cloudflare-worker.d.ts +0 -286
  167. package/dist/schema/modules/service/types/deploy-cloudflare-worker.js +0 -51
  168. package/dist/schema/modules/service/types/legacy/service-deployment-content.js +0 -22
  169. package/dist/schema/modules/service/types/service-deployment-artifact-module.js +0 -13
  170. package/dist/schema/modules/service/types/service-deployment-resource-limits.d.ts +0 -6
  171. package/dist/schema/modules/service/types/service-deployment-resource-limits.js +0 -7
  172. package/dist/schema/modules/service/types/service-readiness.d.ts +0 -6
  173. package/dist/schema/modules/service/types/service-readiness.js +0 -6
  174. package/dist/schema/modules/service/types/service-secret-operation-rejection.d.ts +0 -9
  175. package/dist/schema/modules/service/types/service-secret-operation-rejection.js +0 -5
  176. /package/dist/schema/modules/{service → deployment}/types/content/index.d.ts +0 -0
  177. /package/dist/schema/modules/{service → deployment}/types/content/index.js +0 -0
  178. /package/dist/schema/modules/{service → deployment}/types/content/limits.d.ts +0 -0
  179. /package/dist/schema/modules/{service → deployment}/types/content/limits.js +0 -0
  180. /package/dist/schema/modules/{service → deployment}/types/service-deployment-content.d.ts +0 -0
  181. /package/dist/schema/modules/{service → deployment}/types/service-deployment-content.js +0 -0
@@ -1,14 +1,16 @@
1
1
  /**
2
- * Host one release as an immutable deployment on its publisher's line. Any authenticated identity
3
- * may ask; the handler proves that it acts for the organisation it names before any write.
2
+ * Host one release as an immutable deployment of the Service of its origin and environment,
3
+ * creating that Service on its first deploy, and by default make it the one the Service serves.
4
+ * Any authenticated identity may ask; the handler proves that the caller owns the Service, or for
5
+ * a new one that it is or acts as the owner it names, before any write.
4
6
  */
5
- export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
7
+ export declare const deployService: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
6
8
  format: "astrale.services.deployment-request";
7
9
  version: 1;
8
- organization?: string | undefined;
10
+ owner?: string | undefined;
9
11
  origin: string;
10
12
  environment: string;
11
- addressing: "opaque" | "readable";
13
+ addressing: "opaque";
12
14
  label: string;
13
15
  buildDigest: string;
14
16
  configuration: {
@@ -67,7 +69,7 @@ export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema"
67
69
  };
68
70
  bundle: {
69
71
  entrypoint: string;
70
- modules: ({
72
+ modules: {
71
73
  name: string;
72
74
  kind?: "data" | "esm" | "text" | "wasm" | undefined;
73
75
  content: {
@@ -79,17 +81,9 @@ export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema"
79
81
  decodedSize: number;
80
82
  contentBase64Chunks: string[];
81
83
  };
82
- } | {
83
- contentBase64: string;
84
- name: string;
85
- kind?: "data" | "esm" | "text" | "wasm" | undefined;
86
- } | {
87
- contentBase64Chunks: string[];
88
- name: string;
89
- kind?: "data" | "esm" | "text" | "wasm" | undefined;
90
- })[];
84
+ }[];
91
85
  assets?: {
92
- files: ({
86
+ files: {
93
87
  path: string;
94
88
  contentType?: string | undefined;
95
89
  content: {
@@ -101,27 +95,25 @@ export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema"
101
95
  decodedSize: number;
102
96
  contentBase64Chunks: string[];
103
97
  };
104
- } | {
105
- contentBase64: string;
106
- path: string;
107
- contentType?: string | undefined;
108
- } | {
109
- contentBase64Chunks: string[];
110
- path: string;
111
- contentType?: string | undefined;
112
- })[];
98
+ }[];
113
99
  notFound?: "404-page" | "none" | "single-page-application" | undefined;
114
100
  runWorkerFirst?: boolean | undefined;
115
101
  htmlHandling?: "none" | undefined;
116
102
  } | undefined;
117
103
  };
118
104
  secrets: Record<string, string>;
105
+ promote?: boolean | undefined;
119
106
  readiness?: {
120
107
  paths: string[];
121
108
  } | undefined;
122
109
  }, {
123
110
  readonly mode: 'value';
124
111
  readonly value: {
112
+ kind: "rejected";
113
+ reason: "address-mismatch" | "build-mismatch" | "deployment-conflict" | "deployment-retired" | "hosting-unavailable" | "invalid-deployment" | "service-owned-elsewhere" | "service-unavailable";
114
+ message: string;
115
+ retryAfter?: string | undefined;
116
+ } | {
125
117
  kind: "deployed";
126
118
  state: "created" | "reused";
127
119
  secrets: {
@@ -131,15 +123,13 @@ export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema"
131
123
  id: string;
132
124
  url: string;
133
125
  label: string;
134
- line: string;
126
+ serviceId: string;
127
+ service: string;
135
128
  owner: string;
136
129
  state: "active" | "deploying" | "failed" | "retired" | "retiring";
137
- retention: "preview" | "published";
130
+ current: boolean;
138
131
  createdAt: string;
139
- lastCallAt?: string | undefined;
140
- expiresAt?: string | undefined;
141
132
  retiredAt?: string | undefined;
142
- retirement?: "expired" | "withdrawn" | undefined;
143
133
  signingKeyId: string;
144
134
  record: {
145
135
  format: "astrale.deployment-record";
@@ -161,10 +151,5 @@ export declare const deployCloudflareDeployment: import("@astrale-os/sdk/schema"
161
151
  } | null;
162
152
  };
163
153
  };
164
- } | {
165
- kind: "rejected";
166
- reason: "address-mismatch" | "build-mismatch" | "deployment-conflict" | "deployment-retired" | "hosting-unavailable" | "invalid-deployment" | "line-owned-elsewhere" | "service-unavailable";
167
- message: string;
168
- retryAfter?: string | undefined;
169
154
  };
170
155
  }, "authenticated", true, false, undefined>>;
@@ -0,0 +1,15 @@
1
+ import { method } from '@astrale-os/sdk/schema';
2
+ import { deploymentRequest, deploymentResponse } from '../../deployment/index.js';
3
+ /**
4
+ * Host one release as an immutable deployment of the Service of its origin and environment,
5
+ * creating that Service on its first deploy, and by default make it the one the Service serves.
6
+ * Any authenticated identity may ask; the handler proves that the caller owns the Service, or for
7
+ * a new one that it is or acts as the owner it names, before any write.
8
+ */
9
+ export const deployService = method({
10
+ description: 'Host one release as an immutable deployment of its Service.',
11
+ auth: 'authenticated',
12
+ static: true,
13
+ input: deploymentRequest,
14
+ output: deploymentResponse,
15
+ });
@@ -0,0 +1,8 @@
1
+ /** Where this Services runtime addresses Services and their deployments. */
2
+ export declare const describeHosting: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<Record<string, never>, {
3
+ readonly mode: 'value';
4
+ readonly value: {
5
+ routingDomain: string;
6
+ addressing: "opaque";
7
+ };
8
+ }, "authenticated", true, false, undefined>>;
@@ -0,0 +1,11 @@
1
+ import { method } from '@astrale-os/sdk/schema';
2
+ import { z } from 'zod';
3
+ import { deploymentHosting } from '../../deployment/index.js';
4
+ /** Where this Services runtime addresses Services and their deployments. */
5
+ export const describeHosting = method({
6
+ description: 'Describe where this Services runtime addresses Services and deployments.',
7
+ auth: 'authenticated',
8
+ static: true,
9
+ input: z.strictObject({}),
10
+ output: deploymentHosting,
11
+ });
@@ -1,16 +1,11 @@
1
- export { migrateWorkerIngress } from './migrate-worker-ingress.js';
2
- export { deleteServiceSecret } from './delete-service-secret.js';
3
1
  export { deleteService } from './delete-service.js';
4
- export { deployCloudflareWorker } from './deploy-cloudflare-worker.js';
2
+ export { deployService } from './deploy-service.js';
3
+ export { describeHosting } from './describe-hosting.js';
4
+ export { listServiceDeployments } from './list-service-deployments.js';
5
5
  export { listServiceLogs } from './list-service-logs.js';
6
6
  export { listServiceSchedules } from './list-service-schedules.js';
7
7
  export { listServiceSecretNames } from './list-service-secret-names.js';
8
+ export { promoteService } from './promote-service.js';
8
9
  export { replaceServiceSchedules } from './replace-service-schedules.js';
9
10
  export { setServiceSecret } from './set-service-secret.js';
10
- export { deleteWorkerSecret } from './delete-worker-secret.js';
11
- export { deleteWorker } from './delete-worker.js';
12
- export { listWorkerLogs } from './list-worker-logs.js';
13
- export { listWorkerSchedules } from './list-worker-schedules.js';
14
- export { listWorkerSecretNames } from './list-worker-secret-names.js';
15
- export { replaceWorkerSchedules } from './replace-worker-schedules.js';
16
- export { setWorkerSecret } from './set-worker-secret.js';
11
+ export { transferService } from './transfer-service.js';
@@ -1,16 +1,11 @@
1
- export { migrateWorkerIngress } from './migrate-worker-ingress.js';
2
- export { deleteServiceSecret } from './delete-service-secret.js';
3
1
  export { deleteService } from './delete-service.js';
4
- export { deployCloudflareWorker } from './deploy-cloudflare-worker.js';
2
+ export { deployService } from './deploy-service.js';
3
+ export { describeHosting } from './describe-hosting.js';
4
+ export { listServiceDeployments } from './list-service-deployments.js';
5
5
  export { listServiceLogs } from './list-service-logs.js';
6
6
  export { listServiceSchedules } from './list-service-schedules.js';
7
7
  export { listServiceSecretNames } from './list-service-secret-names.js';
8
+ export { promoteService } from './promote-service.js';
8
9
  export { replaceServiceSchedules } from './replace-service-schedules.js';
9
10
  export { setServiceSecret } from './set-service-secret.js';
10
- export { deleteWorkerSecret } from './delete-worker-secret.js';
11
- export { deleteWorker } from './delete-worker.js';
12
- export { listWorkerLogs } from './list-worker-logs.js';
13
- export { listWorkerSchedules } from './list-worker-schedules.js';
14
- export { listWorkerSecretNames } from './list-worker-secret-names.js';
15
- export { replaceWorkerSchedules } from './replace-worker-schedules.js';
16
- export { setWorkerSecret } from './set-worker-secret.js';
11
+ export { transferService } from './transfer-service.js';
@@ -1,5 +1,5 @@
1
- /** The deployments of the lines the caller holds, or acts for through `extends_with`. */
2
- export declare const listCloudflareDeployments: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
1
+ /** The deployments of the Services the caller owns, or acts as the owner of. */
2
+ export declare const listServiceDeployments: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
3
3
  origin?: string | undefined;
4
4
  environment?: string | undefined;
5
5
  }, {
@@ -9,15 +9,13 @@ export declare const listCloudflareDeployments: import("@astrale-os/sdk/schema")
9
9
  id: string;
10
10
  url: string;
11
11
  label: string;
12
- line: string;
12
+ serviceId: string;
13
+ service: string;
13
14
  owner: string;
14
15
  state: "active" | "deploying" | "failed" | "retired" | "retiring";
15
- retention: "preview" | "published";
16
+ current: boolean;
16
17
  createdAt: string;
17
- lastCallAt?: string | undefined;
18
- expiresAt?: string | undefined;
19
18
  retiredAt?: string | undefined;
20
- retirement?: "expired" | "withdrawn" | undefined;
21
19
  signingKeyId: string;
22
20
  record: {
23
21
  format: "astrale.deployment-record";
@@ -42,15 +40,13 @@ export declare const listCloudflareDeployments: import("@astrale-os/sdk/schema")
42
40
  id: string;
43
41
  url: string;
44
42
  label: string;
45
- line: string;
43
+ serviceId: string;
44
+ service: string;
46
45
  owner: string;
47
46
  state: "active" | "deploying" | "failed" | "retired" | "retiring";
48
- retention: "preview" | "published";
47
+ current: boolean;
49
48
  createdAt: string;
50
- lastCallAt?: string | undefined;
51
- expiresAt?: string | undefined;
52
49
  retiredAt?: string | undefined;
53
- retirement?: "expired" | "withdrawn" | undefined;
54
50
  signingKeyId: string;
55
51
  record: unknown;
56
52
  })[];
@@ -0,0 +1,10 @@
1
+ import { method } from '@astrale-os/sdk/schema';
2
+ import { listDeploymentsInput, listDeploymentsOutput } from '../../deployment/index.js';
3
+ /** The deployments of the Services the caller owns, or acts as the owner of. */
4
+ export const listServiceDeployments = method({
5
+ description: 'List the deployments of the Services the caller owns.',
6
+ auth: 'authenticated',
7
+ static: true,
8
+ input: listDeploymentsInput,
9
+ output: listDeploymentsOutput,
10
+ });
@@ -1,4 +1,5 @@
1
1
  export declare const listServiceLogs: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
2
+ label?: string | undefined;
2
3
  tail?: number | undefined;
3
4
  since?: number | undefined;
4
5
  }, {
@@ -9,4 +10,4 @@ export declare const listServiceLogs: import("@astrale-os/sdk/schema").Method<im
9
10
  level: string;
10
11
  line: string;
11
12
  }[];
12
- }, "authorized", false, true, undefined>>;
13
+ }, "authenticated", false, false, undefined>>;
@@ -1,3 +1,3 @@
1
1
  import { method } from '@astrale-os/sdk/schema';
2
2
  import { listServiceLogsContract } from '../types/service-management.js';
3
- export const listServiceLogs = method({ ...listServiceLogsContract, abstract: true });
3
+ export const listServiceLogs = method(listServiceLogsContract);
@@ -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, undefined>>;
4
+ }, "authenticated", false, false, undefined>>;
@@ -1,3 +1,3 @@
1
1
  import { method } from '@astrale-os/sdk/schema';
2
2
  import { listServiceSchedulesContract } from '../types/service-management.js';
3
- export const listServiceSchedules = method({ ...listServiceSchedulesContract, abstract: true });
3
+ export const listServiceSchedules = method(listServiceSchedulesContract);
@@ -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, undefined>>;
4
+ }, "authenticated", false, false, undefined>>;
@@ -1,3 +1,3 @@
1
1
  import { method } from '@astrale-os/sdk/schema';
2
2
  import { listServiceSecretNamesContract } from '../types/service-management.js';
3
- export const listServiceSecretNames = method({ ...listServiceSecretNamesContract, abstract: true });
3
+ export const listServiceSecretNames = method(listServiceSecretNamesContract);
@@ -0,0 +1,14 @@
1
+ /** Point this Service at one of its active deployments; a rollback promotes an older one. */
2
+ export declare const promoteService: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
3
+ label: string;
4
+ }, {
5
+ readonly mode: 'value';
6
+ readonly value: {
7
+ kind: "rejected";
8
+ reason: "address-mismatch" | "build-mismatch" | "deployment-conflict" | "deployment-retired" | "hosting-unavailable" | "invalid-deployment" | "service-owned-elsewhere" | "service-unavailable";
9
+ message: string;
10
+ retryAfter?: string | undefined;
11
+ } | {
12
+ current: string;
13
+ };
14
+ }, "authenticated", false, false, undefined>>;
@@ -0,0 +1,4 @@
1
+ import { method } from '@astrale-os/sdk/schema';
2
+ import { promoteServiceContract } from '../types/service-management.js';
3
+ /** Point this Service at one of its active deployments; a rollback promotes an older one. */
4
+ export const promoteService = method(promoteServiceContract);
@@ -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, undefined>>;
11
+ }, "authenticated", false, false, undefined>>;
@@ -1,6 +1,3 @@
1
1
  import { method } from '@astrale-os/sdk/schema';
2
2
  import { replaceServiceSchedulesContract } from '../types/service-management.js';
3
- export const replaceServiceSchedules = method({
4
- ...replaceServiceSchedulesContract,
5
- abstract: true,
6
- });
3
+ export const replaceServiceSchedules = method(replaceServiceSchedulesContract);
@@ -5,8 +5,10 @@ export declare const setServiceSecret: import("@astrale-os/sdk/schema").Method<i
5
5
  readonly mode: 'value';
6
6
  readonly value: {
7
7
  kind: "rejected";
8
- reason: "binding-unavailable" | "invalid-secret-name" | "service-unavailable";
8
+ reason: "secret-undeclared" | "service-unavailable";
9
+ message: string;
10
+ retryAfter?: string | undefined;
9
11
  } | {
10
12
  name: string;
11
13
  };
12
- }, "authorized", false, true, undefined>>;
14
+ }, "authenticated", false, false, undefined>>;
@@ -1,3 +1,3 @@
1
1
  import { method } from '@astrale-os/sdk/schema';
2
2
  import { setServiceSecretContract } from '../types/service-management.js';
3
- export const setServiceSecret = method({ ...setServiceSecretContract, abstract: true });
3
+ export const setServiceSecret = method(setServiceSecretContract);
@@ -0,0 +1,14 @@
1
+ /** Give this Service, and with it every deployment of it, to another owner. */
2
+ export declare const transferService: import("@astrale-os/sdk/schema").Method<import("@astrale-os/sdk/schema").CallableProjection<{
3
+ owner: string;
4
+ }, {
5
+ readonly mode: 'value';
6
+ readonly value: {
7
+ owner: string;
8
+ } | {
9
+ kind: "rejected";
10
+ reason: "address-mismatch" | "build-mismatch" | "deployment-conflict" | "deployment-retired" | "hosting-unavailable" | "invalid-deployment" | "service-owned-elsewhere" | "service-unavailable";
11
+ message: string;
12
+ retryAfter?: string | undefined;
13
+ };
14
+ }, "authenticated", false, false, undefined>>;
@@ -0,0 +1,4 @@
1
+ import { method } from '@astrale-os/sdk/schema';
2
+ import { transferServiceContract } from '../types/service-management.js';
3
+ /** Give this Service, and with it every deployment of it, to another owner. */
4
+ export const transferService = method(transferServiceContract);
@@ -1,7 +1,7 @@
1
- export { CloudflareWorker, Service, service_owned_by } from './classes/index.js';
2
- export { deleteService, deleteServiceSecret, deployCloudflareWorker, listServiceLogs, listServiceSchedules, listServiceSecretNames, replaceServiceSchedules, setServiceSecret, } from './functions/index.js';
3
- export { OwnService, TraverseOwnedService } from './policies/index.js';
1
+ export { CloudflareService, Service, service_owned_by } from './classes/index.js';
2
+ export { deleteService, deployService, describeHosting, listServiceDeployments, listServiceLogs, listServiceSchedules, listServiceSecretNames, promoteService, replaceServiceSchedules, setServiceSecret, transferService, } from './functions/index.js';
3
+ export { serviceNotFound } from './errors/index.js';
4
+ export { ActAs, OwnService, TraverseOwnedService } from './policies/index.js';
4
5
  export { serviceLifecycle } from './states/index.js';
5
6
  export type { ServiceLifecycle, ServiceLifecycleEvent } from './states/index.js';
6
- export { artifact, artifactModule, assetBundle, assetFile, deployedService, deploymentRejection, deployServiceInput, deployServiceOutput, resourceLimits, revisionedDeployment, PORTABLE_BASE64_CHUNK_SIZE, MAX_ASSET_DECODED_SIZE, MAX_DEPLOYMENT_DECODED_SIZE, MAX_MODULE_DECODED_SIZE, } from './types/index.js';
7
- export type { ArtifactModule, AssetBundle, DeployServiceInput, DeployServiceOutput, ResourceLimits, ServiceDeploymentContent, } from './types/index.js';
7
+ export { deleteServiceContract, listServiceLogsContract, listServiceSchedulesContract, listServiceSecretNamesContract, promoteServiceContract, replaceServiceSchedulesContract, secretName, setServiceSecretContract, transferServiceContract, } from './types/index.js';
@@ -1,5 +1,6 @@
1
- export { CloudflareWorker, Service, service_owned_by } from './classes/index.js';
2
- export { deleteService, deleteServiceSecret, deployCloudflareWorker, listServiceLogs, listServiceSchedules, listServiceSecretNames, replaceServiceSchedules, setServiceSecret, } from './functions/index.js';
3
- export { OwnService, TraverseOwnedService } from './policies/index.js';
1
+ export { CloudflareService, Service, service_owned_by } from './classes/index.js';
2
+ export { deleteService, deployService, describeHosting, listServiceDeployments, listServiceLogs, listServiceSchedules, listServiceSecretNames, promoteService, replaceServiceSchedules, setServiceSecret, transferService, } from './functions/index.js';
3
+ export { serviceNotFound } from './errors/index.js';
4
+ export { ActAs, OwnService, TraverseOwnedService } from './policies/index.js';
4
5
  export { serviceLifecycle } from './states/index.js';
5
- export { artifact, artifactModule, assetBundle, assetFile, deployedService, deploymentRejection, deployServiceInput, deployServiceOutput, resourceLimits, revisionedDeployment, PORTABLE_BASE64_CHUNK_SIZE, MAX_ASSET_DECODED_SIZE, MAX_DEPLOYMENT_DECODED_SIZE, MAX_MODULE_DECODED_SIZE, } from './types/index.js';
6
+ export { deleteServiceContract, listServiceLogsContract, listServiceSchedulesContract, listServiceSecretNamesContract, promoteServiceContract, replaceServiceSchedulesContract, secretName, setServiceSecretContract, transferServiceContract, } from './types/index.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The subject is this Identity, or acts as it through `extends_with`, which the Kernel expands for
3
+ * the subject: a member of a group, or a CI identity composed with its owner. A deploy that names
4
+ * an owner other than its caller, and a transfer, ask it of the caller on that Identity.
5
+ */
6
+ export declare const ActAs: import("@astrale-os/sdk/schema").Policy;
@@ -0,0 +1,10 @@
1
+ import { policy } from '@astrale-os/sdk/schema';
2
+ /**
3
+ * The subject is this Identity, or acts as it through `extends_with`, which the Kernel expands for
4
+ * the subject: a member of a group, or a CI identity composed with its owner. A deploy that names
5
+ * an owner other than its caller, and a transfer, ask it of the caller on that Identity.
6
+ */
7
+ export const ActAs = policy({
8
+ description: 'The subject is this Identity or acts as it through extends_with.',
9
+ match: ({ sameNode, subject, object }) => sameNode(subject, object),
10
+ });
@@ -1,2 +1,3 @@
1
+ export { ActAs } from './act-as.js';
1
2
  export { OwnService } from './own-service.js';
2
3
  export { TraverseOwnedService } from './traverse-owned-service.js';
@@ -1,2 +1,3 @@
1
+ export { ActAs } from './act-as.js';
1
2
  export { OwnService } from './own-service.js';
2
3
  export { TraverseOwnedService } from './traverse-owned-service.js';
@@ -1,26 +1,13 @@
1
1
  import { type EventOf, type StateOf } from '@astrale-os/sdk/state';
2
- /** Complete provider-neutral lifecycle topology for one deployed Service. */
2
+ /**
3
+ * Lifecycle of one Service. It is `active` from its first deploy; `delete` retires every
4
+ * deployment of it, and the Service node goes once the last one is retired, freeing its name.
5
+ */
3
6
  export declare const serviceLifecycle: import("@astrale-os/sdk/schema").StateMachine<{
4
- readonly deploying: {
5
- readonly recordProviderDeployment: "reconciling";
6
- readonly failDeployment: "failed";
7
- readonly rejectDeployment: "ready";
8
- readonly deleteService: "deleting";
9
- };
10
- readonly reconciling: {
11
- readonly retryDeployment: "deploying";
12
- readonly completeDeployment: "ready";
13
- readonly deleteService: "deleting";
14
- };
15
- readonly ready: {
16
- readonly redeploy: "deploying";
17
- readonly deleteService: "deleting";
18
- };
19
- readonly failed: {
20
- readonly retryDeployment: "deploying";
21
- readonly deleteService: "deleting";
7
+ readonly active: {
8
+ readonly delete: "deleting";
22
9
  };
23
10
  readonly deleting: {};
24
- }, "deploying">;
11
+ }, "active">;
25
12
  export type ServiceLifecycle = StateOf<typeof serviceLifecycle>;
26
13
  export type ServiceLifecycleEvent = EventOf<typeof serviceLifecycle>;
@@ -1,27 +1,12 @@
1
1
  import { stateMachine } from '@astrale-os/sdk/state';
2
- /** Complete provider-neutral lifecycle topology for one deployed Service. */
2
+ /**
3
+ * Lifecycle of one Service. It is `active` from its first deploy; `delete` retires every
4
+ * deployment of it, and the Service node goes once the last one is retired, freeing its name.
5
+ */
3
6
  export const serviceLifecycle = stateMachine({
4
- initial: 'deploying',
7
+ initial: 'active',
5
8
  transitions: {
6
- deploying: {
7
- recordProviderDeployment: 'reconciling',
8
- failDeployment: 'failed',
9
- rejectDeployment: 'ready',
10
- deleteService: 'deleting',
11
- },
12
- reconciling: {
13
- retryDeployment: 'deploying',
14
- completeDeployment: 'ready',
15
- deleteService: 'deleting',
16
- },
17
- ready: {
18
- redeploy: 'deploying',
19
- deleteService: 'deleting',
20
- },
21
- failed: {
22
- retryDeployment: 'deploying',
23
- deleteService: 'deleting',
24
- },
9
+ active: { delete: 'deleting' },
25
10
  deleting: {},
26
11
  },
27
12
  });
@@ -1,14 +1,2 @@
1
- export { artifact, deployedService, deploymentRejection, deployServiceInput, deployServiceOutput, revisionedDeployment, } from './deploy-cloudflare-worker.js';
2
- export type { DeployServiceInput, DeployServiceOutput } from './deploy-cloudflare-worker.js';
3
- export { artifactModule } from './service-deployment-artifact-module.js';
4
- export type { ArtifactModule } from './service-deployment-artifact-module.js';
5
- export { assetBundle, assetFile } from './service-deployment-assets.js';
6
- export type { AssetBundle } from './service-deployment-assets.js';
7
- export { MAX_ASSET_DECODED_SIZE, MAX_DEPLOYMENT_DECODED_SIZE, MAX_MODULE_DECODED_SIZE, MAX_ASSET_BASE64_SIZE, MAX_MODULE_BASE64_SIZE, PORTABLE_BASE64_CHUNK_SIZE, } from './service-deployment-content.js';
8
- export { resourceLimits } from './service-deployment-resource-limits.js';
9
- export type { ResourceLimits } from './service-deployment-resource-limits.js';
10
1
  export { secretName } from './service-secret-name.js';
11
- export { secretOperationRejection } from './service-secret-operation-rejection.js';
12
- export { serviceReadiness } from './service-readiness.js';
13
- export { setServiceSecretContract, deleteServiceSecretContract, listServiceSecretNamesContract, replaceServiceSchedulesContract, listServiceSchedulesContract, listServiceLogsContract, deleteServiceContract, } from './service-management.js';
14
- export type { ServiceDeploymentContent } from './service-deployment-content.js';
2
+ export { deleteServiceContract, listServiceLogsContract, listServiceSchedulesContract, listServiceSecretNamesContract, promoteServiceContract, replaceServiceSchedulesContract, setServiceSecretContract, transferServiceContract, } from './service-management.js';
@@ -1,9 +1,2 @@
1
- export { artifact, deployedService, deploymentRejection, deployServiceInput, deployServiceOutput, revisionedDeployment, } from './deploy-cloudflare-worker.js';
2
- export { artifactModule } from './service-deployment-artifact-module.js';
3
- export { assetBundle, assetFile } from './service-deployment-assets.js';
4
- export { MAX_ASSET_DECODED_SIZE, MAX_DEPLOYMENT_DECODED_SIZE, MAX_MODULE_DECODED_SIZE, MAX_ASSET_BASE64_SIZE, MAX_MODULE_BASE64_SIZE, PORTABLE_BASE64_CHUNK_SIZE, } from './service-deployment-content.js';
5
- export { resourceLimits } from './service-deployment-resource-limits.js';
6
1
  export { secretName } from './service-secret-name.js';
7
- export { secretOperationRejection } from './service-secret-operation-rejection.js';
8
- export { serviceReadiness } from './service-readiness.js';
9
- export { setServiceSecretContract, deleteServiceSecretContract, listServiceSecretNamesContract, replaceServiceSchedulesContract, listServiceSchedulesContract, listServiceLogsContract, deleteServiceContract, } from './service-management.js';
2
+ export { deleteServiceContract, listServiceLogsContract, listServiceSchedulesContract, listServiceSecretNamesContract, promoteServiceContract, replaceServiceSchedulesContract, setServiceSecretContract, transferServiceContract, } from './service-management.js';