Use this file to discover all available pages before exploring further.
For LLM agents: documentation index at /llms.txt, full text at /llms-full.txt. Append .md to any page URL for plain markdown.
Stop bad data before it reaches production. The armor CLI lets you gate deployments on data freshness, check quality in CI/CD pipelines, and automate monitoring setup.
# Gate your pipeline on data freshnessarmor freshness check snowflake.prod.warehouse.orders || exit 1
# List all assetsarmor assets list# Filter by sourcearmor assets list --source snowflake# Filter by typearmor assets list --type table# Get single assetarmor assets get snowflake.prod.warehouse.orders
# Get freshness summaryarmor freshness summary# List all freshness statusesarmor freshness list# Get freshness for specific assetarmor freshness get snowflake.prod.warehouse.orders# Check freshness (exit 0 if fresh, exit 1 if stale)armor freshness check snowflake.prod.warehouse.orders# Trigger refresharmor freshness refresh snowflake.prod.warehouse.orders# Trigger and wait for completionarmor freshness refresh snowflake.prod.warehouse.orders --wait
# List assets with lineagearmor lineage list# Get lineage for assetarmor lineage get snowflake.prod.warehouse.orders# Get only upstreamarmor lineage get snowflake.prod.warehouse.orders --direction upstream# Get only downstreamarmor lineage get snowflake.prod.warehouse.orders --direction downstream
# Get alerts summaryarmor alerts summary# List all alertsarmor alerts list# Filter by statusarmor alerts list --status triggered# Filter by assetarmor alerts list --asset snowflake.prod.warehouse.orders
# Get metrics summary for an assetarmor metrics summary <asset-id># List all metrics for an assetarmor metrics list <asset-id># Filter by typearmor metrics list <asset-id> --type null_percent# Get specific metric detailsarmor metrics get <asset-id> <metric-id># Create a row count metricarmor metrics create <asset-id> --type row_count --table snowflake.prod.warehouse.orders# Create a null percentage metricarmor metrics create <asset-id> --type null_percent --table snowflake.prod.warehouse.orders --column email# Trigger manual capturearmor metrics capture <asset-id> <metric-id># Delete a metricarmor metrics delete <asset-id> <metric-id> --yes
How do I use the CLI in GitHub Actions or GitLab CI?
Install it with pip install anomalyarmor-cli, set ARMOR_API_KEY from your secrets store, and run armor freshness check <asset>. The non-zero exit code on stale data fails the step cleanly. The “CI/CD Examples” section above has copy-paste snippets for both runners.
0 is success, 1 is a check failure (stale data, validity fail), 2 is auth, 3 is not-found, and 4 is rate-limited. Write shell guards against the specific codes you care about (if [ $? -eq 1 ]; then ...) rather than treating any non-zero as the same error.
How do I get machine-readable output from the CLI?
Pass --format json on any list or get command. The output is a raw JSON array (or object) suitable for piping into jq, other CLIs, or uploading as a CI artifact. The default table format is optimized for terminal reading only.
Where does the CLI store credentials and how do I override them?
armor auth login writes api_key and api_url to ~/.armor/config.yaml. The ARMOR_API_KEY and ARMOR_API_URL environment variables override the config file, which is what you want in CI where you shouldn’t write secrets to disk.
Yes. armor auth login --key aa_live_... skips the interactive prompt, and every command reads ARMOR_API_KEY directly if you prefer not to persist a config file at all. Most CI pipelines just set the env var and run commands without ever calling auth login.