@vibesdotdev/infra-core 0.0.2 → 1.0.0-rc.11
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 +28 -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-budget.d.ts +319 -0
- package/dist/deployment-budget.d.ts.map +1 -0
- package/dist/deployment-budget.js +660 -0
- package/dist/deployment-budget.js.map +1 -0
- 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-graph.d.ts +185 -0
- package/dist/deployment-graph.d.ts.map +1 -0
- package/dist/deployment-graph.js +705 -0
- package/dist/deployment-graph.js.map +1 -0
- package/dist/deployment.d.ts +25 -4
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js +105 -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 +37 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -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 +64 -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 +383 -0
- package/dist/kinds/build-job.kind.d.ts.map +1 -0
- package/dist/kinds/build-job.kind.js +218 -0
- package/dist/kinds/build-job.kind.js.map +1 -0
- package/dist/kinds/cache-byte-store.d.ts +23 -0
- package/dist/kinds/cache-byte-store.d.ts.map +1 -0
- package/dist/kinds/cache-byte-store.js +9 -0
- package/dist/kinds/cache-byte-store.js.map +1 -0
- package/dist/kinds/cache.kind.d.ts +38 -94
- package/dist/kinds/cache.kind.d.ts.map +1 -1
- package/dist/kinds/cache.kind.js +39 -50
- 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 +155 -0
- package/dist/kinds/compute-source.kind.d.ts.map +1 -0
- package/dist/kinds/compute-source.kind.js +158 -0
- package/dist/kinds/compute-source.kind.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-hostname.kind.d.ts +124 -0
- package/dist/kinds/edge-hostname.kind.d.ts.map +1 -0
- package/dist/kinds/edge-hostname.kind.js +87 -0
- package/dist/kinds/edge-hostname.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 +41 -15
- package/dist/kinds/index.d.ts.map +1 -1
- package/dist/kinds/index.js +40 -14
- package/dist/kinds/index.js.map +1 -1
- package/dist/kinds/inventory.kind.d.ts +245 -0
- package/dist/kinds/inventory.kind.d.ts.map +1 -0
- package/dist/kinds/inventory.kind.js +243 -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 +139 -33
- package/dist/kinds/package-registry.kind.d.ts.map +1 -1
- package/dist/kinds/package-registry.kind.js +55 -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 -40
- package/dist/kinds/sandbox.kind.d.ts.map +1 -1
- package/dist/kinds/sandbox.kind.js +82 -43
- 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 +41 -0
- package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
- package/dist/kinds/spend-guard.kind.js +140 -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 +118 -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 +129 -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 +383 -0
- package/dist/schemas/deployment-provider.d.ts.map +1 -0
- package/dist/schemas/deployment-provider.js +211 -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 +195 -20
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +151 -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 +208 -0
- package/dist/web-app-projection.d.ts.map +1 -0
- package/dist/web-app-projection.js +95 -0
- package/dist/web-app-projection.js.map +1 -0
- package/package.json +121 -37
- 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
|
@@ -3,71 +3,32 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Describes a cache service.
|
|
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 cache shape (engine, maxMemory, eviction, namespace).
|
|
10
10
|
* - Adapter-specific fields (region, version, numNodes, size, …)
|
|
11
|
-
* live under `config
|
|
11
|
+
* live under `config`, keyed by a non-empty `adapter` discriminator.
|
|
12
|
+
* Each adapter package defines and parses its own concrete schema
|
|
13
|
+
* (DigitalOcean managed Redis/Valkey and DOKS Redis configs live in
|
|
14
|
+
* `@vibesdotdev/integrations-digitalocean`; Cloudflare KV's in
|
|
15
|
+
* `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
|
|
16
|
+
* so a config for any adapter — including one contributed by a user
|
|
17
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
12
18
|
*/
|
|
13
19
|
import * as z from 'zod/v4';
|
|
14
|
-
import type {
|
|
15
|
-
import type {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
size: z.ZodOptional<z.ZodString>;
|
|
27
|
-
}, z.core.$strip>;
|
|
28
|
-
export declare const CloudflareKVCacheConfigSchema: z.ZodObject<{
|
|
29
|
-
namespace: z.ZodString;
|
|
30
|
-
}, z.core.$strip>;
|
|
31
|
-
export declare const DOKSRedisCacheConfigSchema: z.ZodObject<{
|
|
32
|
-
namespace: z.ZodDefault<z.ZodString>;
|
|
33
|
-
image: z.ZodOptional<z.ZodString>;
|
|
34
|
-
version: z.ZodDefault<z.ZodString>;
|
|
35
|
-
maxMemory: z.ZodOptional<z.ZodString>;
|
|
36
|
-
eviction: z.ZodOptional<z.ZodEnum<{
|
|
37
|
-
lru: "lru";
|
|
38
|
-
lfu: "lfu";
|
|
39
|
-
ttl: "ttl";
|
|
40
|
-
}>>;
|
|
41
|
-
storageSize: z.ZodDefault<z.ZodString>;
|
|
42
|
-
}, z.core.$strip>;
|
|
43
|
-
export declare const CacheConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
44
|
-
maxMemory: z.ZodOptional<z.ZodString>;
|
|
45
|
-
eviction: z.ZodOptional<z.ZodEnum<{
|
|
46
|
-
lru: "lru";
|
|
47
|
-
lfu: "lfu";
|
|
48
|
-
ttl: "ttl";
|
|
49
|
-
}>>;
|
|
50
|
-
region: z.ZodDefault<z.ZodString>;
|
|
51
|
-
version: z.ZodDefault<z.ZodString>;
|
|
52
|
-
numNodes: z.ZodDefault<z.ZodNumber>;
|
|
53
|
-
size: z.ZodOptional<z.ZodString>;
|
|
54
|
-
adapter: z.ZodLiteral<"do-managed-redis">;
|
|
55
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
56
|
-
namespace: z.ZodString;
|
|
57
|
-
adapter: z.ZodLiteral<"cloudflare-kv">;
|
|
58
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
59
|
-
namespace: z.ZodDefault<z.ZodString>;
|
|
60
|
-
image: z.ZodOptional<z.ZodString>;
|
|
61
|
-
version: z.ZodDefault<z.ZodString>;
|
|
62
|
-
maxMemory: z.ZodOptional<z.ZodString>;
|
|
63
|
-
eviction: z.ZodOptional<z.ZodEnum<{
|
|
64
|
-
lru: "lru";
|
|
65
|
-
lfu: "lfu";
|
|
66
|
-
ttl: "ttl";
|
|
67
|
-
}>>;
|
|
68
|
-
storageSize: z.ZodDefault<z.ZodString>;
|
|
69
|
-
adapter: z.ZodLiteral<"doks-redis">;
|
|
70
|
-
}, z.core.$strip>]>;
|
|
20
|
+
import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
21
|
+
import type { CacheByteStore } from './cache-byte-store.ts';
|
|
22
|
+
/**
|
|
23
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
24
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
25
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
26
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
27
|
+
*/
|
|
28
|
+
export declare const CacheConfigSchema: z.ZodObject<{
|
|
29
|
+
adapter: z.ZodString;
|
|
30
|
+
}, z.core.$loose>;
|
|
31
|
+
export type CacheConfig = z.infer<typeof CacheConfigSchema>;
|
|
71
32
|
export declare const CacheDescriptorSchema: z.ZodObject<{
|
|
72
33
|
id: z.ZodString;
|
|
73
34
|
name: z.ZodOptional<z.ZodString>;
|
|
@@ -76,53 +37,36 @@ export declare const CacheDescriptorSchema: z.ZodObject<{
|
|
|
76
37
|
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
77
38
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
78
39
|
priority: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
capabilityId: z.ZodOptional<z.ZodString>;
|
|
79
41
|
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
80
42
|
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
43
|
+
retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
44
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
cascadeFrom: z.ZodOptional<z.ZodString>;
|
|
48
|
+
ageField: z.ZodOptional<z.ZodString>;
|
|
49
|
+
reason: z.ZodString;
|
|
50
|
+
enforcedBy: z.ZodOptional<z.ZodString>;
|
|
51
|
+
}, z.core.$strip>]>>;
|
|
81
52
|
kind: z.ZodLiteral<"infra/cache">;
|
|
82
53
|
engine: z.ZodOptional<z.ZodString>;
|
|
83
54
|
maxMemory: z.ZodOptional<z.ZodString>;
|
|
84
55
|
eviction: z.ZodOptional<z.ZodEnum<{
|
|
56
|
+
ttl: "ttl";
|
|
85
57
|
lru: "lru";
|
|
86
58
|
lfu: "lfu";
|
|
87
|
-
ttl: "ttl";
|
|
88
59
|
}>>;
|
|
89
60
|
namespace: z.ZodOptional<z.ZodString>;
|
|
90
|
-
config: z.ZodOptional<z.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
lru: "lru";
|
|
94
|
-
lfu: "lfu";
|
|
95
|
-
ttl: "ttl";
|
|
96
|
-
}>>;
|
|
97
|
-
region: z.ZodDefault<z.ZodString>;
|
|
98
|
-
version: z.ZodDefault<z.ZodString>;
|
|
99
|
-
numNodes: z.ZodDefault<z.ZodNumber>;
|
|
100
|
-
size: z.ZodOptional<z.ZodString>;
|
|
101
|
-
adapter: z.ZodLiteral<"do-managed-redis">;
|
|
102
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
103
|
-
namespace: z.ZodString;
|
|
104
|
-
adapter: z.ZodLiteral<"cloudflare-kv">;
|
|
105
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
106
|
-
namespace: z.ZodDefault<z.ZodString>;
|
|
107
|
-
image: z.ZodOptional<z.ZodString>;
|
|
108
|
-
version: z.ZodDefault<z.ZodString>;
|
|
109
|
-
maxMemory: z.ZodOptional<z.ZodString>;
|
|
110
|
-
eviction: z.ZodOptional<z.ZodEnum<{
|
|
111
|
-
lru: "lru";
|
|
112
|
-
lfu: "lfu";
|
|
113
|
-
ttl: "ttl";
|
|
114
|
-
}>>;
|
|
115
|
-
storageSize: z.ZodDefault<z.ZodString>;
|
|
116
|
-
adapter: z.ZodLiteral<"doks-redis">;
|
|
117
|
-
}, z.core.$strip>]>>;
|
|
61
|
+
config: z.ZodOptional<z.ZodObject<{
|
|
62
|
+
adapter: z.ZodString;
|
|
63
|
+
}, z.core.$loose>>;
|
|
118
64
|
}, z.core.$strip>;
|
|
119
65
|
export type CacheDescriptor = z.infer<typeof CacheDescriptorSchema>;
|
|
120
|
-
|
|
66
|
+
/** The kind's implementation contract: descriptor/config plus content-addressed bytes. */
|
|
67
|
+
export interface CacheImplementation extends CacheByteStore {
|
|
121
68
|
readonly descriptor: RuntimeDescriptor;
|
|
122
|
-
readonly
|
|
123
|
-
constructor(descriptor: RuntimeDescriptor, context: unknown);
|
|
124
|
-
get config(): CacheDescriptor;
|
|
69
|
+
readonly config: CacheDescriptor;
|
|
125
70
|
}
|
|
126
|
-
export declare const cacheKind: RuntimeKindDescriptorRecord<
|
|
127
|
-
export {};
|
|
71
|
+
export declare const cacheKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<CacheImplementation>;
|
|
128
72
|
//# sourceMappingURL=cache.kind.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cache.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAIhF,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkB5E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,0FAA0F;AAC1F,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CACjC;AAiCD,eAAO,MAAM,SAAS,gFAKpB,CAAC"}
|
package/dist/kinds/cache.kind.js
CHANGED
|
@@ -3,20 +3,28 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Describes a cache service.
|
|
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 cache shape (engine, maxMemory, eviction, namespace).
|
|
10
10
|
* - Adapter-specific fields (region, version, numNodes, size, …)
|
|
11
|
-
* live under `config
|
|
11
|
+
* live under `config`, keyed by a non-empty `adapter` discriminator.
|
|
12
|
+
* Each adapter package defines and parses its own concrete schema
|
|
13
|
+
* (DigitalOcean managed Redis/Valkey and DOKS Redis configs live in
|
|
14
|
+
* `@vibesdotdev/integrations-digitalocean`; Cloudflare KV's in
|
|
15
|
+
* `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
|
|
16
|
+
* so a config for any adapter — including one contributed by a user
|
|
17
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
12
18
|
*/
|
|
13
19
|
import * as z from 'zod/v4';
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
20
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
21
|
+
import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
|
|
22
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
23
|
+
import { readKindDescriptor } from "./read-descriptor.js";
|
|
24
|
+
import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
|
|
17
25
|
const CacheBaseSchema = RuntimeDescriptorSchema.extend({
|
|
18
26
|
kind: z.literal('infra/cache'),
|
|
19
|
-
/** Cache engine (e.g., '
|
|
27
|
+
/** Cache engine (e.g., 'redis'). */
|
|
20
28
|
engine: z.string().min(1).optional(),
|
|
21
29
|
/** Maximum memory hint. */
|
|
22
30
|
maxMemory: z.string().optional(),
|
|
@@ -25,66 +33,47 @@ const CacheBaseSchema = RuntimeDescriptorSchema.extend({
|
|
|
25
33
|
/** Logical namespace within the cache. */
|
|
26
34
|
namespace: z.string().optional()
|
|
27
35
|
});
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
version: z.string().min(1).default('7'),
|
|
37
|
-
/** Number of nodes (default: 1). */
|
|
38
|
-
numNodes: z.number().int().positive().default(1),
|
|
39
|
-
/** Database size tier (optional, derived from maxMemory if not set). */
|
|
40
|
-
size: z.string().min(1).optional()
|
|
41
|
-
});
|
|
42
|
-
export const CloudflareKVCacheConfigSchema = z.object({
|
|
43
|
-
/** Logical namespace within the KV store. */
|
|
44
|
-
namespace: z.string().min(1)
|
|
45
|
-
});
|
|
46
|
-
export const DOKSRedisCacheConfigSchema = z.object({
|
|
47
|
-
/** Kubernetes namespace (default: vibes). */
|
|
48
|
-
namespace: z.string().min(1).default('vibes'),
|
|
49
|
-
/** Container image (default: redis:{version}). */
|
|
50
|
-
image: z.string().min(1).optional(),
|
|
51
|
-
/** Redis version (default: 7). */
|
|
52
|
-
version: z.string().min(1).default('7'),
|
|
53
|
-
/** Max memory allocation (e.g., '256mb'). */
|
|
54
|
-
maxMemory: z.string().optional(),
|
|
55
|
-
/** Eviction policy: lru, lfu, or ttl. */
|
|
56
|
-
eviction: z.enum(['lru', 'lfu', 'ttl']).optional(),
|
|
57
|
-
/** Storage size (default: 1Gi). */
|
|
58
|
-
storageSize: z.string().min(1).default('1Gi')
|
|
36
|
+
/**
|
|
37
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
38
|
+
* adapter package defines and parses its own config schema; this kind names
|
|
39
|
+
* no provider, so a config for any adapter — including one contributed by a
|
|
40
|
+
* user plugin — parses here, and the adapter validates its own grammar.
|
|
41
|
+
*/
|
|
42
|
+
export const CacheConfigSchema = z.looseObject({
|
|
43
|
+
adapter: z.string().min(1)
|
|
59
44
|
});
|
|
60
|
-
export const CacheConfigSchema = z.union([
|
|
61
|
-
DOManagedRedisConfigSchema.extend({ adapter: z.literal('do-managed-redis') }),
|
|
62
|
-
CloudflareKVCacheConfigSchema.extend({ adapter: z.literal('cloudflare-kv') }),
|
|
63
|
-
DOKSRedisCacheConfigSchema.extend({ adapter: z.literal('doks-redis') })
|
|
64
|
-
]);
|
|
65
45
|
export const CacheDescriptorSchema = CacheBaseSchema.extend({
|
|
66
|
-
/**
|
|
67
|
-
* Adapter-specific configuration. Discriminated union — each adapter
|
|
68
|
-
* package defines its own config schema under its discriminator key.
|
|
69
|
-
*/
|
|
46
|
+
/** Adapter-specific configuration, parsed by the adapter that owns it. */
|
|
70
47
|
config: CacheConfigSchema.optional()
|
|
71
48
|
});
|
|
72
49
|
class DefaultCacheImplementation {
|
|
73
50
|
descriptor;
|
|
74
51
|
context;
|
|
52
|
+
/** The descriptor as this kind's schema reads it. */
|
|
53
|
+
config;
|
|
75
54
|
constructor(descriptor, context) {
|
|
76
55
|
this.descriptor = descriptor;
|
|
77
56
|
this.context = context;
|
|
57
|
+
this.config = readKindDescriptor(CacheDescriptorSchema, descriptor);
|
|
58
|
+
}
|
|
59
|
+
unavailable() {
|
|
60
|
+
return new CapabilityError(`Cache '${this.descriptor.id}' does not provide the CI byte-store capability.`, 'UNAVAILABLE', {
|
|
61
|
+
reason: 'cache-byte-store-unavailable',
|
|
62
|
+
retryable: false,
|
|
63
|
+
details: { id: this.descriptor.id }
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
async get(_key) {
|
|
67
|
+
throw this.unavailable();
|
|
78
68
|
}
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
async put(_key, _bytes) {
|
|
70
|
+
throw this.unavailable();
|
|
81
71
|
}
|
|
82
72
|
}
|
|
83
73
|
export const cacheKind = createRuntimeKind({
|
|
84
74
|
id: 'infra/cache',
|
|
85
75
|
descriptorSchema: CacheDescriptorSchema,
|
|
86
76
|
defaultImplementation: DefaultCacheImplementation,
|
|
87
|
-
|
|
88
|
-
extractStem
|
|
77
|
+
discoveryPatterns: INFRA_DISCOVERY_PATTERNS
|
|
89
78
|
});
|
|
90
79
|
//# sourceMappingURL=cache.kind.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.kind.js","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cache.kind.js","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,MAAM,eAAe,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAE9B,oCAAoC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEpC,2BAA2B;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhC,uBAAuB;IACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAElD,0CAA0C;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IAC3D,0EAA0E;IAC1E,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAUH,MAAM,0BAA0B;IAId;IACA;IAJjB,qDAAqD;IAC5C,MAAM,CAAkB;IACjC,YACiB,UAA6B,EAC7B,OAAoB;QADpB,eAAU,GAAV,UAAU,CAAmB;QAC7B,YAAO,GAAP,OAAO,CAAa;QAEpC,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAEO,WAAW;QAClB,OAAO,IAAI,eAAe,CACzB,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,kDAAkD,EAC9E,aAAa,EACb;YACC,MAAM,EAAE,8BAA8B;YACtC,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;SACnC,CACD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,MAAkB;QACzC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAuC;IAChF,EAAE,EAAE,aAAa;IACjB,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,iBAAiB,EAAE,wBAAwB;CAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/cluster
|
|
3
|
+
*
|
|
4
|
+
* Provider-neutral Kubernetes cluster descriptor. The base captures the
|
|
5
|
+
* cross-provider shape (region, version, HA, maintenance, observability,
|
|
6
|
+
* SSO, control-plane firewall, gateway API, routing agent). Adapter-specific
|
|
7
|
+
* fields live under `config`.
|
|
8
|
+
*/
|
|
9
|
+
import * as z from 'zod/v4';
|
|
10
|
+
import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
11
|
+
import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
|
|
12
|
+
/**
|
|
13
|
+
* Inline credential reference schema. Mirrors the public Integrations core
|
|
14
|
+
* credential contract without importing a provider implementation.
|
|
15
|
+
* `CredentialReferenceSchema` to avoid a cross-package dependency from
|
|
16
|
+
* `infra-core` to `connector-base`. Connector packages can still resolve
|
|
17
|
+
* these references through the canonical resolver.
|
|
18
|
+
*/
|
|
19
|
+
declare const CredentialReferenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
20
|
+
source: z.ZodLiteral<"secret">;
|
|
21
|
+
key: z.ZodString;
|
|
22
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
23
|
+
store: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
25
|
+
source: z.ZodLiteral<"env">;
|
|
26
|
+
key: z.ZodString;
|
|
27
|
+
}, z.core.$strip>], "source">;
|
|
28
|
+
export type ClusterCredentialReference = z.infer<typeof CredentialReferenceSchema>;
|
|
29
|
+
export declare const ClusterMaintenancePolicySchema: z.ZodObject<{
|
|
30
|
+
day: z.ZodString;
|
|
31
|
+
startTime: z.ZodString;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type ClusterMaintenancePolicy = z.infer<typeof ClusterMaintenancePolicySchema>;
|
|
34
|
+
export declare const ClusterControlPlaneFirewallSchema: z.ZodObject<{
|
|
35
|
+
enabled: z.ZodBoolean;
|
|
36
|
+
allowedAddresses: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
}, z.core.$strip>;
|
|
38
|
+
export type ClusterControlPlaneFirewall = z.infer<typeof ClusterControlPlaneFirewallSchema>;
|
|
39
|
+
export declare const ClusterSsoSchema: z.ZodObject<{
|
|
40
|
+
enabled: z.ZodBoolean;
|
|
41
|
+
issuerUrl: z.ZodString;
|
|
42
|
+
clientIdSecretRef: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
43
|
+
source: z.ZodLiteral<"secret">;
|
|
44
|
+
key: z.ZodString;
|
|
45
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
46
|
+
store: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
48
|
+
source: z.ZodLiteral<"env">;
|
|
49
|
+
key: z.ZodString;
|
|
50
|
+
}, z.core.$strip>], "source">;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
export type ClusterSso = z.infer<typeof ClusterSsoSchema>;
|
|
53
|
+
export declare const ClusterObservabilitySchema: z.ZodObject<{
|
|
54
|
+
metrics: z.ZodDefault<z.ZodBoolean>;
|
|
55
|
+
logs: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
+
hubble: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
+
}, z.core.$strip>;
|
|
58
|
+
export type ClusterObservability = z.infer<typeof ClusterObservabilitySchema>;
|
|
59
|
+
export declare const ClusterVpcRefSchema: z.ZodObject<{
|
|
60
|
+
uuid: z.ZodOptional<z.ZodString>;
|
|
61
|
+
name: z.ZodOptional<z.ZodString>;
|
|
62
|
+
ipRange: z.ZodOptional<z.ZodString>;
|
|
63
|
+
}, z.core.$strip>;
|
|
64
|
+
export type ClusterVpcRef = z.infer<typeof ClusterVpcRefSchema>;
|
|
65
|
+
/**
|
|
66
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
67
|
+
* adapter package defines and parses its own config schema (DigitalOcean's
|
|
68
|
+
* Kubernetes cluster config lives in
|
|
69
|
+
* `@vibesdotdev/integrations-digitalocean`); this kind names no provider,
|
|
70
|
+
* so a config for any adapter — including one contributed by a user
|
|
71
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
72
|
+
*/
|
|
73
|
+
export declare const ClusterConfigSchema: z.ZodObject<{
|
|
74
|
+
adapter: z.ZodString;
|
|
75
|
+
}, z.core.$loose>;
|
|
76
|
+
export type ClusterConfig = z.infer<typeof ClusterConfigSchema>;
|
|
77
|
+
export declare const ClusterDescriptorSchema: z.ZodObject<{
|
|
78
|
+
id: z.ZodString;
|
|
79
|
+
name: z.ZodOptional<z.ZodString>;
|
|
80
|
+
description: z.ZodOptional<z.ZodString>;
|
|
81
|
+
hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
82
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
83
|
+
priority: z.ZodOptional<z.ZodNumber>;
|
|
84
|
+
capabilityId: z.ZodOptional<z.ZodString>;
|
|
85
|
+
requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
86
|
+
optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
87
|
+
retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
88
|
+
maxAgeDays: z.ZodOptional<z.ZodNumber>;
|
|
89
|
+
maxEntries: z.ZodOptional<z.ZodNumber>;
|
|
90
|
+
maxBytes: z.ZodOptional<z.ZodNumber>;
|
|
91
|
+
cascadeFrom: z.ZodOptional<z.ZodString>;
|
|
92
|
+
ageField: z.ZodOptional<z.ZodString>;
|
|
93
|
+
reason: z.ZodString;
|
|
94
|
+
enforcedBy: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, z.core.$strip>]>>;
|
|
96
|
+
kind: z.ZodLiteral<"infra/cluster">;
|
|
97
|
+
version: z.ZodOptional<z.ZodString>;
|
|
98
|
+
region: z.ZodOptional<z.ZodString>;
|
|
99
|
+
ha: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
autoUpgrade: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
+
surgeUpgrade: z.ZodOptional<z.ZodBoolean>;
|
|
102
|
+
maintenancePolicy: z.ZodOptional<z.ZodObject<{
|
|
103
|
+
day: z.ZodString;
|
|
104
|
+
startTime: z.ZodString;
|
|
105
|
+
}, z.core.$strip>>;
|
|
106
|
+
controlPlaneFirewall: z.ZodOptional<z.ZodObject<{
|
|
107
|
+
enabled: z.ZodBoolean;
|
|
108
|
+
allowedAddresses: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
sso: z.ZodOptional<z.ZodObject<{
|
|
111
|
+
enabled: z.ZodBoolean;
|
|
112
|
+
issuerUrl: z.ZodString;
|
|
113
|
+
clientIdSecretRef: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
114
|
+
source: z.ZodLiteral<"secret">;
|
|
115
|
+
key: z.ZodString;
|
|
116
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
117
|
+
store: z.ZodOptional<z.ZodString>;
|
|
118
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
119
|
+
source: z.ZodLiteral<"env">;
|
|
120
|
+
key: z.ZodString;
|
|
121
|
+
}, z.core.$strip>], "source">;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
vpc: z.ZodOptional<z.ZodObject<{
|
|
124
|
+
uuid: z.ZodOptional<z.ZodString>;
|
|
125
|
+
name: z.ZodOptional<z.ZodString>;
|
|
126
|
+
ipRange: z.ZodOptional<z.ZodString>;
|
|
127
|
+
}, z.core.$strip>>;
|
|
128
|
+
gatewayApi: z.ZodOptional<z.ZodObject<{
|
|
129
|
+
enabled: z.ZodBoolean;
|
|
130
|
+
}, z.core.$strip>>;
|
|
131
|
+
routingAgent: z.ZodOptional<z.ZodObject<{
|
|
132
|
+
enabled: z.ZodBoolean;
|
|
133
|
+
}, z.core.$strip>>;
|
|
134
|
+
observability: z.ZodOptional<z.ZodObject<{
|
|
135
|
+
metrics: z.ZodDefault<z.ZodBoolean>;
|
|
136
|
+
logs: z.ZodDefault<z.ZodBoolean>;
|
|
137
|
+
hubble: z.ZodOptional<z.ZodBoolean>;
|
|
138
|
+
}, z.core.$strip>>;
|
|
139
|
+
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
140
|
+
config: z.ZodOptional<z.ZodObject<{
|
|
141
|
+
adapter: z.ZodString;
|
|
142
|
+
}, z.core.$loose>>;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
export type ClusterDescriptor = z.infer<typeof ClusterDescriptorSchema>;
|
|
145
|
+
declare class DefaultClusterImplementation {
|
|
146
|
+
readonly descriptor: RuntimeDescriptor;
|
|
147
|
+
readonly context: KindContext;
|
|
148
|
+
/** The descriptor as this kind's schema reads it. */
|
|
149
|
+
readonly config: ClusterDescriptor;
|
|
150
|
+
constructor(descriptor: RuntimeDescriptor, context: KindContext);
|
|
151
|
+
}
|
|
152
|
+
export declare const clusterKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultClusterImplementation>;
|
|
153
|
+
export {};
|
|
154
|
+
//# sourceMappingURL=cluster.kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cluster.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB;;;;;;;;6BAG7B,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEnF,eAAO,MAAM,8BAA8B;;;iBAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAqBhE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,cAAM,4BAA4B;aAIhB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAElB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,WAAW,yFAKtB,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kind: infra/cluster
|
|
3
|
+
*
|
|
4
|
+
* Provider-neutral Kubernetes cluster descriptor. The base captures the
|
|
5
|
+
* cross-provider shape (region, version, HA, maintenance, observability,
|
|
6
|
+
* SSO, control-plane firewall, gateway API, routing agent). Adapter-specific
|
|
7
|
+
* fields live under `config`.
|
|
8
|
+
*/
|
|
9
|
+
import * as z from 'zod/v4';
|
|
10
|
+
import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
|
|
11
|
+
import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
|
|
12
|
+
import { readKindDescriptor } from "./read-descriptor.js";
|
|
13
|
+
import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
|
|
14
|
+
/**
|
|
15
|
+
* Inline credential reference schema. Mirrors the public Integrations core
|
|
16
|
+
* credential contract without importing a provider implementation.
|
|
17
|
+
* `CredentialReferenceSchema` to avoid a cross-package dependency from
|
|
18
|
+
* `infra-core` to `connector-base`. Connector packages can still resolve
|
|
19
|
+
* these references through the canonical resolver.
|
|
20
|
+
*/
|
|
21
|
+
const CredentialReferenceSchema = z.discriminatedUnion('source', [
|
|
22
|
+
z.object({ source: z.literal('secret'), key: z.string(), scope: z.string().optional(), store: z.string().optional() }),
|
|
23
|
+
z.object({ source: z.literal('env'), key: z.string() })
|
|
24
|
+
]);
|
|
25
|
+
export const ClusterMaintenancePolicySchema = z.object({
|
|
26
|
+
/** Day of week (any|monday|...|sunday). */
|
|
27
|
+
day: z.string().min(1),
|
|
28
|
+
/** UTC start time, HH:MM. */
|
|
29
|
+
startTime: z.string().regex(/^\d{2}:\d{2}$/)
|
|
30
|
+
});
|
|
31
|
+
export const ClusterControlPlaneFirewallSchema = z.object({
|
|
32
|
+
enabled: z.boolean(),
|
|
33
|
+
allowedAddresses: z.array(z.string()).default([])
|
|
34
|
+
});
|
|
35
|
+
export const ClusterSsoSchema = z.object({
|
|
36
|
+
enabled: z.boolean(),
|
|
37
|
+
issuerUrl: z.string().url(),
|
|
38
|
+
clientIdSecretRef: CredentialReferenceSchema
|
|
39
|
+
});
|
|
40
|
+
export const ClusterObservabilitySchema = z.object({
|
|
41
|
+
metrics: z.boolean().default(false),
|
|
42
|
+
logs: z.boolean().default(false),
|
|
43
|
+
hubble: z.boolean().optional()
|
|
44
|
+
});
|
|
45
|
+
export const ClusterVpcRefSchema = z.object({
|
|
46
|
+
uuid: z.string().optional(),
|
|
47
|
+
name: z.string().optional(),
|
|
48
|
+
ipRange: z.string().optional()
|
|
49
|
+
});
|
|
50
|
+
const ClusterBaseSchema = RuntimeDescriptorSchema.extend({
|
|
51
|
+
kind: z.literal('infra/cluster'),
|
|
52
|
+
/** Kubernetes version slug (provider-specific). */
|
|
53
|
+
version: z.string().min(1).optional(),
|
|
54
|
+
/** Region slug. */
|
|
55
|
+
region: z.string().min(1).optional(),
|
|
56
|
+
ha: z.boolean().optional(),
|
|
57
|
+
autoUpgrade: z.boolean().optional(),
|
|
58
|
+
surgeUpgrade: z.boolean().optional(),
|
|
59
|
+
maintenancePolicy: ClusterMaintenancePolicySchema.optional(),
|
|
60
|
+
controlPlaneFirewall: ClusterControlPlaneFirewallSchema.optional(),
|
|
61
|
+
sso: ClusterSsoSchema.optional(),
|
|
62
|
+
vpc: ClusterVpcRefSchema.optional(),
|
|
63
|
+
gatewayApi: z.object({ enabled: z.boolean() }).optional(),
|
|
64
|
+
routingAgent: z.object({ enabled: z.boolean() }).optional(),
|
|
65
|
+
observability: ClusterObservabilitySchema.optional(),
|
|
66
|
+
tags: z.array(z.string()).optional()
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* Adapter-specific configuration: the adapter id plus its own fields. Each
|
|
70
|
+
* adapter package defines and parses its own config schema (DigitalOcean's
|
|
71
|
+
* Kubernetes cluster config lives in
|
|
72
|
+
* `@vibesdotdev/integrations-digitalocean`); this kind names no provider,
|
|
73
|
+
* so a config for any adapter — including one contributed by a user
|
|
74
|
+
* plugin — parses here, and the adapter validates its own grammar.
|
|
75
|
+
*/
|
|
76
|
+
export const ClusterConfigSchema = z.looseObject({
|
|
77
|
+
adapter: z.string().min(1)
|
|
78
|
+
});
|
|
79
|
+
export const ClusterDescriptorSchema = ClusterBaseSchema.extend({
|
|
80
|
+
config: ClusterConfigSchema.optional()
|
|
81
|
+
});
|
|
82
|
+
class DefaultClusterImplementation {
|
|
83
|
+
descriptor;
|
|
84
|
+
context;
|
|
85
|
+
/** The descriptor as this kind's schema reads it. */
|
|
86
|
+
config;
|
|
87
|
+
constructor(descriptor, context) {
|
|
88
|
+
this.descriptor = descriptor;
|
|
89
|
+
this.context = context;
|
|
90
|
+
this.config = readKindDescriptor(ClusterDescriptorSchema, descriptor);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export const clusterKind = createRuntimeKind({
|
|
94
|
+
id: 'infra/cluster',
|
|
95
|
+
descriptorSchema: ClusterDescriptorSchema,
|
|
96
|
+
defaultImplementation: DefaultClusterImplementation,
|
|
97
|
+
discoveryPatterns: INFRA_DISCOVERY_PATTERNS
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=cluster.kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster.kind.js","sourceRoot":"","sources":["../../src/kinds/cluster.kind.ts"],"names":[],"mappings":"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"}
|