Parquet schema validation · Cron monitoring

Validate the file cron produced—and notice when it produces nothing.

Agentsor File Contracts compares a completed CSV or Parquet file with an explicit local schema, freshness rule, and size bounds. A small hosted receipt then turns silence into a missed-run alert. The file, its path, rows, values, and storage credentials stay in your environment.

This release checks completed files; it is not a directory or SFTP watcher. A passing result proves only the configured local checks.

1 · Install

Pin the published verifier beside the export job.

Python 3.11 or newer is required. The local commands do not require an account.

mkdir -p ~/.local/share/agentsor-file
install -d -m 700 ~/.config/agentsor
python -m venv ~/.local/share/agentsor-file/venv
~/.local/share/agentsor-file/venv/bin/python -m pip install agentsor-file==0.2.3

2 · Define and prove the contract

Compare against what you expect, not merely what is present.

init creates an owner-only fingerprint key and an editable TOML contract. Review the generated [schema], row and byte bounds, and optional event-time freshness rule before relying on a result.

The check returns 0 only when every required observation passes. It returns 1 for failed or inconclusive evidence and 2 for a usage, credential, input, or transport error.

~/.local/share/agentsor-file/venv/bin/agentsor-file init \
  --format parquet \
  --contract ~/.config/agentsor/file-contract.toml \
  --fingerprint-key-file ~/.config/agentsor/file-fingerprint.key

# Edit [schema] and the bounds first.
${EDITOR:-vi} ~/.config/agentsor/file-contract.toml
~/.local/share/agentsor-file/venv/bin/agentsor-file check \
  YOUR_ABSOLUTE_FILE.parquet \
  --contract ~/.config/agentsor/file-contract.toml \
  --fingerprint-key-file ~/.config/agentsor/file-fingerprint.key

3 · Add the hosted receipt

Run the producer and reporter in one fail-closed script.

Create a free monitor, select the same cadence as cron, and store the one-time ingest token in the owner-only path shown after activation. The activation page uses the same verifier, contract, key, and token paths as this guide. Do not put either credential in the script, a shell argument, source control, or logs.

#!/bin/sh
set -eu

YOUR_PRODUCER_COMMAND
"$HOME/.local/share/agentsor-file/venv/bin/agentsor-file" report \
  YOUR_ABSOLUTE_FILE.parquet \
  --contract "$HOME/.config/agentsor/file-contract.toml" \
  --fingerprint-key-file "$HOME/.config/agentsor/file-fingerprint.key" \
  --token-file "$HOME/.config/agentsor/file-token"

If the producer fails before report, no receipt arrives and the hosted deadline detects silence. If a completed file is unreadable, stale, empty, outside its configured bounds, or schema-changed, the fixed redacted failure receipt is submitted and the command exits nonzero.

4 · Schedule and verify

Match cron to the monitor cadence.

Replace both placeholders in the script, save it, and make it executable. This example then runs daily at 07:05. Select a daily monitor expectation that allows the real producer enough time and a realistic grace period for normal variance.

install -d -m 700 ~/.local/bin ~/.local/state/agentsor
# Save the script above as ~/.local/bin/run-file-export.
chmod 700 ~/.local/bin/run-file-export
crontab -e

Add this line to the user crontab:

5 7 * * * $HOME/.local/bin/run-file-export >>$HOME/.local/state/agentsor/file-export.log 2>&1

Start with one real scheduled file

Local schema evidence. Hosted silence detection.

Free early access creates one monitor after business-email verification. There is no paid plan, dashboard, automatic trial, renewal, or charge.

Create one free monitor