@sylphx/contract 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +1 -1
  3. package/dist/compute.d.ts +33 -0
  4. package/dist/compute.d.ts.map +1 -0
  5. package/dist/compute.js +119 -0
  6. package/dist/endpoint.d.ts +3 -1
  7. package/dist/endpoint.d.ts.map +1 -1
  8. package/dist/endpoints/admin-audit.d.ts +2 -2
  9. package/dist/endpoints/admin-audit.js +2 -2
  10. package/dist/endpoints/admin-bootstrap.js +3 -3
  11. package/dist/endpoints/admin-branch-databases.d.ts +1 -1
  12. package/dist/endpoints/admin-branch-databases.js +2 -2
  13. package/dist/endpoints/admin-config.d.ts +3 -0
  14. package/dist/endpoints/admin-config.d.ts.map +1 -1
  15. package/dist/endpoints/admin-config.js +9 -1
  16. package/dist/endpoints/admin-envs-spec.d.ts +27 -0
  17. package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
  18. package/dist/endpoints/admin-envs-spec.js +25 -0
  19. package/dist/endpoints/admin-projects.d.ts +1 -1
  20. package/dist/endpoints/admin-rate-limits.d.ts +1 -1
  21. package/dist/endpoints/admin-rate-limits.js +3 -3
  22. package/dist/endpoints/admin-secrets.d.ts +3 -3
  23. package/dist/endpoints/admin-secrets.js +1 -1
  24. package/dist/endpoints/admin-services.d.ts +3 -3
  25. package/dist/endpoints/admin-services.d.ts.map +1 -1
  26. package/dist/endpoints/admin-services.js +4 -5
  27. package/dist/endpoints/ai-admin.d.ts +134 -5
  28. package/dist/endpoints/ai-admin.d.ts.map +1 -1
  29. package/dist/endpoints/analytics-admin.d.ts +141 -6
  30. package/dist/endpoints/analytics-admin.d.ts.map +1 -1
  31. package/dist/endpoints/analytics-admin.js +7 -7
  32. package/dist/endpoints/auth.d.ts +26 -8
  33. package/dist/endpoints/auth.d.ts.map +1 -1
  34. package/dist/endpoints/auth.js +5 -5
  35. package/dist/endpoints/branch-databases.d.ts +13 -7
  36. package/dist/endpoints/branch-databases.d.ts.map +1 -1
  37. package/dist/endpoints/branch-databases.js +3 -3
  38. package/dist/endpoints/databases.d.ts +100 -164
  39. package/dist/endpoints/databases.d.ts.map +1 -1
  40. package/dist/endpoints/databases.js +8 -35
  41. package/dist/endpoints/deployments.d.ts +1 -3
  42. package/dist/endpoints/deployments.d.ts.map +1 -1
  43. package/dist/endpoints/deployments.js +1 -1
  44. package/dist/endpoints/domains.d.ts +7 -1
  45. package/dist/endpoints/domains.d.ts.map +1 -1
  46. package/dist/endpoints/email-admin.d.ts +1 -0
  47. package/dist/endpoints/email-admin.d.ts.map +1 -1
  48. package/dist/endpoints/environments.d.ts +11 -42
  49. package/dist/endpoints/environments.d.ts.map +1 -1
  50. package/dist/endpoints/flags-admin.d.ts +8 -0
  51. package/dist/endpoints/flags-admin.d.ts.map +1 -1
  52. package/dist/endpoints/image-opt.d.ts +5 -13
  53. package/dist/endpoints/image-opt.d.ts.map +1 -1
  54. package/dist/endpoints/image-opt.js +6 -18
  55. package/dist/endpoints/kv-admin.d.ts +0 -1
  56. package/dist/endpoints/kv-admin.d.ts.map +1 -1
  57. package/dist/endpoints/notifications-admin.d.ts +4 -4
  58. package/dist/endpoints/organizations.d.ts +8 -6
  59. package/dist/endpoints/organizations.d.ts.map +1 -1
  60. package/dist/endpoints/project-manifest.d.ts +362 -354
  61. package/dist/endpoints/project-manifest.d.ts.map +1 -1
  62. package/dist/endpoints/projects.d.ts +0 -8
  63. package/dist/endpoints/projects.d.ts.map +1 -1
  64. package/dist/endpoints/realtime-admin.d.ts +0 -1
  65. package/dist/endpoints/realtime-admin.d.ts.map +1 -1
  66. package/dist/endpoints/realtime-admin.js +1 -1
  67. package/dist/endpoints/regions.d.ts +2 -4
  68. package/dist/endpoints/regions.d.ts.map +1 -1
  69. package/dist/endpoints/regions.js +2 -2
  70. package/dist/endpoints/tasks.d.ts +2 -6
  71. package/dist/endpoints/tasks.d.ts.map +1 -1
  72. package/dist/hono-app.d.ts +3 -3
  73. package/dist/hono-app.js +2 -2
  74. package/dist/index.d.ts +852 -632
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +7 -0
  77. package/dist/schemas/_primitives.d.ts +14 -0
  78. package/dist/schemas/_primitives.d.ts.map +1 -1
  79. package/dist/schemas/_primitives.js +16 -0
  80. package/dist/schemas/admin-audit.d.ts +4 -4
  81. package/dist/schemas/admin-audit.js +3 -3
  82. package/dist/schemas/admin-bootstrap.d.ts +1 -1
  83. package/dist/schemas/admin-bootstrap.js +1 -1
  84. package/dist/schemas/admin-builds.d.ts +1 -1
  85. package/dist/schemas/admin-builds.js +1 -1
  86. package/dist/schemas/admin-config.d.ts +4 -0
  87. package/dist/schemas/admin-config.d.ts.map +1 -1
  88. package/dist/schemas/admin-config.js +3 -0
  89. package/dist/schemas/admin-envs-spec.d.ts +49 -0
  90. package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
  91. package/dist/schemas/admin-envs-spec.js +58 -0
  92. package/dist/schemas/admin-projects.d.ts +2 -2
  93. package/dist/schemas/admin-projects.js +1 -1
  94. package/dist/schemas/admin-rate-limits.d.ts +2 -2
  95. package/dist/schemas/admin-rate-limits.js +2 -2
  96. package/dist/schemas/admin-secrets.d.ts +14 -14
  97. package/dist/schemas/admin-secrets.d.ts.map +1 -1
  98. package/dist/schemas/admin-secrets.js +10 -10
  99. package/dist/schemas/admin-services.d.ts +18 -22
  100. package/dist/schemas/admin-services.d.ts.map +1 -1
  101. package/dist/schemas/admin-services.js +15 -19
  102. package/dist/schemas/ai-admin.d.ts +137 -8
  103. package/dist/schemas/ai-admin.d.ts.map +1 -1
  104. package/dist/schemas/ai-admin.js +119 -13
  105. package/dist/schemas/analytics-admin.d.ts +164 -7
  106. package/dist/schemas/analytics-admin.d.ts.map +1 -1
  107. package/dist/schemas/analytics-admin.js +104 -3
  108. package/dist/schemas/auth.d.ts +2 -1
  109. package/dist/schemas/auth.d.ts.map +1 -1
  110. package/dist/schemas/auth.js +2 -1
  111. package/dist/schemas/branch-database.d.ts +25 -18
  112. package/dist/schemas/branch-database.d.ts.map +1 -1
  113. package/dist/schemas/branch-database.js +15 -14
  114. package/dist/schemas/database.d.ts +13 -19
  115. package/dist/schemas/database.d.ts.map +1 -1
  116. package/dist/schemas/database.js +7 -19
  117. package/dist/schemas/deployment.d.ts +5 -7
  118. package/dist/schemas/deployment.d.ts.map +1 -1
  119. package/dist/schemas/deployment.js +6 -6
  120. package/dist/schemas/domain.d.ts +3 -1
  121. package/dist/schemas/domain.d.ts.map +1 -1
  122. package/dist/schemas/domain.js +2 -1
  123. package/dist/schemas/email-admin.d.ts +1 -0
  124. package/dist/schemas/email-admin.d.ts.map +1 -1
  125. package/dist/schemas/email-admin.js +1 -0
  126. package/dist/schemas/environment.d.ts +17 -31
  127. package/dist/schemas/environment.d.ts.map +1 -1
  128. package/dist/schemas/environment.js +11 -16
  129. package/dist/schemas/flags-admin.d.ts +13 -0
  130. package/dist/schemas/flags-admin.d.ts.map +1 -1
  131. package/dist/schemas/flags-admin.js +6 -0
  132. package/dist/schemas/ids.d.ts +4 -0
  133. package/dist/schemas/ids.d.ts.map +1 -1
  134. package/dist/schemas/ids.js +2 -0
  135. package/dist/schemas/image-opt.d.ts +10 -11
  136. package/dist/schemas/image-opt.d.ts.map +1 -1
  137. package/dist/schemas/image-opt.js +11 -12
  138. package/dist/schemas/kv-admin.d.ts +0 -1
  139. package/dist/schemas/kv-admin.d.ts.map +1 -1
  140. package/dist/schemas/kv-admin.js +0 -1
  141. package/dist/schemas/notifications-admin.d.ts +6 -6
  142. package/dist/schemas/notifications-admin.js +1 -1
  143. package/dist/schemas/organization.d.ts +8 -6
  144. package/dist/schemas/organization.d.ts.map +1 -1
  145. package/dist/schemas/organization.js +11 -6
  146. package/dist/schemas/project-manifest.d.ts +458 -455
  147. package/dist/schemas/project-manifest.d.ts.map +1 -1
  148. package/dist/schemas/project-manifest.js +66 -56
  149. package/dist/schemas/project.d.ts +0 -6
  150. package/dist/schemas/project.d.ts.map +1 -1
  151. package/dist/schemas/project.js +0 -2
  152. package/dist/schemas/realtime-admin.d.ts +0 -1
  153. package/dist/schemas/realtime-admin.d.ts.map +1 -1
  154. package/dist/schemas/realtime-admin.js +0 -1
  155. package/dist/schemas/realtime.d.ts +2 -2
  156. package/dist/schemas/realtime.js +2 -2
  157. package/dist/schemas/region.d.ts +3 -21
  158. package/dist/schemas/region.d.ts.map +1 -1
  159. package/dist/schemas/region.js +2 -11
  160. package/dist/schemas/resources.d.ts +213 -164
  161. package/dist/schemas/resources.d.ts.map +1 -1
  162. package/dist/schemas/resources.js +87 -105
  163. package/dist/schemas/storage.d.ts +1 -1
  164. package/dist/schemas/storage.js +1 -1
  165. package/dist/schemas/tasks.d.ts +3 -8
  166. package/dist/schemas/tasks.d.ts.map +1 -1
  167. package/dist/schemas/tasks.js +1 -4
  168. package/package.json +5 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @sylphx/contract
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#746](https://github.com/SylphxAI/platform/pull/746) [`382a78e`](https://github.com/SylphxAI/platform/commit/382a78e2fb52d248890ae4fcb9551b8dde17a641) Thanks [@shtse8](https://github.com/shtse8)! - Align Management SDK email logs, suppressions, and settings with the contract-derived email admin surface.
8
+
9
+ The email management module now returns the contract list shape for logs, exposes log detail and suppression management helpers, and uses the contract settings input/response types. Consumers using the older hand-written email settings or log-list TypeScript shapes should migrate to the exported `EmailSettings`, `UpdateEmailSettingsInput`, `ListEmailLogsResult`, and `ListSuppressionsResult` types.
10
+
11
+ ## 0.6.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [#679](https://github.com/SylphxAI/platform/pull/679) [`df3c86e`](https://github.com/SylphxAI/platform/commit/df3c86e210f165070ed1e2f715eeed11ece6f07b) Thanks [@shtse8](https://github.com/shtse8)! - Align organization creation with the runtime SDK contract by supporting server-generated slugs plus optional organization email and metadata.
16
+
3
17
  ## 0.5.1
