@vibesdotdev/integrations-digitalocean 0.0.0-stage → 1.0.0-rc.2
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 +126 -0
- package/README.md +78 -2
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +4 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/inference.transport.impl.d.ts +5 -0
- package/dist/ai/inference.transport.impl.d.ts.map +1 -0
- package/dist/ai/inference.transport.impl.js +54 -0
- package/dist/ai/inference.transport.impl.js.map +1 -0
- package/dist/ai/provider.plugin.d.ts +6 -0
- package/dist/ai/provider.plugin.d.ts.map +1 -0
- package/dist/ai/provider.plugin.js +126 -0
- package/dist/ai/provider.plugin.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.d.ts +62 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.js +73 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/config/schemas/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/index.d.ts +2 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/index.js +2 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.d.ts +183 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.js +66 -0
- package/dist/ai/providers/cloud/frontier/digitalocean/provider.digitalocean.descriptor.js.map +1 -0
- package/dist/apps/api-client.d.ts +45 -0
- package/dist/apps/api-client.d.ts.map +1 -0
- package/dist/apps/api-client.js +47 -0
- package/dist/apps/api-client.js.map +1 -0
- package/dist/apps/build-spec.d.ts +44 -0
- package/dist/apps/build-spec.d.ts.map +1 -0
- package/dist/apps/build-spec.js +463 -0
- package/dist/apps/build-spec.js.map +1 -0
- package/dist/apps/deploy-client.d.ts +42 -0
- package/dist/apps/deploy-client.d.ts.map +1 -0
- package/dist/apps/deploy-client.js +300 -0
- package/dist/apps/deploy-client.js.map +1 -0
- package/dist/apps/index.d.ts +5 -0
- package/dist/apps/index.d.ts.map +1 -0
- package/dist/apps/index.js +4 -0
- package/dist/apps/index.js.map +1 -0
- package/dist/apps/types.d.ts +204 -0
- package/dist/apps/types.d.ts.map +1 -0
- package/dist/apps/types.js +13 -0
- package/dist/apps/types.js.map +1 -0
- package/dist/client/control-plane.d.ts +49 -0
- package/dist/client/control-plane.d.ts.map +1 -0
- package/dist/client/control-plane.js +85 -0
- package/dist/client/control-plane.js.map +1 -0
- package/dist/client/do-fetch.d.ts +41 -0
- package/dist/client/do-fetch.d.ts.map +1 -0
- package/dist/client/do-fetch.js +199 -0
- package/dist/client/do-fetch.js.map +1 -0
- package/dist/client/errors.d.ts +6 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +34 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/factory.d.ts +53 -0
- package/dist/client/factory.d.ts.map +1 -0
- package/dist/client/factory.js +220 -0
- package/dist/client/factory.js.map +1 -0
- package/dist/client/helpers.d.ts +5 -0
- package/dist/client/helpers.d.ts.map +1 -0
- package/dist/client/helpers.js +8 -0
- package/dist/client/helpers.js.map +1 -0
- package/dist/client/index.d.ts +12 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +10 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/paginated.d.ts +19 -0
- package/dist/client/paginated.d.ts.map +1 -0
- package/dist/client/paginated.js +56 -0
- package/dist/client/paginated.js.map +1 -0
- package/dist/client/retry.d.ts +34 -0
- package/dist/client/retry.d.ts.map +1 -0
- package/dist/client/retry.js +53 -0
- package/dist/client/retry.js.map +1 -0
- package/dist/config/digitalocean.config.descriptor.d.ts +197 -0
- package/dist/config/digitalocean.config.descriptor.d.ts.map +1 -0
- package/dist/config/digitalocean.config.descriptor.js +59 -0
- package/dist/config/digitalocean.config.descriptor.js.map +1 -0
- package/dist/credentials/index.d.ts +38 -0
- package/dist/credentials/index.d.ts.map +1 -0
- package/dist/credentials/index.js +56 -0
- package/dist/credentials/index.js.map +1 -0
- package/dist/databases/index.d.ts +82 -0
- package/dist/databases/index.d.ts.map +1 -0
- package/dist/databases/index.js +57 -0
- package/dist/databases/index.js.map +1 -0
- package/dist/digitalocean-friction.policy.d.ts +29 -0
- package/dist/digitalocean-friction.policy.d.ts.map +1 -0
- package/dist/digitalocean-friction.policy.js +21 -0
- package/dist/digitalocean-friction.policy.js.map +1 -0
- package/dist/digitalocean.plugin.d.ts +3 -0
- package/dist/digitalocean.plugin.d.ts.map +1 -0
- package/dist/digitalocean.plugin.js +27 -0
- package/dist/digitalocean.plugin.js.map +1 -0
- package/dist/droplets/index.d.ts +106 -0
- package/dist/droplets/index.d.ts.map +1 -0
- package/dist/droplets/index.js +227 -0
- package/dist/droplets/index.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/inference-control-plane/index.d.ts +63 -0
- package/dist/inference-control-plane/index.d.ts.map +1 -0
- package/dist/inference-control-plane/index.js +93 -0
- package/dist/inference-control-plane/index.js.map +1 -0
- package/dist/infra/billing.d.ts +26 -0
- package/dist/infra/billing.d.ts.map +1 -0
- package/dist/infra/billing.js +43 -0
- package/dist/infra/billing.js.map +1 -0
- package/dist/infra/credentials.d.ts +11 -0
- package/dist/infra/credentials.d.ts.map +1 -0
- package/dist/infra/credentials.js +15 -0
- package/dist/infra/credentials.js.map +1 -0
- package/dist/infra/deployment-provider/deploy-secrets.d.ts +10 -0
- package/dist/infra/deployment-provider/deploy-secrets.d.ts.map +1 -0
- package/dist/infra/deployment-provider/deploy-secrets.js +66 -0
- package/dist/infra/deployment-provider/deploy-secrets.js.map +1 -0
- package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.d.ts +97 -0
- package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.d.ts.map +1 -0
- package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.js +242 -0
- package/dist/infra/deployment-provider/digitalocean-deployment-provider.impl.js.map +1 -0
- package/dist/infra/deployment-provider/image-publish.d.ts +39 -0
- package/dist/infra/deployment-provider/image-publish.d.ts.map +1 -0
- package/dist/infra/deployment-provider/image-publish.js +146 -0
- package/dist/infra/deployment-provider/image-publish.js.map +1 -0
- package/dist/infra/deployment-provider.descriptor.d.ts +34 -0
- package/dist/infra/deployment-provider.descriptor.d.ts.map +1 -0
- package/dist/infra/deployment-provider.descriptor.js +9 -0
- package/dist/infra/deployment-provider.descriptor.js.map +1 -0
- package/dist/infra/digitalocean-infra.plugin.d.ts +101 -0
- package/dist/infra/digitalocean-infra.plugin.d.ts.map +1 -0
- package/dist/infra/digitalocean-infra.plugin.js +283 -0
- package/dist/infra/digitalocean-infra.plugin.js.map +1 -0
- package/dist/infra/doks/clients.d.ts +183 -0
- package/dist/infra/doks/clients.d.ts.map +1 -0
- package/dist/infra/doks/clients.js +172 -0
- package/dist/infra/doks/clients.js.map +1 -0
- package/dist/infra/doks/digitalocean.d.ts +34 -0
- package/dist/infra/doks/digitalocean.d.ts.map +1 -0
- package/dist/infra/doks/digitalocean.js +267 -0
- package/dist/infra/doks/digitalocean.js.map +1 -0
- package/dist/infra/doks/service-release-schemas.d.ts +1037 -0
- package/dist/infra/doks/service-release-schemas.d.ts.map +1 -0
- package/dist/infra/doks/service-release-schemas.js +51 -0
- package/dist/infra/doks/service-release-schemas.js.map +1 -0
- package/dist/infra/doks/service-release.d.ts +415 -0
- package/dist/infra/doks/service-release.d.ts.map +1 -0
- package/dist/infra/doks/service-release.js +3201 -0
- package/dist/infra/doks/service-release.js.map +1 -0
- package/dist/infra/doks/worker.d.ts +14 -0
- package/dist/infra/doks/worker.d.ts.map +1 -0
- package/dist/infra/doks/worker.js +343 -0
- package/dist/infra/doks/worker.js.map +1 -0
- package/dist/infra/droplet.impl.d.ts +172 -0
- package/dist/infra/droplet.impl.d.ts.map +1 -0
- package/dist/infra/droplet.impl.js +379 -0
- package/dist/infra/droplet.impl.js.map +1 -0
- package/dist/infra/functions.impl.d.ts +123 -0
- package/dist/infra/functions.impl.d.ts.map +1 -0
- package/dist/infra/functions.impl.js +202 -0
- package/dist/infra/functions.impl.js.map +1 -0
- package/dist/infra/index.d.ts +15 -0
- package/dist/infra/index.d.ts.map +1 -0
- package/dist/infra/index.js +12 -0
- package/dist/infra/index.js.map +1 -0
- package/dist/infra/inventory.d.ts +7 -0
- package/dist/infra/inventory.d.ts.map +1 -0
- package/dist/infra/inventory.js +259 -0
- package/dist/infra/inventory.js.map +1 -0
- package/dist/infra/kubernetes-log-stream.d.ts +5 -0
- package/dist/infra/kubernetes-log-stream.d.ts.map +1 -0
- package/dist/infra/kubernetes-log-stream.js +186 -0
- package/dist/infra/kubernetes-log-stream.js.map +1 -0
- package/dist/infra/kubernetes-logs.d.ts +33 -0
- package/dist/infra/kubernetes-logs.d.ts.map +1 -0
- package/dist/infra/kubernetes-logs.descriptor.d.ts +14 -0
- package/dist/infra/kubernetes-logs.descriptor.d.ts.map +1 -0
- package/dist/infra/kubernetes-logs.descriptor.js +28 -0
- package/dist/infra/kubernetes-logs.descriptor.js.map +1 -0
- package/dist/infra/kubernetes-logs.js +196 -0
- package/dist/infra/kubernetes-logs.js.map +1 -0
- package/dist/infra/utilization.d.ts +44 -0
- package/dist/infra/utilization.d.ts.map +1 -0
- package/dist/infra/utilization.js +108 -0
- package/dist/infra/utilization.js.map +1 -0
- package/dist/kubernetes/authority.d.ts +40 -0
- package/dist/kubernetes/authority.d.ts.map +1 -0
- package/dist/kubernetes/authority.js +90 -0
- package/dist/kubernetes/authority.js.map +1 -0
- package/dist/kubernetes/encoding.d.ts +4 -0
- package/dist/kubernetes/encoding.d.ts.map +1 -0
- package/dist/kubernetes/encoding.js +8 -0
- package/dist/kubernetes/encoding.js.map +1 -0
- package/dist/kubernetes/index.d.ts +105 -0
- package/dist/kubernetes/index.d.ts.map +1 -0
- package/dist/kubernetes/index.js +99 -0
- package/dist/kubernetes/index.js.map +1 -0
- package/dist/kubernetes/transport.d.ts +11 -0
- package/dist/kubernetes/transport.d.ts.map +1 -0
- package/dist/kubernetes/transport.js +27 -0
- package/dist/kubernetes/transport.js.map +1 -0
- package/dist/network/index.d.ts +24 -0
- package/dist/network/index.d.ts.map +1 -0
- package/dist/network/index.js +16 -0
- package/dist/network/index.js.map +1 -0
- package/dist/registry/index.d.ts +39 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +20 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/schemas/app-deployment.d.ts +1474 -0
- package/dist/schemas/app-deployment.d.ts.map +1 -0
- package/dist/schemas/app-deployment.js +156 -0
- package/dist/schemas/app-deployment.js.map +1 -0
- package/dist/schemas/app-platform.d.ts +755 -0
- package/dist/schemas/app-platform.d.ts.map +1 -0
- package/dist/schemas/app-platform.js +253 -0
- package/dist/schemas/app-platform.js.map +1 -0
- package/dist/schemas/cache-database.d.ts +210 -0
- package/dist/schemas/cache-database.d.ts.map +1 -0
- package/dist/schemas/cache-database.js +105 -0
- package/dist/schemas/cache-database.js.map +1 -0
- package/dist/schemas/control-plane.d.ts +456 -0
- package/dist/schemas/control-plane.d.ts.map +1 -0
- package/dist/schemas/control-plane.js +123 -0
- package/dist/schemas/control-plane.js.map +1 -0
- package/dist/schemas/credential-use.d.ts +714 -0
- package/dist/schemas/credential-use.d.ts.map +1 -0
- package/dist/schemas/credential-use.js +73 -0
- package/dist/schemas/credential-use.js.map +1 -0
- package/dist/schemas/doks-worker.d.ts +4071 -0
- package/dist/schemas/doks-worker.d.ts.map +1 -0
- package/dist/schemas/doks-worker.js +330 -0
- package/dist/schemas/doks-worker.js.map +1 -0
- package/dist/schemas/droplet.d.ts +110 -0
- package/dist/schemas/droplet.d.ts.map +1 -0
- package/dist/schemas/droplet.js +22 -0
- package/dist/schemas/droplet.js.map +1 -0
- package/dist/schemas/functions.d.ts +22 -0
- package/dist/schemas/functions.d.ts.map +1 -0
- package/dist/schemas/functions.js +25 -0
- package/dist/schemas/functions.js.map +1 -0
- package/dist/schemas/gitea-git-hosting.d.ts +20 -0
- package/dist/schemas/gitea-git-hosting.d.ts.map +1 -0
- package/dist/schemas/gitea-git-hosting.js +26 -0
- package/dist/schemas/gitea-git-hosting.js.map +1 -0
- package/dist/schemas/http.d.ts +2594 -0
- package/dist/schemas/http.d.ts.map +1 -0
- package/dist/schemas/http.js +4548 -0
- package/dist/schemas/http.js.map +1 -0
- package/dist/schemas/infra-kinds.d.ts +113 -0
- package/dist/schemas/infra-kinds.d.ts.map +1 -0
- package/dist/schemas/infra-kinds.js +93 -0
- package/dist/schemas/infra-kinds.js.map +1 -0
- package/dist/schemas/kubernetes-responses.d.ts +457 -0
- package/dist/schemas/kubernetes-responses.d.ts.map +1 -0
- package/dist/schemas/kubernetes-responses.js +681 -0
- package/dist/schemas/kubernetes-responses.js.map +1 -0
- package/dist/schemas/kubernetes.d.ts +143 -0
- package/dist/schemas/kubernetes.d.ts.map +1 -0
- package/dist/schemas/kubernetes.js +68 -0
- package/dist/schemas/kubernetes.js.map +1 -0
- package/dist/schemas/logs.d.ts +15 -0
- package/dist/schemas/logs.d.ts.map +1 -0
- package/dist/schemas/logs.js +11 -0
- package/dist/schemas/logs.js.map +1 -0
- package/dist/schemas/object-storage.d.ts +167 -0
- package/dist/schemas/object-storage.d.ts.map +1 -0
- package/dist/schemas/object-storage.js +124 -0
- package/dist/schemas/object-storage.js.map +1 -0
- package/dist/schemas/service-settings.d.ts +9 -0
- package/dist/schemas/service-settings.d.ts.map +1 -0
- package/dist/schemas/service-settings.js +21 -0
- package/dist/schemas/service-settings.js.map +1 -0
- package/dist/schemas/utilization.d.ts +57 -0
- package/dist/schemas/utilization.d.ts.map +1 -0
- package/dist/schemas/utilization.js +58 -0
- package/dist/schemas/utilization.js.map +1 -0
- package/dist/schemas/worker-status.d.ts +22 -0
- package/dist/schemas/worker-status.d.ts.map +1 -0
- package/dist/schemas/worker-status.js +14 -0
- package/dist/schemas/worker-status.js.map +1 -0
- package/dist/schemas/worker.d.ts +125 -0
- package/dist/schemas/worker.d.ts.map +1 -0
- package/dist/schemas/worker.js +129 -0
- package/dist/schemas/worker.js.map +1 -0
- package/dist/secrets/app-platform/app-credentials.impl.d.ts +14 -0
- package/dist/secrets/app-platform/app-credentials.impl.d.ts.map +1 -0
- package/dist/secrets/app-platform/app-credentials.impl.js +237 -0
- package/dist/secrets/app-platform/app-credentials.impl.js.map +1 -0
- package/dist/secrets/container-registry/image-publish-settings.descriptor.d.ts +11 -0
- package/dist/secrets/container-registry/image-publish-settings.descriptor.d.ts.map +1 -0
- package/dist/secrets/container-registry/image-publish-settings.descriptor.js +26 -0
- package/dist/secrets/container-registry/image-publish-settings.descriptor.js.map +1 -0
- package/dist/secrets/doks-secret.descriptor.d.ts +18 -0
- package/dist/secrets/doks-secret.descriptor.d.ts.map +1 -0
- package/dist/secrets/doks-secret.descriptor.js +35 -0
- package/dist/secrets/doks-secret.descriptor.js.map +1 -0
- package/dist/secrets/doks-secret.impl.d.ts +98 -0
- package/dist/secrets/doks-secret.impl.d.ts.map +1 -0
- package/dist/secrets/doks-secret.impl.js +451 -0
- package/dist/secrets/doks-secret.impl.js.map +1 -0
- package/dist/secrets/index.d.ts +4 -0
- package/dist/secrets/index.d.ts.map +1 -0
- package/dist/secrets/index.js +4 -0
- package/dist/secrets/index.js.map +1 -0
- package/dist/secrets/secrets-backend-doks.plugin.d.ts +3 -0
- package/dist/secrets/secrets-backend-doks.plugin.d.ts.map +1 -0
- package/dist/secrets/secrets-backend-doks.plugin.js +35 -0
- package/dist/secrets/secrets-backend-doks.plugin.js.map +1 -0
- package/dist/storage/index.d.ts +50 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +92 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/spaces-keys.d.ts +25 -0
- package/dist/storage/spaces-keys.d.ts.map +1 -0
- package/dist/storage/spaces-keys.js +32 -0
- package/dist/storage/spaces-keys.js.map +1 -0
- package/package.json +172 -4
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `secrets/store` backed by a Kubernetes Secret on a DOKS cluster.
|
|
3
|
+
*
|
|
4
|
+
* `vault-secrets-operator` was installed on `exemplar-staging` to do exactly
|
|
5
|
+
* this and, measured 2026-09-08, held **zero** CRs across every namespace — a
|
|
6
|
+
* Vault, an injector and an operator running for 383 days, delivering nothing.
|
|
7
|
+
* Meanwhile the two realm federators got their signing keys by hand, and the
|
|
8
|
+
* key the manifests claimed came from `vibes secrets` had never been in the
|
|
9
|
+
* store at all.
|
|
10
|
+
*
|
|
11
|
+
* So the delivery step becomes a backend: `vibes secrets push --backend
|
|
12
|
+
* doks-secret` writes the store's values into a Kubernetes Secret that
|
|
13
|
+
* workloads read with an ordinary `secretKeyRef`. No operator, no second
|
|
14
|
+
* source of truth, no CRD.
|
|
15
|
+
*
|
|
16
|
+
* Values are never logged, returned in an error, or placed in argv. Kubernetes
|
|
17
|
+
* Secrets carry them to workloads; build jobs can read registry credentials from
|
|
18
|
+
* their mounted `.npmrc` or `.bunfig.toml` files.
|
|
19
|
+
*/
|
|
20
|
+
import { decodeBase64Text, encodeBase64Text } from "../kubernetes/encoding.js";
|
|
21
|
+
import { CapabilityError, settle } from '@vibesdotdev/kernel';
|
|
22
|
+
import { BaseRuntimeClient } from '@vibesdotdev/kernel/client';
|
|
23
|
+
import { loadDigitalOceanServiceSettings } from "../config/digitalocean.config.descriptor.js";
|
|
24
|
+
import { DigitalOceanDoksDockerConfigSchema, DigitalOceanDoksSourceCredentialRequestSchema, DigitalOceanDoksWorkerCredentialLeaseSchema, DigitalOceanDoksWorkerSourceOperationAnnotationsSchema, DigitalOceanDoksWorkerPlanSchema } from "../schemas/doks-worker.js";
|
|
25
|
+
import { KubernetesIssuedSchema, KubernetesLeaseSecretSchema } from "../schemas/kubernetes-responses.js";
|
|
26
|
+
import { bindDigitalOceanDoksWorkerCredentialLease } from "../schemas/doks-worker.js";
|
|
27
|
+
import { DoksSecretConfigSchema, KubernetesSecretDataSchema } from "../schemas/kubernetes.js";
|
|
28
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
29
|
+
import { DOKS_SECRET_STORE_ACCESS } from "./doks-secret.descriptor.js";
|
|
30
|
+
import { DigitalOceanKubernetesClient } from "../kubernetes/index.js";
|
|
31
|
+
import { createKubernetesApi } from "../kubernetes/authority.js";
|
|
32
|
+
import { createDigitalOceanProviderControlPlaneClient } from "../infra/credentials.js";
|
|
33
|
+
/** Kubernetes Secret data keys are restricted; a vibes key that cannot be one is a hard error. */
|
|
34
|
+
const SECRET_DATA_KEY_PATTERN = /^[-._a-zA-Z0-9]+$/;
|
|
35
|
+
function assertDataKey(key) {
|
|
36
|
+
if (!SECRET_DATA_KEY_PATTERN.test(key)) {
|
|
37
|
+
throw new Error(`Secret key "${key}" cannot be a Kubernetes Secret data key ` +
|
|
38
|
+
'(allowed: letters, digits, "-", "_", ".").');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function createDoksSecretStore(runtime, descriptor, options) {
|
|
42
|
+
const config = DoksSecretConfigSchema.parse(descriptor.config ?? {});
|
|
43
|
+
const diagnostics = getLogger('digitalocean.doks-secret', runtime);
|
|
44
|
+
const secretName = config.secretName;
|
|
45
|
+
let apiPromise;
|
|
46
|
+
function namespaceFor(environment) {
|
|
47
|
+
const namespace = config[`namespace.${environment}`] ?? config.namespace;
|
|
48
|
+
if (!namespace) {
|
|
49
|
+
throw new Error(`The ${descriptor.id} backend has no namespace for environment "${environment}". ` +
|
|
50
|
+
'Set `config.namespace`, or `config["namespace.' +
|
|
51
|
+
environment +
|
|
52
|
+
'"]`.');
|
|
53
|
+
}
|
|
54
|
+
return namespace;
|
|
55
|
+
}
|
|
56
|
+
async function api(operationContext) {
|
|
57
|
+
if (options?.api)
|
|
58
|
+
return options.api;
|
|
59
|
+
if (!apiPromise) {
|
|
60
|
+
const pending = (async () => {
|
|
61
|
+
const controlPlane = await createDigitalOceanProviderControlPlaneClient(runtime, undefined, operationContext);
|
|
62
|
+
return createKubernetesApi({
|
|
63
|
+
runtime,
|
|
64
|
+
kubernetes: new DigitalOceanKubernetesClient(controlPlane),
|
|
65
|
+
cluster: { id: config.clusterId, name: config.clusterName }
|
|
66
|
+
});
|
|
67
|
+
})();
|
|
68
|
+
apiPromise = pending;
|
|
69
|
+
try {
|
|
70
|
+
return await pending;
|
|
71
|
+
}
|
|
72
|
+
catch (cause) {
|
|
73
|
+
if (apiPromise === pending)
|
|
74
|
+
apiPromise = undefined;
|
|
75
|
+
throw cause;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return apiPromise;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A connection whose cluster authority is acquired on the first request.
|
|
82
|
+
* Credential delivery admits a plan against the declared cluster and
|
|
83
|
+
* namespace before any authority is fetched, so a plan aimed at a target
|
|
84
|
+
* this store does not serve is refused without touching the cluster.
|
|
85
|
+
*/
|
|
86
|
+
function lazyApi(operationContext) {
|
|
87
|
+
let opened;
|
|
88
|
+
return {
|
|
89
|
+
cluster: { id: config.clusterId ?? '', name: config.clusterName ?? '' },
|
|
90
|
+
request(path, init, allowNotFound) {
|
|
91
|
+
opened ??= api(operationContext);
|
|
92
|
+
return opened.then((connection) => connection.request(path, init, allowNotFound));
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function secretPath(namespace) {
|
|
97
|
+
return namedSecretPath(namespace, secretName);
|
|
98
|
+
}
|
|
99
|
+
function namedSecretPath(namespace, name) {
|
|
100
|
+
return `/api/v1/namespaces/${encodeURIComponent(namespace)}/secrets/${encodeURIComponent(name)}`;
|
|
101
|
+
}
|
|
102
|
+
/** `null` when the Secret does not exist yet — an empty environment, not a failure. */
|
|
103
|
+
async function readData(environment, operationContext) {
|
|
104
|
+
const namespace = namespaceFor(environment);
|
|
105
|
+
const connection = await api(operationContext);
|
|
106
|
+
const response = await connection.request(secretPath(namespace), { method: 'GET' }, true);
|
|
107
|
+
if (!response)
|
|
108
|
+
return null;
|
|
109
|
+
const body = KubernetesSecretDataSchema.parse(await response.json());
|
|
110
|
+
const decoded = {};
|
|
111
|
+
for (const [key, value] of Object.entries(body.data ?? {})) {
|
|
112
|
+
decoded[key] = decodeBase64Text(value);
|
|
113
|
+
}
|
|
114
|
+
return decoded;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Merge-patch the Secret, creating it first if absent. A `null` value in the
|
|
118
|
+
* patch removes that key, which is how `unset` works.
|
|
119
|
+
*/
|
|
120
|
+
async function writeData(environment, patch, operationContext) {
|
|
121
|
+
const namespace = namespaceFor(environment);
|
|
122
|
+
const connection = await api(operationContext);
|
|
123
|
+
const existing = await connection.request(secretPath(namespace), { method: 'GET' }, true);
|
|
124
|
+
if (!existing) {
|
|
125
|
+
await connection.request(`/api/v1/namespaces/${encodeURIComponent(namespace)}/secrets`, {
|
|
126
|
+
method: 'POST',
|
|
127
|
+
headers: { 'content-type': 'application/json' },
|
|
128
|
+
body: JSON.stringify({
|
|
129
|
+
apiVersion: 'v1',
|
|
130
|
+
kind: 'Secret',
|
|
131
|
+
type: 'Opaque',
|
|
132
|
+
metadata: {
|
|
133
|
+
name: secretName,
|
|
134
|
+
namespace,
|
|
135
|
+
labels: { 'app.kubernetes.io/managed-by': 'vibes-secrets' },
|
|
136
|
+
annotations: { 'vibes.dev/secrets-environment': environment }
|
|
137
|
+
},
|
|
138
|
+
stringData: Object.fromEntries(Object.entries(patch).filter((entry) => entry[1] !== null))
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
await connection.request(secretPath(namespace), {
|
|
144
|
+
method: 'PATCH',
|
|
145
|
+
headers: { 'content-type': 'application/merge-patch+json' },
|
|
146
|
+
body: JSON.stringify({
|
|
147
|
+
metadata: {
|
|
148
|
+
labels: { 'app.kubernetes.io/managed-by': 'vibes-secrets' },
|
|
149
|
+
annotations: { 'vibes.dev/secrets-environment': environment }
|
|
150
|
+
},
|
|
151
|
+
stringData: Object.fromEntries(Object.entries(patch).filter((entry) => entry[1] !== null)),
|
|
152
|
+
// `stringData` cannot express a removal; `data: {key: null}` can.
|
|
153
|
+
data: Object.fromEntries(Object.entries(patch).filter(([, value]) => value === null))
|
|
154
|
+
})
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function assertWorkerTarget(plan) {
|
|
158
|
+
let namespace;
|
|
159
|
+
try {
|
|
160
|
+
namespace = namespaceFor(plan.worker);
|
|
161
|
+
}
|
|
162
|
+
catch (cause) {
|
|
163
|
+
throw new CapabilityError('DOKS worker credential namespace is not configured by the selected Secrets descriptor.', 'INVALID_INPUT', { reason: 'doks-worker-secret-target-unconfigured', cause });
|
|
164
|
+
}
|
|
165
|
+
// A cluster is named by exactly one of id or name on each side; compare
|
|
166
|
+
// the identity each side actually declares rather than requiring both.
|
|
167
|
+
const clusterMatches = plan.cluster.id !== undefined
|
|
168
|
+
? plan.cluster.id === config.clusterId
|
|
169
|
+
: plan.cluster.name === config.clusterName;
|
|
170
|
+
if (!clusterMatches || namespace !== plan.namespace) {
|
|
171
|
+
throw new CapabilityError('DOKS worker credential target does not match the selected Secrets descriptor.', 'INVALID_INPUT', { reason: 'doks-worker-secret-target-diverged' });
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
async function admitWorkerCredentials(input) {
|
|
175
|
+
const plan = DigitalOceanDoksWorkerPlanSchema.parse(input);
|
|
176
|
+
assertWorkerTarget(plan);
|
|
177
|
+
}
|
|
178
|
+
async function resolveCredential(authority) {
|
|
179
|
+
const result = await runtime.resolveCredential({ source: 'secret', ...authority });
|
|
180
|
+
if (!result.ok)
|
|
181
|
+
throw result.error;
|
|
182
|
+
return result.value;
|
|
183
|
+
}
|
|
184
|
+
async function writeCredentialSecret(namespace, name, key, value, annotations) {
|
|
185
|
+
assertDataKey(key);
|
|
186
|
+
const connection = lazyApi();
|
|
187
|
+
const query = new URLSearchParams({ fieldManager: 'vibes-secrets', force: 'false' });
|
|
188
|
+
const labels = { 'app.kubernetes.io/managed-by': 'vibes-secrets' };
|
|
189
|
+
const metadata = annotations
|
|
190
|
+
? { name, namespace, labels, annotations }
|
|
191
|
+
: { name, namespace, labels };
|
|
192
|
+
const path = namedSecretPath(namespace, name);
|
|
193
|
+
await connection.request(`${path}?${query}`, {
|
|
194
|
+
method: 'PATCH',
|
|
195
|
+
headers: {
|
|
196
|
+
'content-type': 'application/apply-patch+yaml',
|
|
197
|
+
accept: 'application/json'
|
|
198
|
+
},
|
|
199
|
+
body: JSON.stringify({
|
|
200
|
+
apiVersion: 'v1',
|
|
201
|
+
kind: 'Secret',
|
|
202
|
+
type: 'Opaque',
|
|
203
|
+
metadata,
|
|
204
|
+
data: { [key]: encodeBase64Text(value) }
|
|
205
|
+
})
|
|
206
|
+
});
|
|
207
|
+
const response = await connection.request(path, { method: 'GET', headers: { accept: 'application/json' } }, true);
|
|
208
|
+
if (!response) {
|
|
209
|
+
throw new CapabilityError(`DOKS worker prerequisite Secret ${namespace}/${name} was not found.`, 'UNAVAILABLE', { reason: 'doks-worker-secret-not-found' });
|
|
210
|
+
}
|
|
211
|
+
const secret = KubernetesLeaseSecretSchema.parse(await response.json());
|
|
212
|
+
if (!(key in (secret.data ?? {}))) {
|
|
213
|
+
throw new CapabilityError(`DOKS worker prerequisite Secret ${namespace}/${name} is missing keys [${key}].`, 'UNAVAILABLE', { reason: 'doks-worker-secret-key-missing' });
|
|
214
|
+
}
|
|
215
|
+
const expectedOperationId = annotations?.['vibes.dev/source-operation-id'];
|
|
216
|
+
const observedOperationId = secret.metadata?.annotations?.['vibes.dev/source-operation-id'];
|
|
217
|
+
if (expectedOperationId !== undefined && observedOperationId !== expectedOperationId) {
|
|
218
|
+
throw new CapabilityError('DOKS source credential Secret belongs to another operation.', 'CONFLICT', { reason: 'doks-worker-secret-operation-diverged' });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function revokeSourceLease(lease) {
|
|
222
|
+
const [brokerResult, secretResult] = await Promise.allSettled([
|
|
223
|
+
(async () => {
|
|
224
|
+
const settings = await loadDigitalOceanServiceSettings(runtime);
|
|
225
|
+
const authority = await resolveCredential(lease.authority);
|
|
226
|
+
const serviceFetch = runtime.environment.httpFetch?.bind(runtime.environment) ?? fetch;
|
|
227
|
+
const response = await serviceFetch(`${settings.sourceBrokerOrigin}/api/internal/forge/source-credential`, {
|
|
228
|
+
method: 'DELETE',
|
|
229
|
+
headers: {
|
|
230
|
+
authorization: `Bearer ${authority}`,
|
|
231
|
+
'content-type': 'application/json'
|
|
232
|
+
},
|
|
233
|
+
body: JSON.stringify(DigitalOceanDoksSourceCredentialRequestSchema.parse({
|
|
234
|
+
operationId: lease.operationId,
|
|
235
|
+
repositoryId: lease.repositoryId,
|
|
236
|
+
ref: lease.ref
|
|
237
|
+
}))
|
|
238
|
+
});
|
|
239
|
+
if (!response.ok && response.status !== 404) {
|
|
240
|
+
throw new Error(`Build source credential revocation failed (${response.status}); response body redacted.`);
|
|
241
|
+
}
|
|
242
|
+
})(),
|
|
243
|
+
(async () => {
|
|
244
|
+
const connection = await api();
|
|
245
|
+
const path = namedSecretPath(lease.namespace, lease.name);
|
|
246
|
+
const response = await connection.request(path, { method: 'GET' }, true);
|
|
247
|
+
if (!response)
|
|
248
|
+
return;
|
|
249
|
+
const secret = KubernetesLeaseSecretSchema.parse(await response.json());
|
|
250
|
+
if (secret.metadata?.annotations?.['vibes.dev/source-operation-id'] !== lease.operationId) {
|
|
251
|
+
throw new CapabilityError('DOKS source credential Secret belongs to another operation.', 'CONFLICT', { reason: 'doks-worker-secret-operation-diverged' });
|
|
252
|
+
}
|
|
253
|
+
const uid = secret.metadata?.uid;
|
|
254
|
+
if (!uid) {
|
|
255
|
+
throw new CapabilityError('DOKS source credential Secret cannot be safely removed without its UID.', 'UNAVAILABLE', { reason: 'doks-worker-secret-uid-unavailable' });
|
|
256
|
+
}
|
|
257
|
+
await connection.request(path, {
|
|
258
|
+
method: 'DELETE',
|
|
259
|
+
headers: { 'content-type': 'application/json', accept: 'application/json' },
|
|
260
|
+
body: JSON.stringify({ preconditions: { uid } })
|
|
261
|
+
});
|
|
262
|
+
})()
|
|
263
|
+
]);
|
|
264
|
+
const failures = [brokerResult, secretResult]
|
|
265
|
+
.filter((result) => result.status === 'rejected')
|
|
266
|
+
.map((result) => result.reason);
|
|
267
|
+
if (failures.length > 0) {
|
|
268
|
+
throw new CapabilityError('DOKS worker source credential cleanup failed.', 'UNAVAILABLE', {
|
|
269
|
+
reason: 'doks-worker-credential-revocation-failed',
|
|
270
|
+
cause: new AggregateError(failures)
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
async function prepareWorkerCredentials(input) {
|
|
275
|
+
const plan = DigitalOceanDoksWorkerPlanSchema.parse(input);
|
|
276
|
+
assertWorkerTarget(plan);
|
|
277
|
+
const bindings = plan.credentialBindings ?? [];
|
|
278
|
+
if (bindings.length === 0)
|
|
279
|
+
return plan;
|
|
280
|
+
const needsServiceSettings = bindings.some((binding) => binding.kind === 'source-lease' || binding.kind === 'package-registry');
|
|
281
|
+
const settings = needsServiceSettings
|
|
282
|
+
? await loadDigitalOceanServiceSettings(runtime)
|
|
283
|
+
: undefined;
|
|
284
|
+
const hasRegistryBinding = bindings.some((binding) => binding.kind === 'package-registry');
|
|
285
|
+
if (hasRegistryBinding && !settings?.packageScope) {
|
|
286
|
+
throw new CapabilityError('Package registry scope is not configured for DOKS credential delivery.', 'INVALID_INPUT', { reason: 'doks-worker-package-scope-unconfigured' });
|
|
287
|
+
}
|
|
288
|
+
const sourceBinding = bindings.find((binding) => binding.kind === 'source-lease');
|
|
289
|
+
const preparedPlan = sourceBinding
|
|
290
|
+
? bindDigitalOceanDoksWorkerCredentialLease(plan, crypto.randomUUID())
|
|
291
|
+
: plan;
|
|
292
|
+
const lease = preparedPlan.credentialLease;
|
|
293
|
+
try {
|
|
294
|
+
for (const binding of bindings) {
|
|
295
|
+
let secretName = binding.name;
|
|
296
|
+
let value;
|
|
297
|
+
if (binding.kind === 'source-lease') {
|
|
298
|
+
if (!lease) {
|
|
299
|
+
throw new CapabilityError('DOKS source credential lease was not prepared.', 'INTERNAL', { reason: 'doks-worker-credential-lease-missing' });
|
|
300
|
+
}
|
|
301
|
+
const authority = await resolveCredential(binding.authority);
|
|
302
|
+
const serviceFetch = runtime.environment.httpFetch?.bind(runtime.environment) ?? fetch;
|
|
303
|
+
const response = await serviceFetch(`${settings.sourceBrokerOrigin}/api/internal/forge/source-credential`, {
|
|
304
|
+
method: 'POST',
|
|
305
|
+
headers: {
|
|
306
|
+
authorization: `Bearer ${authority}`,
|
|
307
|
+
'content-type': 'application/json'
|
|
308
|
+
},
|
|
309
|
+
body: JSON.stringify(DigitalOceanDoksSourceCredentialRequestSchema.parse({
|
|
310
|
+
operationId: lease.operationId,
|
|
311
|
+
repositoryId: binding.repositoryId,
|
|
312
|
+
ref: binding.ref
|
|
313
|
+
}))
|
|
314
|
+
});
|
|
315
|
+
if (!response.ok) {
|
|
316
|
+
throw new Error(`Build source credential issuance failed (${response.status}); response body redacted.`);
|
|
317
|
+
}
|
|
318
|
+
const issued = KubernetesIssuedSchema.parse(await response.json());
|
|
319
|
+
if (!issued.token)
|
|
320
|
+
throw new Error('Build source credential issuance returned no token.');
|
|
321
|
+
value = issued.token;
|
|
322
|
+
secretName = lease.name;
|
|
323
|
+
}
|
|
324
|
+
else if (binding.kind === 'docr') {
|
|
325
|
+
const client = await createDigitalOceanProviderControlPlaneClient(runtime);
|
|
326
|
+
const dockerConfig = await client.get('/registry/docker-credentials', { query: { read_write: 'true', expiry_seconds: binding.expirySeconds } }, DigitalOceanDoksDockerConfigSchema);
|
|
327
|
+
value = JSON.stringify(dockerConfig);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const packageScope = settings?.packageScope;
|
|
331
|
+
if (!packageScope) {
|
|
332
|
+
throw new CapabilityError('Package registry scope is not configured for DOKS credential delivery.', 'INVALID_INPUT', { reason: 'doks-worker-package-scope-unconfigured' });
|
|
333
|
+
}
|
|
334
|
+
const registryOrigin = settings?.packageRegistryOrigin;
|
|
335
|
+
if (!registryOrigin) {
|
|
336
|
+
throw new CapabilityError('Package registry origin is not configured for DOKS credential delivery.', 'INVALID_INPUT', { reason: 'doks-worker-package-origin-unconfigured' });
|
|
337
|
+
}
|
|
338
|
+
const token = await resolveCredential(binding.authority);
|
|
339
|
+
if (token.includes('\n') || token.includes('\r')) {
|
|
340
|
+
throw new CapabilityError('Package registry credential cannot be rendered safely.', 'INVALID_INPUT', { reason: 'doks-worker-package-credential-invalid' });
|
|
341
|
+
}
|
|
342
|
+
if (binding.key === '.npmrc') {
|
|
343
|
+
value =
|
|
344
|
+
`${packageScope}:registry=${registryOrigin}/\n` +
|
|
345
|
+
`//${new URL(registryOrigin).host}/:_authToken=${token}\n`;
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
value =
|
|
349
|
+
`[install.scopes]\n` +
|
|
350
|
+
`${JSON.stringify(packageScope)} = { token = ${JSON.stringify(token)}, url = ${JSON.stringify(`${registryOrigin}/`)} }\n`;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
const annotations = binding.kind === 'source-lease' && lease
|
|
354
|
+
? DigitalOceanDoksWorkerSourceOperationAnnotationsSchema.parse({
|
|
355
|
+
'vibes.dev/source-operation-id': lease.operationId
|
|
356
|
+
})
|
|
357
|
+
: undefined;
|
|
358
|
+
await writeCredentialSecret(binding.namespace, secretName, binding.key, value, annotations);
|
|
359
|
+
}
|
|
360
|
+
return preparedPlan;
|
|
361
|
+
}
|
|
362
|
+
catch (cause) {
|
|
363
|
+
// The cause travels with the failure the caller receives. The log names
|
|
364
|
+
// what was attempted and how far it got, never what it held.
|
|
365
|
+
diagnostics.warn(`DOKS worker credential preparation failed for ${plan.worker} (bindings=${bindings.length}, lease=${lease ? 'issued' : 'none'}).`);
|
|
366
|
+
const cleanup = lease
|
|
367
|
+
? await settle(() => revokeWorkerCredentials(lease))
|
|
368
|
+
: null;
|
|
369
|
+
if (cleanup !== null && 'cause' in cleanup) {
|
|
370
|
+
throw new CapabilityError('DOKS worker credential preparation and cleanup failed.', 'UNAVAILABLE', {
|
|
371
|
+
reason: 'doks-worker-credential-prepare-cleanup-failed',
|
|
372
|
+
cause: new AggregateError([cause, cleanup.cause])
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
throw new CapabilityError('DOKS worker credential preparation failed.', 'UNAVAILABLE', {
|
|
376
|
+
reason: 'doks-worker-credential-prepare-failed',
|
|
377
|
+
cause
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
async function revokeWorkerCredentials(input) {
|
|
382
|
+
const lease = DigitalOceanDoksWorkerCredentialLeaseSchema.parse(input);
|
|
383
|
+
await revokeSourceLease(lease);
|
|
384
|
+
}
|
|
385
|
+
return {
|
|
386
|
+
id: descriptor.id,
|
|
387
|
+
descriptor,
|
|
388
|
+
async list(environment, operationContext) {
|
|
389
|
+
const data = await readData(environment, operationContext);
|
|
390
|
+
return Object.entries(data ?? {}).map(([key, value]) => ({
|
|
391
|
+
key,
|
|
392
|
+
hasValue: value.length > 0,
|
|
393
|
+
source: descriptor.id
|
|
394
|
+
}));
|
|
395
|
+
},
|
|
396
|
+
async get(environment, key, operationContext) {
|
|
397
|
+
const data = await readData(environment, operationContext);
|
|
398
|
+
return data?.[key];
|
|
399
|
+
},
|
|
400
|
+
async set(environment, key, value, operationContext) {
|
|
401
|
+
assertDataKey(key);
|
|
402
|
+
await writeData(environment, { [key]: value }, operationContext);
|
|
403
|
+
},
|
|
404
|
+
async unset(environment, key, operationContext) {
|
|
405
|
+
await writeData(environment, { [key]: null }, operationContext);
|
|
406
|
+
},
|
|
407
|
+
async getAll(environment, operationContext) {
|
|
408
|
+
return (await readData(environment, operationContext)) ?? {};
|
|
409
|
+
},
|
|
410
|
+
async setAll(environment, secrets, operationContext) {
|
|
411
|
+
for (const key of Object.keys(secrets))
|
|
412
|
+
assertDataKey(key);
|
|
413
|
+
if (Object.keys(secrets).length === 0)
|
|
414
|
+
return;
|
|
415
|
+
await writeData(environment, secrets, operationContext);
|
|
416
|
+
},
|
|
417
|
+
admitWorkerCredentials,
|
|
418
|
+
prepareWorkerCredentials,
|
|
419
|
+
revokeWorkerCredentials
|
|
420
|
+
};
|
|
421
|
+
}
|
|
422
|
+
export class DigitalOceanDoksSecretRuntimeClient extends BaseRuntimeClient {
|
|
423
|
+
#store;
|
|
424
|
+
constructor(descriptor, context) {
|
|
425
|
+
super(descriptor, context);
|
|
426
|
+
const storeDescriptor = context.runtime
|
|
427
|
+
.query('secrets/store')
|
|
428
|
+
.withId('doks-secret')
|
|
429
|
+
.descriptors()[0];
|
|
430
|
+
if (!storeDescriptor) {
|
|
431
|
+
throw new CapabilityError('The DOKS Secret store descriptor is unavailable.', 'UNAVAILABLE', {
|
|
432
|
+
reason: 'doks-secret-descriptor-unavailable',
|
|
433
|
+
retryable: false
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
this.#store = createDoksSecretStore(context.runtime, storeDescriptor);
|
|
437
|
+
}
|
|
438
|
+
[DOKS_SECRET_STORE_ACCESS]() {
|
|
439
|
+
return this.#store;
|
|
440
|
+
}
|
|
441
|
+
admitWorkerCredentials(plan) {
|
|
442
|
+
return this.#store.admitWorkerCredentials(plan);
|
|
443
|
+
}
|
|
444
|
+
prepareWorkerCredentials(plan) {
|
|
445
|
+
return this.#store.prepareWorkerCredentials(plan);
|
|
446
|
+
}
|
|
447
|
+
revokeWorkerCredentials(lease) {
|
|
448
|
+
return this.#store.revokeWorkerCredentials(lease);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
//# sourceMappingURL=doks-secret.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doks-secret.impl.js","sourceRoot":"","sources":["../../src/secrets/doks-secret.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/secrets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-backend-doks.plugin.d.ts","sourceRoot":"","sources":["../../src/secrets/secrets-backend-doks.plugin.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,wBAAwB,6CA+BnC,CAAC;AAEH,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers the DOKS Secret store and its runtime-owned credential delivery client.
|
|
3
|
+
*
|
|
4
|
+
* The store kind exposes only store operations. Worker execution resolves the
|
|
5
|
+
* semantic runtime client directly; both surfaces share its one implementation.
|
|
6
|
+
*/
|
|
7
|
+
import { createRuntimePlugin } from '@vibesdotdev/kernel';
|
|
8
|
+
import { getVibesClient } from '@vibesdotdev/kernel/client';
|
|
9
|
+
import { kubernetesTransportKind } from "../kubernetes/transport.js";
|
|
10
|
+
import descriptor, { DOKS_SECRET_DELIVERY_CLIENT_ID, DOKS_SECRET_STORE_ACCESS } from "./doks-secret.descriptor.js";
|
|
11
|
+
export const secretsBackendDoksPlugin = createRuntimePlugin({
|
|
12
|
+
id: 'digitalocean/secrets/doks',
|
|
13
|
+
name: 'Secrets Backend: DOKS Kubernetes Secret',
|
|
14
|
+
description: 'Projects stored secrets into a Kubernetes Secret on a DOKS cluster through the Secrets store and delivery owner.',
|
|
15
|
+
dependencies: ['secrets', 'runtime-client', 'integrations-digitalocean'],
|
|
16
|
+
descriptors: [descriptor],
|
|
17
|
+
onRegister: async (runtime) => {
|
|
18
|
+
if (!runtime.hasKind(kubernetesTransportKind.id))
|
|
19
|
+
runtime.registerKind(kubernetesTransportKind);
|
|
20
|
+
runtime.registerDescriptor('runtime/client', {
|
|
21
|
+
id: DOKS_SECRET_DELIVERY_CLIENT_ID,
|
|
22
|
+
kind: 'runtime/client'
|
|
23
|
+
});
|
|
24
|
+
runtime.registerLoader('runtime/client', DOKS_SECRET_DELIVERY_CLIENT_ID, async () => {
|
|
25
|
+
const { DigitalOceanDoksSecretRuntimeClient } = await import("./doks-secret.impl.js");
|
|
26
|
+
return { impl: DigitalOceanDoksSecretRuntimeClient };
|
|
27
|
+
});
|
|
28
|
+
runtime.registerLoader('secrets/store', 'doks-secret', async () => {
|
|
29
|
+
const client = await getVibesClient(DOKS_SECRET_DELIVERY_CLIENT_ID, runtime);
|
|
30
|
+
return { impl: client[DOKS_SECRET_STORE_ACCESS]() };
|
|
31
|
+
}, { priority: 1, origin: 'integrations-digitalocean/secrets' });
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export default secretsBackendDoksPlugin;
|
|
35
|
+
//# sourceMappingURL=secrets-backend-doks.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets-backend-doks.plugin.js","sourceRoot":"","sources":["../../src/secrets/secrets-backend-doks.plugin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAsB,MAAM,4BAA4B,CAAC;AAGhF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,UAAU,EAAE,EAClB,8BAA8B,EAC9B,wBAAwB,EACxB,MAAM,6BAA6B,CAAC;AAOrC,MAAM,CAAC,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;IAC3D,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,yCAAyC;IAC/C,WAAW,EACV,kHAAkH;IACnH,YAAY,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,2BAA2B,CAAC;IAExE,WAAW,EAAE,CAAC,UAAU,CAAC;IAEzB,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;QAEhG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,EAAE;YAC5C,EAAE,EAAE,8BAA8B;YAClC,IAAI,EAAE,gBAAgB;SACtB,CAAC,CAAC;QACH,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,EAAE,mCAAmC,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;YACtF,OAAO,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CACrB,eAAe,EACf,aAAa,EACb,KAAK,IAAI,EAAE;YACV,MAAM,MAAM,GAAG,MAAM,cAAc,CAA0B,8BAA8B,EAAE,OAAO,CAAC,CAAC;YACtG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC;QACrD,CAAC,EACD,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAC5D,CAAC;IACF,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DigitalOcean Storage: Spaces metadata, Volumes, snapshots, NFS.
|
|
3
|
+
*
|
|
4
|
+
* Bucket data/configuration uses the S3-compatible API. DigitalOcean's v2
|
|
5
|
+
* control plane separately owns scoped Spaces access-key lifecycle.
|
|
6
|
+
*/
|
|
7
|
+
import type { DigitalOceanControlPlaneClient } from '../client/control-plane.ts';
|
|
8
|
+
export { DigitalOceanSpacesKeysClient, type DoSpacesKey, type DoSpacesKeyGrant, type DoSpacesKeyPermission } from './spaces-keys.ts';
|
|
9
|
+
export type DoVolume = import('zod/v4').infer<typeof import('../schemas/http.ts').DoVolumeSchema>;
|
|
10
|
+
export type DoVolumeSnapshot = import('zod/v4').infer<typeof import('../schemas/http.ts').DoVolumeSnapshotSchema>;
|
|
11
|
+
export type DoCdnEndpoint = import('zod/v4').infer<typeof import('../schemas/http.ts').DoCdnEndpointSchema>;
|
|
12
|
+
export type DoNfsShare = import('zod/v4').infer<typeof import('../schemas/http.ts').DoNfsShareSchema>;
|
|
13
|
+
export interface CreateVolumeOptions {
|
|
14
|
+
name: string;
|
|
15
|
+
region: string;
|
|
16
|
+
size_gigabytes: number;
|
|
17
|
+
description?: string;
|
|
18
|
+
tags?: string[];
|
|
19
|
+
filesystem_type?: 'ext4' | 'xfs';
|
|
20
|
+
filesystem_label?: string;
|
|
21
|
+
snapshot_id?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class DigitalOceanStorageClient {
|
|
24
|
+
private readonly client;
|
|
25
|
+
constructor(client: DigitalOceanControlPlaneClient);
|
|
26
|
+
listVolumes(filters?: {
|
|
27
|
+
region?: string;
|
|
28
|
+
name?: string;
|
|
29
|
+
}): Promise<DoVolume[]>;
|
|
30
|
+
getVolume(volumeId: string): Promise<DoVolume>;
|
|
31
|
+
getVolumeOrNull(volumeId: string): Promise<DoVolume | null>;
|
|
32
|
+
createVolume(options: CreateVolumeOptions): Promise<DoVolume>;
|
|
33
|
+
deleteVolume(volumeId: string): Promise<void>;
|
|
34
|
+
attachVolume(volumeId: string, dropletId: number, region: string): Promise<void>;
|
|
35
|
+
detachVolume(volumeId: string, dropletId: number, region: string): Promise<void>;
|
|
36
|
+
listVolumeSnapshots(volumeId: string): Promise<DoVolumeSnapshot[]>;
|
|
37
|
+
createVolumeSnapshot(volumeId: string, name: string, tags?: string[]): Promise<DoVolumeSnapshot>;
|
|
38
|
+
listCdnEndpoints(): Promise<DoCdnEndpoint[]>;
|
|
39
|
+
listNfsShares(): Promise<DoNfsShare[]>;
|
|
40
|
+
getNfsShare(shareId: string): Promise<DoNfsShare>;
|
|
41
|
+
createNfsShare(options: {
|
|
42
|
+
name: string;
|
|
43
|
+
region: string;
|
|
44
|
+
size_gibibytes: number;
|
|
45
|
+
access_rules?: DoNfsShare['access_rules'];
|
|
46
|
+
}): Promise<DoNfsShare>;
|
|
47
|
+
deleteNfsShare(shareId: string): Promise<void>;
|
|
48
|
+
updateNfsShareAccessRules(shareId: string, rules: NonNullable<DoNfsShare['access_rules']>): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAEjF,OAAO,EACN,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,EAAE,KAAK,CAAC,cAAc,oBAAoB,EAAE,cAAc,CAAC,CAAC;AAElG,MAAM,MAAM,gBAAgB,GAAG,OAAO,QAAQ,EAAE,KAAK,CACpD,cAAc,oBAAoB,EAAE,sBAAsB,CAC1D,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,QAAQ,EAAE,KAAK,CACjD,cAAc,oBAAoB,EAAE,mBAAmB,CACvD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,QAAQ,EAAE,KAAK,CAC9C,cAAc,oBAAoB,EAAE,gBAAgB,CACpD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,yBAAyB;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,8BAA8B;IAE7D,WAAW,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUlF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS9C,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAS3D,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU7D,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhF,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhF,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IASlE,oBAAoB,CACzB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,gBAAgB,CAAC;IAatB,gBAAgB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAS5C,aAAa,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAStC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IASjD,cAAc,CAAC,OAAO,EAAE;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;KAC1C,GAAG,OAAO,CAAC,UAAU,CAAC;IAUjB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,yBAAyB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC;CAGhB"}
|