Skip to content

feat(secrets): system secrets management (#1417)#1419

Merged
mrveiss merged 1 commit intoDev_new_guifrom
feat/1417-system-secrets
Mar 6, 2026
Merged

feat(secrets): system secrets management (#1417)#1419
mrveiss merged 1 commit intoDev_new_guifrom
feat/1417-system-secrets

Conversation

@mrveiss
Copy link
Copy Markdown
Owner

@mrveiss mrveiss commented Mar 6, 2026

Summary

  • Add SystemSecret model with AES-256-GCM encrypted value storage
  • Add admin-only CRUD API at /api/secrets (values never returned in list/get responses)
  • Add /api/secrets/{key}/value endpoint for fleet provisioning (admin-only decryption)
  • Add SecretsSettings.vue admin page in Settings > Secrets with create/update/delete UI
  • Add useSecretsApi composable for frontend API integration
  • Three secret categories: System, API Token, Service

Architecture

  • Values encrypted at rest using existing services/encryption.py (AES-256-GCM + PBKDF2)
  • Secret values are never returned in list/detail responses — only metadata
  • Decrypted values only accessible via explicit /value endpoint
  • Admin-only access enforced on all endpoints

Test Plan

  • Create secret via admin UI at /settings/admin/secrets
  • Verify secret appears in list (value not shown)
  • Update secret value
  • Delete secret
  • Verify non-admin users cannot access /api/secrets

Closes #1417

- Add SystemSecret model with AES-256-GCM encrypted values
- Add CRUD API at /api/secrets (admin-only, values never returned in list)
- Add /api/secrets/{key}/value endpoint for fleet provisioning
- Add SecretsSettings.vue admin page with create/update/delete UI
- Add useSecretsApi composable for frontend API integration
- Register secrets route in settings navigation
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 6, 2026

⚠️ SSOT Configuration Compliance: Violations Found

Metric Count
Total Violations 371
SSOT Violations (high priority) 286
Other Violations 85

⚠️ 286 values have SSOT config equivalents!

These should be replaced with SSOT config imports:

Python:

from src.config.ssot_config import config
# Use: config.vm.main, config.port.backend, config.backend_url

TypeScript:

import config from '@/config/ssot-config'
// Use: config.vm.main, config.port.backend, config.backendUrl

📖 See SSOT_CONFIG_GUIDE.md for documentation.

@mrveiss mrveiss merged commit 8c4499b into Dev_new_gui Mar 6, 2026
2 checks passed
@mrveiss mrveiss deleted the feat/1417-system-secrets branch March 6, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant