Skip to content

Add production change confirmation for flags and values - #78

Merged
kindermax merged 2 commits into
mainfrom
confirmation-required
Jul 31, 2026
Merged

kindermax merged 2 commits into
mainfrom
confirmation-required

Conversation

@kindermax

Copy link
Copy Markdown
Contributor

Summary

  • Replaces PR add prod confirmation popup #77's hardcoded-hostname/window.confirm approach with a server-configured ui.confirmation_required flag (YAML), exposed via GraphQL as confirmationRequired.
  • Adds a shared ConfirmableButton (antd Popconfirm) and wires it into Apply, Reset, and Delete on both Flag.jsx and Value.jsx — PR add prod confirmation popup #77 only covered Flag.jsx.
  • When confirmation_required is false (default), behavior is unchanged: Apply/Reset fire immediately, Delete keeps its existing generic confirmation copy.
  • When true: Apply/Reset now require confirmation (previously none), and Delete's confirmation title becomes "This changes production".
  • Also bootstraps this repo's OpenSpec tooling (opsx/* slash commands, openspec-* skills) as its first real usage — see openspec/changes/confirmation-required/ for the full proposal/design/spec.

Test plan

  • lets test — 146/146 backend tests pass, including a new test_confirmation_required_default GraphQL test
  • npm run build — clean
  • Manually verified in a live dev stack (docker + vite): with the flag off, Apply/Reset/Delete behave exactly as before; with it on, Apply/Reset/Delete on both the Flags and Values tabs show the "This changes production" Popconfirm and only mutate after confirming

m.kindritskiy added 2 commits July 31, 2026 17:45
Adds the openspec CLI's Claude Code integration (opsx/* slash commands,
openspec-* skills) and repo config, so spec-driven changes can be
authored and reviewed the same way going forward.
PR #77 added a prod-change confirmation but hardcoded the hostname and
message in Flag.jsx and used window.confirm(), so it couldn't be
configured per-environment and never covered Value.jsx.

Replace it with a server-configured ui.confirmation_required flag
(YAML), exposed via GraphQL as confirmationRequired and consumed by a
shared ConfirmableButton (antd Popconfirm) wired into Apply, Reset, and
Delete on both Flag.jsx and Value.jsx.
@kindermax
kindermax merged commit 43ac223 into main Jul 31, 2026
1 check passed
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