How mayan-edms/mayan-edms works
Mayan EDMS is a Django document-management system. The principal workflow is: a user authenticates, uploads or manages documents, files are persisted, content is parsed/indexed, and authorized search or workflow operations return document results. The tree also exposes cabinets, checkouts, signatures, comments, duplicate detection, and configurable storage transformations. Several cross-module arrows are necessarily conservative because only storage and duplicate/ACL manager excerpts were sampled; unsampled features are represented without speculative call chains.
Components 22
User Interaction
- Authentication
mayan/apps/authentication/views/authentication_views.py - Document UI/API
mayan/apps/documents/views/document_views.py
Document Lifecycle
- Document Records
mayan/apps/documents/models/document_models.py - Document Files
mayan/apps/documents/storages.py - Source Staging
mayan/apps/sources/storages.py
Processing and Search
- Document Parsing
mayan/apps/document_parsing/parsers.py - File Conversion
mayan/apps/converter/transformations.py - Document Indexing
mayan/apps/document_indexing/models/index_instance_models.py - Dynamic Search
mayan/apps/dynamic_search/classes.py
Governance Features
- Document Workflows
mayan/apps/document_states/models/workflow_instance_models.py - Access Control
mayan/apps/acls/managers.py - Duplicate Detection
mayan/apps/duplicates/managers.py - Document Checkouts
mayan/apps/checkouts/models.py - Document Signatures
mayan/apps/document_signatures/models.py - Document Comments
mayan/apps/document_comments/models.py - Cabinet Filing
mayan/apps/cabinets/models.py - Duplicate Backends
mayan/apps/duplicates/duplicate_backends.py
Storage Services
- File Storage Backend
- Encrypted Storage
mayan/apps/storage/backends/encryptedstorage.py - Compressed Storage
mayan/apps/storage/backends/compressedstorage.py
Other components
- User
- Locking Backend
Connections 22
- User → Authentication: signs in
- User → Document UI/API: manages documents
- Document UI/API → Document Records: reads and writes
- Document UI/API → Document Files: stores files
- Source Staging → Document Files: stages files
- Document Parsing → Document Records: extracts metadata
- File Conversion → Document Files: creates assets
- Document Indexing → Document Records: reads documents
- Dynamic Search → Document Records: queries documents
- Document UI/API → Dynamic Search: requests search
- Document Workflows → Document Records: updates state
- Access Control → Document Records: restricts querysets
- Duplicate Detection → Duplicate Backends: runs backends
- Duplicate Detection → Locking Backend: acquires lock
- Duplicate Detection → Access Control: checks access
- Encrypted Storage → File Storage Backend: encrypts files
- Compressed Storage → File Storage Backend: compresses files
- Document Files → File Storage Backend: uses backend
- Document Checkouts → Document Records: tracks checkout
- Document Signatures → Document Records: signs documents
- Document Comments → Document Records: annotates documents
- Cabinet Filing → Document Records: files documents