From b2a9c1fa6d338f5746b5b69174d7ea74ea5ff86f Mon Sep 17 00:00:00 2001 From: nfebe Date: Fri, 30 Jan 2026 14:51:51 +0100 Subject: [PATCH] feat(ui): Display and manage deployment registry credentials Add UI for viewing and changing registry credentials associated with deployments. Changes include: - Add credential_id to ServiceMetadata in types and API service - Display credential name in deployment detail General Information card - Add modal to select/change registry credential for a deployment - Preserve credential_id when saving domain settings Signed-off-by: nfebe --- src/services/api.ts | 4 +- src/types/index.ts | 1 + src/views/DeploymentDetailView.vue | 150 +++++++++++++++++++++++++++-- 3 files changed, 147 insertions(+), 8 deletions(-) diff --git a/src/services/api.ts b/src/services/api.ts index 3792fb4..ed9d9bf 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -59,6 +59,7 @@ export interface ServiceMetadata { path: string; interval: string; }; + credential_id?: string; } export interface EnvVar { @@ -71,7 +72,8 @@ export const deploymentsApi = { get: (name: string) => apiClient.get(`/deployments/${name}`), create: (data: any) => apiClient.post("/deployments", data), update: (name: string, data: any) => apiClient.put(`/deployments/${name}`, data), - updateMetadata: (name: string, metadata: ServiceMetadata) => apiClient.put(`/deployments/${name}/metadata`, metadata), + updateMetadata: (name: string, metadata: Partial) => + apiClient.put(`/deployments/${name}/metadata`, metadata), delete: (name: string, options?: { deleteSSL?: boolean; deleteDatabase?: boolean; deleteVhost?: boolean }) => { const params = new URLSearchParams(); if (options?.deleteSSL !== undefined) params.set("delete_ssl", String(options.deleteSSL)); diff --git a/src/types/index.ts b/src/types/index.ts index 5a25415..36dd7f4 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -27,6 +27,7 @@ export interface ServiceMetadata { healthcheck: HealthCheckConfig; quick_actions?: QuickAction[]; security?: DeploymentSecurityConfig; + credential_id?: string; } export interface QuickAction { diff --git a/src/views/DeploymentDetailView.vue b/src/views/DeploymentDetailView.vue index 94176b1..83eea0c 100644 --- a/src/views/DeploymentDetailView.vue +++ b/src/views/DeploymentDetailView.vue @@ -118,6 +118,31 @@ Type {{ deployment.metadata.type }} +
+ Registry + + + + +
+ + + +