Dissemination tool
The DisseminationTool, which an agent sees as CheckDissemination, answers whether a scene or document may go to a named recipient. It checks licence, marking, embargo, and place of collection on the record.
When a checked attribute blocks the release, the answer is a refusal and names the attribute. When every checked attribute allows the release, the answer lists exactly what was checked and what was left unchecked. When the classification field is absent, the answer and the audit row are undetermined.
as_of is the date of the proposed release. Embargoes are evaluated against that date.
Textual PII belongs to CheckCompliance.
Parameters
| Parameter | Required | Description |
|---|---|---|
index | Yes | The index holding the scene. |
id | Yes | The document id. |
recipient | Yes | The named recipient. |
releasable_to | No | What the recipient is entitled to receive, comma-separated. |
license_field | No | Field holding the scene's licence. |
classification_field | No | Field holding the scene's marking. |
embargo_field | No | Field holding the embargo date. Release is allowed on or after this date. |
origin_field | No | Field holding where it was collected. |
as_of | No | The release date, as yyyy-MM-dd. |
Audit trail
Every decision is written to .lucenia-compliance-audit. Passes are recorded as no_refusal; a missing marking is undetermined. See CheckCompliance for the record shape.
Register a flow agent that runs the DisseminationTool
POST /_plugins/_agent/agents/_register
{
"name": "Release_Agent",
"type": "flow",
"description": "checks whether a scene may be released",
"tools": [
{
"type": "DisseminationTool",
"name": "DemoCheckDissemination",
"parameters": {
"index": "scenes",
"classification_field": "marking",
"license_field": "license",
"embargo_field": "embargo"
}
}
]
}
POST /_plugins/_ml/agents/<agent_id>/_execute
{
"parameters": {
"id": "scene-441",
"recipient": "partner-a"
}
}