Skip to main content
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.

Installation

This installs both the Python SDK and the armor CLI command.

Authentication

Login with API Key

Credentials are stored in ~/.armor/config.yaml.

Check Auth Status

Output:

Logout

Commands

Assets

Freshness

Schema

Lineage

Alerts

Metrics

API Keys (Admin)

Exit Codes

Using in Scripts

Output Formats

Table (Default)

JSON

Configuration File

The CLI stores configuration in ~/.armor/config.yaml:

Environment Variables

Override config file with environment variables:

CI/CD Examples

GitHub Actions

GitLab CI

Next Steps

CLI Reference

Complete command reference

Python SDK

Use programmatically in Python

Airflow Integration

Use in Airflow DAGs

API Reference

REST API documentation

Common Questions

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.

What does each exit code mean in scripts?

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.

Can I use the CLI non-interactively for CI?

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.