Initial commit
This commit is contained in:
79
README.md
79
README.md
@@ -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 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.
|
||||
|
||||
Reference in New Issue
Block a user