RelayGuard será uma plataforma multi-tenant para entrega confiável e observável de webhooks. A Etapa 1 estabeleceu a fundação executável. A Etapa 2 introduz a fronteira de identidade: organizações, usuários, autenticação e isolamento entre tenants.
cp .env.example .env
docker compose up --build -d
docker compose exec api alembic upgrade head
curl --fail http://localhost:8010/health/live
curl --fail http://localhost:8010/health/readyAntes de usar em produção, altere ACCESS_TOKEN_SECRET e as credenciais do
PostgreSQL. O segredo do token deve ter ao menos 32 caracteres.
POST /auth/registercria uma organização e seu proprietário.POST /auth/loginautentica por e-mail e senha.- Envie
Authorization: Bearer <token>aos endpoints protegidos. GET /auth/meretorna o usuário autenticado.GET /organizations/currentretorna a organização do token.PATCH /organizations/currentaltera seu nome, somente como proprietário.GET /userslista apenas usuários da organização atual.POST /userscria um membro, somente como proprietário.POST /auth/logoutrevoga imediatamente os tokens atuais do usuário.
A especificação interativa completa permanece disponível em GET /docs.
A listagem de usuários aceita limit (1 a 100) e offset.
docker compose exec api alembic upgrade head
docker compose --profile quality run --build --rm quality
docker compose --profile quality run --build --rm quality ruff check app tests migrations
docker compose --profile quality run --build --rm quality ruff format --check app tests migrations
docker compose --profile quality run --build --rm quality mypy app testsOs testes usam um PostgreSQL temporário e separado do banco de desenvolvimento.
GET /health/live: confirma que o processo da API está vivo.GET /health/ready: confirma que a API consegue consultar o PostgreSQL.
docs/RELATORIO_ETAPA_01.md: fundação executável.docs/ETAPA_02_ESCOPO.md: identidade e multi-tenancy.
O repositório continua se chamando RelayGuard e usa
https://github.com/flpksh/relayguard. A pasta local pode se chamar rgwh; o
nome do projeto Docker permanece relayguard por COMPOSE_PROJECT_NAME.
A API usa a porta externa 8010 por padrão para poder executar ao mesmo tempo
que o projeto api_cnpj, que usa 8000. Altere HOST_PORT no .env quando
necessário.
Em produção, forneça DATABASE_URL, ACCESS_TOKEN_SECRET e as credenciais por
um gerenciador de segredos.
Para rotacionar a chave JWT sem interromper tokens ainda válidos, configure o
novo valor em ACCESS_TOKEN_SECRET e mantenha temporariamente o anterior em
ACCESS_TOKEN_PREVIOUS_SECRET. Remova o segredo anterior após o prazo máximo dos
tokens.
As orientações de backup, restauração, limites de recursos e recuperação estão em
docs/OPERACAO.md. O script scripts/backup_database.sh cria um backup comprimido
e valida sua integridade.