Skip to content

fix: zabezpieczenia po review repo (restore confirm, ukryte hasło, deploy tylko na sukces)#4

Merged
mpasternak merged 1 commit into
mainfrom
fix/review-safety-fixes
Jun 1, 2026
Merged

fix: zabezpieczenia po review repo (restore confirm, ukryte hasło, deploy tylko na sukces)#4
mpasternak merged 1 commit into
mainfrom
fix/review-safety-fixes

Conversation

@mpasternak
Copy link
Copy Markdown
Member

Poprawki znalezione podczas review repozytorium. Zakres uzgodniony z właścicielem — pozostałe znaleziska (redis eviction, fallbacki DB-creds, SHA-pinning, SC2086 itd.) świadomie pominięte.

Zmiany

  • C1 — mk/database.mk: restore-db-remove-db-rebuild-db-rm-backup pyta o wpisanie yes przed dropdb --force (escape YES=1, zgodny z istniejącym knobem YES w restore). Wcześniej kasował produkcyjną bazę bez potwierdzenia.
  • H1 — mk/database.mk: @-prefix na 6 liniach z PGPASSWORD=... (db-backup, dbshell-psql, ps-dbserver, restore). Make nie echo-uje już cleartext hasła do terminala/logów CI. (Uwaga: wektor ps aux na hoście pozostaje — argv -e PGPASSWORD= wciąż widoczne; pełne usunięcie wymagałoby .pgpass/stdin, poza zakresem H1.)
  • H2 — scripts/wait-for-build.sh: deploy tylko gdy conclusion == "success"; failure/cancelled/brak-runu → exit 1 zamiast pull + restart. Zmiana zachowania: skrypt kończy się błędem na nieudanym buildzie upstreamu.
  • H3 — docker-compose.workers.yml: usunięty martwy label autoheal: "true" z denorm-queue (healthcheck był zakomentowany, więc autoheal nigdy nie reagował). CLAUDE.md + docs/architektura/healthchecks-autoheal.md zaktualizowane.
  • H6 — tests/test_makefile.sh + .github/workflows/ci.yml: licznik SKIP w podsumowaniu; skip_or_fail() traktuje brak dockera/curla jako FAIL pod BPP_REQUIRE_DOCKER=1, który ustawia linuksowy job CI (macOS/Windows nadal skipują). Koniec cichego „0 failed" na runnerach bez dockera.

Weryfikacja

  • tests/test_makefile.sh: 119 passed, 0 failed, 0 skipped (lokalnie z dockerem).
  • BPP_REQUIRE_DOCKER=1 + ukryte docker/curl z PATH → exit 1, 4 FAIL (gate działa).
  • bash -n na zmienionych skryptach OK; make parsuje mk/database.mk; dry-run C1 potwierdza prompt vs YES=1.
  • mkdocs build --strict nie uruchamiany lokalnie (brak mkdocs) — edycje docs bez nowych linków/nav, gate nienaruszony; docs.yml odpali na push.

🤖 Generated with Claude Code

C1: restore-db-remove-db-rebuild-db-rm-backup pyta o 'yes' przed
    dropdb --force (escape: YES=1) — wczesniej kasowal produkcyjna baze
    bez potwierdzenia.
H1: @-prefix na liniach z PGPASSWORD w db-backup/dbshell-psql/ps-dbserver/
    restore — Make nie echo-uje juz hasla do terminala/logow CI.
H2: wait-for-build.sh deployuje tylko gdy conclusion=success; failure/
    cancelled/brak-runu => exit 1 zamiast pull+restart na nieudanym buildzie.
H3: usuniety martwy label autoheal=true z denorm-queue (healthcheck byl
    zakomentowany, autoheal i tak nigdy nie dzialal); CLAUDE.md + docs
    zaktualizowane (denorm-queue nie jest autoheal-watched).
H6: test_makefile.sh liczy i drukuje SKIP; skip_or_fail() pod
    BPP_REQUIRE_DOCKER=1 traktuje brak srodowiska jako FAIL, a linuksowy
    job CI ustawia ten flag (macOS/Windows nadal skipuja) — koniec
    cichego "0 failed" na runnerach bez dockera.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mpasternak mpasternak merged commit f31dffb into main Jun 1, 2026
5 checks passed
@mpasternak mpasternak deleted the fix/review-safety-fixes branch June 1, 2026 08:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant