ayx is a Rust workspace for Alteryx administrators and automation agents.
It is designed to be:
- fast: a single native binary with no interpreter dependency
- secure: explicit
--applygates, audit artifacts, and conservative defaults - portable: Windows, Linux, and macOS release targets
- agent-friendly: structured envelopes, predictable command output, and a future command/tactics/workflow registry for tools like Codex or Claude
The current focus is Alteryx Server and Gallery administration workflows, with Licensing and Alteryx One surfaces being added in product-scoped branches:
- Mongo inventory, backup, and restore
- Server API reads and controlled mutations
- upgrade planning and post-checks
- system discovery and log analysis helpers
- Server diagnosis workflows for startup, runtime settings, and network triage
- Licensing portal diagnostics and API surface
- Alteryx One platform as the next major product branch
- Install the binary with a one-liner:
curl -fsSL https://raw.githubusercontent.com/RyanMerlin/ayx-cli/main/scripts/install.sh | bashOn Windows PowerShell, use:
iwr https://raw.githubusercontent.com/RyanMerlin/ayx-cli/main/scripts/install.ps1 | iex- Create
config.yamland set the minimum credentials:
profile_name: demo
mongo:
mode: embedded
server_api:
base_url: https://your-server.example.com
client_id: your-client-id
client_secret: your-client-secret
alteryx_one:
account_email: you@example.comIf you want the CLI to guide you through setup instead of editing YAML by hand, run:
ayx onboard --profile config.yamlThe onboarding flow reuses existing values on later runs, treats SQL Server as optional, masks stored secrets in its summary, and auto-discovers embedded Server runtime settings when RuntimeSettings.xml is available.
For automation or agents, add --non-interactive to validate an existing profile without prompting.
For multi-environment setups, use a workspace.yaml file with named environments and select the active one with --environment <name>.
ayx onboard --workspace writes a starter workspace.yaml with dev and prod entries.
- Run a first quick query:
ayx server api status --profile config.yaml
ayx mongo status --profile config.yaml
ayx catalog list- Build from source if you want to hack on it locally:
cargo install --locked --path .- Use
--output jsonwhen another tool should consume the result. Forworkflow yxdb, pair--csv <path>with top-level--output jsonif you want both export and structured metadata.
If you want the shortest path from zero to useful output, start with:
ayx server api status --profile config.yaml --output json
ayx mongo inventory --profile config.yaml --output jsonmongofor embedded and managed Mongo operationsmongo queryfor read-only collection queriesmongo doctorfor the built-in support query suite
server apifor the Server web APIserverfor environment inspection, logs, Swagger import, and lower-level API callsserver diagnosefor operator-facing Server troubleshooting flowsserver authfor SAML-first auth inspection, diagnosis, simulation, and narrow legacy AD checksserver doctorfor prescriptive troubleshooting workflows built on top of diagnoseworkflowfor local.yxmd,.yxmc,.yxzp, and.yxdbpackage/XML toolingworkflow scan --rules docs/workflow-recurse.example.yamlto preflight a migrationworkflow recurse --rules docs/workflow-recurse.example.yamlfor recursive migrationsworkflow yxdb --input <file> [--csv <path>]to inspect and export YXDB dataworkflow yxdb --input <file> --csv <path> --output jsonto export CSV and return a structured JSON envelopeworkflow publishto hand a repackaged workflow back to the Server API
--environment <name>to pick the active environment from a workspace file when multiple named environments are presenttoolsfor workspace-aware source/target workflows and future cross-environment automationlicensefor the Licensing portal and API branchonefor the Alteryx One platform branchsqlserverfor SQL Server status, prechecks, connection-string helpers, and migration planningonboardfor guided first-run profile setup and subsequent value reuseserver upgradefor upgrade path planning, prechecks, backup, apply simulation, and postcheckscatalogfor machine-readable command discoveryupdatefor GitHub release self-update
The tool returns a consistent envelope model so humans and agents can parse success, failure, and artifact paths in the same way.
- Read-only commands are available without extra flags.
- Mutating commands require
--apply. - Several workflows also produce audit artifacts so operations can be reviewed or replayed.
- Unsupported command families currently fail explicitly instead of pretending to succeed.
ayx loads config.yaml by default.
workspace.yaml is the canonical multi-environment file. It should contain workspace_name, active_environment, and an environments map of named Config entries. Use --environment <name> to override the active environment for a single run.
Minimum expectations:
profile_namemongo.modemongo.databases.gallery_namemongo.databases.service_nameserver_api.base_url,server_api.client_id, andserver_api.client_secretalteryx_one.account_emailwhen using ownership-transfer and related automationalteryx_one.oauth_client_idandalteryx_one.token_endpoint_urlfor One OAuth token posturealteryx_one.access_tokenwhen using One API commandsalteryx_one.refresh_tokenwhen you want to keep the token pair together locallyobservability.api_logging.enabledwhen you want shared JSONL API request logging across Server, License, and Oneobservability.api_logging.pathto control where the shared API event log is writtenobservability.api_logging.redact_bodiesstays on by default so secrets are not written to the log
Sensitive values live in .env and are expanded automatically from config.yaml.
Use .env.example as the shareable template.
Embedded Mongo discovery looks for RuntimeSettings.xml in the standard Alteryx locations first, then falls back to the configured path if provided.
The GitHub Actions workflow at .github/workflows/build-release.yml builds Windows, Linux, and macOS binaries and now runs format, clippy, and tests before packaging.
The workflow supports manual workflow_dispatch runs and tagged releases (v*), so you can publish a release artifact on demand or from a version tag.
Release archives:
- Windows:
ayx-x86_64-pc-windows-msvc.zip - Linux:
ayx-x86_64-unknown-linux-gnu.tar.gz - macOS Intel:
ayx-x86_64-apple-darwin.tar.gz - macOS Apple Silicon:
ayx-aarch64-apple-darwin.tar.gz
Install scripts:
scripts/install.ps1scripts/install.sh
The long-term goal is not just a CLI. It is a secure, portable operator for the Alteryx ecosystem that can also serve as a tool and skill substrate for agents and non-technical operators.
That means:
- a stable command catalog
- a tactical registry for repeatable playbooks
- workflow/skill descriptions for multi-step operations
- structured evidence after every run
- documentation that stays aligned with the actual binary
Start with:
ayx catalog list
ayx catalog describe --command mongo/backup
ayx license api status
ayx one platform workspace current
ayx one platform auth status
ayx one platform auth diagnose
ayx one plans list
ayx one scheduling list
ayx server diagnose startup --error "Failed to register Service URL"
ayx server auth status
ayx server auth diagnose saml --metadata-url https://idp.example.com/metadata
ayx server auth diagnose certificate
ayx server auth diagnose ad-legacy
ayx server auth simulate saml --metadata-file .\metadata.xml
ayx server doctor startup --error "Failed to register Service URL"
ayx mongo query --database AlteryxService --collection AS_Queue --filter "{}"
ayx mongo doctorRun checks locally:
cargo fmt --check
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --lockedThe repository includes a RuntimeSettings.xml fixture for offline validation of embedded discovery paths.
The upgrade routing and issue annotations from the archived Omni repo are preserved in:
ayx-server/knowledge/upgrade/version_paths.yamlayx-server/knowledge/upgrade/known_issues.yaml
These files drive upgrade path planning and version-specific warnings in the CLI.
The old ayxm repo is being archived, but a few reference files are kept here so the migration is auditable:
docs/legacy/AYX_CLI_COMMANDS.yamldocs/legacy/mongo_schema.py
These are reference artifacts only. They are not runtime dependencies of the Rust CLI.