diff --git a/.github/workflows/job_test_dashboard.yaml b/.github/workflows/job_test_dashboard.yaml index 5216962e7a..ec2aded29e 100644 --- a/.github/workflows/job_test_dashboard.yaml +++ b/.github/workflows/job_test_dashboard.yaml @@ -28,8 +28,8 @@ jobs: DATABASE_NAME: unkey UNKEY_WORKSPACE_ID: "not-empty" UNKEY_API_ID: "not-empty" - AGENT_URL: "http://localhost:8080" - AGENT_TOKEN: "not-empty" + VAULT_URL: "http://localhost:8060" + VAULT_TOKEN: "not-empty" AUTH_PROVIDER: "workos" WORKOS_CLIENT_ID: "client_" WORKOS_API_KEY: "sk_test_" diff --git a/dev/k8s/manifests/dashboard.yaml b/dev/k8s/manifests/dashboard.yaml index d4168a7cfd..993e0715ba 100644 --- a/dev/k8s/manifests/dashboard.yaml +++ b/dev/k8s/manifests/dashboard.yaml @@ -2,88 +2,88 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: dashboard - namespace: unkey - labels: - app: dashboard -spec: - replicas: 1 - selector: - matchLabels: - app: dashboard - template: - metadata: - labels: + name: dashboard + namespace: unkey + labels: app: dashboard - spec: - initContainers: - - name: wait-for-dependencies - image: busybox:1.36 - command: - - sh - - -c - - | - until nc -z planetscale 3900 && nc -z agent 8080; do - echo waiting for dependencies - sleep 2 - done - containers: - - name: dashboard - image: unkey/dashboard:latest - imagePullPolicy: Never - ports: - - containerPort: 3000 - env: - # Database configuration - - name: DATABASE_HOST - value: "planetscale:3900" - # ClickHouse configuration - - name: CLICKHOUSE_URL - value: "http://default:password@clickhouse:8123" - # Environment - - name: NODE_ENV - value: "production" - # Instance identification - - name: UNKEY_PLATFORM - value: "kubernetes" - - name: UNKEY_REGION - value: "local" - - name: CTRL_URL - value: "http://ctrl-api:7091" - - name: CTRL_API_KEY - value: "your-local-dev-key" - # Agent configuration - - name: AGENT_URL - value: "http://agent:8080" - - name: AGENT_TOKEN - value: "agent-auth-secret" - readinessProbe: - httpGet: - path: / - port: 3000 - initialDelaySeconds: 10 - periodSeconds: 5 - livenessProbe: - httpGet: - path: / - port: 3000 - initialDelaySeconds: 30 - periodSeconds: 10 +spec: + replicas: 1 + selector: + matchLabels: + app: dashboard + template: + metadata: + labels: + app: dashboard + spec: + initContainers: + - name: wait-for-dependencies + image: busybox:1.36 + command: + - sh + - -c + - | + until nc -z planetscale 3900 && nc -z agent 8080; do + echo waiting for dependencies + sleep 2 + done + containers: + - name: dashboard + image: unkey/dashboard:latest + imagePullPolicy: Never + ports: + - containerPort: 3000 + env: + # Database configuration + - name: DATABASE_HOST + value: "planetscale:3900" + # ClickHouse configuration + - name: CLICKHOUSE_URL + value: "http://default:password@clickhouse:8123" + # Environment + - name: NODE_ENV + value: "production" + # Instance identification + - name: UNKEY_PLATFORM + value: "kubernetes" + - name: UNKEY_REGION + value: "local" + - name: CTRL_URL + value: "http://ctrl-api:7091" + - name: CTRL_API_KEY + value: "your-local-dev-key" + # Agent configuration + - name: VAULT_URL + value: "http://vault:8060" + - name: VAULT_TOKEN + value: "vault-test-token-123" + readinessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 5 + livenessProbe: + httpGet: + path: / + port: 3000 + initialDelaySeconds: 30 + periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: - name: dashboard - namespace: unkey - labels: - app: dashboard + name: dashboard + namespace: unkey + labels: + app: dashboard spec: - selector: - app: dashboard - ports: - - name: http - port: 3000 - targetPort: 3000 - protocol: TCP - type: LoadBalancer + selector: + app: dashboard + ports: + - name: http + port: 3000 + targetPort: 3000 + protocol: TCP + type: LoadBalancer diff --git a/web/apps/dashboard/.env.example b/web/apps/dashboard/.env.example index f0dec3cc11..4399362deb 100644 --- a/web/apps/dashboard/.env.example +++ b/web/apps/dashboard/.env.example @@ -21,6 +21,10 @@ UNKEY_API_ID= CTRL_URL=http://127.0.0.1:7091 CTRL_API_KEY="your-local-dev-key" +# Vault +VAULT_URL=http://localhost:8060 +VAULT_TOKEN=vault-test-token-123 + # ClickHouse CLICKHOUSE_URL= diff --git a/web/apps/dashboard/lib/env.ts b/web/apps/dashboard/lib/env.ts index 1b2ec2b7d0..a20a4c384e 100644 --- a/web/apps/dashboard/lib/env.ts +++ b/web/apps/dashboard/lib/env.ts @@ -25,8 +25,8 @@ export const env = () => RATELIMIT_DEMO_ROOT_KEY: z.string().optional(), - AGENT_URL: z.url(), - AGENT_TOKEN: z.string(), + VAULT_URL: z.url(), + VAULT_TOKEN: z.string(), CTRL_URL: z.url().optional(), CTRL_API_KEY: z.string().optional(), diff --git a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/create.ts b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/create.ts index dde4f74942..29fe60f678 100644 --- a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/create.ts +++ b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/create.ts @@ -8,8 +8,8 @@ import { z } from "zod"; import { workspaceProcedure } from "../../../trpc"; const vault = new Vault({ - baseUrl: env().AGENT_URL, - token: env().AGENT_TOKEN, + baseUrl: env().VAULT_URL, + token: env().VAULT_TOKEN, }); const envVarInputSchema = z.object({ diff --git a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/decrypt.ts b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/decrypt.ts index b84e42bb07..42dc16de2e 100644 --- a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/decrypt.ts +++ b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/decrypt.ts @@ -7,8 +7,8 @@ import { z } from "zod"; import { workspaceProcedure } from "../../../trpc"; const vault = new Vault({ - baseUrl: env().AGENT_URL, - token: env().AGENT_TOKEN, + baseUrl: env().VAULT_URL, + token: env().VAULT_TOKEN, }); export const decryptEnvVar = workspaceProcedure diff --git a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/update.ts b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/update.ts index beb935ab34..23f5ca5bbc 100644 --- a/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/update.ts +++ b/web/apps/dashboard/lib/trpc/routers/deploy/env-vars/update.ts @@ -6,8 +6,8 @@ import { z } from "zod"; import { workspaceProcedure } from "../../../trpc"; const vault = new Vault({ - baseUrl: env().AGENT_URL, - token: env().AGENT_TOKEN, + baseUrl: env().VAULT_URL, + token: env().VAULT_TOKEN, }); export const updateEnvVar = workspaceProcedure diff --git a/web/apps/dashboard/lib/trpc/routers/key/create.ts b/web/apps/dashboard/lib/trpc/routers/key/create.ts index cc65c86365..bc39e7a676 100644 --- a/web/apps/dashboard/lib/trpc/routers/key/create.ts +++ b/web/apps/dashboard/lib/trpc/routers/key/create.ts @@ -12,8 +12,8 @@ import { newKey } from "@unkey/keys"; import { ratelimit, withRatelimit, workspaceProcedure } from "../../trpc"; const vault = new Vault({ - baseUrl: env().AGENT_URL, - token: env().AGENT_TOKEN, + baseUrl: env().VAULT_URL, + token: env().VAULT_TOKEN, }); export const createKey = workspaceProcedure diff --git a/web/apps/dashboard/local.bash b/web/apps/dashboard/local.bash index 7319545564..d38654012a 100755 --- a/web/apps/dashboard/local.bash +++ b/web/apps/dashboard/local.bash @@ -3,7 +3,7 @@ pnpm install --frozen-lockfile -docker compose -f ../../../dev/docker-compose.yaml up -d planetscale agent clickhouse apiv2_lb +docker compose -f ../../../dev/docker-compose.yaml up -d planetscale vault clickhouse apiv2_lb # Write environment variables to .env if it doesn't exist if [ ! -f .env ]; then @@ -18,8 +18,8 @@ UNKEY_API_ID="api_local_root_keys" AUTH_PROVIDER="local" -AGENT_URL="http://localhost:8080" -AGENT_TOKEN="agent-auth-secret" +VAULT_URL="http://localhost:8060" +VAULT_TOKEN="vault-test-token-123" CLICKHOUSE_URL="http://default:password@localhost:8123" diff --git a/web/tools/local/src/cmd/api.ts b/web/tools/local/src/cmd/api.ts index 209170b201..0ce68c9fe2 100644 --- a/web/tools/local/src/cmd/api.ts +++ b/web/tools/local/src/cmd/api.ts @@ -20,9 +20,9 @@ export async function bootstrapApi(resources: { UNKEY_WORKSPACE_ID: resources.workspace.id, UNKEY_API_ID: resources.api.id, }, - Agent: { - AGENT_URL: "http://localhost:8080", - AGENT_TOKEN: "agent-auth-secret", + Vault: { + VAULT_URL: "http://localhost:8060", + VAULT_TOKEN: "vault-test-token-123", }, Logging: { EMIT_METRICS_LOGS: "false", diff --git a/web/tools/local/src/cmd/dashboard.ts b/web/tools/local/src/cmd/dashboard.ts index c286bbb9ec..cbfb47615a 100644 --- a/web/tools/local/src/cmd/dashboard.ts +++ b/web/tools/local/src/cmd/dashboard.ts @@ -25,9 +25,9 @@ export async function bootstrapDashboard(resources: { Auth: { AUTH_PROVIDER: "local", }, - Agent: { - AGENT_URL: "http://localhost:8080", - AGENT_TOKEN: "agent-auth-secret", + Vault: { + VAULT_URL: "http://localhost:8060", + VAULT_TOKEN: "vault-test-token-123", }, Clickhouse: { CLICKHOUSE_URL: "http://default:password@localhost:8123", diff --git a/web/turbo.json b/web/turbo.json index 48bf54b3a1..1d5c1e82d5 100644 --- a/web/turbo.json +++ b/web/turbo.json @@ -9,8 +9,8 @@ "env": [ "NEXT_PUBLIC_\\*", "\\!NEXT_PUBLIC_VERCEL_\\*", - "AGENT_URL", - "AGENT_TOKEN", + "VAULT_URL", + "VAULT_TOKEN", "DATABASE_PASSWORD", "DATABASE_USERNAME", "DATABASE_HOST",