Assess SecObserve Observation
secobserve_assess_observationAssess one vulnerability observation: change its severity, status, priority, or VEX justification with a mandatory comment, writing an attributable audit log for VEX generation.
Instructions
Record a human assessment on one observation: change its severity, status, priority or VEX justification.
This is how triage is done. It writes an observation log, so the change is attributable and reversible, and it is what later VEX documents are generated from. Never edit an observation's severity or status with secobserve_update -- that bypasses the log and the approval workflow.
Two rules the API enforces: a comment is mandatory, and a new assessment is refused while the previous one is still in 'Needs approval'.
Args: observation_id (int): Observation to assess. severity (Optional[Severity]): Unknown/None/Low/Medium/High/Critical. status (Optional[Status]): Open/Affected/Resolved/Duplicate/False positive/ In review/Not affected/Not security/Risk accepted. priority (Optional[int]): 1-99. clear_priority (bool): Remove the priority instead of setting one. vex_justification (Optional[VexJustification]): Machine-readable reason, expected with 'Not affected' and 'False positive'. risk_acceptance_expiry_date (Optional[str]): YYYY-MM-DD, for 'Risk accepted'. comment (str): Mandatory rationale, 1-4096 characters.
Returns: str: A confirmation line naming the observation and the fields changed, plus a note when the instance's four-eyes setting leaves the assessment in 'Needs approval' (the API returns an empty body on success).
Examples: - Use when: "mark 8123 as not affected, the vulnerable function is never called" -> observation_id=8123, status="Not affected", vex_justification="vulnerable_code_not_in_execute_path", comment="..." - Use when: "accept the risk on 8123 until the end of the quarter" -> status="Risk accepted", risk_acceptance_expiry_date="2026-12-31", comment="..." - Don't use when: assessing many findings the same way (use secobserve_bulk_assess_observations). - Don't use when: approving someone else's assessment (use secobserve_approve_observation_log).
Error Handling: 400 "Cannot create new assessment while last assessment still needs approval" means the previous assessment must be approved or rejected first. 403 means the token lacks Observation_Assessment on that product. The schema refuses a call that would change nothing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | New status. Omit to leave it as it is. | |
| comment | Yes | Why this assessment was made. Mandatory -- it is the audit record, and approvers see only this. State the evidence, not just the verdict. | |
| priority | No | New priority, 1 (most urgent) to 99. Use clear_priority to remove one. | |
| severity | No | New severity. Omit to leave it as it is. | |
| clear_priority | No | Remove the existing priority. Cannot be combined with priority. | |
| observation_id | Yes | Id of the observation to assess. | |
| vex_justification | No | Why the finding does not apply. Expected with status 'Not affected' or 'False positive' so that generated VEX documents carry a machine-readable reason. | |
| risk_acceptance_expiry_date | No | ISO date (YYYY-MM-DD) when a 'Risk accepted' status lapses back to open. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |