Appearance
Policy Recipes: Data Motion
Clipboard, drag-and-drop, and screen capture recipes focused on image size controls and directional gating. Copy these snippets and adjust priorities, thresholds, and processor refs for your environment.
What You'll Learn
- How to tier clipboard image policies by megapixel size
- How to apply asymmetric in/out rules for images
- How to gate outbound images through OCR/DLP inspection
- How to use pixel dimensions to detect multi-monitor captures
Progressive Image Policy
Allow small images (thumbnails, icons) immediately, route medium images through DLP/OCR inspection, and deny large captures outright. This mirrors the proven text size-routing pattern applied to image payloads.
Adjust the megapixel thresholds to match your environment. Typical values:
- ≤ 0.25 MP — icons, thumbnails, small UI snippets
- 0.25–2.0 MP — single-window screenshots, cropped captures
- > 2.0 MP — full-screen or multi-monitor captures
json
{
"configuration": { "launch": { "runtime": { "dataMotion": {
"settings": { "clipboard": { "enabled": true, "defaultAction": "deny" } },
"rules": [
{
"id": "img-thumb-allow",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ],
"imageMegapixels": { "max": 0.25 }
},
"action": { "type": "allow" }
},
{
"id": "img-medium-inspect",
"enabled": true,
"priority": 850,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ],
"imageMegapixels": { "min": 0.25, "max": 2.0 }
},
"action": {
"type": "process",
"pipeline": [
{ "processorRef": "dlp-ocr", "mode": "inspect" }
],
"onProcessorFailure": "deny"
}
},
{
"id": "img-large-deny",
"enabled": true,
"priority": 800,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ],
"imageMegapixels": { "min": 2.0 }
},
"action": { "type": "deny" }
}
]
} } } }
}Validate
- Copy a small icon (< 0.25 MP) out of the sandbox — should succeed immediately.
- Copy a window screenshot (~1 MP) out — should route through the
dlp-ocrprocessor. Verify the audit log shows theimg-medium-inspectrule and pipeline execution. - Take a full-screen capture (> 2 MP) — should be denied. Verify the audit log shows the
img-large-denyrule.
Asymmetric Image Clipboard
Allow users to paste images INTO sandboxed applications (for productivity) while blocking all image copy-out. This preserves workflows like pasting screenshots into documents or email while preventing visual data exfiltration.
json
{
"configuration": { "launch": { "runtime": { "dataMotion": {
"settings": { "clipboard": { "enabled": true, "defaultAction": "deny" } },
"rules": [
{
"id": "img-in-allow",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "in",
"match": { "mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ] },
"action": { "type": "allow" }
},
{
"id": "img-out-deny",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "out",
"match": { "mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ] },
"action": { "type": "deny" }
}
]
} } } }
}Validate
- Copy an image from the host desktop and paste into a sandboxed application — should succeed.
- Copy an image from inside the sandbox and paste on the host desktop — should be denied.
- Verify both decisions appear in the audit log with the correct
directionand ruleid.
Asymmetric Image Clipboard with Size-Gated Egress
Combine asymmetric direction control with a size threshold for outbound images. Allow all images inbound but only permit small images (thumbnails, icons) outbound.
json
{
"configuration": { "launch": { "runtime": { "dataMotion": {
"settings": { "clipboard": { "enabled": true, "defaultAction": "deny" } },
"rules": [
{
"id": "img-in-allow",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "in",
"match": { "mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ] },
"action": { "type": "allow" }
},
{
"id": "img-out-small-allow",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ],
"imageMegapixels": { "max": 0.25 }
},
"action": { "type": "allow" }
},
{
"id": "img-out-large-deny",
"enabled": true,
"priority": 850,
"channel": "clipboard",
"direction": "out",
"match": { "mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ] },
"action": { "type": "deny" }
}
]
} } } }
}Validate
- Paste any image into the sandbox — should succeed.
- Copy a small icon out — should succeed.
- Copy a screenshot out — should be denied.
OCR-Gated Image Egress
Route outbound clipboard images through an external OCR processor, then inspect the extracted text with a DLP service. Deny if sensitive content is detected. This pattern uses the existing external processor architecture.
json
{
"configuration": { "launch": { "runtime": { "dataMotion": {
"settings": { "clipboard": { "enabled": true, "defaultAction": "deny" } },
"rules": [
{
"id": "img-ocr-dlp-out",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ]
},
"action": {
"type": "process",
"pipeline": [
{ "processorRef": "ocr-service", "mode": "inspect" },
{ "processorRef": "dlp-purview", "mode": "inspect" }
],
"onProcessorFailure": "deny",
"cacheTtlSec": 120
}
}
]
} } } }
}Validate
- Copy an image containing no sensitive text out of the sandbox — should be allowed after pipeline completes.
- Copy an image containing PII or classified text — should be denied by the DLP processor.
- Verify audit events include pipeline step details and processor findings.
Dimension-Based Multi-Monitor Detection
Use imageDimensions to allow clipboard images that fit within a single monitor and deny images whose width or height exceeds the threshold. This catches multi-monitor screenshots and panoramic captures.
Adjust the width and height thresholds to match your display standard. Common values:
- 2560 × 1440 (QHD)
- 1920 × 1080 (FHD)
- 3840 × 2160 (4K — set higher if 4K monitors are standard)
json
{
"configuration": { "launch": { "runtime": { "dataMotion": {
"settings": { "clipboard": { "enabled": true, "defaultAction": "deny" } },
"rules": [
{
"id": "img-single-monitor-allow",
"enabled": true,
"priority": 900,
"channel": "clipboard",
"direction": "out",
"match": {
"mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ],
"imageDimensions": { "width": { "max": 2560 }, "height": { "max": 1440 } }
},
"action": { "type": "allow" }
},
{
"id": "img-oversize-deny",
"enabled": true,
"priority": 850,
"channel": "clipboard",
"direction": "out",
"match": { "mimeTypes": [ { "pattern": "image/*", "patternType": "glob" } ] },
"action": { "type": "deny" }
}
]
} } } }
}Validate
- Copy a single-window screenshot (for example, 1280 × 720) out of the sandbox — should succeed.
- Take a multi-monitor screenshot (for example, 5120 × 1440 on dual QHD) — should be denied.
- Verify audit events report the matched rule
idand image dimensions.
