Acquittement des détections
Déclarer une action opérateur qui enregistre un acquittement sans remplacer les preuves de la détection.
Le comportement acknowledgement d'une action d'ontologie exécutable enregistre
l'acquittement d'une détection produite par une surveillance. L'action reçoit
uniquement detectionId ; le serveur fournit l'identité de l'opérateur authentifié
et l'horodatage.
Déclarez ces propriétés facultatives sur le type d'objet de détection :
| Propriété | Type scalaire | Signification |
|---|---|---|
acknowledgementStatus | string | acknowledged après une action réussie |
acknowledgedBy | string | Identifiant de l'opérateur authentifié |
acknowledgedAt | string | Horodatage serveur au format ISO 8601 |
Ces propriétés sont distinctes de l'état de la condition ou du cycle de vie de la détection. Leur absence signifie qu'aucun acquittement n'a été enregistré.
Dans une extension d'ontologie, déclarez directement l'action bornée :
export default defineOntology({
// ... types d'objet, liaisons et surveillances ...
acknowledgementActions: [
{ slug: 'acknowledge-detection', subjectTypeSlug: 'Detection' },
],
})Le compilateur SDK produit la déclaration exécutable SCHEMA_ACTION ci-dessous.
Les anciennes extensions peuvent inclure cette déclaration dans le processus habituel
de publication du schéma, en remplaçant maritime et Detection par leur
ontologie et leur type d'objet :
{
"kind": "SCHEMA_ACTION",
"ontologyApiName": "maritime",
"name": "detection.acknowledge",
"body": {
"name": "detection.acknowledge",
"actionType": "detection.acknowledge",
"input": {
"fields": { "detectionId": { "type": "string", "required": true } }
},
"effects": [],
"acknowledgement": { "subjectType": "Detection" },
"permittedAssertionKinds": ["PROPERTY"],
"permittedSubjectTypes": ["Detection"],
"requiredShapeIds": [],
"ruleIds": [],
"humanApprovalRequired": false
}
}Le nom de l'action est libre. Ce comportement exige exactement cette entrée et ces permissions, sans effets génériques supplémentaires. Sa cible doit être un type d'objet déclaré. Les contraintes de forme, les règles liées, les exigences d'approbation et l'autorisation de l'action restent applicables. Seule une personne directement authentifiée peut l'exécuter ; les services en arrière-plan et les exécutions déléguées ne peuvent pas acquitter.
Dans le permis de l'application, déclarez une
action avec id: "acknowledge-detection", l'alias d'ontologie approprié,
actionType: "detection.acknowledge", inputProperties: ["detectionId"] et votre
limite de taille d'entrée. Épinglez la révision contenant l'action. Autorisez les
propriétés d'acquittement dans la requête de détections.
alerts = apps.alerts(
"detections",
columns={"severity": "Severity", "acknowledgementStatus": "Acknowledgement"},
severity="severity",
status="acknowledgementStatus",
acknowledge_action="acknowledge-detection",
acknowledge_input="detectionId",
)L'identifiant sélectionné est proposé à Horizon pour confirmation explicite. L'aperçu ne peut pas exécuter l'action. La sélection, les réexécutions du notebook et les reconnexions ne la soumettent pas. Consultez la revue des alertes.
Le serveur vérifie que la détection exacte existe, est actuelle, provient d'une surveillance et est visible selon l'habilitation de l'opérateur. Il la vérifie à nouveau lors de la transaction. Une détection masquée, absente, retirée, future ou expirée est indisponible. Si elle a été remplacée pendant l'attente, son nouvel état doit être examiné.
Le premier acquittement est conservé. Une nouvelle demande indépendante ne peut pas remplacer son opérateur ou son horodatage. La réconciliation de la demande initiale restitue son résultat enregistré ; un résultat incertain ne doit jamais entraîner une nouvelle soumission automatique. L'acquittement conserve la détection, ses preuves, la configuration de surveillance et l'association de réponse. Il ne résout pas la condition sous-jacente et ne lance aucun flux de réponse.