A HUMAN's call on an object.
POST/api/threats/designate
This is an ROE-relevant act, not a UI toggle. Our doctrine says kinematics
alone may never reach hostile (a fast, inbound, unidentified contact maxes
out at suspect); operator designation is the sanctioned path there. The
runtime installs it on the ThreatManager on the next tick, and the resulting
state change is persisted as threat.v1 (the change-signature includes
designation + affiliation, so a declaration on an already-confirmed threat
is recorded rather than silently vanishing — it previously did).
SECURITY: the attribution here is NOT trustworthy yet
by is supplied by the caller and never verified, and this whole /api
scope is unauthenticated (the walking skeleton runs tokenless in dev — see
router.rs). So the audit trail records a claim about who decided, not a
proven identity: anyone who can reach this port can declare anything hostile,
under any name.
That is a system-wide posture, not a hole unique to this route —
PUT /api/engagement/mode, which sets the weapons-release autonomy gate, is
equally open. Gating only this endpoint would buy no real safety while creating
a false impression that designation is authenticated. The fix is the /v1
authenticated scope (scaffolded, childless) growing to cover the mutating
surface, tracked separately. Until then: do not treat by as identity, and
do not expose this port outside a trusted network.
Request
Responses
- 200
- 400
the recorded declaration; attribution is the caller's unverified claim
no object id supplied