[FEAT] Connettori per-azienda nella card cliente (Evidence Automation) - config in DB, secret nel vault
Richiesta utente: 'le credenziali si configurano nella card per ogni azienda cliente'.
- Migrazione 029: tabella org_connectors (config NON segreta + vault_key_alias + secret_status). NESSUN segreto nel DB.
- OrganizationController: listConnectors/saveConnector/deleteConnector + connectorOrgGuard (org_admin/compliance_manager propria org, o firm che la gestisce, o super_admin)
- Difesa: i campi segreti (client_secret/api_key/...) inviati vengono STRIPPATI prima del salvataggio (verificato E2E: non finiscono nel DB)
- saveConnector ritorna cli_hint col comando vault-cli per caricare il segreto (write-path vault = solo CLI admin, confermato leggendo server.js: solo GET /v1/credentials/*)
- UI: pannello 'Connettori' nella card di companies.html (8 tipi, tenant/client id, toggle attivo, stato segreto, modal)
- Route organizations/{id}/connectors GET/PUT/DELETE (type nel body)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
9deff7002a
commit
0dc2a11040
@@ -183,6 +183,10 @@ $actionMap = [
|
||||
'POST:{id}/invite' => 'inviteMember',
|
||||
'DELETE:{id}/members/{subId}' => 'removeMember',
|
||||
'POST:classify' => 'classifyEntity',
|
||||
// Connettori per-azienda (Evidence Automation) — config non segreta. Type nel body (router cattura subId solo se numerico).
|
||||
'GET:{id}/connectors' => 'listConnectors',
|
||||
'PUT:{id}/connectors' => 'saveConnector',
|
||||
'DELETE:{id}/connectors' => 'deleteConnector',
|
||||
],
|
||||
|
||||
// ── AssessmentController ────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user