@sylphx/contract 0.5.1 → 0.6.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 +6 -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-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/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/environments.d.ts +11 -42
- package/dist/endpoints/environments.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/organizations.d.ts +8 -6
- package/dist/endpoints/organizations.d.ts.map +1 -1
- package/dist/endpoints/project-manifest.d.ts +90 -84
- 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 +2 -2
- package/dist/hono-app.js +2 -2
- package/dist/index.d.ts +254 -338
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -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-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/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/environment.d.ts +17 -31
- package/dist/schemas/environment.d.ts.map +1 -1
- package/dist/schemas/environment.js +11 -16
- 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/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 +180 -187
- package/dist/schemas/project-manifest.d.ts.map +1 -1
- package/dist/schemas/project-manifest.js +62 -57
- 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 +1 -1
|
@@ -25,10 +25,10 @@ export type Slug = typeof Slug.Type;
|
|
|
25
25
|
/** Environment name — closed enum matches ADR-080 environment types. */
|
|
26
26
|
export declare const ManifestEnvName: Schema.Literal<["production", "staging", "preview", "development"]>;
|
|
27
27
|
export type ManifestEnvName = typeof ManifestEnvName.Type;
|
|
28
|
-
/**
|
|
28
|
+
/** Public region slug. The platform maps this to provider capacity internally. */
|
|
29
29
|
export declare const ManifestRegion: Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>;
|
|
30
30
|
export type ManifestRegion = typeof ManifestRegion.Type;
|
|
31
|
-
/**
|
|
31
|
+
/** Compute size tiers — shared between build runners and runtime services. */
|
|
32
32
|
export declare const MachineSize: Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>;
|
|
33
33
|
export type MachineSize = typeof MachineSize.Type;
|
|
34
34
|
/** Build runner size — smaller enum than MachineSize (no nano/micro). */
|
|
@@ -40,13 +40,16 @@ export type BuildpackName = typeof BuildpackName.Type;
|
|
|
40
40
|
/** Build strategy hint. `dockerfile` pins the build to the declared Dockerfile. */
|
|
41
41
|
export declare const BuildStrategy: Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>;
|
|
42
42
|
export type BuildStrategy = typeof BuildStrategy.Type;
|
|
43
|
-
/** Service type discriminant — drives
|
|
43
|
+
/** Service type discriminant — drives the platform runtime shape. */
|
|
44
44
|
export declare const ServiceType: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
45
45
|
export type ServiceType = typeof ServiceType.Type;
|
|
46
|
-
/**
|
|
46
|
+
/** Public instance count for user-declared services. */
|
|
47
|
+
export declare const ManifestServiceInstanceCount: Schema.filter<Schema.filter<typeof Schema.Number>>;
|
|
48
|
+
export type ManifestServiceInstanceCount = typeof ManifestServiceInstanceCount.Type;
|
|
49
|
+
/** Deploy strategy — `rolling` is the Sylphx default. */
|
|
47
50
|
export declare const DeployStrategy: Schema.Literal<["rolling", "blue-green", "immediate"]>;
|
|
48
51
|
export type DeployStrategy = typeof DeployStrategy.Type;
|
|
49
|
-
/** WWW-apex redirect policy
|
|
52
|
+
/** WWW-apex redirect policy. */
|
|
50
53
|
export declare const WwwRedirect: Schema.Literal<["apex", "www", "none"]>;
|
|
51
54
|
export type WwwRedirect = typeof WwwRedirect.Type;
|
|
52
55
|
export declare const ManifestProjectSection: Schema.Struct<{
|
|
@@ -92,10 +95,10 @@ export type ManifestBuildSection = typeof ManifestBuildSection.Type;
|
|
|
92
95
|
export declare const ManifestDeploySection: Schema.Struct<{
|
|
93
96
|
/**
|
|
94
97
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
95
|
-
* contract). Runs
|
|
98
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
96
99
|
*/
|
|
97
100
|
release_command: Schema.optional<typeof Schema.String>;
|
|
98
|
-
/** HTTP path
|
|
101
|
+
/** HTTP readiness path. */
|
|
99
102
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
100
103
|
/** Timeout in seconds. */
|
|
101
104
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -119,8 +122,8 @@ export declare const ManifestServiceHealthSection: Schema.Struct<{
|
|
|
119
122
|
command: Schema.optional<typeof Schema.String>;
|
|
120
123
|
}>;
|
|
121
124
|
export type ManifestServiceHealthSection = typeof ManifestServiceHealthSection.Type;
|
|
122
|
-
export declare const ManifestServiceSection: Schema.Struct<{
|
|
123
|
-
/** Service name — unique within project.
|
|
125
|
+
export declare const ManifestServiceSection: Schema.filter<Schema.Struct<{
|
|
126
|
+
/** Service name — unique within project. */
|
|
124
127
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
125
128
|
type: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
126
129
|
/** Per-service build override. Root [build] remains the default. */
|
|
@@ -137,48 +140,45 @@ export declare const ManifestServiceSection: Schema.Struct<{
|
|
|
137
140
|
path: Schema.optional<typeof Schema.String>;
|
|
138
141
|
command: Schema.optional<typeof Schema.String>;
|
|
139
142
|
}>>;
|
|
140
|
-
/**
|
|
143
|
+
/** Service start command. */
|
|
141
144
|
command: Schema.optional<typeof Schema.String>;
|
|
142
|
-
/**
|
|
145
|
+
/** Service port; required for `web` when it cannot be detected automatically. */
|
|
143
146
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
144
|
-
/**
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
*/
|
|
148
|
-
internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
149
|
-
/** Replica count. Ignored for `cron`. */
|
|
150
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
151
|
-
/** Compute size; maps to per-service K8s resources.requests/limits. */
|
|
147
|
+
/** Explicit instance count. Ignored for `cron`. */
|
|
148
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
149
|
+
/** Compute size; maps to per-service runtime resources. */
|
|
152
150
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
153
151
|
/** Required when type=cron. Standard 5-field cron expression. */
|
|
154
152
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
155
153
|
/** Optional per-service region override. */
|
|
156
154
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
157
|
-
/**
|
|
158
|
-
* Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
|
|
159
|
-
* `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
|
|
160
|
-
* the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
|
|
161
|
-
*/
|
|
155
|
+
/** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
|
|
162
156
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
163
157
|
/**
|
|
164
|
-
* Seconds of no traffic before
|
|
165
|
-
*
|
|
158
|
+
* Seconds of no traffic before the platform scales the service down to 0.
|
|
159
|
+
* Only meaningful when `scale_to_zero=true`.
|
|
166
160
|
* Range: 60s–3600s. Default: 300 (5 min).
|
|
167
161
|
*/
|
|
168
162
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
169
163
|
/**
|
|
170
|
-
* Minimum
|
|
171
|
-
* Setting `
|
|
172
|
-
* floor while still
|
|
164
|
+
* Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
|
|
165
|
+
* Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
|
|
166
|
+
* floor while still allowing horizontal scale-out beyond 1.
|
|
173
167
|
*/
|
|
174
|
-
|
|
168
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
169
|
+
/** Optional upper bound for platform-managed horizontal scale-out. */
|
|
170
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
175
171
|
/** Per-service env var merge — refs entries from top-level [env]. */
|
|
176
172
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
177
|
-
/**
|
|
173
|
+
/**
|
|
174
|
+
* Reserved for declarative service-scoped managed resource bindings.
|
|
175
|
+
* Current push-webhook support is environment-scoped via top-level [resources.*],
|
|
176
|
+
* so deploy parsing fails closed if this field is present.
|
|
177
|
+
*/
|
|
178
178
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
179
179
|
/** Paths whose changes should trigger this service in monorepos. */
|
|
180
180
|
watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
181
|
-
}
|
|
181
|
+
}>>;
|
|
182
182
|
export type ManifestServiceSection = typeof ManifestServiceSection.Type;
|
|
183
183
|
export declare const ManifestMigrationEngine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
184
184
|
export type ManifestMigrationEngine = typeof ManifestMigrationEngine.Type;
|
|
@@ -208,8 +208,8 @@ export type ManifestDatabaseSection = typeof ManifestDatabaseSection.Type;
|
|
|
208
208
|
* Env var value — literal, secret reference, or resource attribute.
|
|
209
209
|
* Values are NEVER stored in the manifest — always by reference.
|
|
210
210
|
* `from_secret` resolves via the platform `secrets` table (AES-256-GCM).
|
|
211
|
-
* `from_resource` + `attr` resolves
|
|
212
|
-
*
|
|
211
|
+
* `from_resource` + `attr` resolves product-level outputs such as
|
|
212
|
+
* `database_url`, `cache_url`, `search_url`, and `volume_mount_path`.
|
|
213
213
|
*/
|
|
214
214
|
export declare const ManifestEnvValue: Schema.Union<[Schema.Struct<{
|
|
215
215
|
value: typeof Schema.String;
|
|
@@ -244,51 +244,47 @@ export declare const KvTier: Schema.Literal<["nano", "micro", "standard", "large
|
|
|
244
244
|
export type KvTier = typeof KvTier.Type;
|
|
245
245
|
export declare const ManifestVolumeTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
246
246
|
export type ManifestVolumeTier = typeof ManifestVolumeTier.Type;
|
|
247
|
-
export declare const
|
|
248
|
-
export type
|
|
247
|
+
export declare const ManifestVolumeSharing: Schema.Literal<["single-writer", "shared"]>;
|
|
248
|
+
export type ManifestVolumeSharing = typeof ManifestVolumeSharing.Type;
|
|
249
249
|
export declare const ManifestDatabaseEngine: Schema.Literal<["postgres"]>;
|
|
250
250
|
export type ManifestDatabaseEngine = typeof ManifestDatabaseEngine.Type;
|
|
251
|
-
export declare const ManifestKvEngine: Schema.Literal<["valkey"]>;
|
|
252
|
-
export type ManifestKvEngine = typeof ManifestKvEngine.Type;
|
|
253
|
-
export declare const ManifestSearchEngine: Schema.Literal<["typesense"]>;
|
|
254
|
-
export type ManifestSearchEngine = typeof ManifestSearchEngine.Type;
|
|
255
251
|
export declare const ManifestDatabaseResource: Schema.Struct<{
|
|
256
252
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
257
253
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
258
|
-
/**
|
|
254
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
259
255
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
260
256
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
261
257
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
262
|
-
/**
|
|
263
|
-
|
|
258
|
+
/** Optional managed read replicas. */
|
|
259
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
264
260
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
265
261
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
266
262
|
}>;
|
|
267
263
|
export type ManifestDatabaseResource = typeof ManifestDatabaseResource.Type;
|
|
268
264
|
export declare const ManifestKvResource: Schema.Struct<{
|
|
269
|
-
|
|
270
|
-
|
|
265
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
266
|
+
exact: true;
|
|
267
|
+
}>;
|
|
271
268
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
272
269
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
273
270
|
}>;
|
|
274
271
|
export type ManifestKvResource = typeof ManifestKvResource.Type;
|
|
275
272
|
export declare const ManifestSearchResource: Schema.Struct<{
|
|
276
|
-
|
|
277
|
-
|
|
273
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
274
|
+
exact: true;
|
|
275
|
+
}>;
|
|
278
276
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
279
277
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
280
|
-
nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
281
278
|
}>;
|
|
282
279
|
export type ManifestSearchResource = typeof ManifestSearchResource.Type;
|
|
283
280
|
export declare const ManifestVolumeResource: Schema.Struct<{
|
|
284
281
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
285
282
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
286
283
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* disks.
|
|
284
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
285
|
+
* class without exposing implementation details.
|
|
290
286
|
*/
|
|
291
|
-
|
|
287
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
292
288
|
/**
|
|
293
289
|
* Optional env-facing path metadata. This does not mount the volume into an
|
|
294
290
|
* app service by itself; service/task mounts stay explicit bindings.
|
|
@@ -305,37 +301,37 @@ export declare const ManifestResourcesSection: Schema.Struct<{
|
|
|
305
301
|
database: Schema.optional<Schema.Struct<{
|
|
306
302
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
307
303
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
308
|
-
/**
|
|
304
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
309
305
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
310
306
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
311
307
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
312
|
-
/**
|
|
313
|
-
|
|
308
|
+
/** Optional managed read replicas. */
|
|
309
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
314
310
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
315
311
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
316
312
|
}>>;
|
|
317
313
|
kv: Schema.optional<Schema.Struct<{
|
|
318
|
-
|
|
319
|
-
|
|
314
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
315
|
+
exact: true;
|
|
316
|
+
}>;
|
|
320
317
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
321
318
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
322
319
|
}>>;
|
|
323
320
|
search: Schema.optional<Schema.Struct<{
|
|
324
|
-
|
|
325
|
-
|
|
321
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
322
|
+
exact: true;
|
|
323
|
+
}>;
|
|
326
324
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
327
325
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
328
|
-
nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
329
326
|
}>>;
|
|
330
327
|
volume: Schema.optional<Schema.Struct<{
|
|
331
328
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
332
329
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
333
330
|
/**
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
* disks.
|
|
331
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
332
|
+
* class without exposing implementation details.
|
|
337
333
|
*/
|
|
338
|
-
|
|
334
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
339
335
|
/**
|
|
340
336
|
* Optional env-facing path metadata. This does not mount the volume into an
|
|
341
337
|
* app service by itself; service/task mounts stay explicit bindings.
|
|
@@ -367,22 +363,22 @@ export type ManifestCiSection = typeof ManifestCiSection.Type;
|
|
|
367
363
|
* `[[services]]` entry with the matching name. Arrays replace, scalars/
|
|
368
364
|
* structs merge.
|
|
369
365
|
*/
|
|
370
|
-
export declare const ManifestServiceOverride: Schema.Struct<{
|
|
366
|
+
export declare const ManifestServiceOverride: Schema.filter<Schema.Struct<{
|
|
371
367
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
372
368
|
type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
|
|
373
369
|
command: Schema.optional<typeof Schema.String>;
|
|
374
370
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
375
|
-
|
|
376
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
371
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
377
372
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
378
373
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
379
374
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
380
375
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
381
376
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
382
|
-
|
|
377
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
378
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
383
379
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
384
380
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
385
|
-
}
|
|
381
|
+
}>>;
|
|
386
382
|
export type ManifestServiceOverride = typeof ManifestServiceOverride.Type;
|
|
387
383
|
export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
388
384
|
/** Shallow-merge over top-level [env]. */
|
|
@@ -422,10 +418,10 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
|
422
418
|
deploy: Schema.optional<Schema.Struct<{
|
|
423
419
|
/**
|
|
424
420
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
425
|
-
* contract). Runs
|
|
421
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
426
422
|
*/
|
|
427
423
|
release_command: Schema.optional<typeof Schema.String>;
|
|
428
|
-
/** HTTP path
|
|
424
|
+
/** HTTP readiness path. */
|
|
429
425
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
430
426
|
/** Timeout in seconds. */
|
|
431
427
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -435,22 +431,22 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
|
435
431
|
graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
436
432
|
}>>;
|
|
437
433
|
/** Sparse service overrides; entries match by `name`. */
|
|
438
|
-
services: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
434
|
+
services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
|
|
439
435
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
440
436
|
type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
|
|
441
437
|
command: Schema.optional<typeof Schema.String>;
|
|
442
438
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
443
|
-
|
|
444
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
439
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
445
440
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
446
441
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
447
442
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
448
443
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
449
444
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
450
|
-
|
|
445
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
446
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
451
447
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
452
448
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
453
|
-
}
|
|
449
|
+
}>>>>;
|
|
454
450
|
/** Per-env region override. */
|
|
455
451
|
region: Schema.optional<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>;
|
|
456
452
|
/** Domain overrides; typically for preview-only hostnames. */
|
|
@@ -489,15 +485,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
489
485
|
readonly port?: number | undefined;
|
|
490
486
|
readonly env?: readonly string[] | undefined;
|
|
491
487
|
readonly resources?: readonly string[] | undefined;
|
|
492
|
-
readonly
|
|
488
|
+
readonly instances?: number | undefined;
|
|
489
|
+
readonly max_instances?: number | undefined;
|
|
493
490
|
readonly command?: string | undefined;
|
|
494
|
-
readonly
|
|
495
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
491
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
496
492
|
readonly cron_schedule?: string | undefined;
|
|
497
493
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
498
494
|
readonly scale_to_zero?: boolean | undefined;
|
|
499
495
|
readonly idle_timeout_seconds?: number | undefined;
|
|
500
|
-
readonly
|
|
496
|
+
readonly min_instances?: number | undefined;
|
|
501
497
|
}[] | undefined;
|
|
502
498
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
503
499
|
readonly env?: {
|
|
@@ -543,15 +539,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
543
539
|
readonly port?: number | undefined;
|
|
544
540
|
readonly env?: readonly string[] | undefined;
|
|
545
541
|
readonly resources?: readonly string[] | undefined;
|
|
546
|
-
readonly
|
|
542
|
+
readonly instances?: number | undefined;
|
|
543
|
+
readonly max_instances?: number | undefined;
|
|
547
544
|
readonly command?: string | undefined;
|
|
548
|
-
readonly
|
|
549
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
545
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
550
546
|
readonly cron_schedule?: string | undefined;
|
|
551
547
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
552
548
|
readonly scale_to_zero?: boolean | undefined;
|
|
553
549
|
readonly idle_timeout_seconds?: number | undefined;
|
|
554
|
-
readonly
|
|
550
|
+
readonly min_instances?: number | undefined;
|
|
555
551
|
}[] | undefined;
|
|
556
552
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
557
553
|
readonly env?: {
|
|
@@ -597,15 +593,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
597
593
|
readonly port?: number | undefined;
|
|
598
594
|
readonly env?: readonly string[] | undefined;
|
|
599
595
|
readonly resources?: readonly string[] | undefined;
|
|
600
|
-
readonly
|
|
596
|
+
readonly instances?: number | undefined;
|
|
597
|
+
readonly max_instances?: number | undefined;
|
|
601
598
|
readonly command?: string | undefined;
|
|
602
|
-
readonly
|
|
603
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
599
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
604
600
|
readonly cron_schedule?: string | undefined;
|
|
605
601
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
606
602
|
readonly scale_to_zero?: boolean | undefined;
|
|
607
603
|
readonly idle_timeout_seconds?: number | undefined;
|
|
608
|
-
readonly
|
|
604
|
+
readonly min_instances?: number | undefined;
|
|
609
605
|
}[] | undefined;
|
|
610
606
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
611
607
|
readonly env?: {
|
|
@@ -651,15 +647,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
651
647
|
readonly port?: number | undefined;
|
|
652
648
|
readonly env?: readonly string[] | undefined;
|
|
653
649
|
readonly resources?: readonly string[] | undefined;
|
|
654
|
-
readonly
|
|
650
|
+
readonly instances?: number | undefined;
|
|
651
|
+
readonly max_instances?: number | undefined;
|
|
655
652
|
readonly command?: string | undefined;
|
|
656
|
-
readonly
|
|
657
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
653
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
658
654
|
readonly cron_schedule?: string | undefined;
|
|
659
655
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
660
656
|
readonly scale_to_zero?: boolean | undefined;
|
|
661
657
|
readonly idle_timeout_seconds?: number | undefined;
|
|
662
|
-
readonly
|
|
658
|
+
readonly min_instances?: number | undefined;
|
|
663
659
|
}[] | undefined;
|
|
664
660
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
665
661
|
readonly env?: {
|
|
@@ -706,15 +702,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
706
702
|
readonly port?: number | undefined;
|
|
707
703
|
readonly env?: readonly string[] | undefined;
|
|
708
704
|
readonly resources?: readonly string[] | undefined;
|
|
709
|
-
readonly
|
|
705
|
+
readonly instances?: number | undefined;
|
|
706
|
+
readonly max_instances?: number | undefined;
|
|
710
707
|
readonly command?: string | undefined;
|
|
711
|
-
readonly
|
|
712
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
708
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
713
709
|
readonly cron_schedule?: string | undefined;
|
|
714
710
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
715
711
|
readonly scale_to_zero?: boolean | undefined;
|
|
716
712
|
readonly idle_timeout_seconds?: number | undefined;
|
|
717
|
-
readonly
|
|
713
|
+
readonly min_instances?: number | undefined;
|
|
718
714
|
}[] | undefined;
|
|
719
715
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
720
716
|
readonly env?: {
|
|
@@ -760,15 +756,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
760
756
|
readonly port?: number | undefined;
|
|
761
757
|
readonly env?: readonly string[] | undefined;
|
|
762
758
|
readonly resources?: readonly string[] | undefined;
|
|
763
|
-
readonly
|
|
759
|
+
readonly instances?: number | undefined;
|
|
760
|
+
readonly max_instances?: number | undefined;
|
|
764
761
|
readonly command?: string | undefined;
|
|
765
|
-
readonly
|
|
766
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
762
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
767
763
|
readonly cron_schedule?: string | undefined;
|
|
768
764
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
769
765
|
readonly scale_to_zero?: boolean | undefined;
|
|
770
766
|
readonly idle_timeout_seconds?: number | undefined;
|
|
771
|
-
readonly
|
|
767
|
+
readonly min_instances?: number | undefined;
|
|
772
768
|
}[] | undefined;
|
|
773
769
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
774
770
|
readonly env?: {
|
|
@@ -814,15 +810,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
814
810
|
readonly port?: number | undefined;
|
|
815
811
|
readonly env?: readonly string[] | undefined;
|
|
816
812
|
readonly resources?: readonly string[] | undefined;
|
|
817
|
-
readonly
|
|
813
|
+
readonly instances?: number | undefined;
|
|
814
|
+
readonly max_instances?: number | undefined;
|
|
818
815
|
readonly command?: string | undefined;
|
|
819
|
-
readonly
|
|
820
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
816
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
821
817
|
readonly cron_schedule?: string | undefined;
|
|
822
818
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
823
819
|
readonly scale_to_zero?: boolean | undefined;
|
|
824
820
|
readonly idle_timeout_seconds?: number | undefined;
|
|
825
|
-
readonly
|
|
821
|
+
readonly min_instances?: number | undefined;
|
|
826
822
|
}[] | undefined;
|
|
827
823
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
828
824
|
readonly env?: {
|
|
@@ -868,15 +864,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
868
864
|
readonly port?: number | undefined;
|
|
869
865
|
readonly env?: readonly string[] | undefined;
|
|
870
866
|
readonly resources?: readonly string[] | undefined;
|
|
871
|
-
readonly
|
|
867
|
+
readonly instances?: number | undefined;
|
|
868
|
+
readonly max_instances?: number | undefined;
|
|
872
869
|
readonly command?: string | undefined;
|
|
873
|
-
readonly
|
|
874
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
870
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
875
871
|
readonly cron_schedule?: string | undefined;
|
|
876
872
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
877
873
|
readonly scale_to_zero?: boolean | undefined;
|
|
878
874
|
readonly idle_timeout_seconds?: number | undefined;
|
|
879
|
-
readonly
|
|
875
|
+
readonly min_instances?: number | undefined;
|
|
880
876
|
}[] | undefined;
|
|
881
877
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
882
878
|
readonly env?: {
|
|
@@ -958,10 +954,10 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
958
954
|
deploy: Schema.optional<Schema.Struct<{
|
|
959
955
|
/**
|
|
960
956
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
961
|
-
* contract). Runs
|
|
957
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
962
958
|
*/
|
|
963
959
|
release_command: Schema.optional<typeof Schema.String>;
|
|
964
|
-
/** HTTP path
|
|
960
|
+
/** HTTP readiness path. */
|
|
965
961
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
966
962
|
/** Timeout in seconds. */
|
|
967
963
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -970,8 +966,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
970
966
|
/** Grace period before SIGKILL (seconds). */
|
|
971
967
|
graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
972
968
|
}>>;
|
|
973
|
-
services: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
974
|
-
/** Service name — unique within project.
|
|
969
|
+
services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
|
|
970
|
+
/** Service name — unique within project. */
|
|
975
971
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
976
972
|
type: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
977
973
|
/** Per-service build override. Root [build] remains the default. */
|
|
@@ -988,48 +984,45 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
988
984
|
path: Schema.optional<typeof Schema.String>;
|
|
989
985
|
command: Schema.optional<typeof Schema.String>;
|
|
990
986
|
}>>;
|
|
991
|
-
/**
|
|
987
|
+
/** Service start command. */
|
|
992
988
|
command: Schema.optional<typeof Schema.String>;
|
|
993
|
-
/**
|
|
989
|
+
/** Service port; required for `web` when it cannot be detected automatically. */
|
|
994
990
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
995
|
-
/**
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
*/
|
|
999
|
-
internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1000
|
-
/** Replica count. Ignored for `cron`. */
|
|
1001
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1002
|
-
/** Compute size; maps to per-service K8s resources.requests/limits. */
|
|
991
|
+
/** Explicit instance count. Ignored for `cron`. */
|
|
992
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
993
|
+
/** Compute size; maps to per-service runtime resources. */
|
|
1003
994
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
1004
995
|
/** Required when type=cron. Standard 5-field cron expression. */
|
|
1005
996
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
1006
997
|
/** Optional per-service region override. */
|
|
1007
998
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
1008
|
-
/**
|
|
1009
|
-
* Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
|
|
1010
|
-
* `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
|
|
1011
|
-
* the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
|
|
1012
|
-
*/
|
|
999
|
+
/** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
|
|
1013
1000
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
1014
1001
|
/**
|
|
1015
|
-
* Seconds of no traffic before
|
|
1016
|
-
*
|
|
1002
|
+
* Seconds of no traffic before the platform scales the service down to 0.
|
|
1003
|
+
* Only meaningful when `scale_to_zero=true`.
|
|
1017
1004
|
* Range: 60s–3600s. Default: 300 (5 min).
|
|
1018
1005
|
*/
|
|
1019
1006
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1020
1007
|
/**
|
|
1021
|
-
* Minimum
|
|
1022
|
-
* Setting `
|
|
1023
|
-
* floor while still
|
|
1008
|
+
* Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
|
|
1009
|
+
* Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
|
|
1010
|
+
* floor while still allowing horizontal scale-out beyond 1.
|
|
1024
1011
|
*/
|
|
1025
|
-
|
|
1012
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1013
|
+
/** Optional upper bound for platform-managed horizontal scale-out. */
|
|
1014
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1026
1015
|
/** Per-service env var merge — refs entries from top-level [env]. */
|
|
1027
1016
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
1028
|
-
/**
|
|
1017
|
+
/**
|
|
1018
|
+
* Reserved for declarative service-scoped managed resource bindings.
|
|
1019
|
+
* Current push-webhook support is environment-scoped via top-level [resources.*],
|
|
1020
|
+
* so deploy parsing fails closed if this field is present.
|
|
1021
|
+
*/
|
|
1029
1022
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
1030
1023
|
/** Paths whose changes should trigger this service in monorepos. */
|
|
1031
1024
|
watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
1032
|
-
}
|
|
1025
|
+
}>>>>;
|
|
1033
1026
|
database: Schema.optional<Schema.Struct<{
|
|
1034
1027
|
migrations: Schema.optional<Schema.Struct<{
|
|
1035
1028
|
engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
@@ -1074,15 +1067,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1074
1067
|
readonly port?: number | undefined;
|
|
1075
1068
|
readonly env?: readonly string[] | undefined;
|
|
1076
1069
|
readonly resources?: readonly string[] | undefined;
|
|
1077
|
-
readonly
|
|
1070
|
+
readonly instances?: number | undefined;
|
|
1071
|
+
readonly max_instances?: number | undefined;
|
|
1078
1072
|
readonly command?: string | undefined;
|
|
1079
|
-
readonly
|
|
1080
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1073
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1081
1074
|
readonly cron_schedule?: string | undefined;
|
|
1082
1075
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1083
1076
|
readonly scale_to_zero?: boolean | undefined;
|
|
1084
1077
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1085
|
-
readonly
|
|
1078
|
+
readonly min_instances?: number | undefined;
|
|
1086
1079
|
}[] | undefined;
|
|
1087
1080
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1088
1081
|
readonly env?: {
|
|
@@ -1128,15 +1121,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1128
1121
|
readonly port?: number | undefined;
|
|
1129
1122
|
readonly env?: readonly string[] | undefined;
|
|
1130
1123
|
readonly resources?: readonly string[] | undefined;
|
|
1131
|
-
readonly
|
|
1124
|
+
readonly instances?: number | undefined;
|
|
1125
|
+
readonly max_instances?: number | undefined;
|
|
1132
1126
|
readonly command?: string | undefined;
|
|
1133
|
-
readonly
|
|
1134
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1127
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1135
1128
|
readonly cron_schedule?: string | undefined;
|
|
1136
1129
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1137
1130
|
readonly scale_to_zero?: boolean | undefined;
|
|
1138
1131
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1139
|
-
readonly
|
|
1132
|
+
readonly min_instances?: number | undefined;
|
|
1140
1133
|
}[] | undefined;
|
|
1141
1134
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1142
1135
|
readonly env?: {
|
|
@@ -1182,15 +1175,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1182
1175
|
readonly port?: number | undefined;
|
|
1183
1176
|
readonly env?: readonly string[] | undefined;
|
|
1184
1177
|
readonly resources?: readonly string[] | undefined;
|
|
1185
|
-
readonly
|
|
1178
|
+
readonly instances?: number | undefined;
|
|
1179
|
+
readonly max_instances?: number | undefined;
|
|
1186
1180
|
readonly command?: string | undefined;
|
|
1187
|
-
readonly
|
|
1188
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1181
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1189
1182
|
readonly cron_schedule?: string | undefined;
|
|
1190
1183
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1191
1184
|
readonly scale_to_zero?: boolean | undefined;
|
|
1192
1185
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1193
|
-
readonly
|
|
1186
|
+
readonly min_instances?: number | undefined;
|
|
1194
1187
|
}[] | undefined;
|
|
1195
1188
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1196
1189
|
readonly env?: {
|
|
@@ -1236,15 +1229,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1236
1229
|
readonly port?: number | undefined;
|
|
1237
1230
|
readonly env?: readonly string[] | undefined;
|
|
1238
1231
|
readonly resources?: readonly string[] | undefined;
|
|
1239
|
-
readonly
|
|
1232
|
+
readonly instances?: number | undefined;
|
|
1233
|
+
readonly max_instances?: number | undefined;
|
|
1240
1234
|
readonly command?: string | undefined;
|
|
1241
|
-
readonly
|
|
1242
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1235
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1243
1236
|
readonly cron_schedule?: string | undefined;
|
|
1244
1237
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1245
1238
|
readonly scale_to_zero?: boolean | undefined;
|
|
1246
1239
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1247
|
-
readonly
|
|
1240
|
+
readonly min_instances?: number | undefined;
|
|
1248
1241
|
}[] | undefined;
|
|
1249
1242
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1250
1243
|
readonly env?: {
|
|
@@ -1291,15 +1284,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1291
1284
|
readonly port?: number | undefined;
|
|
1292
1285
|
readonly env?: readonly string[] | undefined;
|
|
1293
1286
|
readonly resources?: readonly string[] | undefined;
|
|
1294
|
-
readonly
|
|
1287
|
+
readonly instances?: number | undefined;
|
|
1288
|
+
readonly max_instances?: number | undefined;
|
|
1295
1289
|
readonly command?: string | undefined;
|
|
1296
|
-
readonly
|
|
1297
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1290
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1298
1291
|
readonly cron_schedule?: string | undefined;
|
|
1299
1292
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1300
1293
|
readonly scale_to_zero?: boolean | undefined;
|
|
1301
1294
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1302
|
-
readonly
|
|
1295
|
+
readonly min_instances?: number | undefined;
|
|
1303
1296
|
}[] | undefined;
|
|
1304
1297
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1305
1298
|
readonly env?: {
|
|
@@ -1345,15 +1338,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1345
1338
|
readonly port?: number | undefined;
|
|
1346
1339
|
readonly env?: readonly string[] | undefined;
|
|
1347
1340
|
readonly resources?: readonly string[] | undefined;
|
|
1348
|
-
readonly
|
|
1341
|
+
readonly instances?: number | undefined;
|
|
1342
|
+
readonly max_instances?: number | undefined;
|
|
1349
1343
|
readonly command?: string | undefined;
|
|
1350
|
-
readonly
|
|
1351
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1344
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1352
1345
|
readonly cron_schedule?: string | undefined;
|
|
1353
1346
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1354
1347
|
readonly scale_to_zero?: boolean | undefined;
|
|
1355
1348
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1356
|
-
readonly
|
|
1349
|
+
readonly min_instances?: number | undefined;
|
|
1357
1350
|
}[] | undefined;
|
|
1358
1351
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1359
1352
|
readonly env?: {
|
|
@@ -1399,15 +1392,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1399
1392
|
readonly port?: number | undefined;
|
|
1400
1393
|
readonly env?: readonly string[] | undefined;
|
|
1401
1394
|
readonly resources?: readonly string[] | undefined;
|
|
1402
|
-
readonly
|
|
1395
|
+
readonly instances?: number | undefined;
|
|
1396
|
+
readonly max_instances?: number | undefined;
|
|
1403
1397
|
readonly command?: string | undefined;
|
|
1404
|
-
readonly
|
|
1405
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1398
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1406
1399
|
readonly cron_schedule?: string | undefined;
|
|
1407
1400
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1408
1401
|
readonly scale_to_zero?: boolean | undefined;
|
|
1409
1402
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1410
|
-
readonly
|
|
1403
|
+
readonly min_instances?: number | undefined;
|
|
1411
1404
|
}[] | undefined;
|
|
1412
1405
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1413
1406
|
readonly env?: {
|
|
@@ -1453,15 +1446,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1453
1446
|
readonly port?: number | undefined;
|
|
1454
1447
|
readonly env?: readonly string[] | undefined;
|
|
1455
1448
|
readonly resources?: readonly string[] | undefined;
|
|
1456
|
-
readonly
|
|
1449
|
+
readonly instances?: number | undefined;
|
|
1450
|
+
readonly max_instances?: number | undefined;
|
|
1457
1451
|
readonly command?: string | undefined;
|
|
1458
|
-
readonly
|
|
1459
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1452
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1460
1453
|
readonly cron_schedule?: string | undefined;
|
|
1461
1454
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1462
1455
|
readonly scale_to_zero?: boolean | undefined;
|
|
1463
1456
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1464
|
-
readonly
|
|
1457
|
+
readonly min_instances?: number | undefined;
|
|
1465
1458
|
}[] | undefined;
|
|
1466
1459
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1467
1460
|
readonly env?: {
|
|
@@ -1498,37 +1491,37 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1498
1491
|
database: Schema.optional<Schema.Struct<{
|
|
1499
1492
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
1500
1493
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
1501
|
-
/**
|
|
1494
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
1502
1495
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1503
1496
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1504
1497
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
1505
|
-
/**
|
|
1506
|
-
|
|
1498
|
+
/** Optional managed read replicas. */
|
|
1499
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1507
1500
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
1508
1501
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
1509
1502
|
}>>;
|
|
1510
1503
|
kv: Schema.optional<Schema.Struct<{
|
|
1511
|
-
|
|
1512
|
-
|
|
1504
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
1505
|
+
exact: true;
|
|
1506
|
+
}>;
|
|
1513
1507
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1514
1508
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1515
1509
|
}>>;
|
|
1516
1510
|
search: Schema.optional<Schema.Struct<{
|
|
1517
|
-
|
|
1518
|
-
|
|
1511
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
1512
|
+
exact: true;
|
|
1513
|
+
}>;
|
|
1519
1514
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1520
1515
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1521
|
-
nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1522
1516
|
}>>;
|
|
1523
1517
|
volume: Schema.optional<Schema.Struct<{
|
|
1524
1518
|
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1525
1519
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1526
1520
|
/**
|
|
1527
|
-
*
|
|
1528
|
-
*
|
|
1529
|
-
* disks.
|
|
1521
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
1522
|
+
* class without exposing implementation details.
|
|
1530
1523
|
*/
|
|
1531
|
-
|
|
1524
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
1532
1525
|
/**
|
|
1533
1526
|
* Optional env-facing path metadata. This does not mount the volume into an
|
|
1534
1527
|
* app service by itself; service/task mounts stay explicit bindings.
|
|
@@ -1562,13 +1555,13 @@ export type SylphxManifest = typeof SylphxManifest.Type;
|
|
|
1562
1555
|
* the schema above.
|
|
1563
1556
|
*/
|
|
1564
1557
|
export interface ResolvedScaleToZero {
|
|
1565
|
-
/** Whether the service opts into
|
|
1558
|
+
/** Whether the service opts into platform-managed scale-to-zero. */
|
|
1566
1559
|
scaleToZero: boolean;
|
|
1567
|
-
/**
|
|
1560
|
+
/** Idle cooldown in seconds. Meaningful only when scaleToZero=true. */
|
|
1568
1561
|
idleTimeoutSeconds: number;
|
|
1569
|
-
/**
|
|
1562
|
+
/** Minimum warm instances. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
|
|
1570
1563
|
minReplicas: number;
|
|
1571
|
-
/**
|
|
1564
|
+
/** Upper bound for horizontal scaling. */
|
|
1572
1565
|
maxReplicas: number;
|
|
1573
1566
|
}
|
|
1574
1567
|
/**
|
|
@@ -1579,11 +1572,11 @@ export interface ResolvedScaleToZero {
|
|
|
1579
1572
|
export declare const SCALE_TO_ZERO_DEFAULTS: {
|
|
1580
1573
|
/** Idle timeout in seconds when caller didn't provide one. */
|
|
1581
1574
|
readonly idleTimeoutSeconds: 300;
|
|
1582
|
-
/** Min
|
|
1575
|
+
/** Min instances when the service opted into scale-to-zero. */
|
|
1583
1576
|
readonly minReplicasScaleToZero: 0;
|
|
1584
|
-
/** Min
|
|
1577
|
+
/** Min instances when the service did NOT opt in (pinned warm). */
|
|
1585
1578
|
readonly minReplicasWarm: 1;
|
|
1586
|
-
/** Max
|
|
1579
|
+
/** Max instances fallback when neither manifest nor compute profile specify. */
|
|
1587
1580
|
readonly maxReplicasDefault: 10;
|
|
1588
1581
|
};
|
|
1589
1582
|
/**
|
|
@@ -1595,7 +1588,7 @@ export declare const SCALE_TO_ZERO_DEFAULTS: {
|
|
|
1595
1588
|
* Pass `null`/`undefined` for "no scale-to-zero".
|
|
1596
1589
|
* @param explicitMax - Optional per-tier ceiling (e.g. resolved from
|
|
1597
1590
|
* compute profile). Takes precedence over the static
|
|
1598
|
-
* 10-
|
|
1591
|
+
* 10-instance fallback but not over an input.maxReplicas.
|
|
1599
1592
|
*/
|
|
1600
1593
|
export declare function resolveScaleToZeroDefaults(input: {
|
|
1601
1594
|
scaleToZero?: boolean;
|