How embeddedos-org/edb works
eDB combines a SQLite-backed multi-model database, a FastAPI service with authentication and security, an eBot query assistant, and a React database-manager UI. The main backend path is HTTP request → API route/dependencies → database facade → model-specific store → SQLite engine. The UI assembles table/query views and an eBot sidebar; the sampled UI database hook holds local state, so its connection to the backend is not demonstrated. Several subsystem links rely on README or SOURCE INDEX references rather than inspected implementation details.
Main entry points: database.py Database facade · dependencies.py API services · App.tsx App shell · app.py API application
Components 29
Database UI
- App shell
src/App.tsx - Table browser
src/components/TableList.tsx - Table editor
src/components/TableView.tsx - Query editor
src/components/QueryEditor.tsx - UI database state
src/hooks/useDatabase.ts - eBot sidebar
src/components/EBotSidebar.tsx - eBot API hook
src/hooks/useEBot.ts
HTTP API
- API application
src/edb/api/app.py - SQL endpoint
src/edb/api/routes/sql.py - Model endpoints
src/edb/api/routes - eBot endpoint
src/edb/api/routes/ebot.py - API services
src/edb/api/dependencies.py - Authentication endpoints
src/edb/api/routes/auth.py
Auth & security
- JWT handling
src/edb/auth/jwt_handler.py - Users and RBAC
src/edb/auth/users.py - Audit logging
src/edb/security/audit.py
Query assistant
- Query parser
src/edb/query/parser.py - Query planner
src/edb/query/planner.py - eBot translator
src/edb/ebot/translator.py - Optional LLM backend
src/edb/ebot/llm_translator.py
Database engine
- Database facade
src/edb/core/database.py - Relational store
src/edb/core/relational.py - Document store
src/edb/core/document.py - Key-value store
src/edb/core/keyvalue.py - Graph store
src/edb/core/graph.py - Full-text search
src/edb/core/fts.py - SQLite engine
src/edb/core/engine.py
Other components
- Database user
- SQLite
Connections 44
- Database user → App shell: uses
README.md - App shell → Table browser: renders
src/App.tsx - App shell → Table editor: renders
src/App.tsx - App shell → Query editor: renders
src/App.tsx - App shell → eBot sidebar: renders
src/App.tsx - App shell → UI database state: uses
src/App.tsx - App shell → eBot API hook: uses
src/App.tsx - Table browser → UI database state: reads and updates
src/components/TableList.tsx - Table editor → UI database state: updates rows
src/App.tsx - Query editor → UI database state: reads tables
src/components/QueryEditor.tsx - eBot sidebar → eBot API hook: requests queries
src/App.tsx - eBot API hook → Database user: calls eBot HTTP
src/hooks/useEBot.ts - Database user → API application: sends requests
README.md - API application → SQL endpoint: registers route
src/edb/api/app.py - API application → Model endpoints: registers routes
src/edb/api/app.py - API application → Authentication endpoints: registers route
src/edb/api/app.py - API application → eBot endpoint: registers route
src/edb/api/app.py - SQL endpoint → API services: uses dependencies
src/edb/api/routes/sql.py - Model endpoints → API services: uses dependencies
src/edb/api/routes/documents.py - Authentication endpoints → API services: uses dependencies
src/edb/api/routes/auth.py - eBot endpoint → API services: uses dependencies
src/edb/api/routes/ebot.py - eBot endpoint → eBot translator: translates requests
src/edb/api/routes/ebot.py - eBot endpoint → Query parser: parses queries
src/edb/api/routes/ebot.py - eBot endpoint → Query planner: plans queries
src/edb/api/routes/ebot.py - eBot translator → Optional LLM backend: may use
README.md - API services → Database facade: creates
src/edb/api/dependencies.py - API services → JWT handling: creates and verifies
src/edb/api/dependencies.py - API services → Users and RBAC: creates
src/edb/api/dependencies.py - API services → Audit logging: creates
src/edb/api/dependencies.py - Authentication endpoints → JWT handling: authenticates
- Authentication endpoints → Users and RBAC: manages users
src/edb/api/routes/auth.py - SQL endpoint → Database facade: queries
src/edb/api/routes/sql.py - Model endpoints → Database facade: accesses stores
- Query planner → Database facade: executes plans
src/edb/query/planner.py - Database facade → Relational store: initializes
src/edb/core/database.py - Database facade → Document store: initializes
src/edb/core/database.py - Database facade → Key-value store: initializes
src/edb/core/database.py - Database facade → Graph store: initializes
src/edb/core/database.py - Database facade → Full-text search: initializes
src/edb/core/database.py - Relational store → SQLite engine: uses
src/edb/core/relational.py - Graph store → SQLite engine: uses
src/edb/core/graph.py - Database facade → SQLite engine: creates
src/edb/core/database.py - SQLite engine → SQLite: stores data
src/edb/core/engine.py - Audit logging → SQLite engine: writes audit records
src/edb/security/audit.py