Skip to content

feat(security): Add deployment review controls - #127

Open
nfebe wants to merge 2 commits into
mainfrom
feat/security-module
Open

nfebe wants to merge 2 commits into
mainfrom
feat/security-module

Conversation

@nfebe

@nfebe nfebe commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Add deployment security review controls with separate permissions for approval and evidence access. Incomplete collection remains visible as unknown coverage.

Add deployment security review controls with separate permissions for
approval and evidence access. Incomplete collection remains visible as
unknown coverage.
@sourceant

sourceant Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Code Review Summary

The deployment security tab now embeds a security reviews panel showing profile status, coverage gaps, findings, run history and approval of exact revisions, gated by new granular permissions. Users with security_profiles:read can open the tab, while the legacy protected-path and rate-limit editors stay behind security read permission. The nginx listen port is now configurable via MANAGEMENT_LISTEN.

🚀 Key Improvements

  • Separate permissions split profile editing, approval, review runs and restricted evidence access.
  • Approvals are bound to the reviewed proposal and blocked when the deployment revision changed.
  • Management port is configurable through MANAGEMENT_LISTEN in Dockerfile and nginx template.

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

});
if (!error.value) await refresh();
}
async function loadEvidence(id: string) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When the evidence request fails, the previously loaded evidence stays rendered under the newly selected finding, so the report shows evidence belonging to a different signal while only an error hints at the failure. Clear it before requesting.

Suggested change
async function loadEvidence(id: string) {
async function loadEvidence(id: string) {
if (!selectedReport.value) return;
evidence.value = null;
await action(async () => {
evidence.value = (await securityReviewsApi.evidence(props.name, selectedReport.value!.id, id)).data.evidence;
});
}

Clear earlier evidence before loading another selection. Late responses
cannot populate a different report.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Deploying flatrun-ui with  Cloudflare Pages  Cloudflare Pages

Latest commit: b79b059
Status: ✅  Deploy successful!
Preview URL: https://836adf76.flatrun-ui.pages.dev
Branch Preview URL: https://feat-security-module.flatrun-ui.pages.dev

View logs

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

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