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.io.
Overview
Part of the App layer in the systemprompt.io architecture.
Provides centralized access to database connections, configuration, extension services, and startup validation.
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 |
Installation
Add to your Cargo.toml:
[]
= "0.0.1"
License
FSL-1.1-ALv2 - See LICENSE for details.