Skip to main content

Crate astrid_capabilities

Crate astrid_capabilities 

Source
Expand description

Astrid Capabilities - Cryptographically signed authorization tokens.

This crate provides:

  • Capability tokens with ed25519 signatures
  • Resource patterns with glob matching
  • Session and persistent token storage
  • Token validation and authorization checking

§Security Model

Every capability token is:

  • Signed by the runtime’s ed25519 key
  • Linked to the approval audit entry that created it
  • Time-bounded (optional expiration)
  • Scoped (session or persistent)

§Example

use astrid_capabilities::{
    CapabilityToken, CapabilityStore, ResourcePattern, TokenScope, AuditEntryId,
};
use astrid_core::Permission;
use astrid_crypto::KeyPair;

// Create a capability store
let store = CapabilityStore::in_memory();

// Runtime key for signing
let runtime_key = KeyPair::generate();

// Create a capability token
let token = CapabilityToken::create(
    ResourcePattern::new("mcp://filesystem:*").unwrap(),
    vec![Permission::Invoke],
    TokenScope::Session,
    runtime_key.key_id(),
    AuditEntryId::new(),
    &runtime_key,
    None,
);

// Add to store
store.add(token).unwrap();

// Check capability
assert!(store.has_capability("mcp://filesystem:read_file", Permission::Invoke));

Modules§

prelude
Prelude module - commonly used types for convenient import.

Structs§

AuditEntryId
Unique identifier for an audit entry (used for linking).
CapabilityStore
Capability store with both session and persistent storage.
CapabilityToken
A capability token granting permissions for a resource.
CapabilityValidator
Capability validator for checking authorization.
DirHandle
A cryptographic handle representing an open directory within the VFS. This acts as a capability token preventing the guest from forging arbitrary paths.
FileHandle
A cryptographic handle representing an open file within the VFS.
ResourcePattern
A pattern that matches resources.

Enums§

AuthorizationResult
Authorization result after validation.
CapabilityError
Errors that can occur with capability tokens.
TokenScope
Token scope - how long it lasts.

Type Aliases§

CapabilityResult
Result type for capability operations.