Skip to content

Implement fins and some other updates - #103

Open
hidde-jan wants to merge 5 commits into
COSSAS:developmentfrom
hidde-jan:feature/fins
Open

Implement fins and some other updates#103
hidde-jan wants to merge 5 commits into
COSSAS:developmentfrom
hidde-jan:feature/fins

Conversation

@hidde-jan

Copy link
Copy Markdown
Contributor

This needs to be split into proper PRs, but here I collect the changes I made so it kept working with my local soarca install.

This has a few unrelated changes:

  • Fin views
  • Manual updates because of some changes to the API
  • Some additional execution status things (showing start and stop steps, which were not recorded before)

hidde-jan and others added 5 commits August 26, 2026 15:47
SOARCA's manual API changed shape (pairwise -> stepwise execution model):
InteractionCommandData now carries plural commands[]/targets[] instead of
a singular command/target, and a step is now individually addressable by
(execution_id, step_execution_id) rather than step_id alone, since a
step_id can recur (e.g. overlapping while-loop iterations). The resolve
endpoint also changed from POST /manual/continue (ids in body) to
PUT /manual/{exec_id}/{step_execution_id} (ids in the URL only).

- src/types/manual.d.ts: rewrite InteractionCommandData/
  ManualOutArgsUpdatePayload to the new stepwise shape.
- src/api/manual.ts: getStepManualData/putStepActionResult now take
  (executionId, stepExecutionId) and PUT the resolve payload.
- src/types/reporter.d.ts: add step_execution_id to StepExecutionReport.
- ManualActionModal.tsx: query/mutate by step_execution_id, drop ids from
  the request body.
- TimelineTabView.tsx / DetailsTabView.tsx: key rows and modal-reset state
  by step_execution_id instead of step_id.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
SOARCA now exposes a read-only discovery API for the new HTTP/JSON Fin
protocol (GET /fin/, GET /fin/{fin_id}) so operators can see which
external Fins are currently registered. Add a corresponding GUI section.

- src/types/fin.d.ts: Fin/FinCapability/FinListResponse types matching
  fin.Record/fin.Capability on the SOARCA side.
- src/api/fin.ts: getFins()/getFinById(), unwrapping the {fins: [...]}
  list response.
- src/pages/main-page/fins-page/FinsPage.tsx: table listing registered
  fins with their capability-type badges, protocol version, and
  registered/last-seen timestamps, polling every 5s.
- src/pages/main-page/fins-page/fin-detail-page/FinDetailPage.tsx: detail
  view for one fin, listing its capabilities including any step_examples
  (rendered as JSON) to help playbook authors wire up agent_definitions.
- src/utils.ts / src/App.tsx / src/pages/main-page/MainPage.tsx: new
  PATHS.FINS routes and a "Fins" sidebar nav entry.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
SOARCA now reports "start"/"end" workflow steps in an executions
step_results (soarca#<pending>, backend fix), each carrying a new 'type'
field. Add that field to StepExecutionReport and give these marker steps
a distinct Flag icon (Info variant) in the timeline instead of the usual
success/failure Check/X, since they represent structural markers rather
than an executed action with an outcome.

No other changes needed: TimelineTabView already renders every step
passed to it generically (name/started/ended/status), so start/end steps
now simply appear alongside action steps once the backend reports them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds deleteFin() (DELETE /api/fin/{fin_id}) and wires it into
FinDetailPage with a delete button + ConfirmDialog, matching the
pattern already used for playbook deletion. Invalidates the fins
list query and navigates back to the fins overview on success.

Uses the new admin-gated force-delete endpoint (soarca commit
b3936f9), distinct from a fin's own self-unregister.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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