@howlil/ez-agents 3.5.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +735 -537
- package/agents/ez-architect-agent.md +267 -0
- package/agents/ez-backend-agent.md +303 -0
- package/agents/ez-chief-strategist.md +271 -0
- package/agents/ez-codebase-mapper.md +770 -770
- package/agents/ez-context-manager.md +319 -0
- package/agents/ez-debugger.md +1255 -1255
- package/agents/ez-design-expert.md +347 -0
- package/agents/ez-devops-agent.md +331 -0
- package/agents/ez-executor.md +487 -487
- package/agents/ez-frontend-agent.md +322 -0
- package/agents/ez-phase-researcher.md +553 -553
- package/agents/ez-planner.md +1307 -1307
- package/agents/ez-product-engineer.md +435 -0
- package/agents/ez-project-researcher.md +629 -629
- package/agents/ez-qa-agent.md +320 -0
- package/agents/ez-release-agent.md +333 -333
- package/agents/ez-requirements-agent.md +377 -377
- package/agents/ez-roadmapper.md +650 -650
- package/agents/ez-technical-writer.md +551 -0
- package/agents/ez-ux-expert.md +393 -0
- package/agents/ez-verifier.md +579 -579
- package/bin/guards/autonomy-guard.cjs +346 -0
- package/bin/guards/context-budget-guard.cjs +278 -0
- package/bin/guards/hallucination-guard.cjs +380 -0
- package/bin/guards/hidden-state-guard.cjs +182 -0
- package/bin/guards/team-overhead-guard.cjs +266 -0
- package/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/bin/lib/archetype-detector.cjs +289 -0
- package/bin/lib/assistant-adapter.cjs +361 -0
- package/bin/lib/audit-exec.cjs +175 -0
- package/bin/lib/auth.cjs +176 -0
- package/bin/lib/backup-service.cjs +422 -0
- package/bin/lib/bdd-validator.cjs +622 -0
- package/bin/lib/business-flow-mapper.cjs +429 -0
- package/bin/lib/circuit-breaker.cjs +276 -0
- package/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/bin/lib/codebase-analyzer.cjs +241 -0
- package/bin/lib/commands.cjs +691 -0
- package/bin/lib/config.cjs +236 -0
- package/bin/lib/constraint-extractor.cjs +526 -0
- package/bin/lib/content-scanner.cjs +238 -0
- package/bin/lib/context-cache.cjs +154 -0
- package/bin/lib/context-compressor.cjs +102 -0
- package/bin/lib/context-deduplicator.cjs +105 -0
- package/bin/lib/context-errors.cjs +78 -0
- package/bin/lib/context-manager.cjs +338 -0
- package/bin/lib/context-metadata-tracker.cjs +140 -0
- package/bin/lib/context-relevance-scorer.cjs +99 -0
- package/bin/lib/core.cjs +507 -0
- package/bin/lib/cost-alerts.cjs +174 -0
- package/bin/lib/cost-tracker.cjs +275 -0
- package/bin/lib/crash-recovery.cjs +220 -0
- package/bin/lib/dependency-graph.cjs +319 -0
- package/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/bin/lib/deploy/deploy-status.cjs +74 -0
- package/bin/lib/discussion-synthesizer.cjs +439 -0
- package/bin/lib/error-cache.cjs +114 -0
- package/bin/lib/error-registry.cjs +177 -0
- package/bin/lib/file-access.cjs +207 -0
- package/bin/lib/file-lock.cjs +236 -0
- package/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/bin/lib/finops/cost-reporter.cjs +132 -0
- package/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/bin/lib/finops/spot-manager.cjs +118 -0
- package/bin/lib/framework-detector.cjs +396 -0
- package/bin/lib/frontmatter.cjs +313 -0
- package/bin/lib/fs-utils.cjs +153 -0
- package/bin/lib/gate-executor.cjs +272 -0
- package/bin/lib/gates/README.md +374 -0
- package/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/bin/lib/gates/gate-03-code.cjs +635 -0
- package/bin/lib/gates/gate-04-security.cjs +829 -0
- package/bin/lib/git-errors.cjs +83 -0
- package/bin/lib/git-utils.cjs +321 -0
- package/bin/lib/git-workflow-engine.cjs +1157 -0
- package/bin/lib/health-check.cjs +227 -0
- package/bin/lib/index.cjs +279 -0
- package/bin/lib/init.cjs +725 -0
- package/bin/lib/lock-logger.cjs +194 -0
- package/bin/lib/lock-state.cjs +263 -0
- package/bin/lib/lockfile-validator.cjs +227 -0
- package/bin/lib/log-rotation.cjs +71 -0
- package/bin/lib/logger.cjs +125 -0
- package/bin/lib/memory-compression.cjs +256 -0
- package/bin/lib/milestone.cjs +247 -0
- package/bin/lib/model-provider.cjs +241 -0
- package/bin/lib/package-manager-detector.cjs +203 -0
- package/bin/lib/package-manager-executor.cjs +385 -0
- package/bin/lib/package-manager-service.cjs +216 -0
- package/bin/lib/perf/api-monitor.cjs +88 -0
- package/bin/lib/perf/db-optimizer.cjs +78 -0
- package/bin/lib/perf/frontend-performance.cjs +56 -0
- package/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/bin/lib/perf/perf-baseline.cjs +102 -0
- package/bin/lib/perf/perf-reporter.cjs +117 -0
- package/bin/lib/perf/regression-detector.cjs +92 -0
- package/bin/lib/phase.cjs +963 -0
- package/bin/lib/planning-write.cjs +123 -0
- package/bin/lib/project-reporter.cjs +565 -0
- package/bin/lib/quality-gate.cjs +332 -0
- package/bin/lib/quality-metrics.cjs +324 -0
- package/bin/lib/recovery-manager.cjs +98 -0
- package/bin/lib/release-validator.cjs +617 -0
- package/bin/lib/retry.cjs +119 -0
- package/bin/lib/roadmap.cjs +309 -0
- package/bin/lib/safe-exec.cjs +173 -0
- package/bin/lib/safe-path.cjs +130 -0
- package/bin/lib/security-errors.cjs +62 -0
- package/bin/lib/session-chain.cjs +304 -0
- package/bin/lib/session-errors.cjs +81 -0
- package/bin/lib/session-export.cjs +251 -0
- package/bin/lib/session-import.cjs +262 -0
- package/bin/lib/session-manager.cjs +280 -0
- package/bin/lib/skill-context.cjs +148 -0
- package/bin/lib/skill-matcher.cjs +236 -0
- package/bin/lib/skill-registry.cjs +360 -0
- package/bin/lib/skill-resolver.cjs +449 -0
- package/bin/lib/skill-triggers.cjs +90 -0
- package/bin/lib/skill-validator.cjs +270 -0
- package/bin/lib/skill-versioning.cjs +355 -0
- package/bin/lib/stack-detector.cjs +399 -0
- package/bin/lib/state.cjs +736 -0
- package/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/bin/lib/temp-file.cjs +239 -0
- package/bin/lib/template.cjs +223 -0
- package/bin/lib/test-file-lock.cjs +112 -0
- package/bin/lib/test-graceful.cjs +93 -0
- package/bin/lib/test-logger.cjs +60 -0
- package/bin/lib/test-safe-exec.cjs +38 -0
- package/bin/lib/test-safe-path.cjs +33 -0
- package/bin/lib/test-temp-file.cjs +125 -0
- package/bin/lib/tier-manager.cjs +428 -0
- package/bin/lib/timeout-exec.cjs +63 -0
- package/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/bin/lib/url-fetch.cjs +170 -0
- package/bin/lib/verify.cjs +863 -0
- package/bin/update.js +217 -214
- package/commands/deploy.cjs +53 -0
- package/commands/ez/add-tests.md +41 -41
- package/commands/ez/audit-milestone.md +36 -36
- package/commands/ez/complete-milestone.md +136 -136
- package/commands/ez/discuss-phase.md +90 -90
- package/commands/ez/execute-phase.md +52 -52
- package/commands/ez/help.md +22 -22
- package/commands/ez/map-codebase.md +71 -71
- package/commands/ez/new-milestone.md +44 -44
- package/commands/ez/new-project.md +51 -42
- package/commands/ez/plan-phase.md +53 -53
- package/commands/ez/progress.md +36 -36
- package/commands/ez/quick.md +45 -45
- package/commands/ez/resume-work.md +40 -40
- package/commands/ez/run-phase.md +580 -0
- package/commands/ez/settings.md +36 -36
- package/commands/ez/update.md +37 -37
- package/commands/ez/verify-work.md +402 -38
- package/commands/health-check.cjs +44 -0
- package/commands/rollback.cjs +47 -0
- package/ez-agents/bin/ez-tools.cjs +599 -2
- package/ez-agents/bin/guards/autonomy-guard.cjs +346 -0
- package/ez-agents/bin/guards/context-budget-guard.cjs +247 -0
- package/ez-agents/bin/guards/hallucination-guard.cjs +271 -0
- package/ez-agents/bin/guards/hidden-state-guard.cjs +182 -0
- package/ez-agents/bin/guards/team-overhead-guard.cjs +266 -0
- package/ez-agents/bin/guards/tool-sprawl-guard.cjs +271 -0
- package/ez-agents/bin/lib/analytics/analytics-collector.cjs +86 -0
- package/ez-agents/bin/lib/analytics/analytics-reporter.cjs +130 -0
- package/ez-agents/bin/lib/analytics/cohort-analyzer.cjs +138 -0
- package/ez-agents/bin/lib/analytics/funnel-analyzer.cjs +147 -0
- package/ez-agents/bin/lib/analytics/nps-tracker.cjs +147 -0
- package/ez-agents/bin/lib/archetype-detector.cjs +289 -0
- package/ez-agents/bin/lib/audit-exec.cjs +166 -167
- package/ez-agents/bin/lib/auth.cjs +176 -176
- package/ez-agents/bin/lib/backup-service.cjs +422 -0
- package/ez-agents/bin/lib/bdd-validator.cjs +622 -622
- package/ez-agents/bin/lib/business-flow-mapper.cjs +429 -0
- package/ez-agents/bin/lib/code-complexity-analyzer.cjs +360 -0
- package/ez-agents/bin/lib/codebase-analyzer.cjs +241 -0
- package/ez-agents/bin/lib/commands.cjs +685 -685
- package/ez-agents/bin/lib/config.cjs +41 -1
- package/ez-agents/bin/lib/constraint-extractor.cjs +526 -0
- package/ez-agents/bin/lib/content-scanner.cjs +238 -238
- package/ez-agents/bin/lib/context-cache.cjs +154 -154
- package/ez-agents/bin/lib/context-errors.cjs +71 -71
- package/ez-agents/bin/lib/context-manager.cjs +220 -220
- package/ez-agents/bin/lib/core.cjs +507 -512
- package/ez-agents/bin/lib/cost-tracker.cjs +243 -0
- package/ez-agents/bin/lib/crash-recovery.cjs +172 -0
- package/ez-agents/bin/lib/dependency-graph.cjs +319 -0
- package/ez-agents/bin/lib/deploy/deploy-audit-log.cjs +76 -0
- package/ez-agents/bin/lib/deploy/deploy-detector.cjs +69 -0
- package/ez-agents/bin/lib/deploy/deploy-env-manager.cjs +109 -0
- package/ez-agents/bin/lib/deploy/deploy-health-check.cjs +88 -0
- package/ez-agents/bin/lib/deploy/deploy-pre-flight.cjs +57 -0
- package/ez-agents/bin/lib/deploy/deploy-rollback.cjs +72 -0
- package/ez-agents/bin/lib/deploy/deploy-runner.cjs +97 -0
- package/ez-agents/bin/lib/deploy/deploy-status.cjs +74 -0
- package/ez-agents/bin/lib/file-access.cjs +207 -207
- package/ez-agents/bin/lib/finops/budget-enforcer.cjs +126 -0
- package/ez-agents/bin/lib/finops/cost-reporter.cjs +132 -0
- package/ez-agents/bin/lib/finops/finops-analyzer.cjs +112 -0
- package/ez-agents/bin/lib/finops/spot-manager.cjs +118 -0
- package/ez-agents/bin/lib/framework-detector.cjs +396 -0
- package/ez-agents/bin/lib/frontmatter.cjs +3 -1
- package/ez-agents/bin/lib/gates/README.md +374 -0
- package/ez-agents/bin/lib/gates/gate-01-requirement.cjs +303 -0
- package/ez-agents/bin/lib/gates/gate-02-architecture.cjs +555 -0
- package/ez-agents/bin/lib/gates/gate-03-code.cjs +635 -0
- package/ez-agents/bin/lib/gates/gate-04-security.cjs +829 -0
- package/ez-agents/bin/lib/git-errors.cjs +83 -83
- package/ez-agents/bin/lib/git-utils.cjs +321 -321
- package/ez-agents/bin/lib/git-workflow-engine.cjs +1157 -1157
- package/ez-agents/bin/lib/health-check.cjs +162 -162
- package/ez-agents/bin/lib/index.cjs +2 -8
- package/ez-agents/bin/lib/init.cjs +0 -2
- package/ez-agents/bin/lib/lockfile-validator.cjs +227 -227
- package/ez-agents/bin/lib/log-rotation.cjs +71 -0
- package/ez-agents/bin/lib/logger.cjs +22 -47
- package/ez-agents/bin/lib/memory-compression.cjs +256 -256
- package/ez-agents/bin/lib/package-manager-detector.cjs +203 -203
- package/ez-agents/bin/lib/package-manager-executor.cjs +385 -385
- package/ez-agents/bin/lib/package-manager-service.cjs +216 -216
- package/ez-agents/bin/lib/perf/api-monitor.cjs +88 -0
- package/ez-agents/bin/lib/perf/db-optimizer.cjs +78 -0
- package/ez-agents/bin/lib/perf/frontend-performance.cjs +56 -0
- package/ez-agents/bin/lib/perf/perf-analyzer.cjs +77 -0
- package/ez-agents/bin/lib/perf/perf-baseline.cjs +102 -0
- package/ez-agents/bin/lib/perf/perf-reporter.cjs +117 -0
- package/ez-agents/bin/lib/perf/regression-detector.cjs +92 -0
- package/ez-agents/bin/lib/project-reporter.cjs +502 -0
- package/ez-agents/bin/lib/quality-gate.cjs +332 -0
- package/ez-agents/bin/lib/recovery-manager.cjs +98 -0
- package/ez-agents/bin/lib/release-validator.cjs +617 -614
- package/ez-agents/bin/lib/security-errors.cjs +62 -0
- package/ez-agents/bin/lib/session-chain.cjs +304 -304
- package/ez-agents/bin/lib/session-errors.cjs +81 -81
- package/ez-agents/bin/lib/session-export.cjs +251 -251
- package/ez-agents/bin/lib/session-import.cjs +262 -262
- package/ez-agents/bin/lib/session-manager.cjs +280 -280
- package/ez-agents/bin/lib/skill-context.cjs +148 -0
- package/ez-agents/bin/lib/skill-matcher.cjs +236 -0
- package/ez-agents/bin/lib/skill-registry.cjs +341 -0
- package/ez-agents/bin/lib/skill-resolver.cjs +449 -0
- package/ez-agents/bin/lib/skill-triggers.cjs +90 -0
- package/ez-agents/bin/lib/skill-validator.cjs +270 -0
- package/ez-agents/bin/lib/skill-versioning.cjs +355 -0
- package/ez-agents/bin/lib/stack-detector.cjs +399 -0
- package/ez-agents/bin/lib/tech-debt-analyzer.cjs +309 -0
- package/ez-agents/bin/lib/tier-manager.cjs +428 -428
- package/ez-agents/bin/lib/tradeoff-analyzer.cjs +284 -0
- package/ez-agents/bin/lib/url-fetch.cjs +170 -170
- package/ez-agents/bin/lib/verify.cjs +863 -863
- package/ez-agents/references/decimal-phase-calculation.md +65 -65
- package/ez-agents/references/git-integration.md +248 -248
- package/ez-agents/references/git-planning-commit.md +38 -38
- package/ez-agents/references/metrics-schema.md +118 -118
- package/ez-agents/references/model-profile-resolution.md +34 -34
- package/ez-agents/references/model-profiles.md +93 -93
- package/ez-agents/references/phase-argument-parsing.md +61 -61
- package/ez-agents/references/planning-config.md +340 -340
- package/ez-agents/references/tier-strategy.md +103 -103
- package/ez-agents/references/ui-brand.md +160 -160
- package/ez-agents/references/verification-patterns.md +612 -612
- package/ez-agents/templates/DEBUG.md +164 -164
- package/ez-agents/templates/UAT.md +247 -247
- package/ez-agents/templates/agent-output-format.md +404 -0
- package/ez-agents/templates/bdd-feature.md +173 -173
- package/ez-agents/templates/codebase/architecture.md +255 -255
- package/ez-agents/templates/codebase/structure.md +285 -285
- package/ez-agents/templates/copilot-instructions.md +7 -7
- package/ez-agents/templates/debug-subagent-prompt.md +91 -91
- package/ez-agents/templates/discovery.md +146 -146
- package/ez-agents/templates/discussion.md +68 -68
- package/ez-agents/templates/handoff-protocol.md +294 -0
- package/ez-agents/templates/incident-runbook.md +205 -205
- package/ez-agents/templates/mode-workflow-templates.md +301 -0
- package/ez-agents/templates/phase-prompt.md +610 -610
- package/ez-agents/templates/planner-subagent-prompt.md +117 -117
- package/ez-agents/templates/project.md +184 -184
- package/ez-agents/templates/release-checklist.md +136 -133
- package/ez-agents/templates/research.md +552 -552
- package/ez-agents/templates/rollback-plan.md +201 -201
- package/ez-agents/templates/security-user-setup.md +244 -0
- package/ez-agents/templates/skill-validation-rules.md +476 -0
- package/ez-agents/templates/state.md +180 -176
- package/ez-agents/templates/summary-complex.md +59 -59
- package/ez-agents/tests/gates/gate-01-02.test.cjs +812 -0
- package/ez-agents/tests/gates/gate-03-04.test.cjs +762 -0
- package/ez-agents/tests/gates/gate-05-validator.test.cjs +145 -0
- package/ez-agents/tests/gates/gate-06-docs-validator.test.cjs +244 -0
- package/ez-agents/tests/gates/gate-07-release-validator.test.cjs +219 -0
- package/ez-agents/tests/guards/context-budget-guard.test.cjs +145 -0
- package/ez-agents/tests/guards/edge-case-guards.test.cjs +238 -0
- package/ez-agents/tests/guards/hallucination-guard.test.cjs +124 -0
- package/ez-agents/workflows/audit-milestone.md +1 -1
- package/ez-agents/workflows/autonomous.md +844 -844
- package/ez-agents/workflows/complete-milestone.md +1 -1
- package/ez-agents/workflows/discuss-phase.md +1 -1
- package/ez-agents/workflows/execute-phase.md +124 -3
- package/ez-agents/workflows/help.md +42 -181
- package/ez-agents/workflows/hotfix.md +291 -291
- package/ez-agents/workflows/new-milestone.md +713 -713
- package/ez-agents/workflows/new-project.md +1089 -1107
- package/ez-agents/workflows/plan-phase.md +0 -40
- package/ez-agents/workflows/release.md +253 -253
- package/ez-agents/workflows/resume-session.md +215 -215
- package/ez-agents/workflows/run-phase.md +531 -0
- package/ez-agents/workflows/settings.md +2 -35
- package/hooks/dist/ez-check-update.js +81 -81
- package/hooks/dist/ez-context-monitor.js +148 -141
- package/hooks/dist/ez-statusline.js +115 -115
- package/package.json +78 -71
- package/scripts/fix-qwen-installation.js +144 -144
- package/agents/ez-integration-checker.md +0 -443
- package/agents/ez-nyquist-auditor.md +0 -176
- package/agents/ez-observer-agent.md +0 -260
- package/agents/ez-plan-checker.md +0 -706
- package/agents/ez-research-synthesizer.md +0 -247
- package/agents/ez-scrum-master-agent.md +0 -242
- package/agents/ez-tech-lead-agent.md +0 -267
- package/agents/ez-ui-auditor.md +0 -439
- package/agents/ez-ui-checker.md +0 -300
- package/agents/ez-ui-researcher.md +0 -353
- package/commands/ez/add-phase.md +0 -43
- package/commands/ez/add-todo.md +0 -47
- package/commands/ez/arch-review.md +0 -102
- package/commands/ez/auth.md +0 -87
- package/commands/ez/autonomous.md +0 -41
- package/commands/ez/check-todos.md +0 -45
- package/commands/ez/cleanup.md +0 -18
- package/commands/ez/debug.md +0 -168
- package/commands/ez/export-session.md +0 -79
- package/commands/ez/gather-requirements.md +0 -117
- package/commands/ez/git-workflow.md +0 -72
- package/commands/ez/health.md +0 -22
- package/commands/ez/hotfix.md +0 -120
- package/commands/ez/import-session.md +0 -82
- package/commands/ez/insert-phase.md +0 -32
- package/commands/ez/join-discord.md +0 -18
- package/commands/ez/list-phase-assumptions.md +0 -46
- package/commands/ez/list-sessions.md +0 -96
- package/commands/ez/package-manager.md +0 -316
- package/commands/ez/pause-work.md +0 -38
- package/commands/ez/plan-milestone-gaps.md +0 -34
- package/commands/ez/preflight.md +0 -79
- package/commands/ez/reapply-patches.md +0 -124
- package/commands/ez/release.md +0 -153
- package/commands/ez/remove-phase.md +0 -31
- package/commands/ez/research-phase.md +0 -190
- package/commands/ez/resume.md +0 -107
- package/commands/ez/set-profile.md +0 -34
- package/commands/ez/standup.md +0 -85
- package/commands/ez/stats.md +0 -18
- package/commands/ez/ui-phase.md +0 -34
- package/commands/ez/ui-review.md +0 -32
- package/commands/ez/validate-phase.md +0 -35
- package/ez-agents/bin/lib/metrics-tracker.cjs +0 -406
- package/ez-agents/templates/UI-SPEC.md +0 -100
- package/ez-agents/templates/VALIDATION.md +0 -76
- package/ez-agents/templates/context.md +0 -352
- package/ez-agents/templates/verification-report.md +0 -322
- package/ez-agents/workflows/arch-review.md +0 -54
- package/ez-agents/workflows/export-session.md +0 -255
- package/ez-agents/workflows/gather-requirements.md +0 -206
- package/ez-agents/workflows/import-session.md +0 -303
- package/ez-agents/workflows/research-phase.md +0 -74
- package/ez-agents/workflows/standup.md +0 -64
- package/ez-agents/workflows/ui-phase.md +0 -290
- package/ez-agents/workflows/ui-review.md +0 -157
- package/ez-agents/workflows/validate-phase.md +0 -167
|
@@ -1,201 +1,201 @@
|
|
|
1
|
-
# Rollback Plan: v{version}
|
|
2
|
-
|
|
3
|
-
**Released:** {date}
|
|
4
|
-
**Tier:** {tier}
|
|
5
|
-
**Previous version:** {previous_version}
|
|
6
|
-
**Previous tag:** {previous_tag}
|
|
7
|
-
**Author:** EZ Agents release-agent
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Rollback Decision Criteria
|
|
12
|
-
|
|
13
|
-
Roll back **immediately** if any of the following occur within {rollback_window} of release:
|
|
14
|
-
|
|
15
|
-
### MVP Tier (30-minute window)
|
|
16
|
-
- [ ] Application fails to start
|
|
17
|
-
- [ ] Error rate exceeds 20%
|
|
18
|
-
- [ ] Health endpoint returns non-200
|
|
19
|
-
- [ ] Critical functionality broken (login, core user flow)
|
|
20
|
-
|
|
21
|
-
### Medium Tier (15-minute window)
|
|
22
|
-
- All MVP criteria plus:
|
|
23
|
-
- [ ] Error rate increases >5% above pre-release baseline
|
|
24
|
-
- [ ] P95 response time increases >200ms
|
|
25
|
-
- [ ] Payment/auth system errors
|
|
26
|
-
|
|
27
|
-
### Enterprise Tier (5-minute window)
|
|
28
|
-
- All Medium criteria plus:
|
|
29
|
-
- [ ] Any SLA breach
|
|
30
|
-
- [ ] Any compliance-related failure
|
|
31
|
-
- [ ] Security alert triggered
|
|
32
|
-
- [ ] Data integrity issue detected
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Rollback Procedure
|
|
37
|
-
|
|
38
|
-
### Step 1: Decision (T+0)
|
|
39
|
-
|
|
40
|
-
Whoever observes a rollback trigger calls rollback immediately.
|
|
41
|
-
|
|
42
|
-
**Do NOT wait** to gather more data. Roll back, then investigate.
|
|
43
|
-
|
|
44
|
-
Contact: {oncall_contact or "N/A"}
|
|
45
|
-
|
|
46
|
-
### Step 2: Application Rollback (T+2 minutes)
|
|
47
|
-
|
|
48
|
-
Choose rollback method based on deployment platform:
|
|
49
|
-
|
|
50
|
-
**Vercel:**
|
|
51
|
-
```bash
|
|
52
|
-
vercel rollback
|
|
53
|
-
# Or use Vercel dashboard → Deployments → select previous → Promote
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
**Netlify:**
|
|
57
|
-
```bash
|
|
58
|
-
# Netlify dashboard → Deploys → select previous deploy → Publish deploy
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**Railway:**
|
|
62
|
-
```bash
|
|
63
|
-
# Railway dashboard → Deployments → select previous → Rollback
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Heroku:**
|
|
67
|
-
```bash
|
|
68
|
-
heroku releases
|
|
69
|
-
heroku rollback v{previous_release_number}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Generic (git-based deploy):**
|
|
73
|
-
```bash
|
|
74
|
-
git revert HEAD --no-edit
|
|
75
|
-
git push origin main
|
|
76
|
-
# Triggers your CI/CD to redeploy previous version
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Docker:**
|
|
80
|
-
```bash
|
|
81
|
-
docker pull {registry}/{image}:{previous_version}
|
|
82
|
-
docker tag {registry}/{image}:{previous_version} {registry}/{image}:latest
|
|
83
|
-
docker push {registry}/{image}:latest
|
|
84
|
-
# Restart containers
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Step 3: Database Rollback (if applicable)
|
|
88
|
-
|
|
89
|
-
{If database migrations were run:}
|
|
90
|
-
|
|
91
|
-
**Check if rollback is needed:**
|
|
92
|
-
Was a database migration applied as part of this release? Check migration history:
|
|
93
|
-
```bash
|
|
94
|
-
npx prisma migrate status 2>/dev/null
|
|
95
|
-
# Or: cat .planning/releases/v{version}-migrations.md
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
**If migration must be rolled back:**
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# Prisma
|
|
102
|
-
npx prisma migrate resolve --rolled-back {migration_name}
|
|
103
|
-
|
|
104
|
-
# Django
|
|
105
|
-
python manage.py migrate {app_name} {previous_migration}
|
|
106
|
-
|
|
107
|
-
# Rails
|
|
108
|
-
rails db:rollback STEP=1
|
|
109
|
-
|
|
110
|
-
# Flyway
|
|
111
|
-
flyway undo
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
**WARNING:** Only roll back migrations if the data model change is backward-compatible OR no new data has been written. When in doubt: roll back application first, keep database as-is, hotfix forward.
|
|
115
|
-
|
|
116
|
-
### Step 4: Verify Rollback (T+5 minutes)
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
# Check health
|
|
120
|
-
curl -f https://{your-domain}/health || echo "HEALTH_CHECK_FAILED"
|
|
121
|
-
|
|
122
|
-
# Check error rate
|
|
123
|
-
# View in your monitoring dashboard — should return to pre-release baseline
|
|
124
|
-
|
|
125
|
-
# Smoke test key flows
|
|
126
|
-
# 1. Visit {your-domain}
|
|
127
|
-
# 2. Log in with test account
|
|
128
|
-
# 3. Perform core user action
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
Expected state after successful rollback:
|
|
132
|
-
- Application responds to all requests
|
|
133
|
-
- Error rate returns to pre-release baseline
|
|
134
|
-
- Health endpoint returns 200
|
|
135
|
-
- Core user flows work
|
|
136
|
-
|
|
137
|
-
### Step 5: Post-Rollback Communication
|
|
138
|
-
|
|
139
|
-
Notify relevant parties (team, users if customer-facing):
|
|
140
|
-
|
|
141
|
-
```
|
|
142
|
-
[Status Update]
|
|
143
|
-
We rolled back v{version} due to [brief description].
|
|
144
|
-
Service is restored. Root cause investigation in progress.
|
|
145
|
-
ETA for fix: [estimate]
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Step 6: Post-Mortem
|
|
149
|
-
|
|
150
|
-
After rollback is complete and service is stable:
|
|
151
|
-
|
|
152
|
-
1. **Root cause analysis** — What caused the issue?
|
|
153
|
-
2. **Timeline** — When detected, when rolled back, total impact duration
|
|
154
|
-
3. **Fix plan** — How to fix before re-releasing
|
|
155
|
-
4. **Process improvement** — What check could have caught this?
|
|
156
|
-
|
|
157
|
-
Write post-mortem to: `.planning/releases/v{version}-POSTMORTEM.md`
|
|
158
|
-
|
|
159
|
-
Update CHANGELOG.md:
|
|
160
|
-
```markdown
|
|
161
|
-
## [v{version}] — ROLLED BACK
|
|
162
|
-
Released {date}, rolled back {rollback_date}.
|
|
163
|
-
Reason: {brief reason}
|
|
164
|
-
Fix scheduled for v{next_version}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Forward Fix Procedure
|
|
170
|
-
|
|
171
|
-
After rolling back, create a hotfix:
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
/ez:hotfix start {fix-description}
|
|
175
|
-
# Make the fix
|
|
176
|
-
/ez:hotfix complete {fix-description} {new_version}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Or plan a new phase if the fix is larger:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
/ez:plan-phase {next_phase} --gaps
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Emergency Contacts
|
|
188
|
-
|
|
189
|
-
{Fill in before going to production:}
|
|
190
|
-
|
|
191
|
-
| Role | Contact | When to Call |
|
|
192
|
-
|------|---------|--------------|
|
|
193
|
-
| On-call developer | {name/handle} | Any rollback decision |
|
|
194
|
-
| Database admin | {name/handle} | If DB rollback needed |
|
|
195
|
-
| Customer success | {name/handle} | If customer impact >5 min |
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
*Generated by EZ Agents release-agent*
|
|
200
|
-
*Release: v{version} — {tier} tier*
|
|
201
|
-
*Created: {timestamp}*
|
|
1
|
+
# Rollback Plan: v{version}
|
|
2
|
+
|
|
3
|
+
**Released:** {date}
|
|
4
|
+
**Tier:** {tier}
|
|
5
|
+
**Previous version:** {previous_version}
|
|
6
|
+
**Previous tag:** {previous_tag}
|
|
7
|
+
**Author:** EZ Agents release-agent
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Rollback Decision Criteria
|
|
12
|
+
|
|
13
|
+
Roll back **immediately** if any of the following occur within {rollback_window} of release:
|
|
14
|
+
|
|
15
|
+
### MVP Tier (30-minute window)
|
|
16
|
+
- [ ] Application fails to start
|
|
17
|
+
- [ ] Error rate exceeds 20%
|
|
18
|
+
- [ ] Health endpoint returns non-200
|
|
19
|
+
- [ ] Critical functionality broken (login, core user flow)
|
|
20
|
+
|
|
21
|
+
### Medium Tier (15-minute window)
|
|
22
|
+
- All MVP criteria plus:
|
|
23
|
+
- [ ] Error rate increases >5% above pre-release baseline
|
|
24
|
+
- [ ] P95 response time increases >200ms
|
|
25
|
+
- [ ] Payment/auth system errors
|
|
26
|
+
|
|
27
|
+
### Enterprise Tier (5-minute window)
|
|
28
|
+
- All Medium criteria plus:
|
|
29
|
+
- [ ] Any SLA breach
|
|
30
|
+
- [ ] Any compliance-related failure
|
|
31
|
+
- [ ] Security alert triggered
|
|
32
|
+
- [ ] Data integrity issue detected
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Rollback Procedure
|
|
37
|
+
|
|
38
|
+
### Step 1: Decision (T+0)
|
|
39
|
+
|
|
40
|
+
Whoever observes a rollback trigger calls rollback immediately.
|
|
41
|
+
|
|
42
|
+
**Do NOT wait** to gather more data. Roll back, then investigate.
|
|
43
|
+
|
|
44
|
+
Contact: {oncall_contact or "N/A"}
|
|
45
|
+
|
|
46
|
+
### Step 2: Application Rollback (T+2 minutes)
|
|
47
|
+
|
|
48
|
+
Choose rollback method based on deployment platform:
|
|
49
|
+
|
|
50
|
+
**Vercel:**
|
|
51
|
+
```bash
|
|
52
|
+
vercel rollback
|
|
53
|
+
# Or use Vercel dashboard → Deployments → select previous → Promote
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Netlify:**
|
|
57
|
+
```bash
|
|
58
|
+
# Netlify dashboard → Deploys → select previous deploy → Publish deploy
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Railway:**
|
|
62
|
+
```bash
|
|
63
|
+
# Railway dashboard → Deployments → select previous → Rollback
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Heroku:**
|
|
67
|
+
```bash
|
|
68
|
+
heroku releases
|
|
69
|
+
heroku rollback v{previous_release_number}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Generic (git-based deploy):**
|
|
73
|
+
```bash
|
|
74
|
+
git revert HEAD --no-edit
|
|
75
|
+
git push origin main
|
|
76
|
+
# Triggers your CI/CD to redeploy previous version
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Docker:**
|
|
80
|
+
```bash
|
|
81
|
+
docker pull {registry}/{image}:{previous_version}
|
|
82
|
+
docker tag {registry}/{image}:{previous_version} {registry}/{image}:latest
|
|
83
|
+
docker push {registry}/{image}:latest
|
|
84
|
+
# Restart containers
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 3: Database Rollback (if applicable)
|
|
88
|
+
|
|
89
|
+
{If database migrations were run:}
|
|
90
|
+
|
|
91
|
+
**Check if rollback is needed:**
|
|
92
|
+
Was a database migration applied as part of this release? Check migration history:
|
|
93
|
+
```bash
|
|
94
|
+
npx prisma migrate status 2>/dev/null
|
|
95
|
+
# Or: cat .planning/releases/v{version}-migrations.md
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**If migration must be rolled back:**
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Prisma
|
|
102
|
+
npx prisma migrate resolve --rolled-back {migration_name}
|
|
103
|
+
|
|
104
|
+
# Django
|
|
105
|
+
python manage.py migrate {app_name} {previous_migration}
|
|
106
|
+
|
|
107
|
+
# Rails
|
|
108
|
+
rails db:rollback STEP=1
|
|
109
|
+
|
|
110
|
+
# Flyway
|
|
111
|
+
flyway undo
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**WARNING:** Only roll back migrations if the data model change is backward-compatible OR no new data has been written. When in doubt: roll back application first, keep database as-is, hotfix forward.
|
|
115
|
+
|
|
116
|
+
### Step 4: Verify Rollback (T+5 minutes)
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Check health
|
|
120
|
+
curl -f https://{your-domain}/health || echo "HEALTH_CHECK_FAILED"
|
|
121
|
+
|
|
122
|
+
# Check error rate
|
|
123
|
+
# View in your monitoring dashboard — should return to pre-release baseline
|
|
124
|
+
|
|
125
|
+
# Smoke test key flows
|
|
126
|
+
# 1. Visit {your-domain}
|
|
127
|
+
# 2. Log in with test account
|
|
128
|
+
# 3. Perform core user action
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Expected state after successful rollback:
|
|
132
|
+
- Application responds to all requests
|
|
133
|
+
- Error rate returns to pre-release baseline
|
|
134
|
+
- Health endpoint returns 200
|
|
135
|
+
- Core user flows work
|
|
136
|
+
|
|
137
|
+
### Step 5: Post-Rollback Communication
|
|
138
|
+
|
|
139
|
+
Notify relevant parties (team, users if customer-facing):
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
[Status Update]
|
|
143
|
+
We rolled back v{version} due to [brief description].
|
|
144
|
+
Service is restored. Root cause investigation in progress.
|
|
145
|
+
ETA for fix: [estimate]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Step 6: Post-Mortem
|
|
149
|
+
|
|
150
|
+
After rollback is complete and service is stable:
|
|
151
|
+
|
|
152
|
+
1. **Root cause analysis** — What caused the issue?
|
|
153
|
+
2. **Timeline** — When detected, when rolled back, total impact duration
|
|
154
|
+
3. **Fix plan** — How to fix before re-releasing
|
|
155
|
+
4. **Process improvement** — What check could have caught this?
|
|
156
|
+
|
|
157
|
+
Write post-mortem to: `.planning/releases/v{version}-POSTMORTEM.md`
|
|
158
|
+
|
|
159
|
+
Update CHANGELOG.md:
|
|
160
|
+
```markdown
|
|
161
|
+
## [v{version}] — ROLLED BACK
|
|
162
|
+
Released {date}, rolled back {rollback_date}.
|
|
163
|
+
Reason: {brief reason}
|
|
164
|
+
Fix scheduled for v{next_version}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Forward Fix Procedure
|
|
170
|
+
|
|
171
|
+
After rolling back, create a hotfix:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
/ez:hotfix start {fix-description}
|
|
175
|
+
# Make the fix
|
|
176
|
+
/ez:hotfix complete {fix-description} {new_version}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Or plan a new phase if the fix is larger:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
/ez:plan-phase {next_phase} --gaps
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Emergency Contacts
|
|
188
|
+
|
|
189
|
+
{Fill in before going to production:}
|
|
190
|
+
|
|
191
|
+
| Role | Contact | When to Call |
|
|
192
|
+
|------|---------|--------------|
|
|
193
|
+
| On-call developer | {name/handle} | Any rollback decision |
|
|
194
|
+
| Database admin | {name/handle} | If DB rollback needed |
|
|
195
|
+
| Customer success | {name/handle} | If customer impact >5 min |
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
*Generated by EZ Agents release-agent*
|
|
200
|
+
*Release: v{version} — {tier} tier*
|
|
201
|
+
*Created: {timestamp}*
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# Security Operations User Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide covers manual setup steps and human-action checkpoints for Security Operations workflows.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
### Docker for Security Scanning
|
|
10
|
+
|
|
11
|
+
Security scans use OWASP ZAP via Docker. Install Docker Desktop:
|
|
12
|
+
|
|
13
|
+
- **Windows:** https://docs.docker.com/desktop/install/windows-install/
|
|
14
|
+
- **macOS:** https://docs.docker.com/desktop/install/mac-install/
|
|
15
|
+
- **Linux:** https://docs.docker.com/engine/install/
|
|
16
|
+
|
|
17
|
+
Verify installation:
|
|
18
|
+
```bash
|
|
19
|
+
docker --version
|
|
20
|
+
docker run hello-world
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Cloud Credentials
|
|
26
|
+
|
|
27
|
+
### AWS Credentials
|
|
28
|
+
|
|
29
|
+
For AWS WAF and Secrets Manager operations:
|
|
30
|
+
|
|
31
|
+
1. **Create IAM User** (if not exists):
|
|
32
|
+
```bash
|
|
33
|
+
aws iam create-user --user-name ez-security-automation
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
2. **Attach Policies**:
|
|
37
|
+
- `AWSWAF_FullAccess` (for WAF management)
|
|
38
|
+
- `SecretsManagerReadWrite` (for secret rotation)
|
|
39
|
+
|
|
40
|
+
3. **Create Access Key**:
|
|
41
|
+
```bash
|
|
42
|
+
aws iam create-access-key --user-name ez-security-automation
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
4. **Store Credentials Securely**:
|
|
46
|
+
```bash
|
|
47
|
+
# macOS Keychain
|
|
48
|
+
security add-generic-password -s "ez-agents" -a "aws-access-key" -w "YOUR_ACCESS_KEY"
|
|
49
|
+
security add-generic-password -s "ez-agents" -a "aws-secret-key" -w "YOUR_SECRET_KEY"
|
|
50
|
+
|
|
51
|
+
# Or use environment variables (temporary)
|
|
52
|
+
export AWS_ACCESS_KEY_ID="..."
|
|
53
|
+
export AWS_SECRET_ACCESS_KEY="..."
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Cloudflare Credentials
|
|
57
|
+
|
|
58
|
+
For Cloudflare WAF operations:
|
|
59
|
+
|
|
60
|
+
1. **Generate API Token**:
|
|
61
|
+
- Go to Cloudflare Dashboard → Profile → API Tokens
|
|
62
|
+
- Create token with `Zone` → `WAF` → `Edit` permissions
|
|
63
|
+
|
|
64
|
+
2. **Store Securely**:
|
|
65
|
+
```bash
|
|
66
|
+
# macOS Keychain
|
|
67
|
+
security add-generic-password -s "ez-agents" -a "cloudflare-api-token" -w "YOUR_TOKEN"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Dashboard-Only WAF Steps
|
|
73
|
+
|
|
74
|
+
Some WAF configurations require manual dashboard interaction:
|
|
75
|
+
|
|
76
|
+
### AWS WAF
|
|
77
|
+
|
|
78
|
+
1. **Navigate to AWS WAF Console**:
|
|
79
|
+
https://console.aws.amazon.com/wafv2/
|
|
80
|
+
|
|
81
|
+
2. **Select Web ACL**:
|
|
82
|
+
- Choose your application's Web ACL
|
|
83
|
+
- Review current rules
|
|
84
|
+
|
|
85
|
+
3. **Add Rate-Based Rule**:
|
|
86
|
+
- Click "Add rules" → "Create rule"
|
|
87
|
+
- Select "Rate-based rule"
|
|
88
|
+
- Configure:
|
|
89
|
+
- Name: `RateLimit-Auth`
|
|
90
|
+
- Limit: 2000 requests per 5 minutes
|
|
91
|
+
- Aggregate key type: IP
|
|
92
|
+
|
|
93
|
+
4. **Enable Logging**:
|
|
94
|
+
- Go to "Logging" tab
|
|
95
|
+
- Click "Add logging"
|
|
96
|
+
- Select Kinesis Data Firehose or S3 bucket
|
|
97
|
+
|
|
98
|
+
### Cloudflare WAF
|
|
99
|
+
|
|
100
|
+
1. **Navigate to Cloudflare Dashboard**:
|
|
101
|
+
https://dash.cloudflare.com/
|
|
102
|
+
|
|
103
|
+
2. **Select Domain** → **Security** → **WAF**
|
|
104
|
+
|
|
105
|
+
3. **Create Custom Rule**:
|
|
106
|
+
- Click "Create rule"
|
|
107
|
+
- Name: `Rate Limit Login`
|
|
108
|
+
- Field: `URI Path` → `Equals` → `/login`
|
|
109
|
+
- Choose rate limiting threshold
|
|
110
|
+
- Action: `Block` or `Managed Challenge`
|
|
111
|
+
|
|
112
|
+
4. **Enable Bot Fight Mode** (if available):
|
|
113
|
+
- Security → Bots
|
|
114
|
+
- Toggle "Bot Fight Mode" to On
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Break-Glass / Manual Rotation Steps
|
|
119
|
+
|
|
120
|
+
### Emergency Secret Rotation
|
|
121
|
+
|
|
122
|
+
When automated rotation fails or during security incidents:
|
|
123
|
+
|
|
124
|
+
1. **Identify Compromised Secret**:
|
|
125
|
+
```
|
|
126
|
+
Secret ID: _______________
|
|
127
|
+
Systems Affected: _______________
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
2. **Generate New Secret**:
|
|
131
|
+
- Use password manager or secure generator
|
|
132
|
+
- Minimum 32 characters, mixed case, numbers, symbols
|
|
133
|
+
|
|
134
|
+
3. **Update All Systems**:
|
|
135
|
+
- List all systems using this secret:
|
|
136
|
+
```
|
|
137
|
+
1. _______________
|
|
138
|
+
2. _______________
|
|
139
|
+
3. _______________
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
4. **Verify Functionality**:
|
|
143
|
+
- Test each system with new secret
|
|
144
|
+
- Monitor logs for authentication failures
|
|
145
|
+
|
|
146
|
+
5. **Revoke Old Secret**:
|
|
147
|
+
- Delete or disable old credential
|
|
148
|
+
- Document revocation time
|
|
149
|
+
|
|
150
|
+
6. **Post-Incident Review**:
|
|
151
|
+
- Schedule post-mortem within 48 hours
|
|
152
|
+
- Update runbooks with lessons learned
|
|
153
|
+
|
|
154
|
+
### Break-Glass Access
|
|
155
|
+
|
|
156
|
+
For emergency access when normal authentication fails:
|
|
157
|
+
|
|
158
|
+
1. **Contact Security Team**:
|
|
159
|
+
- Primary: _______________
|
|
160
|
+
- Secondary: _______________
|
|
161
|
+
|
|
162
|
+
2. **Document Justification**:
|
|
163
|
+
```
|
|
164
|
+
Reason for break-glass: _______________
|
|
165
|
+
Requested by: _______________
|
|
166
|
+
Approved by: _______________
|
|
167
|
+
Time: _______________
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
3. **Use Emergency Credentials**:
|
|
171
|
+
- Retrieve from secure storage (e.g., physical safe, separate vault)
|
|
172
|
+
- Use for minimum time necessary
|
|
173
|
+
- Rotate immediately after use
|
|
174
|
+
|
|
175
|
+
4. **Post-Use Actions**:
|
|
176
|
+
- Change all break-glass credentials
|
|
177
|
+
- File incident report
|
|
178
|
+
- Review access logs
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Audit Log Configuration
|
|
183
|
+
|
|
184
|
+
### Enable Audit Logging
|
|
185
|
+
|
|
186
|
+
For compliance and security monitoring:
|
|
187
|
+
|
|
188
|
+
1. **Configure Log Destination**:
|
|
189
|
+
- S3 bucket for long-term storage
|
|
190
|
+
- CloudWatch Logs for real-time monitoring
|
|
191
|
+
- SIEM integration (if available)
|
|
192
|
+
|
|
193
|
+
2. **Set Retention Policy**:
|
|
194
|
+
- Minimum: 90 days online
|
|
195
|
+
- Archive: 7 years for compliance
|
|
196
|
+
|
|
197
|
+
3. **Configure Alerts**:
|
|
198
|
+
- Failed authentication attempts (>5 in 5 minutes)
|
|
199
|
+
- Privilege escalation events
|
|
200
|
+
- Secret rotation failures
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Compliance Evidence Collection
|
|
205
|
+
|
|
206
|
+
### For Audits
|
|
207
|
+
|
|
208
|
+
Maintain these artifacts:
|
|
209
|
+
|
|
210
|
+
| Artifact | Location | Owner |
|
|
211
|
+
|----------|----------|-------|
|
|
212
|
+
| Security scan reports | `.planning/security/scans/` | Security Team |
|
|
213
|
+
| Secret rotation logs | `.planning/security/rotations/` | Security Team |
|
|
214
|
+
| RBAC manifests | `.planning/security/access/` | Security Team |
|
|
215
|
+
| Compliance checklists | `.planning/security/evidence/` | Compliance Team |
|
|
216
|
+
|
|
217
|
+
### Evidence Retention
|
|
218
|
+
|
|
219
|
+
- **GDPR**: Keep for duration of processing + 3 years
|
|
220
|
+
- **HIPAA**: Minimum 6 years
|
|
221
|
+
- **SOC 2**: Minimum 1 year (3 recommended)
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Troubleshooting
|
|
226
|
+
|
|
227
|
+
### Common Issues
|
|
228
|
+
|
|
229
|
+
| Issue | Cause | Resolution |
|
|
230
|
+
|-------|-------|------------|
|
|
231
|
+
| Docker scan fails | Docker not running | Start Docker Desktop |
|
|
232
|
+
| AWS permission denied | Missing IAM policy | Attach required policies |
|
|
233
|
+
| Cloudflare API error | Invalid token | Regenerate API token |
|
|
234
|
+
| Secret rotation fails | Secret in use | Schedule maintenance window |
|
|
235
|
+
|
|
236
|
+
### Getting Help
|
|
237
|
+
|
|
238
|
+
- **Documentation**: `.planning/phases/23-security-operations/`
|
|
239
|
+
- **Templates**: `ez-agents/templates/security-*`
|
|
240
|
+
- **Incident Runbook**: `ez-agents/templates/incident-runbook.md`
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
*Guide Version: 1.0 | Last Updated: 2026-03-20*
|