julee.api.dependencies

Dependency injection for julee FastAPI endpoints.

This module provides dependency injection for the julee API endpoints, following the same patterns established in the sample project. It manages singleton lifecycle for expensive resources and provides clean separation between infrastructure concerns and business logic.

The dependencies focus on real Minio implementations for production use, with test overrides available through FastAPI’s dependency override system.

Attributes

Classes

DependencyContainer

Dependency injection container with singleton lifecycle management.

StartupDependenciesProvider

Provider for dependencies needed during application startup.

Functions

get_assembly_specification_repository([minio_client])

FastAPI dependency for AssemblySpecificationRepository.

get_document_repository([minio_client])

FastAPI dependency for DocumentRepository.

get_knowledge_service_config_repository([minio_client])

FastAPI dependency for KnowledgeServiceConfigRepository.

get_knowledge_service_query_repository([minio_client])

FastAPI dependency for KnowledgeServiceQueryRepository.

get_minio_client()

FastAPI dependency for Minio client.

get_startup_dependencies()

Get startup dependencies provider for lifespan contexts.

get_temporal_client()

FastAPI dependency for Temporal client.

Module Contents

class julee.api.dependencies.DependencyContainer[source]

Dependency injection container with singleton lifecycle management. Always creates real clients; mocks are provided by test overrides.

async get_minio_client()[source]

Get or create Minio client.

async get_or_create(key, factory)[source]

Get or create a singleton instance.

async get_temporal_client()[source]

Get or create Temporal client.

class julee.api.dependencies.StartupDependenciesProvider(container)[source]

Provider for dependencies needed during application startup.

This class provides clean access to repositories and services needed during the lifespan startup phase, without exposing internal container details or requiring FastAPI’s dependency injection system.

async get_assembly_specification_repository()[source]

Get assembly specification repository for startup dependencies.

async get_document_repository()[source]

Get document repository for startup dependencies.

async get_knowledge_service_config_repository()[source]

Get knowledge service config repository for startup.

async get_knowledge_service_query_repository()[source]

Get knowledge service query repository for startup dependencies.

async get_system_initialization_service()[source]

Get fully configured system initialization service.

container[source]
logger[source]
async julee.api.dependencies.get_assembly_specification_repository(minio_client=Depends(get_minio_client))[source]

FastAPI dependency for AssemblySpecificationRepository.

async julee.api.dependencies.get_document_repository(minio_client=Depends(get_minio_client))[source]

FastAPI dependency for DocumentRepository.

async julee.api.dependencies.get_knowledge_service_config_repository(minio_client=Depends(get_minio_client))[source]

FastAPI dependency for KnowledgeServiceConfigRepository.

async julee.api.dependencies.get_knowledge_service_query_repository(minio_client=Depends(get_minio_client))[source]

FastAPI dependency for KnowledgeServiceQueryRepository.

async julee.api.dependencies.get_minio_client()[source]

FastAPI dependency for Minio client.

async julee.api.dependencies.get_startup_dependencies()[source]

Get startup dependencies provider for lifespan contexts.

async julee.api.dependencies.get_temporal_client()[source]

FastAPI dependency for Temporal client.

julee.api.dependencies.logger[source]