Quero que o sistema possua um endpoint que forneça o status atualizado das dependências críticas,
Para que os times de desenvolvimento e operações possam monitorar a saúde do sistema em tempo real.
Critérios de Aceitação:
Endpoint Disponível:
O endpoint deve estar disponível em /api/v1/status.
Formato da Resposta:
A resposta deve ser em formato JSON e seguir a estrutura abaixo:
{
"updated_at": "<timestamp>",
"dependencies": {
"database": {
"status": "healthy",
"max_connections": <número máximo de conexões permitidas>,
"opened_connections": <número de conexões abertas no momento>,
"version": "<versão do banco de dados>"
}
}
}
Informações Atualizadas:
O campo "updated_at" deve refletir a data e hora em UTC do momento em que a consulta foi realizada.
Status das Dependências:
O sistema deve verificar o status das dependências críticas, começando pelo banco de dados, e incluir essas informações na resposta.
O campo "status" deve indicar se o banco de dados está "healthy" (saudável) ou "unhealthy" (não saudável).
Resiliência e Disponibilidade:
O endpoint deve ser resiliente e deve retornar uma resposta mesmo se uma ou mais dependências estiverem indisponíveis.
Se uma dependência estiver indisponível, o campo "status" deve ser "unhealthy" e deve haver uma mensagem apropriada explicando a falha.
Performance:
O tempo de resposta do endpoint deve ser inferior a 200ms em 95% das requisições.
Segurança:
O endpoint deve estar protegido e acessível apenas para usuários autenticados e autorizados.
Documentação:
A API deve ser documentada no Swagger (ou outra ferramenta de documentação utilizada), incluindo exemplos de requisição e resposta.
Quero que o sistema possua um endpoint que forneça o status atualizado das dependências críticas, Para que os times de desenvolvimento e operações possam monitorar a saúde do sistema em tempo real.
Critérios de Aceitação:
Endpoint Disponível:
O endpoint deve estar disponível em
/api/v1/status
. Formato da Resposta:A resposta deve ser em formato JSON e seguir a estrutura abaixo:
Informações Atualizadas:
O campo "updated_at" deve refletir a data e hora em UTC do momento em que a consulta foi realizada.
Status das Dependências:
O sistema deve verificar o status das dependências críticas, começando pelo banco de dados, e incluir essas informações na resposta. O campo "status" deve indicar se o banco de dados está "healthy" (saudável) ou "unhealthy" (não saudável).
Resiliência e Disponibilidade:
O endpoint deve ser resiliente e deve retornar uma resposta mesmo se uma ou mais dependências estiverem indisponíveis. Se uma dependência estiver indisponível, o campo "status" deve ser "unhealthy" e deve haver uma mensagem apropriada explicando a falha.
Performance:
O tempo de resposta do endpoint deve ser inferior a 200ms em 95% das requisições.
Segurança:
O endpoint deve estar protegido e acessível apenas para usuários autenticados e autorizados.
Documentação:
A API deve ser documentada no Swagger (ou outra ferramenta de documentação utilizada), incluindo exemplos de requisição e resposta.