feat(tests): add Detect Procedure UI, template suggested-procedure editing, lead review panel
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled

Blue Team gets a Detect Procedure textarea in the test detail view,
mirroring Red's Attack Procedure field. Template create/edit forms
gain a Detect Suggested Procedure field for leads to curate directly.
Leads also get a Procedure Suggestions panel on the Tests page,
scoped to their own team by the backend, to approve or reject
suggestions extracted from submitted rounds.
This commit is contained in:
kitos
2026-07-14 15:30:47 +02:00
parent 7ec3c5bc8b
commit 4692a8b93e
8 changed files with 177 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
import client from "./client";
import type { ProcedureSuggestion } from "../types/models";
/** List pending procedure suggestions, scoped to the caller's team (admins see both). */
export async function getProcedureSuggestions(): Promise<ProcedureSuggestion[]> {
const { data } = await client.get<ProcedureSuggestion[]>("/procedure-suggestions");
return data;
}
/** Approve a suggestion — writes it into the template's suggested-procedure field. */
export async function approveProcedureSuggestion(id: string): Promise<ProcedureSuggestion> {
const { data } = await client.post<ProcedureSuggestion>(`/procedure-suggestions/${id}/approve`);
return data;
}
/** Reject a suggestion — the template is left untouched. */
export async function rejectProcedureSuggestion(id: string): Promise<ProcedureSuggestion> {
const { data } = await client.post<ProcedureSuggestion>(`/procedure-suggestions/${id}/reject`);
return data;
}
+1
View File
@@ -24,6 +24,7 @@ export interface CreateTemplatePayload {
source_url?: string;
attack_procedure?: string;
expected_detection?: string;
detect_suggested_procedure?: string;
platform?: string;
tool_suggested?: string;
severity?: string;
+1
View File
@@ -46,6 +46,7 @@ export interface BlueUpdatePayload {
detection_time?: string;
containment_time?: string;
blue_summary?: string;
detect_procedure?: string;
}
export interface RedValidationPayload {