Add Unraid UI project documentation and research
Some checks failed
Master CI / yarn_install_and_build (push) Has been cancelled
Some checks failed
Master CI / yarn_install_and_build (push) Has been cancelled
- Complete Unraid WebGUI inventory (~100 pages documented) - Unraid GraphQL API research and documentation - Homarr architecture documentation - Orchis GTK theme design tokens (TypeScript) - Project README with implementation plan Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
81
docs/unraid-ui-project/unraid-api-research.md
Normal file
81
docs/unraid-ui-project/unraid-api-research.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Unraid API Research (Live from XTRM-Unraid v7.2.3)
|
||||
|
||||
## API: unraid-api v4.29.2 (NestJS + Apollo GraphQL)
|
||||
|
||||
### Connection
|
||||
- HTTP: `http://192.168.10.20/graphql`
|
||||
- WebSocket: `ws://192.168.10.20/graphql` (graphql-ws protocol)
|
||||
- Unix socket: `/var/run/unraid-api.sock`
|
||||
- Auth: `x-api-key` header
|
||||
|
||||
### GraphQL Queries
|
||||
| Query | Description |
|
||||
|-------|-------------|
|
||||
| `info` | System info (cpu, memory, os, baseboard, devices, display, versions) |
|
||||
| `array` | Array state, capacity, disks, parities, caches, parity check status |
|
||||
| `disks` / `disk(id)` | Physical disks with SMART status, temp, serial |
|
||||
| `docker` | Containers (id, names, state, status, image, ports, autoStart) + networks |
|
||||
| `vms` | VMs (id, name, state) |
|
||||
| `shares` | Shares (name, free, used, size, include, exclude, cache, color) |
|
||||
| `notifications` | Notifications (title, subject, description, importance, type, timestamp) |
|
||||
| `vars` | Server variables (version, name, timezone, network, SMB/NFS settings) |
|
||||
| `services` | Running services (name, online, uptime, version) |
|
||||
| `flash` | Flash drive (guid, vendor, product) |
|
||||
| `registration` | License (type, state, keyFile, expiration) |
|
||||
| `network` | Network info (accessUrls) |
|
||||
| `server` | Server details (owner, guid, wanip, lanip, localurl, remoteurl) |
|
||||
| `connect` | Connect status (dynamicRemoteAccess, settings) |
|
||||
| `plugins` | Installed plugins (name, version) |
|
||||
| `logFiles` / `logFile(path)` | Log file listing and content |
|
||||
| `upsDevices` / `upsConfiguration` | UPS monitoring |
|
||||
| `apiKeys` | API key management |
|
||||
| `customization` | Theme + activation code |
|
||||
| `me` / `owner` | Current user / server owner |
|
||||
|
||||
### GraphQL Mutations
|
||||
| Mutation | Description |
|
||||
|----------|-------------|
|
||||
| `array.setState` | Start/stop array |
|
||||
| `array.addDiskToArray` / `removeDiskFromArray` | Disk management |
|
||||
| `array.mountArrayDisk` / `unmountArrayDisk` | Mount/unmount |
|
||||
| `docker.start(id)` / `docker.stop(id)` | Container start/stop |
|
||||
| `vm.start/stop/pause/resume/forceStop/reboot/reset(id)` | VM power management |
|
||||
| `parityCheck.start/pause/resume/cancel` | Parity check control |
|
||||
| `notification.create/delete/archive/unread` | Notification CRUD |
|
||||
| `apiKey.create/update/delete` | API key management |
|
||||
| `customization.setTheme` | Theme switching |
|
||||
| `connectSignIn/SignOut` | Unraid Connect |
|
||||
| `setupRemoteAccess` | Remote access config |
|
||||
|
||||
### GraphQL Subscriptions (Real-time)
|
||||
- `systemMetricsCpu` / `systemMetricsCpuTelemetry` / `systemMetricsMemory`
|
||||
- `arraySubscription` / `parityHistorySubscription`
|
||||
- `notificationAdded` / `notificationsOverview`
|
||||
- `logFile` (live log streaming)
|
||||
- `upsUpdates`
|
||||
- `ownerSubscription` / `serversSubscription`
|
||||
|
||||
### Enums
|
||||
- ArrayState: STARTED, STOPPED, NEW_ARRAY, RECON_DISK, DISABLE_DISK, etc.
|
||||
- ArrayDiskStatus: DISK_NP, DISK_OK, DISK_INVALID, DISK_WRONG, DISK_DSBL, etc.
|
||||
- ArrayDiskType: DATA, PARITY, FLASH, CACHE
|
||||
- ContainerState: RUNNING, EXITED
|
||||
- VmState: NOSTATE, RUNNING, IDLE, PAUSED, SHUTDOWN, SHUTOFF, CRASHED, PMSUSPENDED
|
||||
- DiskFsType: XFS, BTRFS, VFAT, ZFS, EXT4, NTFS
|
||||
- DiskInterfaceType: SAS, SATA, USB, PCIE, UNKNOWN
|
||||
- ThemeName: azure, black, gray, white
|
||||
|
||||
### Legacy PHP/Nchan Endpoints
|
||||
- Nchan WebSocket channels: `/sub/var`, `/sub/docker`, `/sub/update1-3`, `/sub/diskload`, etc.
|
||||
- PHP includes: DashboardApps.php, Control.php, SmartInfo.php, Syslog.php, etc.
|
||||
- State INI files at `/var/local/emhttp/`: var.ini, disks.ini, shares.ini, etc.
|
||||
- Legacy control: POST to `/update.htm` for commands
|
||||
|
||||
### NOT Available via GraphQL
|
||||
- Docker create/delete/restart/logs
|
||||
- VM create/delete
|
||||
- Share CRUD, User CRUD
|
||||
- Detailed SMART attributes
|
||||
- Disk format/clear, spin up/down
|
||||
- System reboot/shutdown
|
||||
- Mover operations
|
||||
Reference in New Issue
Block a user