Crate runbeam_sdk

Crate runbeam_sdk 

Source
Expand description

Runbeam SDK

A Rust library for integrating with the Runbeam Cloud API.

This SDK provides:

  • JWT token validation with RS256 and JWKS caching
  • Runbeam Cloud API client for gateway authorization
  • Secure token storage via OS keychain (macOS Keychain, Linux Secret Service, Windows Credential Manager)
  • Type definitions for API requests/responses and error handling

§Example

use runbeam_sdk::{
    RunbeamClient,
    validate_jwt_token,
    save_token,
    load_token,
    MachineToken,
    storage::{KeyringStorage, StorageBackend},
};

// Validate a user JWT token
let claims = validate_jwt_token("eyJhbGci...", 24).await?;

// Create API client from JWT issuer
let client = RunbeamClient::new(claims.api_base_url());

// Authorize a gateway and get machine token
let response = client.authorize_gateway(
    "eyJhbGci...",
    "gateway-123",
    None,
    None
).await?;

// Save machine token securely
let storage = KeyringStorage::new("runbeam");
let machine_token = MachineToken::new(
    response.machine_token,
    response.expires_at,
    response.gateway.id,
    response.gateway.code,
    response.abilities,
);
save_token(&storage, &machine_token).await?;

Re-exports§

pub use runbeam_api::client::RunbeamClient;
pub use runbeam_api::jwt::validate_jwt_token;
pub use runbeam_api::jwt::extract_bearer_token;
pub use runbeam_api::jwt::JwtClaims;
pub use runbeam_api::resources::Gateway;
pub use runbeam_api::resources::Service;
pub use runbeam_api::resources::Endpoint;
pub use runbeam_api::resources::Backend;
pub use runbeam_api::resources::Pipeline;
pub use runbeam_api::resources::Middleware;
pub use runbeam_api::resources::Transform;
pub use runbeam_api::resources::Policy;
pub use runbeam_api::resources::Network;
pub use runbeam_api::resources::Authentication;
pub use runbeam_api::resources::GatewayConfiguration;
pub use runbeam_api::resources::PaginatedResponse;
pub use runbeam_api::resources::ResourceResponse;
pub use runbeam_api::resources::PaginationMeta;
pub use runbeam_api::token_storage::save_token;
pub use runbeam_api::token_storage::load_token;
pub use runbeam_api::token_storage::clear_token;
pub use runbeam_api::token_storage::MachineToken;
pub use runbeam_api::types::ApiError;
pub use runbeam_api::types::RunbeamError;
pub use runbeam_api::types::AuthorizeResponse;
pub use runbeam_api::types::GatewayInfo;
pub use runbeam_api::types::UserInfo;
pub use runbeam_api::types::TeamInfo;

Modules§

runbeam_api
storage