docs(manifest): document the per-command category
A command can now declare what it is FOR, and Riposte's agent browses the estate by it: enrich, hunt, inspect, transform, collect, contain, remediate, identity, notify, ticket, manage. It is a second axis to the manifest-level `category`, which says what the product is. All 101 of HarfangLab's commands are "endpoint"; the analyst looking for a decoder and the one looking for an isolation are not looking in the same place, and the product axis cannot separate them. Optional, and the template says why it is worth writing anyway: a command that declares nothing is classified by Riposte from its id and description, which is a guess. A value outside the list is ignored and the command classified instead, so a typo costs the declaration rather than inventing a twelfth category that nothing else ever lands in. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F8cMrB8KPHVpL47rmKynDQ
This commit is contained in:
@@ -59,10 +59,38 @@ commands:
|
|||||||
# its removal, blocklists, exclusions, deletes, identity and
|
# its removal, blocklists, exclusions, deletes, identity and
|
||||||
# credential operations, running code on a host
|
# credential operations, running code on a host
|
||||||
# --- Request-based command (recommended: declarative, no sandbox) ---------
|
# --- Request-based command (recommended: declarative, no sandbox) ---------
|
||||||
|
#
|
||||||
|
# `category` says what the command is FOR. It is what the agent browses the
|
||||||
|
# estate by: an analyst who wants to decode a rewritten URL and one who wants
|
||||||
|
# to isolate a host are not looking in the same place, and every command of
|
||||||
|
# your integration shares the manifest-level `category` above, which describes
|
||||||
|
# the PRODUCT and cannot separate them.
|
||||||
|
#
|
||||||
|
# Optional. A command that declares none is classified from its id and
|
||||||
|
# description when Riposte projects it into an agent tool — a decent guess,
|
||||||
|
# and no more than that. Declaring it stops the guessing for that command,
|
||||||
|
# which is the point of the field: you know, the classifier infers.
|
||||||
|
#
|
||||||
|
# enrich reputation or analysis of an indicator by a third party
|
||||||
|
# hunt search telemetry: events, logs, process trees
|
||||||
|
# inspect fetch one object in detail — a detection, a host, a record
|
||||||
|
# transform decode, defang, parse, extract — acting on data, not on an estate
|
||||||
|
# collect gather artefacts: jobs, forensic packages, dumps
|
||||||
|
# contain isolate, block, quarantine, suspend
|
||||||
|
# remediate undo a control or delete: unisolate, unblock, restore, purge
|
||||||
|
# identity accounts: disable, reset a password, revoke a session
|
||||||
|
# notify send a message, an e-mail, a page
|
||||||
|
# ticket create or update a ticket or a case
|
||||||
|
# manage policies, exclusions, configuration, agent lifecycle
|
||||||
|
#
|
||||||
|
# A value outside this list is ignored and the command is classified instead,
|
||||||
|
# so a typo costs the declaration rather than inventing a category nothing
|
||||||
|
# else ever lands in.
|
||||||
- id: lookup
|
- id: lookup
|
||||||
name: Lookup indicator
|
name: Lookup indicator
|
||||||
description: Fetches a report for an indicator over HTTP.
|
description: Fetches a report for an indicator over HTTP.
|
||||||
risk: read # required in practice · read | safe_write | destructive
|
risk: read # required in practice · read | safe_write | destructive
|
||||||
|
category: enrich # optional · what the command is FOR (see above)
|
||||||
inputs_schema:
|
inputs_schema:
|
||||||
properties:
|
properties:
|
||||||
indicator:
|
indicator:
|
||||||
|
|||||||
Reference in New Issue
Block a user