@vibesdotdev/infra-core 0.0.2 → 1.0.0-rc.4
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/LICENSE +18 -0
- package/README.md +27 -1
- package/dist/bootstrap/seed.descriptor.d.ts +1 -1
- package/dist/bootstrap/seed.descriptor.d.ts.map +1 -1
- package/dist/bootstrap/seed.descriptor.js +1 -1
- package/dist/bootstrap/seed.descriptor.js.map +1 -1
- package/dist/bootstrap/seed.impl-shape.d.ts +1 -1
- package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -1
- package/dist/bootstrap/seed.kind.d.ts +1 -3
- package/dist/bootstrap/seed.kind.d.ts.map +1 -1
- package/dist/bootstrap/seed.kind.js +17 -4
- package/dist/bootstrap/seed.kind.js.map +1 -1
- package/dist/bootstrap/seed.runner.d.ts +9 -2
- package/dist/bootstrap/seed.runner.d.ts.map +1 -1
- package/dist/bootstrap/seed.runner.js +37 -18
- package/dist/bootstrap/seed.runner.js.map +1 -1
- package/dist/capped-id.d.ts +19 -0
- package/dist/capped-id.d.ts.map +1 -0
- package/dist/capped-id.js +64 -0
- package/dist/capped-id.js.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts +23 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js +33 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts +24 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.js +73 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.js.map +1 -0
- package/dist/cli/generate/context.d.ts +17 -0
- package/dist/cli/generate/context.d.ts.map +1 -0
- package/dist/cli/generate/context.js +24 -0
- package/dist/cli/generate/context.js.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts +30 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.js +25 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.js.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.d.ts +25 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.js +64 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.js.map +1 -0
- package/dist/cli/generate/generate-core.d.ts +51 -0
- package/dist/cli/generate/generate-core.d.ts.map +1 -0
- package/dist/cli/generate/generate-core.js +172 -0
- package/dist/cli/generate/generate-core.js.map +1 -0
- package/dist/cli/generate/index.d.ts +5 -0
- package/dist/cli/generate/index.d.ts.map +1 -0
- package/dist/cli/generate/index.js +5 -0
- package/dist/cli/generate/index.js.map +1 -0
- package/dist/credentials/resolve.d.ts +82 -22
- package/dist/credentials/resolve.d.ts.map +1 -1
- package/dist/credentials/resolve.js +251 -77
- package/dist/credentials/resolve.js.map +1 -1
- package/dist/deployment-environment.d.ts +30 -0
- package/dist/deployment-environment.d.ts.map +1 -0
- package/dist/deployment-environment.js +53 -0
- package/dist/deployment-environment.js.map +1 -0
- package/dist/deployment.d.ts +8 -4
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js +30 -0
- package/dist/deployment.js.map +1 -1
- package/dist/doks/cloud/base.d.ts +49 -0
- package/dist/doks/cloud/base.d.ts.map +1 -0
- package/dist/doks/cloud/base.js +138 -0
- package/dist/doks/cloud/base.js.map +1 -0
- package/dist/doks/cloud/factory.d.ts +18 -0
- package/dist/doks/cloud/factory.d.ts.map +1 -0
- package/dist/doks/cloud/factory.js +22 -0
- package/dist/doks/cloud/factory.js.map +1 -0
- package/dist/doks/cloud/index.d.ts +5 -0
- package/dist/doks/cloud/index.d.ts.map +1 -0
- package/dist/doks/cloud/index.js +4 -0
- package/dist/doks/cloud/index.js.map +1 -0
- package/dist/doks/types.d.ts +95 -0
- package/dist/doks/types.d.ts.map +1 -0
- package/dist/doks/types.js +14 -0
- package/dist/doks/types.js.map +1 -0
- package/dist/generate/index.d.ts +29 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +28 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/generate/infra-generate.plugin.d.ts +3 -0
- package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
- package/dist/generate/infra-generate.plugin.js +23 -0
- package/dist/generate/infra-generate.plugin.js.map +1 -0
- package/dist/generate/plugin.d.ts +2 -0
- package/dist/generate/plugin.d.ts.map +1 -0
- package/dist/generate/plugin.js +2 -0
- package/dist/generate/plugin.js.map +1 -0
- package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
- package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
- package/dist/heartbeat/cron-heartbeat.js +200 -0
- package/dist/heartbeat/cron-heartbeat.js.map +1 -0
- package/dist/index.d.ts +34 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -14
- package/dist/index.js.map +1 -1
- package/dist/infra.plugin.d.ts +1 -1
- package/dist/infra.plugin.d.ts.map +1 -1
- package/dist/infra.plugin.js +62 -12
- package/dist/infra.plugin.js.map +1 -1
- package/dist/kinds/alerts.kind.d.ts +64 -25
- package/dist/kinds/alerts.kind.d.ts.map +1 -1
- package/dist/kinds/alerts.kind.js +43 -16
- package/dist/kinds/alerts.kind.js.map +1 -1
- package/dist/kinds/artifact.kind.d.ts +58 -10
- package/dist/kinds/artifact.kind.d.ts.map +1 -1
- package/dist/kinds/artifact.kind.js +26 -9
- package/dist/kinds/artifact.kind.js.map +1 -1
- package/dist/kinds/billing.kind.d.ts +88 -0
- package/dist/kinds/billing.kind.d.ts.map +1 -0
- package/dist/kinds/billing.kind.js +48 -0
- package/dist/kinds/billing.kind.js.map +1 -0
- package/dist/kinds/build-job.kind.d.ts +381 -0
- package/dist/kinds/build-job.kind.d.ts.map +1 -0
- package/dist/kinds/build-job.kind.js +216 -0
- package/dist/kinds/build-job.kind.js.map +1 -0
- package/dist/kinds/cache.kind.d.ts +39 -92
- package/dist/kinds/cache.kind.d.ts.map +1 -1
- package/dist/kinds/cache.kind.js +26 -51
- package/dist/kinds/cache.kind.js.map +1 -1
- package/dist/kinds/cluster.kind.d.ts +154 -0
- package/dist/kinds/cluster.kind.d.ts.map +1 -0
- package/dist/kinds/cluster.kind.js +99 -0
- package/dist/kinds/cluster.kind.js.map +1 -0
- package/dist/kinds/compute-source.kind.d.ts +138 -0
- package/dist/kinds/compute-source.kind.d.ts.map +1 -0
- package/dist/kinds/compute-source.kind.js +145 -0
- package/dist/kinds/compute-source.kind.js.map +1 -0
- package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
- package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
- package/dist/kinds/compute-sources.descriptors.js +93 -0
- package/dist/kinds/compute-sources.descriptors.js.map +1 -0
- package/dist/kinds/container-registry.kind.d.ts +62 -0
- package/dist/kinds/container-registry.kind.d.ts.map +1 -0
- package/dist/kinds/container-registry.kind.js +47 -0
- package/dist/kinds/container-registry.kind.js.map +1 -0
- package/dist/kinds/database-migrator.kind.d.ts +6 -0
- package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
- package/dist/kinds/database-migrator.kind.js +28 -0
- package/dist/kinds/database-migrator.kind.js.map +1 -0
- package/dist/kinds/database.kind.d.ts +114 -93
- package/dist/kinds/database.kind.d.ts.map +1 -1
- package/dist/kinds/database.kind.js +93 -54
- package/dist/kinds/database.kind.js.map +1 -1
- package/dist/kinds/deployment-provider.kind.d.ts +5 -0
- package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
- package/dist/kinds/deployment-provider.kind.js +11 -0
- package/dist/kinds/deployment-provider.kind.js.map +1 -0
- package/dist/kinds/discovery.d.ts +5 -12
- package/dist/kinds/discovery.d.ts.map +1 -1
- package/dist/kinds/discovery.js +5 -17
- package/dist/kinds/discovery.js.map +1 -1
- package/dist/kinds/dns.kind.d.ts +162 -0
- package/dist/kinds/dns.kind.d.ts.map +1 -0
- package/dist/kinds/dns.kind.js +54 -0
- package/dist/kinds/dns.kind.js.map +1 -0
- package/dist/kinds/drift.kind.d.ts +115 -0
- package/dist/kinds/drift.kind.d.ts.map +1 -0
- package/dist/kinds/drift.kind.js +60 -0
- package/dist/kinds/drift.kind.js.map +1 -0
- package/dist/kinds/edge-tls.kind.d.ts +194 -0
- package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
- package/dist/kinds/edge-tls.kind.js +58 -0
- package/dist/kinds/edge-tls.kind.js.map +1 -0
- package/dist/kinds/firewall.kind.d.ts +92 -0
- package/dist/kinds/firewall.kind.d.ts.map +1 -0
- package/dist/kinds/firewall.kind.js +59 -0
- package/dist/kinds/firewall.kind.js.map +1 -0
- package/dist/kinds/git-hosting.kind.d.ts +36 -38
- package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
- package/dist/kinds/git-hosting.kind.js +21 -32
- package/dist/kinds/git-hosting.kind.js.map +1 -1
- package/dist/kinds/index.d.ts +40 -15
- package/dist/kinds/index.d.ts.map +1 -1
- package/dist/kinds/index.js +39 -14
- package/dist/kinds/index.js.map +1 -1
- package/dist/kinds/inventory.kind.d.ts +326 -0
- package/dist/kinds/inventory.kind.d.ts.map +1 -0
- package/dist/kinds/inventory.kind.js +188 -0
- package/dist/kinds/inventory.kind.js.map +1 -0
- package/dist/kinds/load-balancer.kind.d.ts +135 -0
- package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
- package/dist/kinds/load-balancer.kind.js +71 -0
- package/dist/kinds/load-balancer.kind.js.map +1 -0
- package/dist/kinds/logs.kind.d.ts +74 -3
- package/dist/kinds/logs.kind.d.ts.map +1 -1
- package/dist/kinds/logs.kind.js +26 -17
- package/dist/kinds/logs.kind.js.map +1 -1
- package/dist/kinds/nfs.kind.d.ts +67 -0
- package/dist/kinds/nfs.kind.d.ts.map +1 -0
- package/dist/kinds/nfs.kind.js +45 -0
- package/dist/kinds/nfs.kind.js.map +1 -0
- package/dist/kinds/node-pool.kind.d.ts +134 -0
- package/dist/kinds/node-pool.kind.d.ts.map +1 -0
- package/dist/kinds/node-pool.kind.js +88 -0
- package/dist/kinds/node-pool.kind.js.map +1 -0
- package/dist/kinds/object-storage.kind.d.ts +50 -24
- package/dist/kinds/object-storage.kind.d.ts.map +1 -1
- package/dist/kinds/object-storage.kind.js +40 -23
- package/dist/kinds/object-storage.kind.js.map +1 -1
- package/dist/kinds/observability.kind.d.ts +104 -6
- package/dist/kinds/observability.kind.d.ts.map +1 -1
- package/dist/kinds/observability.kind.js +67 -9
- package/dist/kinds/observability.kind.js.map +1 -1
- package/dist/kinds/package-registry.kind.d.ts +25 -29
- package/dist/kinds/package-registry.kind.d.ts.map +1 -1
- package/dist/kinds/package-registry.kind.js +12 -25
- package/dist/kinds/package-registry.kind.js.map +1 -1
- package/dist/kinds/queue.kind.d.ts +67 -63
- package/dist/kinds/queue.kind.d.ts.map +1 -1
- package/dist/kinds/queue.kind.js +55 -33
- package/dist/kinds/queue.kind.js.map +1 -1
- package/dist/kinds/read-descriptor.d.ts +15 -0
- package/dist/kinds/read-descriptor.d.ts.map +1 -0
- package/dist/kinds/read-descriptor.js +11 -0
- package/dist/kinds/read-descriptor.js.map +1 -0
- package/dist/kinds/rum.kind.d.ts +36 -6
- package/dist/kinds/rum.kind.d.ts.map +1 -1
- package/dist/kinds/rum.kind.js +6 -7
- package/dist/kinds/rum.kind.js.map +1 -1
- package/dist/kinds/sandbox.kind.d.ts +136 -36
- package/dist/kinds/sandbox.kind.d.ts.map +1 -1
- package/dist/kinds/sandbox.kind.js +80 -34
- package/dist/kinds/sandbox.kind.js.map +1 -1
- package/dist/kinds/select-compute-source.d.ts +72 -0
- package/dist/kinds/select-compute-source.d.ts.map +1 -0
- package/dist/kinds/select-compute-source.js +170 -0
- package/dist/kinds/select-compute-source.js.map +1 -0
- package/dist/kinds/service-release.kind.d.ts +771 -0
- package/dist/kinds/service-release.kind.d.ts.map +1 -0
- package/dist/kinds/service-release.kind.js +676 -0
- package/dist/kinds/service-release.kind.js.map +1 -0
- package/dist/kinds/spend-guard.kind.d.ts +40 -0
- package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
- package/dist/kinds/spend-guard.kind.js +133 -0
- package/dist/kinds/spend-guard.kind.js.map +1 -0
- package/dist/kinds/utilization.kind.d.ts +88 -0
- package/dist/kinds/utilization.kind.d.ts.map +1 -0
- package/dist/kinds/utilization.kind.js +62 -0
- package/dist/kinds/utilization.kind.js.map +1 -0
- package/dist/kinds/volume.kind.d.ts +54 -0
- package/dist/kinds/volume.kind.d.ts.map +1 -0
- package/dist/kinds/volume.kind.js +39 -0
- package/dist/kinds/volume.kind.js.map +1 -0
- package/dist/kinds/vpc.kind.d.ts +61 -0
- package/dist/kinds/vpc.kind.d.ts.map +1 -0
- package/dist/kinds/vpc.kind.js +51 -0
- package/dist/kinds/vpc.kind.js.map +1 -0
- package/dist/kinds/web-app.kind.d.ts +115 -45
- package/dist/kinds/web-app.kind.d.ts.map +1 -1
- package/dist/kinds/web-app.kind.js +69 -42
- package/dist/kinds/web-app.kind.js.map +1 -1
- package/dist/kinds/worker.kind.d.ts +291 -188
- package/dist/kinds/worker.kind.d.ts.map +1 -1
- package/dist/kinds/worker.kind.js +45 -123
- package/dist/kinds/worker.kind.js.map +1 -1
- package/dist/schemas/database-migration.d.ts +173 -0
- package/dist/schemas/database-migration.d.ts.map +1 -0
- package/dist/schemas/database-migration.js +88 -0
- package/dist/schemas/database-migration.js.map +1 -0
- package/dist/schemas/deployment-environment.d.ts +11 -0
- package/dist/schemas/deployment-environment.d.ts.map +1 -0
- package/dist/schemas/deployment-environment.js +9 -0
- package/dist/schemas/deployment-environment.js.map +1 -0
- package/dist/schemas/deployment-provider.d.ts +336 -0
- package/dist/schemas/deployment-provider.d.ts.map +1 -0
- package/dist/schemas/deployment-provider.js +198 -0
- package/dist/schemas/deployment-provider.js.map +1 -0
- package/dist/schemas/log-stream.d.ts +27 -0
- package/dist/schemas/log-stream.d.ts.map +1 -0
- package/dist/schemas/log-stream.js +31 -0
- package/dist/schemas/log-stream.js.map +1 -0
- package/dist/schemas/spend-guard.d.ts +155 -0
- package/dist/schemas/spend-guard.d.ts.map +1 -0
- package/dist/schemas/spend-guard.js +61 -0
- package/dist/schemas/spend-guard.js.map +1 -0
- package/dist/schemas.d.ts +190 -20
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +137 -31
- package/dist/schemas.js.map +1 -1
- package/dist/service.d.ts +87 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +199 -0
- package/dist/service.js.map +1 -0
- package/dist/settle-work.d.ts +20 -0
- package/dist/settle-work.d.ts.map +1 -0
- package/dist/settle-work.js +22 -0
- package/dist/settle-work.js.map +1 -0
- package/dist/web-app-projection.d.ts +132 -0
- package/dist/web-app-projection.d.ts.map +1 -0
- package/dist/web-app-projection.js +93 -0
- package/dist/web-app-projection.js.map +1 -0
- package/package.json +87 -36
- package/src/bootstrap/index.ts +0 -15
- package/src/bootstrap/seed.descriptor.ts +0 -24
- package/src/bootstrap/seed.impl-shape.ts +0 -5
- package/src/bootstrap/seed.kind.ts +0 -26
- package/src/bootstrap/seed.runner.ts +0 -87
- package/src/credentials/resolve.ts +0 -205
- package/src/deployment.ts +0 -57
- package/src/index.ts +0 -149
- package/src/infra.plugin.ts +0 -54
- package/src/kinds/alerts.kind.ts +0 -164
- package/src/kinds/artifact.kind.ts +0 -96
- package/src/kinds/cache.kind.ts +0 -104
- package/src/kinds/database.kind.ts +0 -120
- package/src/kinds/discovery.ts +0 -26
- package/src/kinds/git-hosting.kind.ts +0 -100
- package/src/kinds/index.ts +0 -139
- package/src/kinds/logs.kind.ts +0 -104
- package/src/kinds/object-storage.kind.ts +0 -101
- package/src/kinds/observability.kind.ts +0 -178
- package/src/kinds/package-registry.kind.ts +0 -95
- package/src/kinds/queue.kind.ts +0 -102
- package/src/kinds/rum.kind.ts +0 -135
- package/src/kinds/sandbox.kind.ts +0 -115
- package/src/kinds/web-app.kind.ts +0 -103
- package/src/kinds/worker.kind.ts +0 -203
- package/src/schemas.ts +0 -127
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/node-pool
|
|
3
|
+
*
|
|
4
|
+
* Provider-neutral Kubernetes node-pool descriptor. Captures autoscaling,
|
|
5
|
+
* GPU shape, device plugin flags, and a workload class used by infra
|
|
6
|
+
* profile reconcilers.
|
|
7
|
+
*
|
|
8
|
+
* `config` is an open, adapter-keyed shape (DigitalOcean's Kubernetes node
|
|
9
|
+
* pool config lives in `@vibesdotdev/integrations-digitalocean`); this kind
|
|
10
|
+
* names no provider, so a config for any adapter parses here and the
|
|
11
|
+
* adapter validates its own grammar.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
15
|
+
import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
|
|
16
|
+
export declare const NodePoolTaintSchema: z.ZodObject<{
|
|
17
|
+
key: z.ZodString;
|
|
18
|
+
value: z.ZodString;
|
|
19
|
+
effect: z.ZodEnum<{
|
|
20
|
+
NoSchedule: "NoSchedule";
|
|
21
|
+
PreferNoSchedule: "PreferNoSchedule";
|
|
22
|
+
NoExecute: "NoExecute";
|
|
23
|
+
}>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export type NodePoolTaint = z.infer<typeof NodePoolTaintSchema>;
|
|
26
|
+
export declare const NodePoolGpuSchema: z.ZodObject<{
|
|
27
|
+
vendor: z.ZodEnum<{
|
|
28
|
+
nvidia: "nvidia";
|
|
29
|
+
amd: "amd";
|
|
30
|
+
}>;
|
|
31
|
+
model: z.ZodString;
|
|
32
|
+
count: z.ZodNumber;
|
|
33
|
+
vramGb: z.ZodOptional<z.ZodNumber>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
export type NodePoolGpu = z.infer<typeof NodePoolGpuSchema>;
|
|
36
|
+
export declare const NodePoolDevicePluginsSchema: z.ZodObject<{
|
|
37
|
+
nvidia: z.ZodOptional<z.ZodBoolean>;
|
|
38
|
+
amd: z.ZodOptional<z.ZodBoolean>;
|
|
39
|
+
amdMetrics: z.ZodOptional<z.ZodBoolean>;
|
|
40
|
+
}, z.core.$strip>;
|
|
41
|
+
export declare const NodePoolWorkloadClassSchema: z.ZodEnum<{
|
|
42
|
+
system: "system";
|
|
43
|
+
worker: "worker";
|
|
44
|
+
build: "build";
|
|
45
|
+
exec: "exec";
|
|
46
|
+
"gpu-inference": "gpu-inference";
|
|
47
|
+
"gpu-training": "gpu-training";
|
|
48
|
+
}>;
|
|
49
|
+
export type NodePoolWorkloadClass = z.infer<typeof NodePoolWorkloadClassSchema>;
|
|
50
|
+
/**
|
|
51
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
52
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
53
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
54
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
55
|
+
*/
|
|
56
|
+
export declare const NodePoolConfigSchema: z.ZodObject<{
|
|
57
|
+
adapter: z.ZodString;
|
|
58
|
+
}, z.core.$loose>;
|
|
59
|
+
export type NodePoolConfig = z.infer<typeof NodePoolConfigSchema>;
|
|
60
|
+
export declare const NodePoolDescriptorSchema: z.ZodObject<{
|
|
61
|
+
id: z.ZodString;
|
|
62
|
+
name: z.ZodOptional<z.ZodString>;
|
|
63
|
+
description: z.ZodOptional<z.ZodString>;
|
|
64
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
65
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
66
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
capabilityId: z.ZodOptional<z.ZodString>;
|
|
68
|
+
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
69
|
+
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
70
|
+
retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
71
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
cascadeFrom: z.ZodOptional<z.ZodString>;
|
|
75
|
+
ageField: z.ZodOptional<z.ZodString>;
|
|
76
|
+
reason: z.ZodString;
|
|
77
|
+
enforcedBy: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, z.core.$strip>]>>;
|
|
79
|
+
kind: z.ZodLiteral<"infra/node-pool">;
|
|
80
|
+
clusterRef: z.ZodOptional<z.ZodString>;
|
|
81
|
+
size: z.ZodOptional<z.ZodString>;
|
|
82
|
+
count: z.ZodOptional<z.ZodNumber>;
|
|
83
|
+
autoScale: z.ZodOptional<z.ZodBoolean>;
|
|
84
|
+
minNodes: z.ZodOptional<z.ZodNumber>;
|
|
85
|
+
maxNodes: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
autoscaleToZero: z.ZodOptional<z.ZodBoolean>;
|
|
87
|
+
labels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
88
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
89
|
+
taints: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
90
|
+
key: z.ZodString;
|
|
91
|
+
value: z.ZodString;
|
|
92
|
+
effect: z.ZodEnum<{
|
|
93
|
+
NoSchedule: "NoSchedule";
|
|
94
|
+
PreferNoSchedule: "PreferNoSchedule";
|
|
95
|
+
NoExecute: "NoExecute";
|
|
96
|
+
}>;
|
|
97
|
+
}, z.core.$strip>>>;
|
|
98
|
+
gpu: z.ZodOptional<z.ZodObject<{
|
|
99
|
+
vendor: z.ZodEnum<{
|
|
100
|
+
nvidia: "nvidia";
|
|
101
|
+
amd: "amd";
|
|
102
|
+
}>;
|
|
103
|
+
model: z.ZodString;
|
|
104
|
+
count: z.ZodNumber;
|
|
105
|
+
vramGb: z.ZodOptional<z.ZodNumber>;
|
|
106
|
+
}, z.core.$strip>>;
|
|
107
|
+
devicePlugins: z.ZodOptional<z.ZodObject<{
|
|
108
|
+
nvidia: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
amd: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
amdMetrics: z.ZodOptional<z.ZodBoolean>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
workloadClass: z.ZodOptional<z.ZodEnum<{
|
|
113
|
+
system: "system";
|
|
114
|
+
worker: "worker";
|
|
115
|
+
build: "build";
|
|
116
|
+
exec: "exec";
|
|
117
|
+
"gpu-inference": "gpu-inference";
|
|
118
|
+
"gpu-training": "gpu-training";
|
|
119
|
+
}>>;
|
|
120
|
+
config: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
adapter: z.ZodString;
|
|
122
|
+
}, z.core.$loose>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export type NodePoolDescriptor = z.infer<typeof NodePoolDescriptorSchema>;
|
|
125
|
+
declare class DefaultNodePoolImplementation {
|
|
126
|
+
readonly descriptor: RuntimeDescriptor;
|
|
127
|
+
readonly context: KindContext;
|
|
128
|
+
/** The descriptor as this kind's schema reads it. */
|
|
129
|
+
readonly config: NodePoolDescriptor;
|
|
130
|
+
constructor(descriptor: RuntimeDescriptor, context: KindContext);
|
|
131
|
+
}
|
|
132
|
+
export declare const nodePoolKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultNodePoolImplementation>;
|
|
133
|
+
export {};
|
|
134
|
+
//# sourceMappingURL=node-pool.kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pool.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/node-pool.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,eAAO,MAAM,mBAAmB;;;;;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,iBAAiB;;;;;;;;iBAK5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;EAOtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAmBhF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,cAAM,6BAA6B;aAIjB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;gBAEnB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,YAAY,0FAKvB,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/node-pool
|
|
3
|
+
*
|
|
4
|
+
* Provider-neutral Kubernetes node-pool descriptor. Captures autoscaling,
|
|
5
|
+
* GPU shape, device plugin flags, and a workload class used by infra
|
|
6
|
+
* profile reconcilers.
|
|
7
|
+
*
|
|
8
|
+
* `config` is an open, adapter-keyed shape (DigitalOcean's Kubernetes node
|
|
9
|
+
* pool config lives in `@vibesdotdev/integrations-digitalocean`); this kind
|
|
10
|
+
* names no provider, so a config for any adapter parses here and the
|
|
11
|
+
* adapter validates its own grammar.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
|
|
15
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
16
|
+
import { readKindDescriptor } from "./read-descriptor.js";
|
|
17
|
+
import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
|
|
18
|
+
export const NodePoolTaintSchema = z.object({
|
|
19
|
+
key: z.string().min(1),
|
|
20
|
+
value: z.string(),
|
|
21
|
+
effect: z.enum(['NoSchedule', 'PreferNoSchedule', 'NoExecute'])
|
|
22
|
+
});
|
|
23
|
+
export const NodePoolGpuSchema = z.object({
|
|
24
|
+
vendor: z.enum(['nvidia', 'amd']),
|
|
25
|
+
model: z.string().min(1),
|
|
26
|
+
count: z.number().int().positive(),
|
|
27
|
+
vramGb: z.number().int().positive().optional()
|
|
28
|
+
});
|
|
29
|
+
export const NodePoolDevicePluginsSchema = z.object({
|
|
30
|
+
nvidia: z.boolean().optional(),
|
|
31
|
+
amd: z.boolean().optional(),
|
|
32
|
+
amdMetrics: z.boolean().optional()
|
|
33
|
+
});
|
|
34
|
+
export const NodePoolWorkloadClassSchema = z.enum([
|
|
35
|
+
'system',
|
|
36
|
+
'worker',
|
|
37
|
+
'build',
|
|
38
|
+
'exec',
|
|
39
|
+
'gpu-inference',
|
|
40
|
+
'gpu-training'
|
|
41
|
+
]);
|
|
42
|
+
const NodePoolBaseSchema = RuntimeDescriptorSchema.extend({
|
|
43
|
+
kind: z.literal('infra/node-pool'),
|
|
44
|
+
clusterRef: z.string().optional(),
|
|
45
|
+
size: z.string().min(1).optional(),
|
|
46
|
+
count: z.number().int().nonnegative().optional(),
|
|
47
|
+
autoScale: z.boolean().optional(),
|
|
48
|
+
minNodes: z.number().int().nonnegative().optional(),
|
|
49
|
+
maxNodes: z.number().int().nonnegative().optional(),
|
|
50
|
+
autoscaleToZero: z.boolean().optional(),
|
|
51
|
+
labels: z.record(z.string(), z.string()).optional(),
|
|
52
|
+
tags: z.array(z.string()).optional(),
|
|
53
|
+
taints: z.array(NodePoolTaintSchema).optional(),
|
|
54
|
+
gpu: NodePoolGpuSchema.optional(),
|
|
55
|
+
devicePlugins: NodePoolDevicePluginsSchema.optional(),
|
|
56
|
+
workloadClass: NodePoolWorkloadClassSchema.optional()
|
|
57
|
+
});
|
|
58
|
+
/**
|
|
59
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
60
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
61
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
62
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
63
|
+
*/
|
|
64
|
+
export const NodePoolConfigSchema = z.looseObject({
|
|
65
|
+
adapter: z.string().min(1)
|
|
66
|
+
});
|
|
67
|
+
export const NodePoolDescriptorSchema = NodePoolBaseSchema.extend({
|
|
68
|
+
/** Adapter-specific configuration, parsed by the adapter that owns it. */
|
|
69
|
+
config: NodePoolConfigSchema.optional()
|
|
70
|
+
});
|
|
71
|
+
class DefaultNodePoolImplementation {
|
|
72
|
+
descriptor;
|
|
73
|
+
context;
|
|
74
|
+
/** The descriptor as this kind's schema reads it. */
|
|
75
|
+
config;
|
|
76
|
+
constructor(descriptor, context) {
|
|
77
|
+
this.descriptor = descriptor;
|
|
78
|
+
this.context = context;
|
|
79
|
+
this.config = readKindDescriptor(NodePoolDescriptorSchema, descriptor);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export const nodePoolKind = createRuntimeKind({
|
|
83
|
+
id: 'infra/node-pool',
|
|
84
|
+
descriptorSchema: NodePoolDescriptorSchema,
|
|
85
|
+
defaultImplementation: DefaultNodePoolImplementation,
|
|
86
|
+
discoveryPatterns: INFRA_DISCOVERY_PATTERNS
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=node-pool.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-pool.kind.js","sourceRoot":"","sources":["../../src/kinds/node-pool.kind.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,21 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Describes object/blob storage.
|
|
5
5
|
*
|
|
6
|
-
* Schema shape: strict common base + `config
|
|
6
|
+
* Schema shape: strict common base + an open, adapter-keyed `config`.
|
|
7
7
|
*
|
|
8
8
|
* - The base defines fields universal across adapters: id/kind/name +
|
|
9
9
|
* the storage shape (bucket, cors, lifecycle, publicAccess).
|
|
10
|
-
* - Adapter-specific fields (region, acl, …) live under `config
|
|
11
|
-
* Each adapter package defines
|
|
10
|
+
* - Adapter-specific fields (region, acl, …) live under `config`, keyed by
|
|
11
|
+
* a non-empty `adapter` discriminator. Each adapter package defines and
|
|
12
|
+
* parses its own concrete schema (DigitalOcean Spaces' lives in
|
|
13
|
+
* `@vibesdotdev/integrations-digitalocean`; Cloudflare R2's in
|
|
14
|
+
* `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
|
|
15
|
+
* so a config for any adapter — including one contributed by a user
|
|
16
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
12
17
|
*/
|
|
13
18
|
import * as z from 'zod/v4';
|
|
14
|
-
import type {
|
|
15
|
-
import type {
|
|
19
|
+
import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
20
|
+
import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
|
|
16
21
|
export declare const CorsRuleSchema: z.ZodObject<{
|
|
17
22
|
allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
18
23
|
allowedMethods: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -23,22 +28,34 @@ export type CorsRule = z.infer<typeof CorsRuleSchema>;
|
|
|
23
28
|
export declare const LifecycleRuleSchema: z.ZodObject<{
|
|
24
29
|
prefix: z.ZodOptional<z.ZodString>;
|
|
25
30
|
expiration: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
abortIncompleteMultipartUploadDays: z.ZodOptional<z.ZodNumber>;
|
|
26
32
|
transition: z.ZodOptional<z.ZodObject<{
|
|
27
33
|
days: z.ZodNumber;
|
|
28
34
|
storageClass: z.ZodString;
|
|
29
35
|
}, z.core.$strip>>;
|
|
30
36
|
}, z.core.$strip>;
|
|
31
37
|
export type LifecycleRule = z.infer<typeof LifecycleRuleSchema>;
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
/**
|
|
39
|
+
* Reference to a credential or secret materialized at apply time. The shape
|
|
40
|
+
* is intentionally permissive — full validation lives in the credentials
|
|
41
|
+
* runtime. Keeping it inline keeps this kind decoupled from runtime/secrets.
|
|
42
|
+
*/
|
|
43
|
+
export declare const CredentialReferenceSchema: z.ZodObject<{
|
|
44
|
+
store: z.ZodOptional<z.ZodString>;
|
|
45
|
+
key: z.ZodString;
|
|
46
|
+
env: z.ZodOptional<z.ZodString>;
|
|
34
47
|
}, z.core.$strip>;
|
|
35
|
-
export
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
48
|
+
export type CredentialReference = z.infer<typeof CredentialReferenceSchema>;
|
|
49
|
+
/**
|
|
50
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
51
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
52
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
53
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
54
|
+
*/
|
|
55
|
+
export declare const ObjectStorageConfigSchema: z.ZodObject<{
|
|
56
|
+
adapter: z.ZodString;
|
|
57
|
+
}, z.core.$loose>;
|
|
58
|
+
export type ObjectStorageConfig = z.infer<typeof ObjectStorageConfigSchema>;
|
|
42
59
|
export declare const ObjectStorageDescriptorSchema: z.ZodObject<{
|
|
43
60
|
id: z.ZodString;
|
|
44
61
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -47,8 +64,18 @@ export declare const ObjectStorageDescriptorSchema: z.ZodObject<{
|
|
|
47
64
|
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
48
65
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
49
66
|
priority: z.ZodOptional<z.ZodNumber>;
|
|
67
|
+
capabilityId: z.ZodOptional<z.ZodString>;
|
|
50
68
|
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
51
69
|
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
70
|
+
retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
71
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
cascadeFrom: z.ZodOptional<z.ZodString>;
|
|
75
|
+
ageField: z.ZodOptional<z.ZodString>;
|
|
76
|
+
reason: z.ZodString;
|
|
77
|
+
enforcedBy: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, z.core.$strip>]>>;
|
|
52
79
|
kind: z.ZodLiteral<"infra/object-storage">;
|
|
53
80
|
bucket: z.ZodOptional<z.ZodString>;
|
|
54
81
|
cors: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
@@ -60,26 +87,25 @@ export declare const ObjectStorageDescriptorSchema: z.ZodObject<{
|
|
|
60
87
|
lifecycle: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
61
88
|
prefix: z.ZodOptional<z.ZodString>;
|
|
62
89
|
expiration: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
abortIncompleteMultipartUploadDays: z.ZodOptional<z.ZodNumber>;
|
|
63
91
|
transition: z.ZodOptional<z.ZodObject<{
|
|
64
92
|
days: z.ZodNumber;
|
|
65
93
|
storageClass: z.ZodString;
|
|
66
94
|
}, z.core.$strip>>;
|
|
67
95
|
}, z.core.$strip>>>;
|
|
68
96
|
publicAccess: z.ZodOptional<z.ZodBoolean>;
|
|
69
|
-
config: z.ZodOptional<z.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
73
|
-
adapter: z.ZodLiteral<"cloudflare-r2">;
|
|
74
|
-
}, z.core.$strip>]>>;
|
|
97
|
+
config: z.ZodOptional<z.ZodObject<{
|
|
98
|
+
adapter: z.ZodString;
|
|
99
|
+
}, z.core.$loose>>;
|
|
75
100
|
}, z.core.$strip>;
|
|
76
101
|
export type ObjectStorageDescriptor = z.infer<typeof ObjectStorageDescriptorSchema>;
|
|
77
102
|
declare class DefaultObjectStorageImplementation {
|
|
78
103
|
readonly descriptor: RuntimeDescriptor;
|
|
79
|
-
readonly context:
|
|
80
|
-
|
|
81
|
-
|
|
104
|
+
readonly context: KindContext;
|
|
105
|
+
/** The descriptor as this kind's schema reads it. */
|
|
106
|
+
readonly config: ObjectStorageDescriptor;
|
|
107
|
+
constructor(descriptor: RuntimeDescriptor, context: KindContext);
|
|
82
108
|
}
|
|
83
|
-
export declare const objectStorageKind: RuntimeKindDescriptorRecord<DefaultObjectStorageImplementation>;
|
|
109
|
+
export declare const objectStorageKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultObjectStorageImplementation>;
|
|
84
110
|
export {};
|
|
85
111
|
//# sourceMappingURL=object-storage.kind.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-storage.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/object-storage.kind.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"object-storage.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/object-storage.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,eAAO,MAAM,cAAc;;;;;iBAKzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;;;;;iBAiB9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB;;;;iBAIpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAkB5E;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;iBAEpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,cAAM,kCAAkC;aAItB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;gBAExB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,iBAAiB,+FAQ5B,CAAC"}
|
|
@@ -3,17 +3,23 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Describes object/blob storage.
|
|
5
5
|
*
|
|
6
|
-
* Schema shape: strict common base + `config
|
|
6
|
+
* Schema shape: strict common base + an open, adapter-keyed `config`.
|
|
7
7
|
*
|
|
8
8
|
* - The base defines fields universal across adapters: id/kind/name +
|
|
9
9
|
* the storage shape (bucket, cors, lifecycle, publicAccess).
|
|
10
|
-
* - Adapter-specific fields (region, acl, …) live under `config
|
|
11
|
-
* Each adapter package defines
|
|
10
|
+
* - Adapter-specific fields (region, acl, …) live under `config`, keyed by
|
|
11
|
+
* a non-empty `adapter` discriminator. Each adapter package defines and
|
|
12
|
+
* parses its own concrete schema (DigitalOcean Spaces' lives in
|
|
13
|
+
* `@vibesdotdev/integrations-digitalocean`; Cloudflare R2's in
|
|
14
|
+
* `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
|
|
15
|
+
* so a config for any adapter — including one contributed by a user
|
|
16
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
12
17
|
*/
|
|
13
18
|
import * as z from 'zod/v4';
|
|
14
|
-
import { createRuntimeKind } from '@vibesdotdev/
|
|
15
|
-
import { RuntimeDescriptorSchema } from '@vibesdotdev/
|
|
16
|
-
import {
|
|
19
|
+
import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
|
|
20
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
21
|
+
import { readKindDescriptor } from "./read-descriptor.js";
|
|
22
|
+
import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
|
|
17
23
|
export const CorsRuleSchema = z.object({
|
|
18
24
|
allowedOrigins: z.array(z.string()).default(['*']),
|
|
19
25
|
allowedMethods: z.array(z.string()).default(['GET']),
|
|
@@ -25,6 +31,11 @@ export const LifecycleRuleSchema = z.object({
|
|
|
25
31
|
prefix: z.string().optional(),
|
|
26
32
|
/** Days until expiration */
|
|
27
33
|
expiration: z.number().int().positive().optional(),
|
|
34
|
+
/**
|
|
35
|
+
* Days after which incomplete multipart uploads are aborted.
|
|
36
|
+
* Maps to S3-compatible `AbortIncompleteMultipartUpload`.
|
|
37
|
+
*/
|
|
38
|
+
abortIncompleteMultipartUploadDays: z.number().int().positive().optional(),
|
|
28
39
|
/** Storage class transition */
|
|
29
40
|
transition: z
|
|
30
41
|
.object({
|
|
@@ -33,6 +44,16 @@ export const LifecycleRuleSchema = z.object({
|
|
|
33
44
|
})
|
|
34
45
|
.optional()
|
|
35
46
|
});
|
|
47
|
+
/**
|
|
48
|
+
* Reference to a credential or secret materialized at apply time. The shape
|
|
49
|
+
* is intentionally permissive — full validation lives in the credentials
|
|
50
|
+
* runtime. Keeping it inline keeps this kind decoupled from runtime/secrets.
|
|
51
|
+
*/
|
|
52
|
+
export const CredentialReferenceSchema = z.object({
|
|
53
|
+
store: z.string().min(1).optional(),
|
|
54
|
+
key: z.string().min(1),
|
|
55
|
+
env: z.string().min(1).optional()
|
|
56
|
+
});
|
|
36
57
|
const ObjectStorageBaseSchema = RuntimeDescriptorSchema.extend({
|
|
37
58
|
kind: z.literal('infra/object-storage'),
|
|
38
59
|
/** Bucket name (defaults to descriptor id when omitted). */
|
|
@@ -44,38 +65,34 @@ const ObjectStorageBaseSchema = RuntimeDescriptorSchema.extend({
|
|
|
44
65
|
/** Whether the bucket is publicly readable. */
|
|
45
66
|
publicAccess: z.boolean().optional()
|
|
46
67
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
70
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
71
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
72
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
73
|
+
*/
|
|
74
|
+
export const ObjectStorageConfigSchema = z.looseObject({
|
|
75
|
+
adapter: z.string().min(1)
|
|
50
76
|
});
|
|
51
|
-
export const CloudflareR2ConfigSchema = z.object({});
|
|
52
|
-
export const ObjectStorageConfigSchema = z.union([
|
|
53
|
-
DOSpacesConfigSchema.extend({ adapter: z.literal('do-spaces') }),
|
|
54
|
-
CloudflareR2ConfigSchema.extend({ adapter: z.literal('cloudflare-r2') })
|
|
55
|
-
]);
|
|
56
77
|
export const ObjectStorageDescriptorSchema = ObjectStorageBaseSchema.extend({
|
|
57
|
-
/**
|
|
58
|
-
* Adapter-specific configuration. Discriminated union — each adapter
|
|
59
|
-
* package defines its own config schema under its discriminator key.
|
|
60
|
-
*/
|
|
78
|
+
/** Adapter-specific configuration, parsed by the adapter that owns it. */
|
|
61
79
|
config: ObjectStorageConfigSchema.optional()
|
|
62
80
|
});
|
|
63
81
|
class DefaultObjectStorageImplementation {
|
|
64
82
|
descriptor;
|
|
65
83
|
context;
|
|
84
|
+
/** The descriptor as this kind's schema reads it. */
|
|
85
|
+
config;
|
|
66
86
|
constructor(descriptor, context) {
|
|
67
87
|
this.descriptor = descriptor;
|
|
68
88
|
this.context = context;
|
|
69
|
-
|
|
70
|
-
get config() {
|
|
71
|
-
return this.descriptor;
|
|
89
|
+
this.config = readKindDescriptor(ObjectStorageDescriptorSchema, descriptor);
|
|
72
90
|
}
|
|
73
91
|
}
|
|
74
92
|
export const objectStorageKind = createRuntimeKind({
|
|
75
93
|
id: 'infra/object-storage',
|
|
76
94
|
descriptorSchema: ObjectStorageDescriptorSchema,
|
|
77
95
|
defaultImplementation: DefaultObjectStorageImplementation,
|
|
78
|
-
|
|
79
|
-
extractStem
|
|
96
|
+
discoveryPatterns: INFRA_DISCOVERY_PATTERNS
|
|
80
97
|
});
|
|
81
98
|
//# sourceMappingURL=object-storage.kind.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-storage.kind.js","sourceRoot":"","sources":["../../src/kinds/object-storage.kind.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"object-storage.kind.js","sourceRoot":"","sources":["../../src/kinds/object-storage.kind.ts"],"names":[],"mappings":"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"}
|