How ak4nda/sentinel-document-security works
Sentinel is an API service for secure document management with MFA, role-based access, sharing, search, and auditable activity. Users authenticate and complete MFA before using protected document and account endpoints; document operations support versioning, encrypted content, and sharing, while administrators can manage users and inspect audit records and alerts. The graph shows API-to-service ownership and the shared persistence layer. Relationships are based on the provided source excerpts and SOURCE INDEX references; unsampled internals and external storage details are not inferred.
Main entry points: main.py Application · auth.py Auth API · audit.py Audit Chain · documents.py Documents API
Components 23
Identity & Access
- Auth API
app/api/auth.py - Authentication
app/services/auth.py - MFA
app/services/mfa.py - Sessions
app/services/sessions.py - Auth Dependencies
app/api/deps.py - Users API
app/api/users.py - User Management
app/services/users.py
Document Management
- Documents API
app/api/documents.py - Document Service
app/services/documents.py - Search
app/services/search.py - Shares API
app/api/shares.py - Sharing
app/services/shares.py - Blob Storage
app/services/blob_store.py
Audit & Operations
- Audit API
app/api/audit.py - Audit Chain
app/services/audit.py - Alerts API
app/api/alerts.py - Alerts
app/services/alerts.py - Maintenance
app/services/maintenance.py
Runtime & Data
- Application
app/main.py - Database Session
app/core/database.py - Domain Models
app/models
Other components
- User
- SQL Database
Connections 31
- User → Auth API: authenticates
app/api/auth.py - Auth API → Authentication: handles login
app/api/auth.py - Auth API → MFA: verifies MFA
app/api/auth.py - Auth API → Sessions: uses sessions
- Auth API → Audit Chain: records denial
app/api/auth.py - Auth Dependencies → Sessions: validates session
app/api/deps.py - Auth Dependencies → Audit Chain: audits denials
app/api/deps.py - Users API → User Management: manages users
app/api/users.py - Users API → MFA: manages MFA
app/api/users.py - Documents API → Document Service: runs operations
app/api/documents.py - Documents API → Search: runs search
app/api/documents.py - Documents API → Sharing: manages shares
app/api/documents.py - Shares API → Sharing: manages shares
app/api/shares.py - Document Service → Blob Storage: uses blob store
app/services/documents.py - Document Service → Audit Chain: records activity
app/services/documents.py - Search → Audit Chain: records activity
app/services/search.py - Audit API → Audit Chain: queries and verifies
app/api/audit.py - Audit Chain → Alerts: raises alerts
app/services/audit.py - Alerts API → Alerts: manages alerts
app/api/alerts.py - Maintenance → Audit Chain: records activity
app/services/maintenance.py - Application → Auth API: registers routes
app/main.py - Application → Documents API: registers routes
app/main.py - Application → Shares API: registers routes
app/main.py - Application → Users API: registers routes
app/main.py - Application → Audit API: registers routes
app/main.py - Application → Alerts API: registers routes
app/main.py - Application → Maintenance: starts maintenance
app/main.py - Database Session → SQL Database: opens sessions
app/core/database.py - Auth API → Database Session: gets request session
app/api/auth.py - Documents API → Database Session: gets request session
app/api/documents.py - Database Session → Domain Models: persists records