This repository has been archived on 2026-04-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
core/server/crypto/status.go
Jeffrey Smith f0dd43144e rebrand: Switchboard Core → Armature
- Rename Go module switchboard-core → armature (155+ files)
- Rename Docker image → gobha/armature
- Rename K8s resources, secrets, deployments
- Rename Prometheus metrics switchboard_* → armature_*
- Rename env vars SWITCHBOARD_ADMIN_* → ARMATURE_ADMIN_*
- Rename DB names switchboard_core* → armature*
- Update all frontend branding, notification templates, docs
- Update CI scripts, e2e tests, Keycloak realm, nginx conf
- Rename scripts/switchboard-ca.sh → scripts/armature-ca.sh
- Rename k8s/switchboard.yaml → k8s/armature.yaml
- Rename chart alerting/dashboard files
- Fix: DockerHub push uses env: binding for secret injection
- Helm chart updated (name, labels, template functions, dashboard, alerting)
- Replace favicon/icon assets with Armature brand

No functional changes. Pure mechanical rename + CI fix.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 21:39:58 +00:00

47 lines
1.2 KiB
Go

package crypto
import (
"database/sql"
"fmt"
)
// VaultStatusInfo holds vault health information for admin display.
type VaultStatusInfo struct {
EncryptionKeySet bool `json:"encryption_key_set"`
EncryptedKeys int `json:"encrypted_keys"` // provider_configs with api_key_enc
VaultUsers int `json:"vault_users"` // users with vault_set = true
}
// VaultStatus gathers vault health metrics from the database.
// Used by both the CLI (`armature vault status`) and the admin API endpoint.
func VaultStatus(db *sql.DB, encryptionKey string) (*VaultStatusInfo, error) {
if db == nil {
return nil, fmt.Errorf("database not available")
}
info := &VaultStatusInfo{
EncryptionKeySet: encryptionKey != "",
}
// Count encrypted provider keys (global + team + personal)
err := db.QueryRow(`
SELECT COUNT(*) FROM provider_configs
WHERE api_key_enc IS NOT NULL
`).Scan(&info.EncryptedKeys)
if err != nil {
return nil, fmt.Errorf("count encrypted keys: %w", err)
}
// Count users with active vaults
err = db.QueryRow(`
SELECT COUNT(*) FROM users
WHERE vault_set = true
`).Scan(&info.VaultUsers)
if err != nil {
// vault_set column might not exist on very old installs
info.VaultUsers = 0
}
return info, nil
}