Entity Relationships
CaseMgr uses ArcadeDB as a graph database, storing entities as vertices and relationships as edges.
Core Entities
| Entity | Description |
|---|
| Case | Top-level container for case management |
| CaseFileItem | Items within a case (12 types) |
| Client | Billing entity with rate and currency |
| Worktree | Git worktree tracking across machines |
CaseFileItem Types (12)
| Type | Description | Required Fields |
|---|
| bookmark | Web bookmark | url, title |
| directory | Filesystem path | path |
| file | File attachment | filename |
| folder | Organizational folder | (none) |
| note | Markdown note | content |
| invoice | Billing invoice | invoice_number, amount |
| duration | Time tracking | start_time |
| desktop | Workspace config | name |
| task | CMMN task | title, status |
| stage | CMMN stage | name, status |
| milestone | CMMN milestone | name, status |
| sentry | Entry/exit criteria | name, sentry_type |
Edge Types (Relationships)
| Edge | Relationship |
|---|
| HasCaseFileItem | Case → CaseFileItem |
| ParentOf | CaseFileItem → CaseFileItem (hierarchy) |
| BelongsTo | Case → Client |
| HasInvoice | Client → Invoice |
| LinkedTo | Any → Any (flexible) |
| HasWorktree | Case → Worktree |
Visual Diagram
CLIENT ──BelongsTo──► CASE ──HasCaseFileItem──► CASE FILE ITEM
│ │ │
│ └──HasWorktree──► WORKTREE │
│ │
└──HasInvoice──► INVOICE (CaseFileItem) ParentOf
│
▼
Child Items