Config policies (16 files): alert_routing, architecture_pressure, backlog, cost_weights, data_governance, incident_escalation, incident_intelligence, network_allowlist, nodes_registry, observability_sources, rbac_tools_matrix, release_gate, risk_attribution, risk_policy, slo_policy, tool_limits, tools_rollout Ops (22 files): Caddyfile, calendar compose, grafana voice dashboard, deployments/incidents logs, runbooks for alerts/audit/backlog/incidents/sofiia/voice, cron jobs, scripts (alert_triage, audit_cleanup, migrate_*, governance, schedule), task_registry, voice alerts/ha/latency/policy Docs (30+ files): HUMANIZED_STEPAN v2.7-v3 changelogs and runbooks, NODA1/NODA2 status and setup, audit index and traces, backlog, incident, supervisor, tools, voice, opencode, release, risk, aistalk, spacebot Made-with: Cursor
2.3 KiB
2.3 KiB
Release Gate Policy
config/release_gate_policy.yml — централізований конфіг строгості gate-ів для різних профілів деплойменту.
Профілі
| Профіль | Призначення | privacy_watch | cost_watch |
|---|---|---|---|
dev |
Розробка | warn | warn |
staging |
Стейджинг | strict (fail_on error) | warn |
prod |
Продакшн | strict (fail_on error) | warn |
Режими gate-ів
| Режим | Поведінка |
|---|---|
off |
Gate повністю пропускається (не викликається, не виводиться) |
warn |
Gate завжди pass=True; findings → recommendations |
strict |
Gate може заблокувати реліз за умовами fail_on |
Використання
Передати gate_profile у inputs release_check:
{
"gate_profile": "staging",
"run_privacy_watch": true,
"diff_text": "..."
}
strict mode: privacy_watch
Блокує реліз якщо є findings із severity у fail_on:
privacy_watch:
mode: "strict"
fail_on: ["error"] # тільки error-severity блокує; warning = recommendation
Наприклад, DG-SEC-001 (private key) = error → release_check.pass = false.
DG-LOG-001 (sensitive logger) = warning → не блокує у staging/prod.
cost_watch
Завжди warn у всіх профілях — cost spikes ніколи не блокують реліз (тільки recommendations).
Backward compatibility
Якщо gate_profile не переданий → використовується dev (warn для privacy і cost).
Якщо release_gate_policy.yml відсутній → всі gates використовують warn (graceful fallback).
Приклад виводу для staging з error finding
{
"pass": false,
"gates": [
{ "name": "privacy_watch", "status": "pass", "errors": 1,
"top_findings": [{"id": "DG-SEC-001", "severity": "error", ...}],
"recommendations": ["Remove private key from code..."] }
],
"summary": "❌ RELEASE CHECK FAILED. Failed: []. Errors: [].",
"recommendations": ["Remove private key from code..."]
}