Security: no rollback/forward-fix decision tree covering frontend, indexer, contract, and chain dependency incident types [SEC-H09] #445
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#445
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
No runbook in
docs/runbooks/documents a rollback or forward-fix decision tree covering the four incident types required by the checklist.docs/runbooks/launch-checklist.mdrollback section (2 lines) says only "pause via factory" and "CosmWasm upgrades are out of band."docs/runbooks/wasm-admin-migration.mdcovers migration steps but not rollback decisions. Neither document tells an operator: when to rollback vs forward-fix for a frontend bug, how to rollback an indexer to a previous binary and run down.sql, when a contract issue requires migration back vs emergency pause and manual recovery, or how to handle a chain dependency issue (chain upgrade, LCD provider outage, IBC-hooks vulnerability). The four incident types are entirely absent from the incident runbooks as a structured decision surface.What Was Checked
docs/runbooks/launch-checklist.mdlines 177-181: Rollback/incident section. Full text: "CosmWasm upgrades/migrations are out of band for this runbook; document admin keys and wasm migration policy separately. For live incidents: pause via factory if your governance policy allows; communicate hook/pause behavior per security model." No branching by incident type.docs/runbooks/wasm-admin-migration.mdread in full: no Rollback section, no decision criteria for when to rollback vs patch forward.docs/runbooks/emergency-commands.mdread in full: command cookbook for pause, unpause, blacklist, unblacklist. No rollback decision tree.docs/runbooks/blacklist-decision.md: decision tree for when to apply blacklist. Not a deployment rollback decision tree.Expected (per checklist)
A runbook section documents a rollback/forward-fix decision tree covering:
Actual
No such decision tree exists. The launch-checklist.md rollback section is 2 lines and points to "pause via factory" for live incidents with no further branching by incident type.
Evidence
docs/runbooks/launch-checklist.mdlines 177-181: full rollback section is 2 lines with no incident-type branchingSuggested Fix
Add a Rollback and forward-fix decision tree section to
docs/runbooks/launch-checklist.md(or a newdocs/runbooks/rollback-decision.md) covering the four incident types with: symptom or trigger conditions for each type; decision criteria (rollback vs hotfix vs pause-and-wait); rollback path for each type with specific commands; limitations that prevent rollback; and recovery verification steps. Cross-link from launch-checklist.md rollback section, wasm-admin-migration.md, and emergency-commands.md.Verification Checklist
docs/runbooks/launch-checklist.mdrollback sectionLabels
security,pre-launchCc: @PlasticDigits
mentioned in issue #381
mentioned in commit
d5a509b73cmentioned in merge request !976
Went through the SEC-H09 rollback/forward-fix decision tree (
d5a509b7, !976). Solid runbook — checked the content and the commands, not just the structure.make verify-issue-445→ 9/9 PASS. The new docs/runbooks/rollback-decision.md covers all four incident surfaces (frontend / indexer / contract / chain dependency), each with decision criteria, a rollback path with concrete commands, limitations, and recovery verification, plus the top-level mermaid decision tree. Cross-links are wired from launch-checklist, wasm-admin-migration, emergency-commands, the incident template, and security-model.Spot-checked the load-bearing commands against the actual repo, since a wrong command mid-incident is worse than none:
Two things for you before it lands:
#frontend-integration-tests-charts--indexer, but the actual heading is "### Integration Tests (Frontend)" (#integration-tests-frontend) — the file resolves, the fragment doesn't jump. Worth fixing the anchor on the rebase.Content's good to merge / good to close from my side once rebased.
@PlasticDigits
mentioned in commit
9313da2fb4mentioned in commit
6d945d81a8Verification — #445 (SEC-H09)
Verified on
main@96f0f851(includes merge6d945d81— rollback decision tree).Acceptance criteria
docs/runbooks/rollback-decision.md— four## N.sections with mermaid top-level tree### Decision criteria,### Rollback path (commands),### Limitations,### Recovery verificationlaunch-checklist.mdrollback section## Rollback / incidentlinks torollback-decision.md; also cross-linked fromwasm-admin-migration.md,emergency-commands.md,incident-dex-indexer.md,security-model.md,skills/AGENTS_ROLLBACK_DECISION.mdAutomated
Manual spot-checks (load-bearing commands)
indexer/migrations/revert/*.down.sqlfiles exist (incl.20260509160000_limit_order_placement_lifecycle.down.sql)scripts/indexer-reorg-recover.shaccepts--height,--cleanup-derived,--applyemergency-commands.mdanchors#1-pause-a-pair,#2-unpause-a-pair,#quick-pool-triage-sec-g03resolveset_pair_paused/terrad tx wasm migratepatterns match repo conventionsFollow-up (non-blocking)
rollback-decision.mdlinks todocs/testing.md#frontend-integration-tests-charts--indexerbut the heading is### Integration Tests (Frontend)(#integration-tests-frontend). File resolves; fragment does not jump. Worth a one-line anchor fix in a future docs pass.Overall: PASS — closing #445.