secubox-openwrt/secubox-tools/webui/docs/API.md
CyberMind-FR 0d6aaa1111 feat(webui): add Project Hub workspace and remove Command Center glow effects
- Add complete Project Hub & Workspace Interface implementation
  - New data models: Project, ModuleKit, Workspace
  - 3 fixture projects (cybermind.fr, cybermood.eu, secubox-c3)
  - 4 module kits (Security, Network, Automation, Media)
  - Workspace routes with project switching and kit installation
  - 4 workspace tabs: Overview, Module Kits, Devices, Composer
  - New navigation item: Workspace (7th section)

- Remove all glowing effects from UI
  - Remove Command Center widget glow and backdrop blur
  - Remove device status indicator glow
  - Remove toggle button glow effects

- Extend DataStore with 13 new methods for workspace management
- Add 270+ lines of workspace-specific CSS with responsive layouts
- Create workspace templates and result partials

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-03 08:10:22 +01:00

163 lines
3.8 KiB
Markdown

# SecuBox WebUI API Documentation
## Base URL
Development: `http://127.0.0.1:8100`
## HTML Endpoints (Browser UI)
### Main Navigation
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/` | GET | Home page - Module catalog |
| `/appstore` | GET | AppStore marketplace |
| `/components` | GET | Component registry |
| `/profiles` | GET | Configuration profiles |
| `/templates` | GET | Configuration templates |
| `/settings` | GET | Settings & preferences |
### Module Management
| Endpoint | Method | Description | Parameters |
|----------|--------|-------------|------------|
| `/modules/grid` | GET | Module grid partial (HTMX) | `theme`, `tag` |
| `/modules/{module_id}` | GET | Module detail page | - |
### AppStore
| Endpoint | Method | Description | Parameters |
|----------|--------|-------------|------------|
| `/appstore` | GET | AppStore page | `category`, `search`, `installed`, `theme` |
| `/appstore/grid` | GET | AppStore grid partial (HTMX) | `category`, `search`, `theme` |
| `/appstore/{item_id}` | GET | App detail page | - |
| `/appstore/{item_id}/install` | POST | Install app (mock) | - |
### Preset Execution
| Endpoint | Method | Description | Body |
|----------|--------|-------------|------|
| `/presets/{preset_id}/run` | POST | Run preset (simple) | - |
| `/presets/run` | POST | Run preset with context | `preset_id` (form), `context_json` (form) |
## JSON API Endpoints
### Modules
**GET /api/modules**
Returns list of all modules.
Response:
```json
{
"modules": [
{
"id": "luci-app-auth-guardian",
"name": "Auth Guardian",
"category": "LuCI Application",
"version": "0.4.0",
"summary": "Comprehensive authentication and session management...",
"health": "stable",
"tags": ["auth", "guardian"],
"secure_contexts": ["ui-sandbox"],
"actions": ["Preview UI", "Run Diagnostics"]
}
]
}
```
### Presets
**GET /api/presets**
Returns list of all presets.
Response:
```json
{
"presets": [
{
"id": "core-snapshot",
"name": "Device Snapshot",
"description": "Capture full device state",
"module": "secubox-core",
"command_sequence": ["snapshot", "validate"],
"parameters": {},
"expected_outcome": "Complete device snapshot"
}
]
}
```
**POST /api/presets/{preset_id}/run**
Execute a preset with optional context.
Request Body:
```json
{
"context": {
"mode": "dry-run",
"verbose": true
}
}
```
Response:
```json
{
"preset": { ... },
"summary": "Preset 'Device Snapshot' completed for SecuBox Core",
"context": {
"module": "SecuBox Core",
"mode": "dry-run"
},
"commands": [
{
"command_id": "snapshot",
"name": "System Snapshot",
"log": "Snapshot completed successfully...",
"status": "ok"
}
],
"warnings": null
}
```
## Query Parameters
### Common Parameters
- `theme` - Theme selection (`secubox` or `luci`)
- `tag` - Filter by tag
- `category` - Filter by category
- `search` - Search query string
- `installed` - Boolean, show only installed items
- `module_id` - Filter by module ID
- `template_type` - Filter templates by type
## Theme Support
All HTML endpoints accept a `?theme=` parameter:
- `?theme=secubox` - SecuBox Light theme (default)
- `?theme=luci` - LuCI Dark theme
## Static Assets
- `/static/css/` - Stylesheets
- `/static/js/` - JavaScript files
- `/static/images/` - Images and icons
## Interactive Features (HTMX)
Many endpoints return HTML partials for HTMX:
- `hx-get="/modules/grid?tag=security"` - Load filtered modules
- `hx-post="/presets/run"` - Run preset with form data
- `hx-get="/appstore/grid?search=vpn"` - Search apps
## Development Tools
- `/docs` - Auto-generated OpenAPI documentation (Swagger UI)
- `/redoc` - ReDoc API documentation
- `/openapi.json` - OpenAPI schema