Store provider credentials encrypted at rest. Keys are never returned in full after save — only a short hint is shown in the UI.
Set API_KEY_ENCRYPTION_SECRET (16+ characters) in your environment. Without it, saving secrets returns an error.
GET /api/providers
Cookie: (session)POST /api/providers
Content-Type: application/json
{
"providerId": "openai",
"displayName": "Production",
"secret": "sk-..."
}PATCH /api/providers/{id}
Content-Type: application/json
{
"displayName": "Staging",
"secret": "sk-new..."
}DELETE /api/providers/{id}