4
18
 
5
19
  ### Patch Changes
@@ -34,7 +48,7 @@
34
48
 
35
49
  ### Changes
36
50
 
37
- - **Initial beta release.** Effect Schema SSOT for the entire Sylphx API surface. Per [ADR-084](https://github.com/SylphxAI/platform/blob/main/docs/adr/ADR-084-effect-schema-contract.md), every endpoint, request body, response envelope, and error type is defined once in this package and consumed everywhere — `apps/api` Hono routes, the published SDKs (`@sylphx/management`, `@sylphx/sdk`), and the derived `openapi.json` spec. Hand-written parallel types are a bug (ADR-084 Rule 2).
51
+ - **Initial beta release.** Effect Schema SSOT for the entire Sylphx API surface. Per **ADR-084** (Effect Schema Contract — Sylphx-internal architecture record), every endpoint, request body, response envelope, and error type is defined once in this package and consumed everywhere — `apps/api` Hono routes, the published SDKs (`@sylphx/management`, `@sylphx/sdk`), and the derived `openapi.json` spec. Hand-written parallel types are a bug (ADR-084 Rule 2).
38
52
  - **70 endpoint groups, 82 schema files, ~745 endpoint definitions** covering three planes:
39
53
  - **Management** (`api.sylphx.com/v1`, Bearer `slx_*` / `sk_*`): `projects`, `deployments`, `environments`, `databases`, `envVars`, `domains`, `organizations`, `secrets`, `users`, `ciSettings`, `github`, `billingSettings`, `serviceTokens`, `serviceTokenRequests`, `runners`, `backups`, `webhooks`, `tasks`, `storage`, `storageAdmin`, `realtime`, `realtimeAdmin`, `saml`, `oidc`, `security`, `monitoring`, `monitoringAdmin`, `analytics`, `analyticsAdmin`, `flags`, `flagsAdmin`, `experiments`, `newsletter`, `referralsAdmin`, `engagementAdmin`, `aiAdmin`, `search`, `sessionReplay`, `email`, `emailAdmin`, `notifications`, `notificationsAdmin`, `consentAdmin`, `privacy`, `plans`, `billingConsole`.
40
54
  - **BaaS** (`<tenant-slug>.api.sylphx.com/v1`, ADR-083.1): `auth`, `refresh`, `challenge`, `kv`, `kvAdmin`, `email` (transactional send), `notifications` (push / in-app), `flags.evaluate`, `realtime` (pub/sub), `storage`, `search`.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  > The Effect Schema SSOT for every Sylphx API endpoint.
7
7
 
8
- Part of [ADR-084 — Effect Schema Contract](https://github.com/SylphxAI/platform/blob/main/docs/adr/ADR-084-effect-schema-contract.md).
8
+ Part of **ADR-084 — Effect Schema Contract** (Sylphx-internal architecture record).
9
9
 
10
10
  ## Installation
11
11
 
@@ -0,0 +1,33 @@
1
+ import type { MachineSize } from './schemas/project-manifest.js';
2
+ export declare const MACHINE_SIZES: readonly ["nano", "micro", "small", "standard", "large", "xlarge"];
3
+ export declare const DEFAULT_MACHINE_SIZE: MachineSize;
4
+ export interface MachineConfig {
5
+ cpu?: string;
6
+ memory?: string;
7
+ gpu?: string;
8
+ }
9
+ export interface MachineResourceRequirements {
10
+ requests?: {
11
+ cpu?: string;
12
+ memory?: string;
13
+ };
14
+ limits?: {
15
+ cpu?: string;
16
+ memory?: string;
17
+ };
18
+ }
19
+ export interface MachineTierResources {
20
+ cpuCores: number;
21
+ ramGb: number;
22
+ }
23
+ export declare const MACHINE_CONFIGS: Record<MachineSize, MachineConfig>;
24
+ export declare const MACHINE_RESOURCE_REQUIREMENTS: Record<MachineSize, MachineResourceRequirements>;
25
+ export declare const MACHINE_MAX_INSTANCES: Record<MachineSize, number>;
26
+ export declare function isMachineSize(value: unknown): value is MachineSize;
27
+ export declare function parseMachineSize(value: unknown): MachineSize | null;
28
+ export declare function toPublicMachineSize(value: unknown): MachineSize | null;
29
+ export declare function resolveMachineConfig(machine: MachineSize): MachineConfig;
30
+ export declare function resolveMachineResources(machine: MachineSize): MachineResourceRequirements;
31
+ export declare function resolveMachineMaxInstances(machine: MachineSize): number;
32
+ export declare function resolveMachineTierResources(machine: MachineSize): MachineTierResources;
33
+ //# sourceMappingURL=compute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../src/compute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAEhE,eAAO,MAAM,aAAa,oEAOiB,CAAA;AAE3C,eAAO,MAAM,oBAAoB,EAAE,WAAwB,CAAA;AAE3D,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,CAO9D,CAAA;AAED,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAyB1F,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAO7D,CAAA;AAkBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAEnE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAItE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,aAAa,CAExE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,2BAA2B,CAMzF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAEvE;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,GAAG,oBAAoB,CAMtF"}
@@ -0,0 +1,119 @@
1
+ export const MACHINE_SIZES = [
2
+ 'nano',
3
+ 'micro',
4
+ 'small',
5
+ 'standard',
6
+ 'large',
7
+ 'xlarge',
8
+ ];
9
+ export const DEFAULT_MACHINE_SIZE = 'standard';
10
+ export const MACHINE_CONFIGS = {
11
+ nano: { cpu: '100m', memory: '256Mi' },
12
+ micro: { cpu: '250m', memory: '512Mi' },
13
+ small: { cpu: '500m', memory: '1Gi' },
14
+ standard: { cpu: '1000m', memory: '2Gi' },
15
+ large: { cpu: '2000m', memory: '4Gi' },
16
+ xlarge: { cpu: '4000m', memory: '8Gi' },
17
+ };
18
+ export const MACHINE_RESOURCE_REQUIREMENTS = {
19
+ nano: {
20
+ requests: MACHINE_CONFIGS.nano,
21
+ limits: { cpu: '500m', memory: '512Mi' },
22
+ },
23
+ micro: {
24
+ requests: MACHINE_CONFIGS.micro,
25
+ limits: { cpu: '1000m', memory: '1Gi' },
26
+ },
27
+ small: {
28
+ requests: MACHINE_CONFIGS.small,
29
+ limits: { cpu: '2000m', memory: '2Gi' },
30
+ },
31
+ standard: {
32
+ requests: MACHINE_CONFIGS.standard,
33
+ limits: { cpu: '4000m', memory: '4Gi' },
34
+ },
35
+ large: {
36
+ requests: MACHINE_CONFIGS.large,
37
+ limits: { cpu: '8000m', memory: '8Gi' },
38
+ },
39
+ xlarge: {
40
+ requests: MACHINE_CONFIGS.xlarge,
41
+ limits: { cpu: '16000m', memory: '16Gi' },
42
+ },
43
+ };
44
+ export const MACHINE_MAX_INSTANCES = {
45
+ nano: 1,
46
+ micro: 3,
47
+ small: 5,
48
+ standard: 10,
49
+ large: 10,
50
+ xlarge: 20,
51
+ };
52
+ const LEGACY_PUBLIC_MACHINE_SIZE_ALIASES = {
53
+ xs: 'nano',
54
+ sm: 'micro',
55
+ md: 'standard',
56
+ lg: 'large',
57
+ xl: 'xlarge',
58
+ '2xl': 'xlarge',
59
+ '4xl': 'xlarge',
60
+ 'starter-1x': 'standard',
61
+ 'standard-1x': 'large',
62
+ 'standard-2x': 'large',
63
+ 'performance-m': 'xlarge',
64
+ 'performance-l': 'xlarge',
65
+ 'performance-xl': 'xlarge',
66
+ };
67
+ export function isMachineSize(value) {
68
+ return typeof value === 'string' && MACHINE_SIZES.includes(value);
69
+ }
70
+ export function parseMachineSize(value) {
71
+ return isMachineSize(value) ? value : null;
72
+ }
73
+ export function toPublicMachineSize(value) {
74
+ if (isMachineSize(value))
75
+ return value;
76
+ if (typeof value !== 'string')
77
+ return null;
78
+ return LEGACY_PUBLIC_MACHINE_SIZE_ALIASES[value] ?? null;
79
+ }
80
+ export function resolveMachineConfig(machine) {
81
+ return { ...MACHINE_CONFIGS[machine] };
82
+ }
83
+ export function resolveMachineResources(machine) {
84
+ const resources = MACHINE_RESOURCE_REQUIREMENTS[machine];
85
+ const resolved = {};
86
+ if (resources.requests)
87
+ resolved.requests = { ...resources.requests };
88
+ if (resources.limits)
89
+ resolved.limits = { ...resources.limits };
90
+ return resolved;
91
+ }
92
+ export function resolveMachineMaxInstances(machine) {
93
+ return MACHINE_MAX_INSTANCES[machine];
94
+ }
95
+ export function resolveMachineTierResources(machine) {
96
+ const resources = MACHINE_RESOURCE_REQUIREMENTS[machine];
97
+ return {
98
+ cpuCores: parseCpuCores(resources.limits?.cpu ?? resources.requests?.cpu),
99
+ ramGb: parseMemoryGb(resources.limits?.memory ?? resources.requests?.memory),
100
+ };
101
+ }
102
+ function parseCpuCores(quantity) {
103
+ if (!quantity)
104
+ return 0;
105
+ if (quantity.endsWith('m'))
106
+ return Number.parseFloat(quantity) / 1000;
107
+ return Number.parseFloat(quantity);
108
+ }
109
+ function parseMemoryGb(quantity) {
110
+ if (!quantity)
111
+ return 0;
112
+ if (quantity.endsWith('Gi'))
113
+ return Number.parseFloat(quantity);
114
+ if (quantity.endsWith('Mi'))
115
+ return Number.parseFloat(quantity) / 1024;
116
+ if (quantity.endsWith('Ki'))
117
+ return Number.parseFloat(quantity) / (1024 * 1024);
118
+ return Number.parseFloat(quantity) / 1024 ** 3;
119
+ }
@@ -72,8 +72,10 @@ interface EndpointBase<Method extends HttpMethod = HttpMethod, Path extends stri
72
72
  *
73
73
  * `admin` is a distinct plane covering Console operator-dashboard routes
74
74
  * that customers never consume (super-admin platform administration).
75
+ * `operator` is lower-level platform-owned mutation/debug surface and is
76
+ * intentionally excluded from public OpenAPI snapshots.
75
77
  */
76
- readonly plane?: 'management' | 'baas' | 'admin';
78
+ readonly plane?: 'management' | 'baas' | 'admin' | 'operator';
77
79
  /**
78
80
  * OpenAPI security requirements. Omit for the default bearerAuth contract;
79
81
  * use an empty array for deliberately public endpoints such as sign-in and
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  * Production mount: `/admin/audit/*`. The audit tree aggregates data from
6
6
  * many per-project databases. Where the shape is stable we use typed
7
7
  * schemas; where the payload is a pass-through from an evolving external
8
- * surface (Loki, Tempo, Mimir, CNPG) we use envelope-typed schemas; the
8
+ * surface (logs, traces, metrics, databases) we use envelope-typed schemas; the
9
9
  * residual `AdminAuditUnknownResult` cases are documented inline.
10
10
  */
11
11
  export declare const adminAuditEndpoints: {
@@ -442,7 +442,7 @@ export declare const adminAuditEndpoints: {
442
442
  latencyP95: import("effect/Schema").Array$<typeof import("effect/Schema").Unknown>;
443
443
  cpuUsage: import("effect/Schema").Array$<typeof import("effect/Schema").Unknown>;
444
444
  memoryUsage: import("effect/Schema").Array$<typeof import("effect/Schema").Unknown>;
445
- podCount: import("effect/Schema").Array$<typeof import("effect/Schema").Unknown>;
445
+ instanceCount: import("effect/Schema").Array$<typeof import("effect/Schema").Unknown>;
446
446
  }>, undefined>;
447
447
  readonly obsMetricsRange: import("../endpoint.js").Endpoint<"GET", "/operator/audit/projects/:id/obs/metrics/range", import("effect/Schema").Struct<{
448
448
  id: typeof import("effect/Schema").String;
@@ -5,7 +5,7 @@
5
5
  * Production mount: `/admin/audit/*`. The audit tree aggregates data from
6
6
  * many per-project databases. Where the shape is stable we use typed
7
7
  * schemas; where the payload is a pass-through from an evolving external
8
- * surface (Loki, Tempo, Mimir, CNPG) we use envelope-typed schemas; the
8
+ * surface (logs, traces, metrics, databases) we use envelope-typed schemas; the
9
9
  * residual `AdminAuditUnknownResult` cases are documented inline.
10
10
  */
11
11
  import { defineEndpoint } from '../endpoint.js';
@@ -416,7 +416,7 @@ export const adminAuditEndpoints = {
416
416
  method: 'GET',
417
417
  path: '/operator/audit/projects/:id/database/metrics',
418
418
  params: AdminAuditProjectParams,
419
- // CNPG real-time metrics passthrough — upstream operator owns the shape.
419
+ // Database real-time metrics passthrough — upstream operator owns the shape.
420
420
  response: AdminAuditUnknownResult,
421
421
  plane: 'management',
422
422
  summary: 'Database metrics',
@@ -16,10 +16,10 @@ export const adminBootstrapEndpoints = {
16
16
  response: ResetBootstrapWindowResult,
17
17
  plane: 'management',
18
18
  summary: 'Re-open the Appwrite-pattern bootstrap window',
19
- description: 'Forcibly sets the `bootstrap:window:open` Redis key (TTL 600s) so ' +
20
- 'another call to `POST /v1/auth/bootstrap-signup` will succeed. ' +
19
+ description: 'Forcibly re-opens the managed bootstrap window (TTL 600s) so another ' +
20
+ 'call to `POST /v1/auth/bootstrap-signup` will succeed. ' +
21
21
  'Requires a super-admin platform session. The window normally opens ' +
22
- 'exactly once per fresh cluster and closes itself on first successful ' +
22
+ 'exactly once per fresh installation and closes itself on first successful ' +
23
23
  'bootstrap signup; this endpoint is the documented recovery path when ' +
24
24
  'the window expires before an operator can use it, or when a second ' +
25
25
  'recovery admin needs to be created via the same flow.',
@@ -2,7 +2,7 @@
2
2
  * Admin Branch Databases endpoints — operator recovery surface.
3
3
  *
4
4
  * Replaces raw production `branch_databases` UPDATE/INSERT repair steps with
5
- * scoped service-token endpoints. The controller still owns all CNPG/Rook
5
+ * scoped service-token endpoints. The controller still owns all backend
6
6
  * side effects; these endpoints only mutate the branch DB desired-state row.
7
7
  */
8
8
  export declare const adminBranchDatabasesEndpoints: {
@@ -2,7 +2,7 @@
2
2
  * Admin Branch Databases endpoints — operator recovery surface.
3
3
  *
4
4
  * Replaces raw production `branch_databases` UPDATE/INSERT repair steps with
5
- * scoped service-token endpoints. The controller still owns all CNPG/Rook
5
+ * scoped service-token endpoints. The controller still owns all backend
6
6
  * side effects; these endpoints only mutate the branch DB desired-state row.
7
7
  */
8
8
  import { defineEndpoint } from '../endpoint.js';
@@ -32,7 +32,7 @@ export const adminBranchDatabasesEndpoints = {
32
32
  plane: 'management',
33
33
  summary: 'Schedule preview branch database teardown from the operator plane',
34
34
  description: 'Transitions the active branch database for a preview environment to ' +
35
- '`destroying`; the controller performs CNPG/Rook cleanup and stamps ' +
35
+ '`destroying`; the controller performs backend cleanup and stamps ' +
36
36
  '`destroyed`. Re-running while already destroying is idempotent. Requires ' +
37
37
  'service token scope `platform:branchdb:destroy` and emits an `audit_logs` ' +
38
38
  'row with `operation=branch_database_destroy`.',
@@ -172,6 +172,9 @@ export declare const adminConfigEndpoints: {
172
172
  filename: typeof import("effect/Schema").String;
173
173
  count: typeof import("effect/Schema").Number;
174
174
  }>, undefined>;
175
+ readonly getOAuthProviders: import("../endpoint.js").Endpoint<"GET", "/operator/config/oauth-providers", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
176
+ enabledProviders: import("effect/Schema").Array$<typeof import("effect/Schema").String>;
177
+ }>, undefined>;
175
178
  readonly notificationsOverview: import("../endpoint.js").Endpoint<"GET", "/operator/config/notifications/overview", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, typeof import("effect/Schema").Unknown, undefined>;
176
179
  readonly referralsOverview: import("../endpoint.js").Endpoint<"GET", "/operator/config/referrals/overview", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, typeof import("effect/Schema").Unknown, undefined>;
177
180
  readonly flagsOverview: import("../endpoint.js").Endpoint<"GET", "/operator/config/flags/overview", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, typeof import("effect/Schema").Unknown, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-config.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGvB,CAAA"}
1
+ {"version":3,"file":"admin-config.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GvB,CAAA"}
@@ -5,7 +5,7 @@
5
5
  * Production mount: `/admin/config/*`.
6
6
  */
7
7
  import { defineEndpoint } from '../endpoint.js';
8
- import { AdminConfigProjectParams, AdminExportUsersResult, AdminGetConsentConfigResult, AdminGetPushCredentialsResult, AdminGetReferralConfigResult, AdminOverviewResult, AdminUpdateConsentConfigInput, AdminUpdateConsentConfigResult, AdminUpdatePushCredentialsInput, AdminUpdatePushCredentialsResult, AdminUpdateReferralConfigInput, AdminUpdateReferralConfigResult, } from '../schemas/admin-config.js';
8
+ import { AdminConfigProjectParams, AdminExportUsersResult, AdminGetConsentConfigResult, AdminGetPushCredentialsResult, AdminGetReferralConfigResult, AdminOAuthProvidersResult, AdminOverviewResult, AdminUpdateConsentConfigInput, AdminUpdateConsentConfigResult, AdminUpdatePushCredentialsInput, AdminUpdatePushCredentialsResult, AdminUpdateReferralConfigInput, AdminUpdateReferralConfigResult, } from '../schemas/admin-config.js';
9
9
  export const adminConfigEndpoints = {
10
10
  getReferralConfig: defineEndpoint({
11
11
  method: 'GET',
@@ -73,6 +73,14 @@ export const adminConfigEndpoints = {
73
73
  summary: 'Export app users as CSV',
74
74
  tags: ['admin-config'],
75
75
  }),
76
+ getOAuthProviders: defineEndpoint({
77
+ method: 'GET',
78
+ path: '/operator/config/oauth-providers',
79
+ response: AdminOAuthProvidersResult,
80
+ plane: 'management',
81
+ summary: 'List platform OAuth providers configured by environment',
82
+ tags: ['admin-config'],
83
+ }),
76
84
  notificationsOverview: defineEndpoint({
77
85
  method: 'GET',
78
86
  path: '/operator/config/notifications/overview',
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Admin Envs-Spec endpoint — operator-only desired-spec patch surface.
3
+ *
4
+ * Scope: `platform:envs:spec`. Plane: operator.
5
+ */
6
+ export declare const adminEnvsSpecEndpoints: {
7
+ readonly patch: import("../endpoint.js").Endpoint<"PATCH", "/operator/envs/:envId/spec", import("effect/Schema").Struct<{
8
+ envId: import("effect/Schema").filter<typeof import("effect/Schema").String>;
9
+ }>, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").filter<import("effect/Schema").Struct<{
10
+ runtimeClassName: import("effect/Schema").optional<import("effect/Schema").NullOr<typeof import("effect/Schema").String>>;
11
+ defaultSandboxImage: import("effect/Schema").optional<import("effect/Schema").NullOr<import("effect/Schema").filter<typeof import("effect/Schema").String>>>;
12
+ defaultSecurityContext: import("effect/Schema").optional<import("effect/Schema").Struct<{
13
+ runAsNonRoot: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
14
+ allowPrivilegeEscalation: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
15
+ privileged: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
16
+ }>>;
17
+ defaultHealthAgentMode: import("effect/Schema").optional<import("effect/Schema").Literal<["auto", "passthrough", "disabled"]>>;
18
+ reason: import("effect/Schema").filter<import("effect/Schema").filter<typeof import("effect/Schema").String>>;
19
+ }>>, import("effect/Schema").Struct<{
20
+ envId: import("effect/Schema").filter<typeof import("effect/Schema").String>;
21
+ runtimeClassName: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
22
+ defaultSandboxImage: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
23
+ defaultSecurityContext: import("effect/Schema").NullOr<import("effect/Schema").Record$<typeof import("effect/Schema").String, typeof import("effect/Schema").Unknown>>;
24
+ defaultHealthAgentMode: import("effect/Schema").NullOr<import("effect/Schema").Literal<["auto", "passthrough", "disabled"]>>;
25
+ }>, undefined>;
26
+ };
27
+ //# sourceMappingURL=admin-envs-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-envs-spec.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-envs-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;CAkBzB,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Admin Envs-Spec endpoint — operator-only desired-spec patch surface.
3
+ *
4
+ * Scope: `platform:envs:spec`. Plane: operator.
5
+ */
6
+ import { defineEndpoint } from '../endpoint.js';
7
+ import { AdminEnvsSpecParams, AdminEnvsSpecPatchInput, AdminEnvsSpecPatchResult, } from '../schemas/admin-envs-spec.js';
8
+ export const adminEnvsSpecEndpoints = {
9
+ patch: defineEndpoint({
10
+ method: 'PATCH',
11
+ path: '/operator/envs/:envId/spec',
12
+ params: AdminEnvsSpecParams,
13
+ body: AdminEnvsSpecPatchInput,
14
+ response: AdminEnvsSpecPatchResult,
15
+ plane: 'operator',
16
+ summary: 'Patch operator-only environment desired-spec fields',
17
+ description: 'Mutates the operator-owned subset of environment desired_spec: ' +
18
+ 'runtimeClassName, defaultSandboxImage, defaultSecurityContext, and ' +
19
+ 'defaultHealthAgentMode. Requires service token scope `platform:envs:spec`, ' +
20
+ 'validates the merged result against the canonical EnvSpec schema, rejects ' +
21
+ 'privileged security context unless runtimeClassName contains `kata`, queues ' +
22
+ 'reconciliation for materialized environments, and emits an audit log.',
23
+ tags: ['admin-envs-spec'],
24
+ }),
25
+ };
@@ -149,7 +149,7 @@ export declare const adminProjectsEndpoints: {
149
149
  role: typeof import("effect/Schema").String;
150
150
  resourceId: typeof import("effect/Schema").String;
151
151
  status: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
152
- clusterName: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
152
+ backendName: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
153
153
  }>>, undefined>;
154
154
  };
155
155
  //# sourceMappingURL=admin-projects.d.ts.map
@@ -15,7 +15,7 @@
15
15
  * 2. DB row for credential type → multiplier.
16
16
  * 3. Inline `CREDENTIAL_MULTIPLIERS_INLINE` defaults if the DB lookup
17
17
  * fails (config-path fail-open). The enforcement layer itself still
18
- * fails CLOSED on Redis outages.
18
+ * fails CLOSED on managed cache outages.
19
19
  *
20
20
  * @see `apps/api/src/server/platform/routes/admin/rate-limits.ts`
21
21
  * @see `packages/core/src/lib/security/rate-limit-credential-multipliers.ts`
@@ -15,7 +15,7 @@
15
15
  * 2. DB row for credential type → multiplier.
16
16
  * 3. Inline `CREDENTIAL_MULTIPLIERS_INLINE` defaults if the DB lookup
17
17
  * fails (config-path fail-open). The enforcement layer itself still
18
- * fails CLOSED on Redis outages.
18
+ * fails CLOSED on managed cache outages.
19
19
  *
20
20
  * @see `apps/api/src/server/platform/routes/admin/rate-limits.ts`
21
21
  * @see `packages/core/src/lib/security/rate-limit-credential-multipliers.ts`
@@ -32,8 +32,8 @@ export const adminRateLimitsEndpoints = {
32
32
  description: 'Returns one row per credential type (`public`, `secret`, `service`, ' +
33
33
  '`session`, `spiffe`, `unknown`) with its multiplier, exempt flag, ' +
34
34
  'operator-supplied notes, and last-update timestamp. Reads ' +
35
- 'authoritatively from the DB; the in-memory cache is refreshed every ' +
36
- '5 minutes via Redis. Requires service token with scope ' +
35
+ 'authoritatively from the DB; the enforcement cache is refreshed every ' +
36
+ '5 minutes. Requires service token with scope ' +
37
37
  '`platform:ratelimits:write`.',
38
38
  tags: ['admin-rate-limits'],
39
39
  }),
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Auth: service-token + scope `platform:secrets:rotate` (NOT super-admin
8
8
  * session — see schema header for rationale). The endpoint is the audit
9
- * trail; actual K8s secret value updates remain a two-person Ops runbook
9
+ * trail; actual secret value updates remain a two-person Ops runbook
10
10
  * step (`docs/runbooks/secret-rotation.md`).
11
11
  */
12
12
  export declare const adminSecretsEndpoints: {
@@ -17,7 +17,7 @@ export declare const adminSecretsEndpoints: {
17
17
  ageDays: import("effect/Schema").NullOr<typeof import("effect/Schema").Number>;
18
18
  cadenceDays: typeof import("effect/Schema").Number;
19
19
  overdue: typeof import("effect/Schema").Boolean;
20
- clusterSecretRef: typeof import("effect/Schema").String;
20
+ rotationTarget: typeof import("effect/Schema").String;
21
21
  }>>;
22
22
  }>, undefined>;
23
23
  readonly rotate: import("../endpoint.js").Endpoint<"POST", "/operator/secrets/rotate", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
@@ -32,7 +32,7 @@ export declare const adminSecretsEndpoints: {
32
32
  ageDays: import("effect/Schema").NullOr<typeof import("effect/Schema").Number>;
33
33
  cadenceDays: typeof import("effect/Schema").Number;
34
34
  overdue: typeof import("effect/Schema").Boolean;
35
- clusterSecretRef: typeof import("effect/Schema").String;
35
+ rotationTarget: typeof import("effect/Schema").String;
36
36
  }>;
37
37
  auditLogId: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
38
38
  message: typeof import("effect/Schema").String;
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Auth: service-token + scope `platform:secrets:rotate` (NOT super-admin
8
8
  * session — see schema header for rationale). The endpoint is the audit
9
- * trail; actual K8s secret value updates remain a two-person Ops runbook
9
+ * trail; actual secret value updates remain a two-person Ops runbook
10
10
  * step (`docs/runbooks/secret-rotation.md`).
11
11
  */
12
12
  import { defineEndpoint } from '../endpoint.js';
@@ -17,11 +17,11 @@ export declare const adminServicesEndpoints: {
17
17
  readonly imageStatus: import("../endpoint.js").Endpoint<"GET", "/operator/services/image-status", import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Schema.AnyNoContext | undefined, import("effect/Schema").Struct<{
18
18
  services: import("effect/Schema").Array$<import("effect/Schema").Struct<{
19
19
  name: typeof import("effect/Schema").String;
20
- dbRef: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
21
- k8sRef: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
20
+ controlRef: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
21
+ runtimeRef: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
22
22
  driftMinutes: import("effect/Schema").NullOr<typeof import("effect/Schema").Number>;
23
23
  inSync: typeof import("effect/Schema").Boolean;
24
- dbUpdatedAt: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
24
+ controlUpdatedAt: import("effect/Schema").NullOr<typeof import("effect/Schema").String>;
25
25
  }>>;
26
26
  checkedAt: typeof import("effect/Schema").String;
27
27
  }>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-services.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;CAkBzB,CAAA"}
1
+ {"version":3,"file":"admin-services.d.ts","sourceRoot":"","sources":["../../src/endpoints/admin-services.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;CAiBzB,CAAA"}
@@ -21,14 +21,13 @@ export const adminServicesEndpoints = {
21
21
  path: '/operator/services/image-status',
22
22
  response: AdminServiceImageStatusResult,
23
23
  plane: 'management',
24
- summary: 'Per-Platform-service image SSOT vs live K8s drift report',
24
+ summary: 'Per-Platform-service image SSOT vs live runtime drift report',
25
25
  description: 'Returns one row per Platform service (controller, api, runtime, ' +
26
- 'web, exec-server, storage-gateway, storage-worker) reporting both ' +
27
- '`project_services.latest_image_ref` (DB SSOT) and the live ' +
28
- '`Deployment.spec.template.spec.containers[0].image` (K8s). The ' +
26
+ 'web, exec-server, storage-gateway, storage-worker) reporting both the ' +
27
+ 'control-plane artifact reference and the live runtime artifact reference. The ' +
29
28
  'drift-watchdog cronjob polls this every 10 minutes; rows where ' +
30
29
  '`inSync=false` past a 30-minute grace window page on-call. ' +
31
- 'Read-only: never mutates DB or K8s state. Requires service token ' +
30
+ 'Read-only: never mutates control-plane or runtime state. Requires service token ' +
32
31
  'with scope `platform:services:read`.',
33
32
  tags: ['admin-services'],
34
33
  }),