raps 0.3.0

Command-line interface for Autodesk Platform Services (APS)
raps-0.3.0 is not a library.
Visit the last successful build: raps-3.8.0

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
  • 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
  • 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

Data Management (BIM 360/ACC)

  • Browse hubs, projects, folders, and items
  • Create folders
  • View item versions
  • Requires 3-legged authentication

Webhooks

  • Create, list, and delete webhook subscriptions
  • Support for data management and model derivative events

Design Automation

  • List available engines (AutoCAD, Revit, Inventor, 3ds Max)
  • Manage app bundles and activities
  • Submit and monitor work items

ACC Issues (Construction Cloud)

  • List, create, and update issues
  • View issue types (categories) and subtypes
  • Filter by status
  • Uses the Construction Issues API v1

Reality Capture

  • Create photoscenes for photogrammetry
  • Upload photos and start processing
  • Monitor progress and download results (OBJ, FBX, RCS, etc.)

Installation

Prerequisites

Install from crates.io

cargo install raps

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

tar -xzf raps-*.tar.gz


# Move to PATH

sudo mv raps /usr/local/bin/

chmod +x /usr/local/bin/raps

Build from Source

# Requires Rust 1.70 or later (https://rustup.rs/)

cd raps

cargo build --release

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

eval "$(raps completions bash)"


# Or save to completions directory

raps completions bash > ~/.local/share/bash-completion/completions/raps

Zsh

# Add to ~/.zshrc (before compinit)

eval "$(raps completions zsh)"


# Or save to fpath directory

raps completions zsh > ~/.zfunc/_raps

# 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

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

raps auth test


# Login with 3-legged OAuth (opens browser)

raps auth login


# Check authentication status

raps auth status


# Show logged-in user profile

raps auth whoami


# Logout

raps auth logout

Buckets & Objects

# Create a bucket

raps bucket create


# List buckets (from all regions)

raps bucket list


# Get bucket details

raps bucket info my-bucket


# Upload a file

raps object upload my-bucket model.dwg


# Download a file

raps object download my-bucket model.dwg


# Get signed S3 download URL (direct download, expires in 2-60 minutes)

raps object signed-url my-bucket model.dwg --minutes 10

Translation

# Start translation

raps translate start <urn> --format svf2


# Check status

raps translate status <urn> --wait


# View manifest

raps translate manifest <urn>

Data Management (requires login)

# List hubs

raps hub list


# List projects in a hub

raps project list <hub-id>

# List folder contents

raps folder list <project-id> <folder-id>

# View item versions

raps item versions <project-id> <item-id>

Webhooks

# List all webhooks

raps webhook list


# Create a webhook

raps webhook create --url https://example.com/hook --event dm.version.added


# List available events

raps webhook events

Design Automation

# List available engines

raps da engines


# List app bundles

raps da appbundles


# List activities

raps da activities


# Check work item status

raps da status <workitem-id> --wait

Issues (ACC/BIM 360, requires login)

# List issues in a project

raps issue list <project-id>

# Create an issue

raps issue create <project-id> --title "My Issue"


# List issue types (categories)

raps issue types <project-id>

Note: The project-id should NOT include the "b." prefix used by the Data Management API.

Reality Capture

# Create a photoscene

raps reality create --name "My Scene" --scene-type object --format obj


# Upload photos

raps reality upload <photoscene-id> photo1.jpg photo2.jpg photo3.jpg


# Start processing

raps reality process <photoscene-id>

# Check status

raps reality status <photoscene-id> --wait


# Get download link

raps reality result <photoscene-id>

Command Reference

Command Description
auth Authentication management (test, login, logout, status, whoami)
bucket OSS bucket operations (create, list, info, delete)
object OSS object operations (upload, download, list, delete, signed-url)
translate Model Derivative translation
hub List/view hubs
project List/view projects
folder Folder operations
item Item/file operations
webhook Webhook subscriptions
da Design Automation
issue ACC/BIM 360 issues
reality Reality Capture photogrammetry
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

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

Resources