armor CLI lets you gate deployments on data freshness, check quality in CI/CD pipelines, and automate monitoring setup.
Installation
armor CLI command.
Authentication
Login with API Key
~/.armor/config.yaml.
Check Auth Status
Logout
Commands
Assets
Freshness
Schema
Lineage
Alerts
Metrics
API Keys (Admin)
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Check failed (e.g., data is stale) |
| 2 | Authentication error |
| 3 | Resource not found |
| 4 | Rate limited |
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 withpip 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.