@sylphx/contract 0.5.0 → 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 +12 -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 +1 -2
- package/dist/endpoints/kv-admin.d.ts.map +1 -1
- package/dist/endpoints/kv-admin.js +1 -1
- package/dist/endpoints/kv.d.ts +19 -13
- package/dist/endpoints/kv.d.ts.map +1 -1
- package/dist/endpoints/kv.js +9 -9
- package/dist/endpoints/notifications.d.ts +7 -0
- package/dist/endpoints/notifications.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 +196 -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/storage.d.ts +18 -0
- package/dist/endpoints/storage.d.ts.map +1 -1
- package/dist/endpoints/storage.js +11 -1
- 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 +403 -350
- 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/auth.d.ts +1 -0
- package/dist/schemas/auth.d.ts.map +1 -1
- package/dist/schemas/auth.js +1 -0
- 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 +1 -2
- package/dist/schemas/kv-admin.d.ts.map +1 -1
- package/dist/schemas/kv-admin.js +1 -2
- package/dist/schemas/kv.d.ts +12 -4
- package/dist/schemas/kv.d.ts.map +1 -1
- package/dist/schemas/kv.js +17 -5
- package/dist/schemas/notifications.d.ts +11 -0
- package/dist/schemas/notifications.d.ts.map +1 -1
- package/dist/schemas/notifications.js +11 -0
- 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 +384 -174
- package/dist/schemas/project-manifest.d.ts.map +1 -1
- package/dist/schemas/project-manifest.js +127 -50
- 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 +30 -1
- package/dist/schemas/storage.d.ts.map +1 -1
- package/dist/schemas/storage.js +20 -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
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Plane: `management`. The manifest is the user-facing, editable surface
|
|
5
5
|
* declared in Git at repo root. The CLI parses `sylphx.toml` via Bun's
|
|
6
6
|
* built-in TOML parser, validates against this schema, and pushes to the
|
|
7
|
-
* Management API (`PUT /projects/:id/manifest
|
|
7
|
+
* Management API (`PUT /projects/:id/manifest`).
|
|
8
8
|
*
|
|
9
9
|
* Slug-valued (not TypeID) on purpose: the manifest is what users type,
|
|
10
10
|
* so slugs are the DX-correct surface. The server maps slugs → TypeIDs
|
|
@@ -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). */
|
|
@@ -37,13 +37,19 @@ export type BuildMachineSize = typeof BuildMachineSize.Type;
|
|
|
37
37
|
/** Buildpack identifier per ADR-071. `auto` lets the platform detect. */
|
|
38
38
|
export declare const BuildpackName: Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>;
|
|
39
39
|
export type BuildpackName = typeof BuildpackName.Type;
|
|
40
|
-
/**
|
|
40
|
+
/** Build strategy hint. `dockerfile` pins the build to the declared Dockerfile. */
|
|
41
|
+
export declare const BuildStrategy: Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>;
|
|
42
|
+
export type BuildStrategy = typeof BuildStrategy.Type;
|
|
43
|
+
/** Service type discriminant — drives the platform runtime shape. */
|
|
41
44
|
export declare const ServiceType: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
42
45
|
export type ServiceType = typeof ServiceType.Type;
|
|
43
|
-
/**
|
|
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. */
|
|
44
50
|
export declare const DeployStrategy: Schema.Literal<["rolling", "blue-green", "immediate"]>;
|
|
45
51
|
export type DeployStrategy = typeof DeployStrategy.Type;
|
|
46
|
-
/** WWW-apex redirect policy
|
|
52
|
+
/** WWW-apex redirect policy. */
|
|
47
53
|
export declare const WwwRedirect: Schema.Literal<["apex", "www", "none"]>;
|
|
48
54
|
export type WwwRedirect = typeof WwwRedirect.Type;
|
|
49
55
|
export declare const ManifestProjectSection: Schema.Struct<{
|
|
@@ -68,8 +74,12 @@ export declare const ManifestBuildSection: Schema.Struct<{
|
|
|
68
74
|
* package.json / Gemfile / requirements.txt / Dockerfile.
|
|
69
75
|
*/
|
|
70
76
|
buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
|
|
77
|
+
/** High-level build strategy alias used by current sylphx.toml files. */
|
|
78
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
71
79
|
/** Override path to Dockerfile (implies buildpack=dockerfile). */
|
|
72
80
|
dockerfile: Schema.optional<typeof Schema.String>;
|
|
81
|
+
/** Docker build context path. `context` is the product-facing TOML alias. */
|
|
82
|
+
context: Schema.optional<typeof Schema.String>;
|
|
73
83
|
/** Docker build context path (default: repo root). */
|
|
74
84
|
docker_context: Schema.optional<typeof Schema.String>;
|
|
75
85
|
/** Custom build command; overrides buildpack default. */
|
|
@@ -85,10 +95,10 @@ export type ManifestBuildSection = typeof ManifestBuildSection.Type;
|
|
|
85
95
|
export declare const ManifestDeploySection: Schema.Struct<{
|
|
86
96
|
/**
|
|
87
97
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
88
|
-
* contract). Runs
|
|
98
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
89
99
|
*/
|
|
90
100
|
release_command: Schema.optional<typeof Schema.String>;
|
|
91
|
-
/** HTTP path
|
|
101
|
+
/** HTTP readiness path. */
|
|
92
102
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
93
103
|
/** Timeout in seconds. */
|
|
94
104
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -98,57 +108,108 @@ export declare const ManifestDeploySection: Schema.Struct<{
|
|
|
98
108
|
graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
99
109
|
}>;
|
|
100
110
|
export type ManifestDeploySection = typeof ManifestDeploySection.Type;
|
|
101
|
-
export declare const
|
|
102
|
-
|
|
111
|
+
export declare const ManifestServiceBuildSection: Schema.Struct<{
|
|
112
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
113
|
+
dockerfile: Schema.optional<typeof Schema.String>;
|
|
114
|
+
context: Schema.optional<typeof Schema.String>;
|
|
115
|
+
docker_context: Schema.optional<typeof Schema.String>;
|
|
116
|
+
build_command: Schema.optional<typeof Schema.String>;
|
|
117
|
+
}>;
|
|
118
|
+
export type ManifestServiceBuildSection = typeof ManifestServiceBuildSection.Type;
|
|
119
|
+
export declare const ManifestServiceHealthSection: Schema.Struct<{
|
|
120
|
+
mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
|
|
121
|
+
path: Schema.optional<typeof Schema.String>;
|
|
122
|
+
command: Schema.optional<typeof Schema.String>;
|
|
123
|
+
}>;
|
|
124
|
+
export type ManifestServiceHealthSection = typeof ManifestServiceHealthSection.Type;
|
|
125
|
+
export declare const ManifestServiceSection: Schema.filter<Schema.Struct<{
|
|
126
|
+
/** Service name — unique within project. */
|
|
103
127
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
104
128
|
type: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
105
|
-
/**
|
|
129
|
+
/** Per-service build override. Root [build] remains the default. */
|
|
130
|
+
build: Schema.optional<Schema.Struct<{
|
|
131
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
132
|
+
dockerfile: Schema.optional<typeof Schema.String>;
|
|
133
|
+
context: Schema.optional<typeof Schema.String>;
|
|
134
|
+
docker_context: Schema.optional<typeof Schema.String>;
|
|
135
|
+
build_command: Schema.optional<typeof Schema.String>;
|
|
136
|
+
}>>;
|
|
137
|
+
/** Per-service health contract. Platform owns probe translation. */
|
|
138
|
+
health: Schema.optional<Schema.Struct<{
|
|
139
|
+
mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
|
|
140
|
+
path: Schema.optional<typeof Schema.String>;
|
|
141
|
+
command: Schema.optional<typeof Schema.String>;
|
|
142
|
+
}>>;
|
|
143
|
+
/** Service start command. */
|
|
106
144
|
command: Schema.optional<typeof Schema.String>;
|
|
107
|
-
/**
|
|
145
|
+
/** Service port; required for `web` when it cannot be detected automatically. */
|
|
108
146
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
109
|
-
/**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
*/
|
|
113
|
-
internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
114
|
-
/** Replica count. Ignored for `cron`. */
|
|
115
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
116
|
-
/** 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. */
|
|
117
150
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
118
151
|
/** Required when type=cron. Standard 5-field cron expression. */
|
|
119
152
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
120
153
|
/** Optional per-service region override. */
|
|
121
154
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
122
|
-
/**
|
|
123
|
-
* Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
|
|
124
|
-
* `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
|
|
125
|
-
* the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
|
|
126
|
-
*/
|
|
155
|
+
/** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
|
|
127
156
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
128
157
|
/**
|
|
129
|
-
* Seconds of no traffic before
|
|
130
|
-
*
|
|
158
|
+
* Seconds of no traffic before the platform scales the service down to 0.
|
|
159
|
+
* Only meaningful when `scale_to_zero=true`.
|
|
131
160
|
* Range: 60s–3600s. Default: 300 (5 min).
|
|
132
161
|
*/
|
|
133
162
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
134
163
|
/**
|
|
135
|
-
* Minimum
|
|
136
|
-
* Setting `
|
|
137
|
-
* 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.
|
|
138
167
|
*/
|
|
139
|
-
|
|
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>>>;
|
|
140
171
|
/** Per-service env var merge — refs entries from top-level [env]. */
|
|
141
172
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
142
|
-
/**
|
|
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
|
+
*/
|
|
143
178
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
144
|
-
|
|
179
|
+
/** Paths whose changes should trigger this service in monorepos. */
|
|
180
|
+
watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
181
|
+
}>>;
|
|
145
182
|
export type ManifestServiceSection = typeof ManifestServiceSection.Type;
|
|
183
|
+
export declare const ManifestMigrationEngine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
184
|
+
export type ManifestMigrationEngine = typeof ManifestMigrationEngine.Type;
|
|
185
|
+
export declare const ManifestMigrationDestructivePolicy: Schema.Literal<["require-approval", "allow"]>;
|
|
186
|
+
export type ManifestMigrationDestructivePolicy = typeof ManifestMigrationDestructivePolicy.Type;
|
|
187
|
+
export declare const ManifestMigrationsSection: Schema.Struct<{
|
|
188
|
+
engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
189
|
+
dir: Schema.optional<typeof Schema.String>;
|
|
190
|
+
image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
191
|
+
command: Schema.filter<typeof Schema.String>;
|
|
192
|
+
timeout: Schema.optional<typeof Schema.String>;
|
|
193
|
+
destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
|
|
194
|
+
}>;
|
|
195
|
+
export type ManifestMigrationsSection = typeof ManifestMigrationsSection.Type;
|
|
196
|
+
export declare const ManifestDatabaseSection: Schema.Struct<{
|
|
197
|
+
migrations: Schema.optional<Schema.Struct<{
|
|
198
|
+
engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
199
|
+
dir: Schema.optional<typeof Schema.String>;
|
|
200
|
+
image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
201
|
+
command: Schema.filter<typeof Schema.String>;
|
|
202
|
+
timeout: Schema.optional<typeof Schema.String>;
|
|
203
|
+
destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
|
|
204
|
+
}>>;
|
|
205
|
+
}>;
|
|
206
|
+
export type ManifestDatabaseSection = typeof ManifestDatabaseSection.Type;
|
|
146
207
|
/**
|
|
147
208
|
* Env var value — literal, secret reference, or resource attribute.
|
|
148
209
|
* Values are NEVER stored in the manifest — always by reference.
|
|
149
210
|
* `from_secret` resolves via the platform `secrets` table (AES-256-GCM).
|
|
150
|
-
* `from_resource` + `attr` resolves
|
|
151
|
-
*
|
|
211
|
+
* `from_resource` + `attr` resolves product-level outputs such as
|
|
212
|
+
* `database_url`, `cache_url`, `search_url`, and `volume_mount_path`.
|
|
152
213
|
*/
|
|
153
214
|
export declare const ManifestEnvValue: Schema.Union<[Schema.Struct<{
|
|
154
215
|
value: typeof Schema.String;
|
|
@@ -171,56 +232,116 @@ export declare const ManifestDomainSection: Schema.Struct<{
|
|
|
171
232
|
aliases: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
172
233
|
}>;
|
|
173
234
|
export type ManifestDomainSection = typeof ManifestDomainSection.Type;
|
|
174
|
-
export declare const
|
|
235
|
+
export declare const ManifestManagedResourceTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
236
|
+
export type ManifestManagedResourceTier = typeof ManifestManagedResourceTier.Type;
|
|
237
|
+
export declare const PostgresTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
175
238
|
export type PostgresTier = typeof PostgresTier.Type;
|
|
176
239
|
export declare const PostgresVersion: Schema.Literal<["15", "16", "17"]>;
|
|
177
240
|
export type PostgresVersion = typeof PostgresVersion.Type;
|
|
178
|
-
export declare const SearchTier: Schema.Literal<["micro", "standard"]>;
|
|
241
|
+
export declare const SearchTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
179
242
|
export type SearchTier = typeof SearchTier.Type;
|
|
243
|
+
export declare const KvTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
244
|
+
export type KvTier = typeof KvTier.Type;
|
|
245
|
+
export declare const ManifestVolumeTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
246
|
+
export type ManifestVolumeTier = typeof ManifestVolumeTier.Type;
|
|
247
|
+
export declare const ManifestVolumeSharing: Schema.Literal<["single-writer", "shared"]>;
|
|
248
|
+
export type ManifestVolumeSharing = typeof ManifestVolumeSharing.Type;
|
|
180
249
|
export declare const ManifestDatabaseEngine: Schema.Literal<["postgres"]>;
|
|
181
250
|
export type ManifestDatabaseEngine = typeof ManifestDatabaseEngine.Type;
|
|
182
|
-
export declare const ManifestSearchEngine: Schema.Literal<["typesense"]>;
|
|
183
|
-
export type ManifestSearchEngine = typeof ManifestSearchEngine.Type;
|
|
184
251
|
export declare const ManifestDatabaseResource: Schema.Struct<{
|
|
185
252
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
186
253
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
187
|
-
/**
|
|
188
|
-
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
|
|
254
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
255
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
189
256
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
190
257
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
191
|
-
/**
|
|
192
|
-
|
|
258
|
+
/** Optional managed read replicas. */
|
|
259
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
193
260
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
194
261
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
195
262
|
}>;
|
|
196
263
|
export type ManifestDatabaseResource = typeof ManifestDatabaseResource.Type;
|
|
264
|
+
export declare const ManifestKvResource: Schema.Struct<{
|
|
265
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
266
|
+
exact: true;
|
|
267
|
+
}>;
|
|
268
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
269
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
270
|
+
}>;
|
|
271
|
+
export type ManifestKvResource = typeof ManifestKvResource.Type;
|
|
197
272
|
export declare const ManifestSearchResource: Schema.Struct<{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
273
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
274
|
+
exact: true;
|
|
275
|
+
}>;
|
|
276
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
201
277
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
202
|
-
nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
203
278
|
}>;
|
|
204
279
|
export type ManifestSearchResource = typeof ManifestSearchResource.Type;
|
|
280
|
+
export declare const ManifestVolumeResource: Schema.Struct<{
|
|
281
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
282
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
283
|
+
/**
|
|
284
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
285
|
+
* class without exposing implementation details.
|
|
286
|
+
*/
|
|
287
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
288
|
+
/**
|
|
289
|
+
* Optional env-facing path metadata. This does not mount the volume into an
|
|
290
|
+
* app service by itself; service/task mounts stay explicit bindings.
|
|
291
|
+
*/
|
|
292
|
+
mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
|
|
293
|
+
/**
|
|
294
|
+
* Binding role controls env var prefix. Example: role="workspace" emits
|
|
295
|
+
* WORKSPACE_VOLUME_ID for a volume binding.
|
|
296
|
+
*/
|
|
297
|
+
role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
|
|
298
|
+
}>;
|
|
299
|
+
export type ManifestVolumeResource = typeof ManifestVolumeResource.Type;
|
|
205
300
|
export declare const ManifestResourcesSection: Schema.Struct<{
|
|
206
301
|
database: Schema.optional<Schema.Struct<{
|
|
207
302
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
208
303
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
209
|
-
/**
|
|
210
|
-
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
|
|
304
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
305
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
211
306
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
212
307
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
213
|
-
/**
|
|
214
|
-
|
|
308
|
+
/** Optional managed read replicas. */
|
|
309
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
215
310
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
216
311
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
217
312
|
}>>;
|
|
313
|
+
kv: Schema.optional<Schema.Struct<{
|
|
314
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
315
|
+
exact: true;
|
|
316
|
+
}>;
|
|
317
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
318
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
319
|
+
}>>;
|
|
218
320
|
search: Schema.optional<Schema.Struct<{
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
321
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
322
|
+
exact: true;
|
|
323
|
+
}>;
|
|
324
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
325
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
326
|
+
}>>;
|
|
327
|
+
volume: Schema.optional<Schema.Struct<{
|
|
328
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
222
329
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
223
|
-
|
|
330
|
+
/**
|
|
331
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
332
|
+
* class without exposing implementation details.
|
|
333
|
+
*/
|
|
334
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
335
|
+
/**
|
|
336
|
+
* Optional env-facing path metadata. This does not mount the volume into an
|
|
337
|
+
* app service by itself; service/task mounts stay explicit bindings.
|
|
338
|
+
*/
|
|
339
|
+
mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
|
|
340
|
+
/**
|
|
341
|
+
* Binding role controls env var prefix. Example: role="workspace" emits
|
|
342
|
+
* WORKSPACE_VOLUME_ID for a volume binding.
|
|
343
|
+
*/
|
|
344
|
+
role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
|
|
224
345
|
}>>;
|
|
225
346
|
}>;
|
|
226
347
|
export type ManifestResourcesSection = typeof ManifestResourcesSection.Type;
|
|
@@ -242,22 +363,22 @@ export type ManifestCiSection = typeof ManifestCiSection.Type;
|
|
|
242
363
|
* `[[services]]` entry with the matching name. Arrays replace, scalars/
|
|
243
364
|
* structs merge.
|
|
244
365
|
*/
|
|
245
|
-
export declare const ManifestServiceOverride: Schema.Struct<{
|
|
366
|
+
export declare const ManifestServiceOverride: Schema.filter<Schema.Struct<{
|
|
246
367
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
247
368
|
type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
|
|
248
369
|
command: Schema.optional<typeof Schema.String>;
|
|
249
370
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
250
|
-
|
|
251
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
371
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
252
372
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
253
373
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
254
374
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
255
375
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
256
376
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
257
|
-
|
|
377
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
378
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
258
379
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
259
380
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
260
|
-
}
|
|
381
|
+
}>>;
|
|
261
382
|
export type ManifestServiceOverride = typeof ManifestServiceOverride.Type;
|
|
262
383
|
export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
263
384
|
/** Shallow-merge over top-level [env]. */
|
|
@@ -276,8 +397,12 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
|
276
397
|
* package.json / Gemfile / requirements.txt / Dockerfile.
|
|
277
398
|
*/
|
|
278
399
|
buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
|
|
400
|
+
/** High-level build strategy alias used by current sylphx.toml files. */
|
|
401
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
279
402
|
/** Override path to Dockerfile (implies buildpack=dockerfile). */
|
|
280
403
|
dockerfile: Schema.optional<typeof Schema.String>;
|
|
404
|
+
/** Docker build context path. `context` is the product-facing TOML alias. */
|
|
405
|
+
context: Schema.optional<typeof Schema.String>;
|
|
281
406
|
/** Docker build context path (default: repo root). */
|
|
282
407
|
docker_context: Schema.optional<typeof Schema.String>;
|
|
283
408
|
/** Custom build command; overrides buildpack default. */
|
|
@@ -293,10 +418,10 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
|
293
418
|
deploy: Schema.optional<Schema.Struct<{
|
|
294
419
|
/**
|
|
295
420
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
296
|
-
* contract). Runs
|
|
421
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
297
422
|
*/
|
|
298
423
|
release_command: Schema.optional<typeof Schema.String>;
|
|
299
|
-
/** HTTP path
|
|
424
|
+
/** HTTP readiness path. */
|
|
300
425
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
301
426
|
/** Timeout in seconds. */
|
|
302
427
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -306,22 +431,22 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
|
|
|
306
431
|
graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
307
432
|
}>>;
|
|
308
433
|
/** Sparse service overrides; entries match by `name`. */
|
|
309
|
-
services: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
434
|
+
services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
|
|
310
435
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
311
436
|
type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
|
|
312
437
|
command: Schema.optional<typeof Schema.String>;
|
|
313
438
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
314
|
-
|
|
315
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
439
|
+
instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
316
440
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
317
441
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
318
442
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
319
443
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
320
444
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
321
|
-
|
|
445
|
+
min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
446
|
+
max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
322
447
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
323
448
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
324
|
-
}
|
|
449
|
+
}>>>>;
|
|
325
450
|
/** Per-env region override. */
|
|
326
451
|
region: Schema.optional<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>;
|
|
327
452
|
/** Domain overrides; typically for preview-only hostnames. */
|
|
@@ -360,15 +485,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
360
485
|
readonly port?: number | undefined;
|
|
361
486
|
readonly env?: readonly string[] | undefined;
|
|
362
487
|
readonly resources?: readonly string[] | undefined;
|
|
363
|
-
readonly
|
|
488
|
+
readonly instances?: number | undefined;
|
|
489
|
+
readonly max_instances?: number | undefined;
|
|
364
490
|
readonly command?: string | undefined;
|
|
365
|
-
readonly
|
|
366
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
491
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
367
492
|
readonly cron_schedule?: string | undefined;
|
|
368
493
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
369
494
|
readonly scale_to_zero?: boolean | undefined;
|
|
370
495
|
readonly idle_timeout_seconds?: number | undefined;
|
|
371
|
-
readonly
|
|
496
|
+
readonly min_instances?: number | undefined;
|
|
372
497
|
}[] | undefined;
|
|
373
498
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
374
499
|
readonly env?: {
|
|
@@ -382,6 +507,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
382
507
|
};
|
|
383
508
|
} | undefined;
|
|
384
509
|
readonly build?: {
|
|
510
|
+
readonly context?: string | undefined;
|
|
511
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
385
512
|
readonly dockerfile?: string | undefined;
|
|
386
513
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
387
514
|
readonly docker_context?: string | undefined;
|
|
@@ -412,15 +539,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
412
539
|
readonly port?: number | undefined;
|
|
413
540
|
readonly env?: readonly string[] | undefined;
|
|
414
541
|
readonly resources?: readonly string[] | undefined;
|
|
415
|
-
readonly
|
|
542
|
+
readonly instances?: number | undefined;
|
|
543
|
+
readonly max_instances?: number | undefined;
|
|
416
544
|
readonly command?: string | undefined;
|
|
417
|
-
readonly
|
|
418
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
545
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
419
546
|
readonly cron_schedule?: string | undefined;
|
|
420
547
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
421
548
|
readonly scale_to_zero?: boolean | undefined;
|
|
422
549
|
readonly idle_timeout_seconds?: number | undefined;
|
|
423
|
-
readonly
|
|
550
|
+
readonly min_instances?: number | undefined;
|
|
424
551
|
}[] | undefined;
|
|
425
552
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
426
553
|
readonly env?: {
|
|
@@ -434,6 +561,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
434
561
|
};
|
|
435
562
|
} | undefined;
|
|
436
563
|
readonly build?: {
|
|
564
|
+
readonly context?: string | undefined;
|
|
565
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
437
566
|
readonly dockerfile?: string | undefined;
|
|
438
567
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
439
568
|
readonly docker_context?: string | undefined;
|
|
@@ -464,15 +593,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
464
593
|
readonly port?: number | undefined;
|
|
465
594
|
readonly env?: readonly string[] | undefined;
|
|
466
595
|
readonly resources?: readonly string[] | undefined;
|
|
467
|
-
readonly
|
|
596
|
+
readonly instances?: number | undefined;
|
|
597
|
+
readonly max_instances?: number | undefined;
|
|
468
598
|
readonly command?: string | undefined;
|
|
469
|
-
readonly
|
|
470
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
599
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
471
600
|
readonly cron_schedule?: string | undefined;
|
|
472
601
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
473
602
|
readonly scale_to_zero?: boolean | undefined;
|
|
474
603
|
readonly idle_timeout_seconds?: number | undefined;
|
|
475
|
-
readonly
|
|
604
|
+
readonly min_instances?: number | undefined;
|
|
476
605
|
}[] | undefined;
|
|
477
606
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
478
607
|
readonly env?: {
|
|
@@ -486,6 +615,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
486
615
|
};
|
|
487
616
|
} | undefined;
|
|
488
617
|
readonly build?: {
|
|
618
|
+
readonly context?: string | undefined;
|
|
619
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
489
620
|
readonly dockerfile?: string | undefined;
|
|
490
621
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
491
622
|
readonly docker_context?: string | undefined;
|
|
@@ -516,15 +647,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
516
647
|
readonly port?: number | undefined;
|
|
517
648
|
readonly env?: readonly string[] | undefined;
|
|
518
649
|
readonly resources?: readonly string[] | undefined;
|
|
519
|
-
readonly
|
|
650
|
+
readonly instances?: number | undefined;
|
|
651
|
+
readonly max_instances?: number | undefined;
|
|
520
652
|
readonly command?: string | undefined;
|
|
521
|
-
readonly
|
|
522
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
653
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
523
654
|
readonly cron_schedule?: string | undefined;
|
|
524
655
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
525
656
|
readonly scale_to_zero?: boolean | undefined;
|
|
526
657
|
readonly idle_timeout_seconds?: number | undefined;
|
|
527
|
-
readonly
|
|
658
|
+
readonly min_instances?: number | undefined;
|
|
528
659
|
}[] | undefined;
|
|
529
660
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
530
661
|
readonly env?: {
|
|
@@ -538,6 +669,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
538
669
|
};
|
|
539
670
|
} | undefined;
|
|
540
671
|
readonly build?: {
|
|
672
|
+
readonly context?: string | undefined;
|
|
673
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
541
674
|
readonly dockerfile?: string | undefined;
|
|
542
675
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
543
676
|
readonly docker_context?: string | undefined;
|
|
@@ -569,15 +702,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
569
702
|
readonly port?: number | undefined;
|
|
570
703
|
readonly env?: readonly string[] | undefined;
|
|
571
704
|
readonly resources?: readonly string[] | undefined;
|
|
572
|
-
readonly
|
|
705
|
+
readonly instances?: number | undefined;
|
|
706
|
+
readonly max_instances?: number | undefined;
|
|
573
707
|
readonly command?: string | undefined;
|
|
574
|
-
readonly
|
|
575
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
708
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
576
709
|
readonly cron_schedule?: string | undefined;
|
|
577
710
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
578
711
|
readonly scale_to_zero?: boolean | undefined;
|
|
579
712
|
readonly idle_timeout_seconds?: number | undefined;
|
|
580
|
-
readonly
|
|
713
|
+
readonly min_instances?: number | undefined;
|
|
581
714
|
}[] | undefined;
|
|
582
715
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
583
716
|
readonly env?: {
|
|
@@ -591,6 +724,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
591
724
|
};
|
|
592
725
|
} | undefined;
|
|
593
726
|
readonly build?: {
|
|
727
|
+
readonly context?: string | undefined;
|
|
728
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
594
729
|
readonly dockerfile?: string | undefined;
|
|
595
730
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
596
731
|
readonly docker_context?: string | undefined;
|
|
@@ -621,15 +756,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
621
756
|
readonly port?: number | undefined;
|
|
622
757
|
readonly env?: readonly string[] | undefined;
|
|
623
758
|
readonly resources?: readonly string[] | undefined;
|
|
624
|
-
readonly
|
|
759
|
+
readonly instances?: number | undefined;
|
|
760
|
+
readonly max_instances?: number | undefined;
|
|
625
761
|
readonly command?: string | undefined;
|
|
626
|
-
readonly
|
|
627
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
762
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
628
763
|
readonly cron_schedule?: string | undefined;
|
|
629
764
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
630
765
|
readonly scale_to_zero?: boolean | undefined;
|
|
631
766
|
readonly idle_timeout_seconds?: number | undefined;
|
|
632
|
-
readonly
|
|
767
|
+
readonly min_instances?: number | undefined;
|
|
633
768
|
}[] | undefined;
|
|
634
769
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
635
770
|
readonly env?: {
|
|
@@ -643,6 +778,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
643
778
|
};
|
|
644
779
|
} | undefined;
|
|
645
780
|
readonly build?: {
|
|
781
|
+
readonly context?: string | undefined;
|
|
782
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
646
783
|
readonly dockerfile?: string | undefined;
|
|
647
784
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
648
785
|
readonly docker_context?: string | undefined;
|
|
@@ -673,15 +810,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
673
810
|
readonly port?: number | undefined;
|
|
674
811
|
readonly env?: readonly string[] | undefined;
|
|
675
812
|
readonly resources?: readonly string[] | undefined;
|
|
676
|
-
readonly
|
|
813
|
+
readonly instances?: number | undefined;
|
|
814
|
+
readonly max_instances?: number | undefined;
|
|
677
815
|
readonly command?: string | undefined;
|
|
678
|
-
readonly
|
|
679
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
816
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
680
817
|
readonly cron_schedule?: string | undefined;
|
|
681
818
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
682
819
|
readonly scale_to_zero?: boolean | undefined;
|
|
683
820
|
readonly idle_timeout_seconds?: number | undefined;
|
|
684
|
-
readonly
|
|
821
|
+
readonly min_instances?: number | undefined;
|
|
685
822
|
}[] | undefined;
|
|
686
823
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
687
824
|
readonly env?: {
|
|
@@ -695,6 +832,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
695
832
|
};
|
|
696
833
|
} | undefined;
|
|
697
834
|
readonly build?: {
|
|
835
|
+
readonly context?: string | undefined;
|
|
836
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
698
837
|
readonly dockerfile?: string | undefined;
|
|
699
838
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
700
839
|
readonly docker_context?: string | undefined;
|
|
@@ -725,15 +864,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
725
864
|
readonly port?: number | undefined;
|
|
726
865
|
readonly env?: readonly string[] | undefined;
|
|
727
866
|
readonly resources?: readonly string[] | undefined;
|
|
728
|
-
readonly
|
|
867
|
+
readonly instances?: number | undefined;
|
|
868
|
+
readonly max_instances?: number | undefined;
|
|
729
869
|
readonly command?: string | undefined;
|
|
730
|
-
readonly
|
|
731
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
870
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
732
871
|
readonly cron_schedule?: string | undefined;
|
|
733
872
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
734
873
|
readonly scale_to_zero?: boolean | undefined;
|
|
735
874
|
readonly idle_timeout_seconds?: number | undefined;
|
|
736
|
-
readonly
|
|
875
|
+
readonly min_instances?: number | undefined;
|
|
737
876
|
}[] | undefined;
|
|
738
877
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
739
878
|
readonly env?: {
|
|
@@ -747,6 +886,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
|
|
|
747
886
|
};
|
|
748
887
|
} | undefined;
|
|
749
888
|
readonly build?: {
|
|
889
|
+
readonly context?: string | undefined;
|
|
890
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
750
891
|
readonly dockerfile?: string | undefined;
|
|
751
892
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
752
893
|
readonly docker_context?: string | undefined;
|
|
@@ -793,8 +934,12 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
793
934
|
* package.json / Gemfile / requirements.txt / Dockerfile.
|
|
794
935
|
*/
|
|
795
936
|
buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
|
|
937
|
+
/** High-level build strategy alias used by current sylphx.toml files. */
|
|
938
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
796
939
|
/** Override path to Dockerfile (implies buildpack=dockerfile). */
|
|
797
940
|
dockerfile: Schema.optional<typeof Schema.String>;
|
|
941
|
+
/** Docker build context path. `context` is the product-facing TOML alias. */
|
|
942
|
+
context: Schema.optional<typeof Schema.String>;
|
|
798
943
|
/** Docker build context path (default: repo root). */
|
|
799
944
|
docker_context: Schema.optional<typeof Schema.String>;
|
|
800
945
|
/** Custom build command; overrides buildpack default. */
|
|
@@ -809,10 +954,10 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
809
954
|
deploy: Schema.optional<Schema.Struct<{
|
|
810
955
|
/**
|
|
811
956
|
* Command run before traffic cutover (DB migrations via expand-and-
|
|
812
|
-
* contract). Runs
|
|
957
|
+
* contract). Runs before the new release accepts traffic. ADR-066.2.
|
|
813
958
|
*/
|
|
814
959
|
release_command: Schema.optional<typeof Schema.String>;
|
|
815
|
-
/** HTTP path
|
|
960
|
+
/** HTTP readiness path. */
|
|
816
961
|
health_check_path: Schema.optional<typeof Schema.String>;
|
|
817
962
|
/** Timeout in seconds. */
|
|
818
963
|
health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
@@ -821,50 +966,73 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
821
966
|
/** Grace period before SIGKILL (seconds). */
|
|
822
967
|
graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
823
968
|
}>>;
|
|
824
|
-
services: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
825
|
-
/** Service name — unique within project.
|
|
969
|
+
services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
|
|
970
|
+
/** Service name — unique within project. */
|
|
826
971
|
name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
827
972
|
type: Schema.Literal<["web", "worker", "cron", "function"]>;
|
|
828
|
-
/**
|
|
973
|
+
/** Per-service build override. Root [build] remains the default. */
|
|
974
|
+
build: Schema.optional<Schema.Struct<{
|
|
975
|
+
strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
|
|
976
|
+
dockerfile: Schema.optional<typeof Schema.String>;
|
|
977
|
+
context: Schema.optional<typeof Schema.String>;
|
|
978
|
+
docker_context: Schema.optional<typeof Schema.String>;
|
|
979
|
+
build_command: Schema.optional<typeof Schema.String>;
|
|
980
|
+
}>>;
|
|
981
|
+
/** Per-service health contract. Platform owns probe translation. */
|
|
982
|
+
health: Schema.optional<Schema.Struct<{
|
|
983
|
+
mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
|
|
984
|
+
path: Schema.optional<typeof Schema.String>;
|
|
985
|
+
command: Schema.optional<typeof Schema.String>;
|
|
986
|
+
}>>;
|
|
987
|
+
/** Service start command. */
|
|
829
988
|
command: Schema.optional<typeof Schema.String>;
|
|
830
|
-
/**
|
|
989
|
+
/** Service port; required for `web` when it cannot be detected automatically. */
|
|
831
990
|
port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
832
|
-
/**
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
*/
|
|
836
|
-
internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
837
|
-
/** Replica count. Ignored for `cron`. */
|
|
838
|
-
replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
839
|
-
/** 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. */
|
|
840
994
|
instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
|
|
841
995
|
/** Required when type=cron. Standard 5-field cron expression. */
|
|
842
996
|
cron_schedule: Schema.optional<typeof Schema.String>;
|
|
843
997
|
/** Optional per-service region override. */
|
|
844
998
|
regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
|
|
845
|
-
/**
|
|
846
|
-
* Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
|
|
847
|
-
* `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
|
|
848
|
-
* the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
|
|
849
|
-
*/
|
|
999
|
+
/** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
|
|
850
1000
|
scale_to_zero: Schema.optional<typeof Schema.Boolean>;
|
|
851
1001
|
/**
|
|
852
|
-
* Seconds of no traffic before
|
|
853
|
-
*
|
|
1002
|
+
* Seconds of no traffic before the platform scales the service down to 0.
|
|
1003
|
+
* Only meaningful when `scale_to_zero=true`.
|
|
854
1004
|
* Range: 60s–3600s. Default: 300 (5 min).
|
|
855
1005
|
*/
|
|
856
1006
|
idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
857
1007
|
/**
|
|
858
|
-
* Minimum
|
|
859
|
-
* Setting `
|
|
860
|
-
* 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.
|
|
861
1011
|
*/
|
|
862
|
-
|
|
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>>>;
|
|
863
1015
|
/** Per-service env var merge — refs entries from top-level [env]. */
|
|
864
1016
|
env: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
865
|
-
/**
|
|
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
|
+
*/
|
|
866
1022
|
resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
|
|
867
|
-
|
|
1023
|
+
/** Paths whose changes should trigger this service in monorepos. */
|
|
1024
|
+
watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
|
|
1025
|
+
}>>>>;
|
|
1026
|
+
database: Schema.optional<Schema.Struct<{
|
|
1027
|
+
migrations: Schema.optional<Schema.Struct<{
|
|
1028
|
+
engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
|
|
1029
|
+
dir: Schema.optional<typeof Schema.String>;
|
|
1030
|
+
image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
|
|
1031
|
+
command: Schema.filter<typeof Schema.String>;
|
|
1032
|
+
timeout: Schema.optional<typeof Schema.String>;
|
|
1033
|
+
destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
|
|
1034
|
+
}>>;
|
|
1035
|
+
}>>;
|
|
868
1036
|
env: Schema.optional<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.Struct<{
|
|
869
1037
|
value: typeof Schema.String;
|
|
870
1038
|
}>, Schema.Struct<{
|
|
@@ -899,15 +1067,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
899
1067
|
readonly port?: number | undefined;
|
|
900
1068
|
readonly env?: readonly string[] | undefined;
|
|
901
1069
|
readonly resources?: readonly string[] | undefined;
|
|
902
|
-
readonly
|
|
1070
|
+
readonly instances?: number | undefined;
|
|
1071
|
+
readonly max_instances?: number | undefined;
|
|
903
1072
|
readonly command?: string | undefined;
|
|
904
|
-
readonly
|
|
905
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1073
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
906
1074
|
readonly cron_schedule?: string | undefined;
|
|
907
1075
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
908
1076
|
readonly scale_to_zero?: boolean | undefined;
|
|
909
1077
|
readonly idle_timeout_seconds?: number | undefined;
|
|
910
|
-
readonly
|
|
1078
|
+
readonly min_instances?: number | undefined;
|
|
911
1079
|
}[] | undefined;
|
|
912
1080
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
913
1081
|
readonly env?: {
|
|
@@ -921,6 +1089,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
921
1089
|
};
|
|
922
1090
|
} | undefined;
|
|
923
1091
|
readonly build?: {
|
|
1092
|
+
readonly context?: string | undefined;
|
|
1093
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
924
1094
|
readonly dockerfile?: string | undefined;
|
|
925
1095
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
926
1096
|
readonly docker_context?: string | undefined;
|
|
@@ -951,15 +1121,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
951
1121
|
readonly port?: number | undefined;
|
|
952
1122
|
readonly env?: readonly string[] | undefined;
|
|
953
1123
|
readonly resources?: readonly string[] | undefined;
|
|
954
|
-
readonly
|
|
1124
|
+
readonly instances?: number | undefined;
|
|
1125
|
+
readonly max_instances?: number | undefined;
|
|
955
1126
|
readonly command?: string | undefined;
|
|
956
|
-
readonly
|
|
957
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1127
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
958
1128
|
readonly cron_schedule?: string | undefined;
|
|
959
1129
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
960
1130
|
readonly scale_to_zero?: boolean | undefined;
|
|
961
1131
|
readonly idle_timeout_seconds?: number | undefined;
|
|
962
|
-
readonly
|
|
1132
|
+
readonly min_instances?: number | undefined;
|
|
963
1133
|
}[] | undefined;
|
|
964
1134
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
965
1135
|
readonly env?: {
|
|
@@ -973,6 +1143,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
973
1143
|
};
|
|
974
1144
|
} | undefined;
|
|
975
1145
|
readonly build?: {
|
|
1146
|
+
readonly context?: string | undefined;
|
|
1147
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
976
1148
|
readonly dockerfile?: string | undefined;
|
|
977
1149
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
978
1150
|
readonly docker_context?: string | undefined;
|
|
@@ -1003,15 +1175,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1003
1175
|
readonly port?: number | undefined;
|
|
1004
1176
|
readonly env?: readonly string[] | undefined;
|
|
1005
1177
|
readonly resources?: readonly string[] | undefined;
|
|
1006
|
-
readonly
|
|
1178
|
+
readonly instances?: number | undefined;
|
|
1179
|
+
readonly max_instances?: number | undefined;
|
|
1007
1180
|
readonly command?: string | undefined;
|
|
1008
|
-
readonly
|
|
1009
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1181
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1010
1182
|
readonly cron_schedule?: string | undefined;
|
|
1011
1183
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1012
1184
|
readonly scale_to_zero?: boolean | undefined;
|
|
1013
1185
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1014
|
-
readonly
|
|
1186
|
+
readonly min_instances?: number | undefined;
|
|
1015
1187
|
}[] | undefined;
|
|
1016
1188
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1017
1189
|
readonly env?: {
|
|
@@ -1025,6 +1197,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1025
1197
|
};
|
|
1026
1198
|
} | undefined;
|
|
1027
1199
|
readonly build?: {
|
|
1200
|
+
readonly context?: string | undefined;
|
|
1201
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1028
1202
|
readonly dockerfile?: string | undefined;
|
|
1029
1203
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1030
1204
|
readonly docker_context?: string | undefined;
|
|
@@ -1055,15 +1229,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1055
1229
|
readonly port?: number | undefined;
|
|
1056
1230
|
readonly env?: readonly string[] | undefined;
|
|
1057
1231
|
readonly resources?: readonly string[] | undefined;
|
|
1058
|
-
readonly
|
|
1232
|
+
readonly instances?: number | undefined;
|
|
1233
|
+
readonly max_instances?: number | undefined;
|
|
1059
1234
|
readonly command?: string | undefined;
|
|
1060
|
-
readonly
|
|
1061
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1235
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1062
1236
|
readonly cron_schedule?: string | undefined;
|
|
1063
1237
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1064
1238
|
readonly scale_to_zero?: boolean | undefined;
|
|
1065
1239
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1066
|
-
readonly
|
|
1240
|
+
readonly min_instances?: number | undefined;
|
|
1067
1241
|
}[] | undefined;
|
|
1068
1242
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1069
1243
|
readonly env?: {
|
|
@@ -1077,6 +1251,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1077
1251
|
};
|
|
1078
1252
|
} | undefined;
|
|
1079
1253
|
readonly build?: {
|
|
1254
|
+
readonly context?: string | undefined;
|
|
1255
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1080
1256
|
readonly dockerfile?: string | undefined;
|
|
1081
1257
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1082
1258
|
readonly docker_context?: string | undefined;
|
|
@@ -1108,15 +1284,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1108
1284
|
readonly port?: number | undefined;
|
|
1109
1285
|
readonly env?: readonly string[] | undefined;
|
|
1110
1286
|
readonly resources?: readonly string[] | undefined;
|
|
1111
|
-
readonly
|
|
1287
|
+
readonly instances?: number | undefined;
|
|
1288
|
+
readonly max_instances?: number | undefined;
|
|
1112
1289
|
readonly command?: string | undefined;
|
|
1113
|
-
readonly
|
|
1114
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1290
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1115
1291
|
readonly cron_schedule?: string | undefined;
|
|
1116
1292
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1117
1293
|
readonly scale_to_zero?: boolean | undefined;
|
|
1118
1294
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1119
|
-
readonly
|
|
1295
|
+
readonly min_instances?: number | undefined;
|
|
1120
1296
|
}[] | undefined;
|
|
1121
1297
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1122
1298
|
readonly env?: {
|
|
@@ -1130,6 +1306,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1130
1306
|
};
|
|
1131
1307
|
} | undefined;
|
|
1132
1308
|
readonly build?: {
|
|
1309
|
+
readonly context?: string | undefined;
|
|
1310
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1133
1311
|
readonly dockerfile?: string | undefined;
|
|
1134
1312
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1135
1313
|
readonly docker_context?: string | undefined;
|
|
@@ -1160,15 +1338,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1160
1338
|
readonly port?: number | undefined;
|
|
1161
1339
|
readonly env?: readonly string[] | undefined;
|
|
1162
1340
|
readonly resources?: readonly string[] | undefined;
|
|
1163
|
-
readonly
|
|
1341
|
+
readonly instances?: number | undefined;
|
|
1342
|
+
readonly max_instances?: number | undefined;
|
|
1164
1343
|
readonly command?: string | undefined;
|
|
1165
|
-
readonly
|
|
1166
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1344
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1167
1345
|
readonly cron_schedule?: string | undefined;
|
|
1168
1346
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1169
1347
|
readonly scale_to_zero?: boolean | undefined;
|
|
1170
1348
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1171
|
-
readonly
|
|
1349
|
+
readonly min_instances?: number | undefined;
|
|
1172
1350
|
}[] | undefined;
|
|
1173
1351
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1174
1352
|
readonly env?: {
|
|
@@ -1182,6 +1360,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1182
1360
|
};
|
|
1183
1361
|
} | undefined;
|
|
1184
1362
|
readonly build?: {
|
|
1363
|
+
readonly context?: string | undefined;
|
|
1364
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1185
1365
|
readonly dockerfile?: string | undefined;
|
|
1186
1366
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1187
1367
|
readonly docker_context?: string | undefined;
|
|
@@ -1212,15 +1392,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1212
1392
|
readonly port?: number | undefined;
|
|
1213
1393
|
readonly env?: readonly string[] | undefined;
|
|
1214
1394
|
readonly resources?: readonly string[] | undefined;
|
|
1215
|
-
readonly
|
|
1395
|
+
readonly instances?: number | undefined;
|
|
1396
|
+
readonly max_instances?: number | undefined;
|
|
1216
1397
|
readonly command?: string | undefined;
|
|
1217
|
-
readonly
|
|
1218
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1398
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1219
1399
|
readonly cron_schedule?: string | undefined;
|
|
1220
1400
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1221
1401
|
readonly scale_to_zero?: boolean | undefined;
|
|
1222
1402
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1223
|
-
readonly
|
|
1403
|
+
readonly min_instances?: number | undefined;
|
|
1224
1404
|
}[] | undefined;
|
|
1225
1405
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1226
1406
|
readonly env?: {
|
|
@@ -1234,6 +1414,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1234
1414
|
};
|
|
1235
1415
|
} | undefined;
|
|
1236
1416
|
readonly build?: {
|
|
1417
|
+
readonly context?: string | undefined;
|
|
1418
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1237
1419
|
readonly dockerfile?: string | undefined;
|
|
1238
1420
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1239
1421
|
readonly docker_context?: string | undefined;
|
|
@@ -1264,15 +1446,15 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1264
1446
|
readonly port?: number | undefined;
|
|
1265
1447
|
readonly env?: readonly string[] | undefined;
|
|
1266
1448
|
readonly resources?: readonly string[] | undefined;
|
|
1267
|
-
readonly
|
|
1449
|
+
readonly instances?: number | undefined;
|
|
1450
|
+
readonly max_instances?: number | undefined;
|
|
1268
1451
|
readonly command?: string | undefined;
|
|
1269
|
-
readonly
|
|
1270
|
-
readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
|
|
1452
|
+
readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
|
|
1271
1453
|
readonly cron_schedule?: string | undefined;
|
|
1272
1454
|
readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
|
|
1273
1455
|
readonly scale_to_zero?: boolean | undefined;
|
|
1274
1456
|
readonly idle_timeout_seconds?: number | undefined;
|
|
1275
|
-
readonly
|
|
1457
|
+
readonly min_instances?: number | undefined;
|
|
1276
1458
|
}[] | undefined;
|
|
1277
1459
|
readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
|
|
1278
1460
|
readonly env?: {
|
|
@@ -1286,6 +1468,8 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1286
1468
|
};
|
|
1287
1469
|
} | undefined;
|
|
1288
1470
|
readonly build?: {
|
|
1471
|
+
readonly context?: string | undefined;
|
|
1472
|
+
readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
|
|
1289
1473
|
readonly dockerfile?: string | undefined;
|
|
1290
1474
|
readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
|
|
1291
1475
|
readonly docker_context?: string | undefined;
|
|
@@ -1307,21 +1491,47 @@ export declare const SylphxManifest: Schema.Struct<{
|
|
|
1307
1491
|
database: Schema.optional<Schema.Struct<{
|
|
1308
1492
|
/** Capability-specific engine. PostgreSQL is the first supported database engine. */
|
|
1309
1493
|
engine: Schema.optional<Schema.Literal<["postgres"]>>;
|
|
1310
|
-
/**
|
|
1311
|
-
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
|
|
1494
|
+
/** Product tier; IMMUTABLE after creation. */
|
|
1495
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1312
1496
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1313
1497
|
version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
|
|
1314
|
-
/**
|
|
1315
|
-
|
|
1498
|
+
/** Optional managed read replicas. */
|
|
1499
|
+
read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1316
1500
|
/** Branch-per-preview (P0 gap #4 sibling). */
|
|
1317
1501
|
branch_on_preview: Schema.optional<typeof Schema.Boolean>;
|
|
1318
1502
|
}>>;
|
|
1503
|
+
kv: Schema.optional<Schema.Struct<{
|
|
1504
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
1505
|
+
exact: true;
|
|
1506
|
+
}>;
|
|
1507
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1508
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1509
|
+
}>>;
|
|
1319
1510
|
search: Schema.optional<Schema.Struct<{
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1511
|
+
engine: Schema.optionalWith<typeof Schema.Never, {
|
|
1512
|
+
exact: true;
|
|
1513
|
+
}>;
|
|
1514
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1515
|
+
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1516
|
+
}>>;
|
|
1517
|
+
volume: Schema.optional<Schema.Struct<{
|
|
1518
|
+
tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
|
|
1323
1519
|
storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
|
|
1324
|
-
|
|
1520
|
+
/**
|
|
1521
|
+
* Public sharing intent. The platform maps this to the best backend storage
|
|
1522
|
+
* class without exposing implementation details.
|
|
1523
|
+
*/
|
|
1524
|
+
sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
|
|
1525
|
+
/**
|
|
1526
|
+
* Optional env-facing path metadata. This does not mount the volume into an
|
|
1527
|
+
* app service by itself; service/task mounts stay explicit bindings.
|
|
1528
|
+
*/
|
|
1529
|
+
mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
|
|
1530
|
+
/**
|
|
1531
|
+
* Binding role controls env var prefix. Example: role="workspace" emits
|
|
1532
|
+
* WORKSPACE_VOLUME_ID for a volume binding.
|
|
1533
|
+
*/
|
|
1534
|
+
role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
|
|
1325
1535
|
}>>;
|
|
1326
1536
|
}>>;
|
|
1327
1537
|
ci: Schema.optional<Schema.Struct<{
|
|
@@ -1345,13 +1555,13 @@ export type SylphxManifest = typeof SylphxManifest.Type;
|
|
|
1345
1555
|
* the schema above.
|
|
1346
1556
|
*/
|
|
1347
1557
|
export interface ResolvedScaleToZero {
|
|
1348
|
-
/** Whether the service opts into
|
|
1558
|
+
/** Whether the service opts into platform-managed scale-to-zero. */
|
|
1349
1559
|
scaleToZero: boolean;
|
|
1350
|
-
/**
|
|
1560
|
+
/** Idle cooldown in seconds. Meaningful only when scaleToZero=true. */
|
|
1351
1561
|
idleTimeoutSeconds: number;
|
|
1352
|
-
/**
|
|
1562
|
+
/** Minimum warm instances. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
|
|
1353
1563
|
minReplicas: number;
|
|
1354
|
-
/**
|
|
1564
|
+
/** Upper bound for horizontal scaling. */
|
|
1355
1565
|
maxReplicas: number;
|
|
1356
1566
|
}
|
|
1357
1567
|
/**
|
|
@@ -1362,11 +1572,11 @@ export interface ResolvedScaleToZero {
|
|
|
1362
1572
|
export declare const SCALE_TO_ZERO_DEFAULTS: {
|
|
1363
1573
|
/** Idle timeout in seconds when caller didn't provide one. */
|
|
1364
1574
|
readonly idleTimeoutSeconds: 300;
|
|
1365
|
-
/** Min
|
|
1575
|
+
/** Min instances when the service opted into scale-to-zero. */
|
|
1366
1576
|
readonly minReplicasScaleToZero: 0;
|
|
1367
|
-
/** Min
|
|
1577
|
+
/** Min instances when the service did NOT opt in (pinned warm). */
|
|
1368
1578
|
readonly minReplicasWarm: 1;
|
|
1369
|
-
/** Max
|
|
1579
|
+
/** Max instances fallback when neither manifest nor compute profile specify. */
|
|
1370
1580
|
readonly maxReplicasDefault: 10;
|
|
1371
1581
|
};
|
|
1372
1582
|
/**
|
|
@@ -1378,7 +1588,7 @@ export declare const SCALE_TO_ZERO_DEFAULTS: {
|
|
|
1378
1588
|
* Pass `null`/`undefined` for "no scale-to-zero".
|
|
1379
1589
|
* @param explicitMax - Optional per-tier ceiling (e.g. resolved from
|
|
1380
1590
|
* compute profile). Takes precedence over the static
|
|
1381
|
-
* 10-
|
|
1591
|
+
* 10-instance fallback but not over an input.maxReplicas.
|
|
1382
1592
|
*/
|
|
1383
1593
|
export declare function resolveScaleToZeroDefaults(input: {
|
|
1384
1594
|
scaleToZero?: boolean;
|