Files
microdao-daarion/docs/release/release_gate_policy.md
Apple 67225a39fa docs(platform): add policy configs, runbooks, ops scripts and platform documentation
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
2026-03-03 07:14:53 -08:00

69 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
```json
{
"gate_profile": "staging",
"run_privacy_watch": true,
"diff_text": "..."
}
```
## strict mode: privacy_watch
Блокує реліз якщо є findings із severity у `fail_on`:
```yaml
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
```json
{
"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..."]
}
```