Secret Rotation
Gerencie políticas de rotação de segredos para manter suas credenciais sempre atualizadas. O CriptEnv suporta manual e notify; a rotação automática está planejada, mas ainda não foi implementada.
Info
• manual — você rotaciona quando quiser
• notify — alerta quando o segredo expira
• auto — planejada; ainda não implementada
Mutações de rotação/expiração exigem admin ou owner; consultas continuam disponíveis para membros do projeto.
post Rotacionar segredo
Rotaciona o valor de um segredo imediatamente. O valor anterior é mantido no histórico. Requer admin/owner.
| Parâmetro | Tipo | Descrição |
|---|---|---|
valueobrigatório | string | Novo valor do segredo |
curl -X POST https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/sec_abc123/rotate \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"value": "new-secret-value-here"}'post Definir expiração
Configura a data de expiração e a política de rotação para um segredo. Requer admin/owner.
| Parâmetro | Tipo | Descrição |
|---|---|---|
expires_atobrigatório | string | Data de expiração (ISO 8601) |
policyobrigatório | string | Política: manual ou notify; auto está planejada e não implementada |
curl -X POST https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/sec_abc123/expiration \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"expires_at": "2025-03-01T00:00:00Z",
"policy": "notify"
}'get Status da rotação
Consulta o status atual da rotação de um segredo, incluindo política, expiração e dias restantes.
curl https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/sec_abc123/rotation/status \
-H "Authorization: Bearer {token}"get Histórico de rotações
Retorna o histórico completo de rotações do segredo.
curl https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/sec_abc123/rotation/history \
-H "Authorization: Bearer {token}"delete Remover expiração
Remove a política de expiração e rotação de um segredo. Requer admin/owner.
curl -X DELETE https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/sec_abc123/expiration \
-H "Authorization: Bearer {token}"get Segredos expirando
Lista todos os segredos do projeto que estão próximos da expiração.
| Parâmetro | Tipo | Descrição |
|---|---|---|
days | integer | Dias até a expiração (padrão: 30) |
curl "https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/secrets/expiring?days=30" \
-H "Authorization: Bearer {token}"Configurações de alertas do projeto
Owners e admins podem configurar alertas de expiração nos canais in-app, email e webhook. Developers e viewers não recebem esses alertas nem podem alterar as configurações.
get Consultar configurações
curl https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/alert-settings \
-H "Authorization: Bearer {token}"patch Atualizar configurações
Omitir um campo preserva seu valor. Envie webhook_url: nullexplicitamente para remover o webhook. O URL completo nunca retorna ao cliente e é cifrado em repouso.
curl -X PATCH https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/alert-settings \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"default_notify_days_before": 7,
"channels": { "in_app": true, "email": true, "webhook": false }
}'post Testar webhook
Usa somente o webhook salvo e envia um evento sintético compayload_version: 1 e test: true. O teste não altera a expiração nem last_notified_at.
curl -X POST https://criptenv-api.77mdevseven.tech/api/v1/projects/{pid}/alert-settings/test-webhook \
-H "Authorization: Bearer {token}"Info
email_verified=true. Cada entrega tem identidade única, fencing token e até três tentativas compartilhadas. Falhas ficam elegíveis para retry; email e webhook são at-least-once após crashes e webhooks usam uma chave de idempotência estável. O payload contém apenas identificadores, nomes, expiração, dias restantes e link de ação: nunca plaintext, ciphertext, IV, tag, senha ou credenciais.Por secret:
notify_days_before explícito no secret vence o default do projeto. O default (7 dias) só é aplicado ao criar uma expiração sem esse campo; alterar o default não reescreve expirações existentes.