Skip to main content

aegis_server/
lib.rs

1//! Aegis Server - API Gateway
2//!
3//! Multi-protocol API server supporting REST, GraphQL, WebSocket, and gRPC.
4//! Handles authentication, authorization, rate limiting, and request routing.
5//!
6//! Key Features:
7//! - REST API with OpenAPI documentation
8//! - GraphQL endpoint with subscriptions
9//! - WebSocket for real-time streaming
10//! - JWT and API key authentication
11//! - Admin API for web dashboard
12//!
13//! @version 0.1.0
14//! @author AutomataNexus Development Team
15
16pub mod activity;
17pub mod admin;
18pub mod auth;
19pub mod backup;
20pub mod breach;
21pub mod config;
22pub mod consent;
23pub mod gdpr;
24pub mod handlers;
25pub mod middleware;
26pub mod router;
27pub mod secrets;
28pub mod shield_handlers;
29pub mod state;
30pub mod vault_handlers;
31
32pub use activity::{Activity, ActivityLogger, ActivityType};
33pub use admin::{AdminService, ClusterInfo, DashboardSummary, NodeInfo, QueryStats};
34pub use auth::{
35    AuditEntry, AuditEventType, AuditLogger, AuditResult, AuthProvider, AuthResponse, AuthService,
36    LdapAuthenticator, LdapConfig, LoginRequest, MfaVerifyRequest, OAuth2Authenticator,
37    OAuth2Config, Permission, RbacManager, Role, RowLevelPolicy, RowPolicyOperation, UserInfo,
38    UserRole,
39};
40pub use backup::{BackupInfo, BackupManager, BackupStatus};
41pub use breach::{
42    BreachDetector, BreachIncident, BreachNotifier, BreachSeverity, BreachStats, DetectionConfig,
43    IncidentReport, IncidentStatus, LogNotifier, SecurityEvent, SecurityEventType, WebhookNotifier,
44};
45pub use config::{ClusterTlsConfig, ServerConfig};
46pub use consent::{
47    check_all_consents, check_any_consent, check_consent, ConsentAction, ConsentHistoryEntry,
48    ConsentManager, ConsentRecord, ConsentSource, ConsentStats, Purpose, SubjectConsentExport,
49};
50pub use gdpr::{
51    DeletedItem, DeletionAuditEntry, DeletionAuditLog, DeletionCertificate, DeletionEventType,
52    DeletionRequest, DeletionResponse, DeletionScope, GdprService,
53};
54pub use router::create_router;
55pub use state::AppState;