Files
yourpart-daemon/docs/FALUKANT_WORKER_SCHEDULE_SOCKET.md

96 lines
1.7 KiB
Markdown

# Worker-Schedules per WebSocket
Dieses Feature stellt eine Übersicht bereit, wann Worker-Tasks voraussichtlich wieder laufen.
## Zugriffsschutz
Der Zugriff ist nur erlaubt für Nutzer mit mindestens einem dieser Rechte:
- `admin`
- `worker_schedule_read`
Migration für das neue Recht:
- `migrations/018_worker_schedule_socket_right.sql`
## WebSocket-Events
Voraussetzung: Der Client hat vorher `setUserId` gesendet.
### 1) Übersicht
Request:
```json
{
"event": "getWorkerSchedules",
"data": {}
}
```
Response:
```json
{
"event": "getWorkerSchedulesResponse",
"ok": true,
"generated_at": 1715157600,
"schedules": [
{
"worker": "DirectorWorker",
"tasks": [
{
"task": "salary_payout",
"cadence_seconds": 86400,
"cadence_label": "86400s interval",
"next_run_latest_ts": 1715244000,
"next_run_latest_in_seconds": 86400
}
]
}
]
}
```
Hinweis: Sekündliche/minütliche Tasks sind absichtlich nicht enthalten.
### 2) Detaillierte Übersicht
Request:
```json
{
"event": "getWorkerSchedulesDetailed",
"data": {}
}
```
Response (zusätzlich Live-Status aus dem Worker-Runtime-Registry):
```json
{
"event": "getWorkerSchedulesDetailedResponse",
"ok": true,
"generated_at": 1715157600,
"schedules": [
{
"worker": "DirectorWorker",
"running_worker": true,
"running_watchdog": true,
"current_step": "DirectorWorker: pay_salary",
"last_step_change_ts": 1715157000,
"tasks": []
}
]
}
```
## Rechteprüfung (technisch)
Der Daemon akzeptiert sowohl:
- `setUserId = community.user.id`
- `setUserId = falukant_data.falukant_user.id`
In beiden Fällen wird auf `community.user_right` + `"type".user_right` geprüft.