From 01b48efba07bcb80e665c126e48549148d228dd0 Mon Sep 17 00:00:00 2001 From: allanice001 Date: Mon, 10 Nov 2025 14:41:16 +0000 Subject: [PATCH] fix: credentials bugfix Signed-off-by: allanice001 --- internal/models/credential.go | 18 +++++++++--------- ui/src/pages/credentials/credential-page.tsx | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/internal/models/credential.go b/internal/models/credential.go index 03d1448..0f43f22 100644 --- a/internal/models/credential.go +++ b/internal/models/credential.go @@ -9,18 +9,18 @@ import ( type Credential struct { ID uuid.UUID `gorm:"type:uuid;primaryKey;default:gen_random_uuid()"` - OrganizationID uuid.UUID `gorm:"type:uuid;not null;uniqueIndex:idx_credentials_org_provider" json:"organization_id"` + OrganizationID uuid.UUID `gorm:"type:uuid;not null;index" json:"organization_id"` Organization Organization `gorm:"foreignKey:OrganizationID;constraint:OnDelete:CASCADE" json:"organization"` - Provider string `gorm:"type:varchar(50);not null;index"` - Kind string `gorm:"type:varchar(50);not null;index"` // "aws_access_key", "api_token", "basic_auth", ... + Provider string `gorm:"type:varchar(50);not null;uniqueIndex:uniq_org_provider_scopekind_scope,priority:2;index:idx_provider_kind"` + Kind string `gorm:"type:varchar(50);not null;index:idx_provider_kind;index:idx_kind_scope"` + ScopeKind string `gorm:"type:varchar(20);not null;uniqueIndex:uniq_org_provider_scopekind_scope,priority:3"` + Scope datatypes.JSON `gorm:"type:jsonb;not null;default:'{}';index:idx_kind_scope"` + ScopeFingerprint string `gorm:"type:char(64);not null;uniqueIndex:uniq_org_provider_scopekind_scope,priority:4;index"` SchemaVersion int `gorm:"not null;default:1"` - Name string `gorm:"type:varchar(100);not null;default:''"` // human label, lets you have multiple for same service - ScopeKind string `gorm:"type:varchar(20);not null"` // "provider" | "service" | "resource" - Scope datatypes.JSON `gorm:"type:jsonb;not null;default:'{}'"` // e.g. {"service":"route53"} or {"arn":"arn:aws:s3:::my-bucket"} + Name string `gorm:"type:varchar(100);not null;default:''"` ScopeVersion int `gorm:"not null;default:1"` - AccountID string `gorm:"type:varchar(32)"` // AWS account ID if applicable - Region string `gorm:"type:varchar(32)"` // default region (non-secret) - ScopeFingerprint string `gorm:"type:char(64);not null;index"` + AccountID string `gorm:"type:varchar(32)"` + Region string `gorm:"type:varchar(32)"` EncryptedData string `gorm:"not null"` IV string `gorm:"not null"` Tag string `gorm:"not null"` diff --git a/ui/src/pages/credentials/credential-page.tsx b/ui/src/pages/credentials/credential-page.tsx index ac1dc9a..6ffce79 100644 --- a/ui/src/pages/credentials/credential-page.tsx +++ b/ui/src/pages/credentials/credential-page.tsx @@ -152,7 +152,7 @@ const updateCredentialSchema = createCredentialSchema.partial().extend({ function pretty(obj: unknown) { try { - return JSON.stringify(obj, null, 2) + return JSON.stringify(JSON.parse(obj), null, 2) } catch { return "" }