RAPS
Rust APS CLI - A comprehensive command-line interface for Autodesk Platform Services (APS), written in Rust.
Features
Authentication
- 2-legged OAuth (Client Credentials) for server-to-server operations
- 3-legged OAuth (Authorization Code) with browser login for user data access
- Device-code authentication (
--device) for headless/server environments - Token-based login (
--token) for CI/CD scenarios - Token inspection (
auth inspect-token) - view scopes, expiry, and warnings - Secure token storage with automatic refresh
- User profile information with
auth whoami
Object Storage Service (OSS)
- Create, list, and delete buckets (with multi-region support: US & EMEA)
- Get detailed bucket information with
bucket info - Upload, download, list, and delete objects
- Resumable multipart uploads for large files (auto-chunking for files > 5MB)
- Batch uploads with parallel processing (
--batch,--parallel) - Signed S3 URLs for direct download bypassing OSS servers
- Progress bars for file transfers
Model Derivative
- Translate CAD files to various formats (SVF2, OBJ, STL, STEP, etc.)
- Check translation status with optional polling
- View manifest and available derivatives
- Download derivatives (
translate download) - export translated models - Translation presets (
translate preset) - save and reuse common configurations
Data Management (BIM 360/ACC)
- Browse hubs, projects, folders, and items
- Create folders
- View item versions
- Bind OSS objects to ACC folders (
item bind) - link external uploads - Requires 3-legged authentication
Webhooks
- Create, list, and delete webhook subscriptions
- Support for data management and model derivative events
- Test webhook endpoints (
webhook test) - validate with sample payloads
Design Automation
- List available engines (AutoCAD, Revit, Inventor, 3ds Max)
- Manage app bundles and activities
- Create activities (
da activity create) - Submit work items (
da workitem run) with input/output URLs - Get work item results (
da workitem get) - download reports - Monitor work item status
ACC Issues (Construction Cloud)
- List, create, and update issues
- View issue types (categories) and subtypes
- Filter by status
- Issue comments (
issue comment) - list, add, delete - Issue attachments (
issue attachment) - upload, download - State transitions (
issue transition) - change issue status
ACC RFIs (Requests for Information) (v1.0.0+)
- List RFIs (
rfi list) - view all RFIs in a project - Get RFI details (
rfi get) - view full RFI information - Create RFIs (
rfi create) - submit new requests for information - Update RFIs (
rfi update) - answer RFIs, change status
ACC Assets (v1.0.0+)
- List assets (
acc asset list) - view project assets - CRUD operations - get, create, update assets
ACC Submittals (v1.0.0+)
- List submittals (
acc submittal list) - view project submittals - CRUD operations - get, create, update submittals
ACC Checklists (v1.0.0+)
- List checklists (
acc checklist list) - view project checklists - List templates (
acc checklist templates) - view available templates - CRUD operations - get, create, update checklists
Reality Capture
- Create photoscenes for photogrammetry
- Upload photos and start processing
- Monitor progress and download results (OBJ, FBX, RCS, etc.)
Pipeline Automation
- Execute pipelines from YAML/JSON files (
pipeline run) - Variable substitution and conditional step execution
- Dry-run mode for validation
- Continue-on-error for robust automation
- Sample generation (
pipeline sample)
Configuration & Profiles
- Profile management - create, switch, delete configurations
- Profile import/export - backup and share configurations
- Config precedence: CLI flags > env vars > profile > defaults
Plugin System (v1.0.0+)
- External plugins - extend RAPS with
raps-<name>executables - Command hooks - run pre/post command scripts
- Command aliases - create shortcuts for frequent operations
- Plugin management (
plugin list/enable/disable)
Installation
Prerequisites
- APS account with application credentials from APS Developer Portal
Install from crates.io
Install from Pre-built Binaries
Download the latest release for your platform from the Releases page:
| Platform | Architecture | File |
|---|---|---|
| Windows | x64 | raps-windows-x64.zip |
| macOS | Intel | raps-macos-x64.tar.gz |
| macOS | Apple Silicon | raps-macos-arm64.tar.gz |
| Linux | x64 | raps-linux-x64.tar.gz |
| Linux | ARM64 | raps-linux-arm64.tar.gz |
Extract and add to your PATH:
Windows (PowerShell):
# Extract to a directory in your PATH
Expand-Archive raps-windows-x64.zip -DestinationPath "$env:USERPROFILE\bin"
# Add to PATH (if not already)
$env:PATH += ";$env:USERPROFILE\bin"
macOS/Linux:
# Extract
# Move to PATH
Build from Source
# Requires Rust 1.70 or later (https://rustup.rs/)
Shell Completions
RAPS supports auto-completion for bash, zsh, fish, PowerShell, and elvish.
PowerShell
# Add to your PowerShell profile ($PROFILE)
raps completions powershell | Out-String | Invoke-Expression
# Or save to a file and source it
raps completions powershell > "$env:USERPROFILE\Documents\PowerShell\raps.ps1"
# Then add to $PROFILE: . "$env:USERPROFILE\Documents\PowerShell\raps.ps1"
Bash
# Add to ~/.bashrc
# Or save to completions directory
Zsh
# Add to ~/.zshrc (before compinit)
# Or save to fpath directory
# Add to ~/.zshrc: fpath=(~/.zfunc $fpath)
Fish
# Save to completions directory
raps completions fish > ~/.config/fish/completions/raps.fish
Elvish
# Add to ~/.elvish/rc.elv
eval (raps completions elvish | slurp)
Configuration
Profile Management (v0.4.0+)
Manage multiple configurations for different environments:
# Create a profile
# Set profile values
# Switch between profiles
# List all profiles
# Show current profile
Config Precedence: CLI flags > Environment variables > Active profile > Defaults
Environment Variables
# Required
$env:APS_CLIENT_ID = "your_client_id"
$env:APS_CLIENT_SECRET = "your_client_secret"
# Optional
$env:APS_CALLBACK_URL = "http://localhost:8080/callback" # For 3-legged OAuth
$env:APS_DA_NICKNAME = "your_nickname" # For Design Automation
Using .env File
Create a .env file in your working directory:
APS_CLIENT_ID=your_client_id
APS_CLIENT_SECRET=your_client_secret
APS_CALLBACK_URL=http://localhost:8080/callback
Usage
Authentication
# Test 2-legged authentication
# Login with 3-legged OAuth (opens browser)
# Login with device code (headless/server environments)
# Login with token (CI/CD scenarios)
# Check authentication status (shows token expiry)
# Show logged-in user profile
# Logout
Buckets & Objects
# Create a bucket
# List buckets (from all regions)
# Get bucket details
# Upload a file
# Download a file
# Get signed S3 download URL (direct download, expires in 2-60 minutes)
Translation
# Start translation
# Check status
# View manifest
Output Formats
RAPS supports multiple output formats for CI/CD integration:
# JSON output (machine-readable)
# YAML output
# CSV output
# Table output (default, human-readable)
# Plain text
Global Flags
# Disable colors
# Quiet mode (only output data)
# Set HTTP request timeout (seconds, default: 120)
# Set maximum concurrent operations for bulk commands (default: 5)
# Verbose mode (show request summaries)
# Debug mode (full trace with secret redaction)
# Non-interactive mode (fail on prompts)
# Auto-confirm prompts
Exit Codes
RAPS uses standardized exit codes for scripting:
0- Success2- Invalid arguments3- Authentication failure4- Not found5- Remote/API error6- Internal error
See Exit Codes Documentation for details.
Data Management (requires login)
# List hubs
# List projects in a hub
# List folder contents
# View item versions
Webhooks
# List all webhooks
# Create a webhook
# List available events
Design Automation
# List available engines
# List app bundles
# List activities
# Check work item status
Issues (ACC/BIM 360, requires login)
# List issues in a project
# Create an issue
# List issue types (categories)
Note: The project-id should NOT include the "b." prefix used by the Data Management API.
Reality Capture
# Create a photoscene
# Upload photos
# Start processing
# Check status
# Get download link
Command Reference
| Command | Description |
|---|---|
auth |
Authentication (test, login, logout, status, whoami, inspect-token) |
bucket |
OSS bucket operations (create, list, info, delete) |
object |
OSS object operations (upload, download, list, delete, signed-url) |
translate |
Model Derivative (start, status, manifest, download, preset) |
hub |
List/view hubs |
project |
List/view projects |
folder |
Folder operations |
item |
Item operations (versions, bind) |
webhook |
Webhook subscriptions (create, list, delete, test) |
da |
Design Automation (engines, appbundles, activities, workitem) |
issue |
ACC/BIM 360 issues (list, create, update, comment, attachment, transition) |
reality |
Reality Capture photogrammetry |
pipeline |
Pipeline automation (run, validate, sample) |
config |
Configuration and profile management (import, export) |
completions |
Generate shell completions (bash, zsh, fish, powershell, elvish) |
API Coverage
This CLI covers the following APS APIs (validated against OpenAPI specs):
- Authentication API v2 - OAuth 2.0 flows, user profile
- OSS API v2 - Buckets, objects, signed S3 URLs
- Model Derivative API v2 - Translation jobs, manifests
- Data Management API v1 - Hubs, projects, folders, items
- Webhooks API v1 - Event subscriptions
- Design Automation API v3 - Engines, activities, work items
- Construction Issues API v1 - Issues, issue types
- Reality Capture API v1 - Photogrammetry processing
Release Verification
All releases include SHA256 checksums for verification. See Checksums Documentation for instructions on verifying downloads.
Contributing
Contributions are welcome! Please read our Contributing Guide for details on:
- Development setup
- Code style guidelines
- Pull request process
- Branch protection policy
Important: The main branch is protected. All changes must be made through Pull Requests. See Branch Protection Setup for details.
License
MIT License
Documentation
- Full Documentation - Complete user guide
- Feature Overview - Visual diagrams and feature matrix
- Pipeline Guide - Automation workflows
- Exit Codes - CI/CD integration
- Changelog - Version history