Rindle.Scanner behaviour (Rindle v0.1.5)

Copy Markdown View Source

Behaviour contract for security scanning before promotion.

Scanner implementations may inspect file contents, and any storage I/O must stay outside database transactions.

Summary

Callbacks

Scans the file at path for malware or policy violations.

Callbacks

scan(path)

@callback scan(path :: Path.t()) :: :ok | {:quarantine, term()}

Scans the file at path for malware or policy violations.

Implementations should return :ok for clean content or {:quarantine, reason} to mark the staged upload as quarantined. The reason is surfaced through telemetry and stored on the upload session for operator follow-up. Scanning runs before promotion, so quarantined files never reach the trusted asset state.