Initial commit

This commit is contained in:
2026-04-28 10:29:02 +02:00
parent e8636b08be
commit f22a25ce46
26 changed files with 3951 additions and 1 deletions

View File

@@ -1 +1,78 @@
AZion
# 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.