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::PaginationLinks;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;