Crate backstage_client

Crate backstage_client 

Source
Expand description

§Backstage Client Library

A Rust client library for interacting with the Backstage Catalog API. This library provides type-safe access to Backstage entities and supports filtering, querying, and retrieving various entity types.

§Features

  • Type-safe entities: Strongly typed representations of all Backstage entity kinds
  • Async support: Built on tokio and reqwest for modern async operations
  • Filtering: Support for complex entity filtering using query parameters
  • Error handling: Comprehensive error types with detailed error information
  • Authentication: Bearer token authentication support

§Quick Start

use backstage_client::{BackstageClient, entities::Entity};
use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = BackstageClient::new("https://backstage.example.com", "your-token")?;

    // Fetch all entities
    let entities = client.fetch_entities::<Entity>(None).await?;
    println!("Found {} entities", entities.len());

    // Fetch only components
    let mut filters = HashMap::new();
    filters.insert("kind".to_string(), "Component".to_string());
    let components = client.fetch_entities::<Entity>(Some(filters)).await?;
    println!("Found {} components", components.len());

    Ok(())
}

§Supported Entity Types

Re-exports§

pub use client::BackstageClient;
pub use error::ClientError;
pub use error::Result;
pub use entities::ApiEntity;
pub use entities::Component;
pub use entities::DomainEntity;
pub use entities::Entity;
pub use entities::GroupEntity;
pub use entities::LocationEntity;
pub use entities::Metadata;
pub use entities::ResourceEntity;
pub use entities::SystemEntity;
pub use entities::TemplateEntity;
pub use entities::UserEntity;
pub use entities::common::Relation;
pub use entities::common::Target;

Modules§

client
entities
error