feat(portal): add executive action center

This commit is contained in:
igor04091968
2026-06-07 16:39:49 +03:00
parent 307170b128
commit 2b41fb14c7
11 changed files with 1069 additions and 3 deletions
@@ -39,6 +39,9 @@
{
"name": "risk"
},
{
"name": "actions"
},
{
"name": "pfsense"
},
@@ -891,6 +894,42 @@
}
}
}
},
"/actions": {
"get": {
"tags": [
"actions"
],
"summary": "Rule-based executive action center",
"parameters": [
{
"name": "role",
"in": "query",
"required": false,
"schema": {
"$ref": "#/components/schemas/PortalRole"
}
}
],
"responses": {
"200": {
"description": "Recommended actions payload",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ActionCenterResponse"
}
}
}
},
"400": {
"description": "Query limits rejected"
},
"403": {
"description": "Role denied"
}
}
}
}
},
"components": {
@@ -1024,6 +1063,12 @@
"risk_narrative": {
"$ref": "#/components/schemas/RiskNarrative"
},
"recommended_actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActionItem"
}
},
"agent_quality": {
"$ref": "#/components/schemas/JsonObject"
},
@@ -1054,6 +1099,96 @@
},
"additionalProperties": true
},
"ActionItem": {
"type": "object",
"required": [
"priority",
"title",
"summary",
"owner_role",
"recommended_deadline",
"reason_codes",
"evidence"
],
"properties": {
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"owner_role": {
"type": "string",
"enum": [
"executive",
"manager",
"security",
"forensics",
"admin"
]
},
"recommended_deadline": {
"type": "string"
},
"reason_codes": {
"type": "array",
"items": {
"type": "string"
}
},
"evidence": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"ActionCenterResponse": {
"type": "object",
"required": [
"ok",
"actions",
"model"
],
"properties": {
"ok": {
"type": "boolean"
},
"role_context": {
"$ref": "#/components/schemas/RoleContext"
},
"actions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActionItem"
}
},
"model": {
"$ref": "#/components/schemas/JsonObject"
},
"generated_at_utc": {
"type": "string"
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": true
},
"RiskNarrativeEvidence": {
"type": "object",
"required": [