Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
systemprompt-runtime
Application runtime context and module registry for SystemPrompt. Provides centralized access to database connections, configuration, extension services, and startup validation.
Overview
This crate is the application-layer orchestrator that:
- Initializes and manages the
AppContext- the central runtime state container - Provides compile-time module registration via
inventorymacros - Validates system configuration and extensions at startup
- Coordinates domain services without implementing business logic
File Structure
src/
├── lib.rs # Public exports and registration macros
├── context.rs # AppContext builder and runtime state
├── database_context.rs # Standalone database context for CLI tools
├── installation.rs # Module schema and seed installation
├── registry.rs # Module API registry and routing
├── span.rs # Request tracing span construction
├── startup_validation/ # Multi-domain configuration validation
│ ├── mod.rs # StartupValidator orchestration
│ ├── config_loaders.rs # Config file loading utilities
│ ├── display.rs # Validation report rendering
│ ├── extension_validator.rs # Extension validation logic
│ ├── files_validator.rs # FilesConfig domain validator
│ └── mcp_validator.rs # MCP manifest validation
├── validation.rs # Runtime system checks
└── wellknown.rs # Well-known endpoint metadata registry
Modules
context.rs
Purpose: Central runtime state container providing access to all shared resources.
| Export | Description |
|---|---|
AppContext |
Holds database pool, config, registries, analytics, and GeoIP reader |
AppContextBuilder |
Fluent builder for customized context initialization |
Key behaviors:
- Loads configuration via
ProfileBootstrapandConfig::get() - Initializes database connection from config
- Discovers and validates extensions via
ExtensionRegistry - Optionally loads GeoIP database and content configuration
- Initializes tracing with database persistence
database_context.rs
Purpose: Lightweight database-only context for CLI tools that don't need full runtime.
| Export | Description |
|---|---|
DatabaseContext |
Minimal context with just a database pool |
installation.rs
Purpose: Module installation orchestration for schema and seed data.
| Export | Description |
|---|---|
install_module |
Installs a module using a new AppContext |
install_module_with_db |
Installs a module with an existing database connection |
Delegates to systemprompt-database for actual SQL execution.
registry.rs
Purpose: Compile-time module registration and runtime routing.
| Export | Description |
|---|---|
ModuleApiRegistry |
Collects all registered module routes at startup |
ModuleApiRegistration |
Static registration struct submitted via inventory |
ModuleRuntime |
Trait for modules to expose their routes |
WellKnownRoute |
Registration for .well-known endpoints |
span.rs
Purpose: Constructs tracing spans from request context.
| Export | Description |
|---|---|
create_request_span |
Builds a RequestSpan with user, session, trace, and context IDs |
startup_validation/
Purpose: Multi-domain configuration validation at application startup.
| Export | Description |
|---|---|
StartupValidator |
Orchestrates validation across all domain config validators |
display_validation_report |
Renders validation errors to console |
display_validation_warnings |
Renders validation warnings to console |
Submodules:
config_loaders.rs- YAML config loading with spinner feedbackdisplay.rs- Console rendering for validation reportsextension_validator.rs- Extension config and asset validationfiles_validator.rs-FilesConfigValidatordomain implementationmcp_validator.rs- MCP server manifest validation
Validates: files, rate limits, web config, content config, agents, MCP servers, AI providers, and extensions.
validation.rs
Purpose: Runtime system prerequisite checks.
| Export | Description |
|---|---|
validate_system |
Validates database connection and path |
wellknown.rs
Purpose: Metadata registry for .well-known endpoints.
| Export | Description |
|---|---|
WellKnownMetadata |
Static metadata (path, name, description) for discovery |
get_wellknown_metadata |
Retrieves metadata for a given path |
Macros
| Macro | Purpose |
|---|---|
register_module_api! |
Register module routes with the runtime registry |
register_wellknown_route! |
Register .well-known endpoints with optional metadata |
Usage
use ;
register_module_api!;
Dependencies
| Crate | Purpose |
|---|---|
systemprompt-database |
Database pool and migrations |
systemprompt-config |
Configuration loading |
systemprompt-models |
Module and config definitions |
systemprompt-logging |
Tracing and CLI output |
systemprompt-extension |
Extension discovery and validation |
systemprompt-analytics |
Analytics service and GeoIP |
inventory |
Compile-time static registration |