docs+infra: corrige status (JWT sem commit/contagem) + versão em DEV
- STATUS-SEGURANCA-E-PRODUCAO.md: a rotação do JWT_SECRET deixa de ser
atribuída ao commit fcf2fb1 (que só remove .env/adiciona .dockerignore) —
passa a constar como ação operacional na VPS, sem commit (segredo não
versionado). Ajusta a contagem: 13 commits da sessão (inclui este doc),
repo ahead 14 de origin/main (o 14º, docs/LEIA, é anterior à sessão).
- dev-build.sh: builda o ambiente de DEV injetando APP_VERSION/GIT_COMMIT/
BUILD_TIME a partir do git (git describe), espelhando o deploy-prod.sh.
/api/version em DEV deixa de mostrar apenas "dev".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# =============================================================================
|
||||
# Build + sobe o ambiente de DEV (porta 8020 / dev.scoreodonto.com) carimbando
|
||||
# a VERSÃO a partir do git — para que /api/version (e o rótulo no app) deixe de
|
||||
# mostrar apenas "dev".
|
||||
#
|
||||
# Uso (NA VPS): ./dev-build.sh
|
||||
#
|
||||
# Diferença p/ produção: a prod consome imagem versionada e injeta a tag em
|
||||
# runtime (deploy-prod.sh). Em DEV buildamos local, então derivamos a versão do
|
||||
# git AQUI (no host, onde o .git existe) e passamos como build-args do compose.
|
||||
# =============================================================================
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
export DOCKER_HOST=unix:///run/user/1000/docker.sock
|
||||
|
||||
# Versão semântica + commit + carimbo de build, derivados do git.
|
||||
# APP_VERSION -> ex.: v1.0.18-16-g6adf353 (tag mais próxima + distância + sha)
|
||||
# GIT_COMMIT -> sha curto
|
||||
export APP_VERSION="$(git describe --tags --always --dirty 2>/dev/null || echo dev)"
|
||||
export GIT_COMMIT="$(git rev-parse --short HEAD 2>/dev/null || echo dev)"
|
||||
export BUILD_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
export APP_ENV="DEV"
|
||||
|
||||
echo "──────────────────────────────────────────────────────────────"
|
||||
echo " Build ScoreOdonto → DEV (porta 8020)"
|
||||
echo " APP_VERSION = $APP_VERSION"
|
||||
echo " GIT_COMMIT = $GIT_COMMIT"
|
||||
echo " BUILD_TIME = $BUILD_TIME"
|
||||
echo "──────────────────────────────────────────────────────────────"
|
||||
|
||||
docker compose up -d --build scoreodonto-backend scoreodonto-frontend nginx
|
||||
|
||||
echo
|
||||
echo -n " versão no ar (DEV): "
|
||||
sleep 8
|
||||
curl -s --max-time 10 http://localhost:8020/api/version || echo "(ainda subindo — confira em alguns segundos)"
|
||||
echo
|
||||
echo "✅ DEV buildado com versão carimbada."
|
||||
@@ -11,7 +11,7 @@
|
||||
### 1. Segredos
|
||||
- **`JWT_SECRET` rotacionado em DEV e PRODUÇÃO** (recriado o backend na VPS1 na mesma tag, sem rebuild;
|
||||
`/api/health` e `/api/version` validados). → **vetor de tomada de conta FECHADO** (o segredo vazado não
|
||||
forja mais tokens). Commit `fcf2fb1`.
|
||||
forja mais tokens). **Ação operacional na VPS1 — sem commit** (o segredo não é versionado).
|
||||
- **`backend/.env` fora do tracking do git** + `backend/.dockerignore` (o Dockerfile fazia `COPY . .` sem
|
||||
`.dockerignore` → segredos iam para dentro da imagem) + `.env.example`. Commits `fcf2fb1`.
|
||||
- **Senhas hardcoded removidas do `docker-compose.yml`**: banco via `SCOREO_DB_PASS` (com `:?` fail-fast);
|
||||
@@ -89,7 +89,11 @@ do frontend, via 3 helpers: `requireCapability`, `requireCapabilityRow`, `requir
|
||||
---
|
||||
|
||||
## Commits locais da sessão (nenhum `push`, exceto JWT já aplicado em prod)
|
||||
> **13 commits desta sessão** (incluindo este documento) ainda **locais**. O repositório está
|
||||
> `ahead 14` de `origin/main` — o 14º (`7c5b199 docs(LEIA)`) é anterior a esta sessão.
|
||||
> A rotação do `JWT_SECRET` **não** está nesta lista (foi ação operacional na VPS, sem commit).
|
||||
```
|
||||
6adf353 docs: status geral de segurança & produção (este documento)
|
||||
f22e30e docs(skills): completa as 62 skills
|
||||
e83af04 docs(skills): biblioteca operacional
|
||||
5b99292 docs: auditoria funcional + estratégica
|
||||
|
||||
Reference in New Issue
Block a user