Authora Rust SDK
Official Rust client library for the Authora agent authorization platform.
Requirements
- Rust 2021 edition (MSRV 1.70)
- Async runtime: Tokio
Installation
Add to your Cargo.toml:
[]
= "0.1.0"
= { = "1", = ["rt-multi-thread", "macros"] }
Quick start
use ;
async
Custom configuration
use Duration;
use AuthoraClient;
let client = builder
.base_url
.timeout
.build?;
Resource modules
The client exposes one method per resource area. Each returns a lightweight handle that borrows the underlying HTTP client:
| Method | Resource | Endpoints |
|---|---|---|
client.agents() |
Agents | 8 |
client.roles() |
Roles + Assignments | 8 |
client.permissions() |
Permission Checks | 3 |
client.delegations() |
Delegations | 6 |
client.policies() |
Policies | 6 |
client.mcp() |
MCP Servers / Tools | 7 |
client.audit() |
Audit Events | 4 |
client.notifications() |
Notifications | 4 |
client.webhooks() |
Webhooks | 4 |
client.alerts() |
Alerts | 4 |
client.api_keys() |
API Keys | 3 |
client.organizations() |
Organizations | 3 |
client.workspaces() |
Workspaces | 3 |
Total: 63 endpoints
Examples
Check a permission
use CheckPermissionInput;
let result = client.permissions.check.await?;
if result.allowed == Some
List agents
use ListAgentsInput;
let page = client.agents.list.await?;
for agent in &page.data
Create a delegation
use ;
let delegation = client.delegations.create.await?;
Manage policies
use CreatePolicyInput;
let policy = client.policies.create.await?;
Error handling
All methods return Result<T, AuthoraError>. The error enum covers:
AuthoraError::Api-- Non-success HTTP status with message and optional error codeAuthoraError::Authentication-- 401 / 403 responsesAuthoraError::NotFound-- 404 responsesAuthoraError::RateLimit-- 429 responsesAuthoraError::Timeout-- Request timeoutAuthoraError::Network-- Connection / transport errors (wrapsreqwest::Error)AuthoraError::Serialization-- JSON serialization / deserialization failures
JSON field mapping
Rust structs use snake_case fields. Serde automatically maps them to/from camelCase
for the Authora API via #[serde(rename_all = "camelCase")].
License
MIT