systemprompt-logging 0.2.0

Core logging module for systemprompt.io OS
Documentation
use systemprompt_extension::prelude::*;

#[derive(Debug, Clone, Copy, Default)]
pub struct LoggingExtension;

impl Extension for LoggingExtension {
    fn metadata(&self) -> ExtensionMetadata {
        ExtensionMetadata {
            id: "logging",
            name: "Logging",
            version: env!("CARGO_PKG_VERSION"),
        }
    }

    fn migration_weight(&self) -> u32 {
        15
    }

    fn is_required(&self) -> bool {
        true
    }

    fn schemas(&self) -> Vec<SchemaDefinition> {
        vec![
            SchemaDefinition::inline("logs", include_str!("../schema/log.sql"))
                .with_required_columns(vec![
                    "id".into(),
                    "timestamp".into(),
                    "level".into(),
                    "module".into(),
                    "message".into(),
                ]),
            SchemaDefinition::inline("analytics_events", include_str!("../schema/analytics.sql"))
                .with_required_columns(vec![
                    "id".into(),
                    "user_id".into(),
                    "event_type".into(),
                    "event_category".into(),
                    "severity".into(),
                    "timestamp".into(),
                ]),
        ]
    }

    fn dependencies(&self) -> Vec<&'static str> {
        vec!["database", "users"]
    }
}

register_extension!(LoggingExtension);