Files
AZion/README.md
2026-04-28 10:29:02 +02:00

79 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 059).*
* `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.