How ember-nexus/api works
Ember Nexus is a REST knowledge-graph API for storing, connecting, securing, and searching data. The main workflow starts with an API request, applies identity and access rules, then reads or mutates graph elements and returns a response; search is a separate event-driven, multi-step workflow. The tree and README establish graph storage, full-text search, file, WebDAV, and backup capabilities, but sampled code is limited, so several subsystem links are intentionally omitted.
Main entry points: Element Element endpoints · PostSearchController.php Search endpoint · CypherEntityManagerFactory.php Cypher manager · PostRegisterController.php User registration
Components 21
API workflows
- Element endpoints
src/Controller/Element - Search endpoint
src/Controller/Search/PostSearchController.php - File endpoints
src/Controller/File - WebDAV endpoints
src/Controller/WebDAV - System endpoints
src/Controller/System - API responses
src/Response
Element domain
- Element manager
src/Service/ElementManager.php - Element conversion
src/Service - Graph elements
src/Type/NodeElement.php
Storage and search
- Cypher manager
src/Factory/CypherEntityManagerFactory.php - Neo4j graph
- Elastic manager
src/Factory/ElasticEntityManagerFactory.php - Elasticsearch
- Search steps
src/EventSystem/SearchStep - Mongo manager
src/Factory/MongoEntityManagerFactory.php - MongoDB
Identity and operations
- Access control
src/Security/AccessChecker.php - Authentication
src/Security/AuthProvider.php - User registration
src/Controller/User/PostRegisterController.php - Backup commands
src/Command/BackupCreateCommand.php
Other components
- API client
Connections 14
- API client → Element endpoints: requests
- API client → Search endpoint: submits search
- Element endpoints → Authentication: gets identity
- Element endpoints → Access control: checks access
- Element endpoints → Cypher manager: queries graph
- Element endpoints → API responses: builds response
- Search endpoint → Search steps: dispatches steps
- Search endpoint → API responses: returns results
- User registration → Cypher manager: checks identifiers
- User registration → Element manager: creates user
- Element conversion → Graph elements: converts elements
- Elastic manager → Elasticsearch: connects
- Mongo manager → MongoDB: connects
- Cypher manager → Neo4j graph: connects