@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.
- package/CHANGELOG.md +15 -1
- package/README.md +1 -1
- package/dist/compute.d.ts +33 -0
- package/dist/compute.d.ts.map +1 -0
- package/dist/compute.js +119 -0
- package/dist/endpoint.d.ts +3 -1
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoints/admin-audit.d.ts +2 -2
- package/dist/endpoints/admin-audit.js +2 -2
- package/dist/endpoints/admin-bootstrap.js +3 -3
- package/dist/endpoints/admin-branch-databases.d.ts +1 -1
- package/dist/endpoints/admin-branch-databases.js +2 -2
- package/dist/endpoints/admin-config.d.ts +3 -0
- package/dist/endpoints/admin-config.d.ts.map +1 -1
- package/dist/endpoints/admin-config.js +9 -1
- package/dist/endpoints/admin-envs-spec.d.ts +27 -0
- package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
- package/dist/endpoints/admin-envs-spec.js +25 -0
- package/dist/endpoints/admin-projects.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.d.ts +1 -1
- package/dist/endpoints/admin-rate-limits.js +3 -3
- package/dist/endpoints/admin-secrets.d.ts +3 -3
- package/dist/endpoints/admin-secrets.js +1 -1
- package/dist/endpoints/admin-services.d.ts +3 -3
- package/dist/endpoints/admin-services.d.ts.map +1 -1
- package/dist/endpoints/admin-services.js +4 -5
- package/dist/endpoints/ai-admin.d.ts +134 -5
- package/dist/endpoints/ai-admin.d.ts.map +1 -1
- package/dist/endpoints/analytics-admin.d.ts +141 -6
- package/dist/endpoints/analytics-admin.d.ts.map +1 -1
- package/dist/endpoints/analytics-admin.js +7 -7
- package/dist/endpoints/auth.d.ts +26 -8
- package/dist/endpoints/auth.d.ts.map +1 -1
- package/dist/endpoints/auth.js +5 -5
- package/dist/endpoints/branch-databases.d.ts +13 -7
- package/dist/endpoints/branch-databases.d.ts.map +1 -1
- package/dist/endpoints/branch-databases.js +3 -3
- package/dist/endpoints/databases.d.ts +100 -164
- package/dist/endpoints/databases.d.ts.map +1 -1
- package/dist/endpoints/databases.js +8 -35
- package/dist/endpoints/deployments.d.ts +1 -3
- package/dist/endpoints/deployments.d.ts.map +1 -1
- package/dist/endpoints/deployments.js +1 -1
- package/dist/endpoints/domains.d.ts +7 -1
- package/dist/endpoints/domains.d.ts.map +1 -1
- package/dist/endpoints/email-admin.d.ts +1 -0
- package/dist/endpoints/email-admin.d.ts.map +1 -1
- package/dist/endpoints/environments.d.ts +11 -42
- package/dist/endpoints/environments.d.ts.map +1 -1
- package/dist/endpoints/flags-admin.d.ts +8 -0
- package/dist/endpoints/flags-admin.d.ts.map +1 -1
- package/dist/endpoints/image-opt.d.ts +5 -13
- package/dist/endpoints/image-opt.d.ts.map +1 -1
- package/dist/endpoints/image-opt.js +6 -18
- package/dist/endpoints/kv-admin.d.ts +0 -1
- package/dist/endpoints/kv-admin.d.ts.map +1 -1
- package/dist/endpoints/notifications-admin.d.ts +4 -4
- package/dist/endpoints/organizations.d.ts +8 -6
- package/dist/endpoints/organizations.d.ts.map +1 -1
- package/dist/endpoints/project-manifest.d.ts +362 -354
- package/dist/endpoints/project-manifest.d.ts.map +1 -1
- package/dist/endpoints/projects.d.ts +0 -8
- package/dist/endpoints/projects.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.d.ts +0 -1
- package/dist/endpoints/realtime-admin.d.ts.map +1 -1
- package/dist/endpoints/realtime-admin.js +1 -1
- package/dist/endpoints/regions.d.ts +2 -4
- package/dist/endpoints/regions.d.ts.map +1 -1
- package/dist/endpoints/regions.js +2 -2
- package/dist/endpoints/tasks.d.ts +2 -6
- package/dist/endpoints/tasks.d.ts.map +1 -1
- package/dist/hono-app.d.ts +3 -3
- package/dist/hono-app.js +2 -2
- package/dist/index.d.ts +852 -632
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/schemas/_primitives.d.ts +14 -0
- package/dist/schemas/_primitives.d.ts.map +1 -1
- package/dist/schemas/_primitives.js +16 -0
- package/dist/schemas/admin-audit.d.ts +4 -4
- package/dist/schemas/admin-audit.js +3 -3
- package/dist/schemas/admin-bootstrap.d.ts +1 -1
- package/dist/schemas/admin-bootstrap.js +1 -1
- package/dist/schemas/admin-builds.d.ts +1 -1
- package/dist/schemas/admin-builds.js +1 -1
- package/dist/schemas/admin-config.d.ts +4 -0
- package/dist/schemas/admin-config.d.ts.map +1 -1
- package/dist/schemas/admin-config.js +3 -0
- package/dist/schemas/admin-envs-spec.d.ts +49 -0
- package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
- package/dist/schemas/admin-envs-spec.js +58 -0
- package/dist/schemas/admin-projects.d.ts +2 -2
- package/dist/schemas/admin-projects.js +1 -1
- package/dist/schemas/admin-rate-limits.d.ts +2 -2
- package/dist/schemas/admin-rate-limits.js +2 -2
- package/dist/schemas/admin-secrets.d.ts +14 -14
- package/dist/schemas/admin-secrets.d.ts.map +1 -1
- package/dist/schemas/admin-secrets.js +10 -10
- package/dist/schemas/admin-services.d.ts +18 -22
- package/dist/schemas/admin-services.d.ts.map +1 -1
- package/dist/schemas/admin-services.js +15 -19
- package/dist/schemas/ai-admin.d.ts +137 -8
- package/dist/schemas/ai-admin.d.ts.map +1 -1
- package/dist/schemas/ai-admin.js +119 -13
- package/dist/schemas/analytics-admin.d.ts +164 -7
- package/dist/schemas/analytics-admin.d.ts.map +1 -1
- package/dist/schemas/analytics-admin.js +104 -3
- package/dist/schemas/auth.d.ts +2 -1
- package/dist/schemas/auth.d.ts.map +1 -1
- package/dist/schemas/auth.js +2 -1
- package/dist/schemas/branch-database.d.ts +25 -18
- package/dist/schemas/branch-database.d.ts.map +1 -1
- package/dist/schemas/branch-database.js +15 -14
- package/dist/schemas/database.d.ts +13 -19
- package/dist/schemas/database.d.ts.map +1 -1
- package/dist/schemas/database.js +7 -19
- package/dist/schemas/deployment.d.ts +5 -7
- package/dist/schemas/deployment.d.ts.map +1 -1
- package/dist/schemas/deployment.js +6 -6
- package/dist/schemas/domain.d.ts +3 -1
- package/dist/schemas/domain.d.ts.map +1 -1
- package/dist/schemas/domain.js +2 -1
- package/dist/schemas/email-admin.d.ts +1 -0
- package/dist/schemas/email-admin.d.ts.map +1 -1
- package/dist/schemas/email-admin.js +1 -0
- package/dist/schemas/environment.d.ts +17 -31
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js +11 -16
- package/dist/schemas/flags-admin.d.ts +13 -0
- package/dist/schemas/flags-admin.d.ts.map +1 -1
- package/dist/schemas/flags-admin.js +6 -0
- package/dist/schemas/ids.d.ts +4 -0
- package/dist/schemas/ids.d.ts.map +1 -1
- package/dist/schemas/ids.js +2 -0
- package/dist/schemas/image-opt.d.ts +10 -11
- package/dist/schemas/image-opt.d.ts.map +1 -1
- package/dist/schemas/image-opt.js +11 -12
- package/dist/schemas/kv-admin.d.ts +0 -1
- package/dist/schemas/kv-admin.d.ts.map +1 -1
- package/dist/schemas/kv-admin.js +0 -1
- package/dist/schemas/notifications-admin.d.ts +6 -6
- package/dist/schemas/notifications-admin.js +1 -1
- package/dist/schemas/organization.d.ts +8 -6
- package/dist/schemas/organization.d.ts.map +1 -1
- package/dist/schemas/organization.js +11 -6
- package/dist/schemas/project-manifest.d.ts +458 -455
- package/dist/schemas/project-manifest.d.ts.map +1 -1
- package/dist/schemas/project-manifest.js +66 -56
- package/dist/schemas/project.d.ts +0 -6
- package/dist/schemas/project.d.ts.map +1 -1
- package/dist/schemas/project.js +0 -2
- package/dist/schemas/realtime-admin.d.ts +0 -1
- package/dist/schemas/realtime-admin.d.ts.map +1 -1
- package/dist/schemas/realtime-admin.js +0 -1
- package/dist/schemas/realtime.d.ts +2 -2
- package/dist/schemas/realtime.js +2 -2
- package/dist/schemas/region.d.ts +3 -21
- package/dist/schemas/region.d.ts.map +1 -1
- package/dist/schemas/region.js +2 -11
- package/dist/schemas/resources.d.ts +213 -164
- package/dist/schemas/resources.d.ts.map +1 -1
- package/dist/schemas/resources.js +87 -105
- package/dist/schemas/storage.d.ts +1 -1
- package/dist/schemas/storage.js +1 -1
- package/dist/schemas/tasks.d.ts +3 -8
- package/dist/schemas/tasks.d.ts.map +1 -1
- package/dist/schemas/tasks.js +1 -4
- 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
|
|
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
|
|
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"}
|
package/dist/compute.js
ADDED
|
@@ -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
|
+
}
|
package/dist/endpoint.d.ts
CHANGED
|
@@ -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
|
package/dist/endpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEpE,mEAAmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAEzD,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,CAAA;AAEjD,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;AAE3E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAC3C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACrC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,qBAAqB,CAAA;AAEzE,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAClC;AAED,eAAO,MAAM,wBAAwB;;;CAGO,CAAA;AAE5C;;;;;;;;GAQG;AACH,UAAU,YAAY,CACrB,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,IAAI,SAAS,MAAM,GAAG,MAAM,EAE5B,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAE/D,KAAK,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAE9D,IAAI,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,GAAG,EAC7D,OAAO,SAAS,eAAe,GAAG,SAAS,GAAG,eAAe,GAAG,SAAS;IAEzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
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
|
-
//
|
|
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
|
|
20
|
-
'
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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;
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
36
|
-
'5 minutes
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
|
|
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;;;;;;;;;;;;
|
|
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
|
|
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
|
-
'
|
|
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
|
|
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
|
}),
|