79 lines
3.4 KiB
Markdown
79 lines
3.4 KiB
Markdown
# AZion Scheduler – High-Performance Process Dashboard
|
||
|
||
AZion is a specialized Vite + React SPA designed for high-performance visualization and management of server-side processes, using **Baserow** as a headless backend.
|
||
|
||
## 🚀 Quick Start
|
||
|
||
1. **Install dependencies**: `npm install`
|
||
2. **Setup environment**: Rename `.env.example` to `.env` and provide your Baserow API details.
|
||
3. **Run Dev server**: `npm run dev`
|
||
|
||
---
|
||
|
||
## 🛠 Baserow & n8n Integration Guide
|
||
|
||
This section outlines the exact internal logic the AZion dashboard uses to parse scheduling parameters. When inserting or updating records via an automation runtime like **n8n**, your JSON payload sent to the Baserow API must structurally respect these dependencies.
|
||
|
||
### 1. Global / Universal Fields
|
||
These fields are required or heavily impact the UI regardless of the execution type.
|
||
|
||
- **`Name`** *(Single-line text)*: The display name of the process.
|
||
- **`Server`** *(Linked row)*: Reference ID linking back to the Server Table. n8n payload syntax: `[123]` (Array of IDs).
|
||
- **`Sortierung`** *(Number)*: The rendering order integer. `1` is pushed to the top of the timeline track.
|
||
- **`Dauer`** *(Single-line text or Number)*: **Always specified in SECONDS**. Defines the length of the visual block. *(e.g., passing `"1800"` renders a 30-minute block).*
|
||
- **`Farbe`** *(Single-line text)*: The hex code for the visual block. *(e.g., `"#3b82f6"`).*
|
||
- **`Status`** *(Single select)*: E.g., `aktiv`, `inaktiv`, `fehler`.
|
||
- **`Sichtbarkeit`** *(Single select)*: Declares semantic zoom constraints (`Immer`, `Max 6 Stunden`, `Max 1 Tag`, `Max 1 Woche`, `Max 1 Monat`).
|
||
|
||
### 2. Dynamic Scheduling via `Wiederholung`
|
||
The logic engine evaluates time solely based on what string is stored inside the **`Wiederholung`** *(Single select)* column.
|
||
|
||
#### Pattern A: Standard Execution
|
||
**Applies to**: `TAEGLICH`, `WOECHENTLICH`, `WERKTAGE`, `WOCHENENDE`, `MONATLICH_FESTER_TAG`
|
||
These patterns expect a singular, definitive time of day.
|
||
|
||
* **n8n Setup**:
|
||
* `Wiederholung`: `"TAEGLICH"`
|
||
* `Start`: `"HH:MM:SS"` *(e.g., `"08:30:00"`).*
|
||
* `Dauer`: `"60"` *(60 seconds).*
|
||
|
||
#### Pattern B: Hourly Execution (`STUENDLICH`)
|
||
* **n8n Setup**:
|
||
* `Wiederholung`: `"STUENDLICH"`
|
||
* `Start Minute`: `45` *(Integer 0–59).*
|
||
* `Dauer`: `"120"` *(2 minutes).*
|
||
|
||
#### Pattern C: Custom Interval (`INTERVALL`)
|
||
Recurrent blocks bounded between two timestamps.
|
||
|
||
* **n8n Setup**:
|
||
* `Wiederholung`: `"INTERVALL"`
|
||
* `Erste Ausführung`: `"HH:MM:SS"` *(Start bounds).*
|
||
* `Ausführung bis`: `"HH:MM:SS"` *(End bounds).*
|
||
* `Intervall zwischen`: `"3600"` *(Spacing in SECONDS).*
|
||
* `Dauer`: `"300"` *(Duration in SECONDS).*
|
||
|
||
---
|
||
|
||
### 3. Example JSON Payload (n8n / API)
|
||
|
||
```json
|
||
{
|
||
"Name": "API Heartbeat Checker",
|
||
"Server": [45],
|
||
"Wiederholung": "INTERVALL",
|
||
"Erste Ausführung": "08:00:00",
|
||
"Ausführung bis": "17:00:00",
|
||
"Intervall zwischen": "300",
|
||
"Dauer": "15",
|
||
"Status": "aktiv",
|
||
"Farbe": "#22c55e",
|
||
"Sortierung": 8
|
||
}
|
||
```
|
||
|
||
### 🧠 Performance & Logic Notes
|
||
- **Block Merging**: The Gantt Chart automatically merges overlapping blocks from the same process to prevent DOM flooding when zoomed out.
|
||
- **Max View Filter**: High-frequency tasks (like 1-min intervals) are hidden in Monthly/Weekly views unless `Sichtbarkeit` is set to "Immer" to maintain UI responsiveness.
|
||
- **Auto-Sort**: The frontend automatically finds the next highest `Sortierung` index when creating new tasks via the GUI.
|