Polycrate API 0.11.12
Polycrate API 0.11.12
Release-Datum: 19. Januar 2026
Typ: Feature & Performance Release
Highlights
Dieses Release bringt umfangreiche UI-Modernisierung und signifikante Performance-Verbesserungen für den System State Loop.
- 📝 Milkdown Editor - Moderner Markdown-Editor mit @Mention-Support für Notes
- 📦 S3 Media Storage - Medien-Dateien werden jetzt in S3 gespeichert
- 🎛️ V2 Table Filter - Neue Filter-UI mit URL-State Persistenz
- 🔔 Toast System - Modernisiertes Notification-System mit Polycrate.toast API
- ⚡ System State Loop - Von 5-15s auf 1-3s optimiert
- 🧹 Graph Cleanup - downstream_objects Graph komplett entfernt (~600 Zeilen)
Artefakte
Docker Images
docker pull cargo.ayedo.cloud/polycrate/polycrate-api:0.11.12
Installation & Update
# Block aktualisieren und deployen
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install
Neue Features
Milkdown Editor mit @Mention Plugin
Der bisherige Plaintext-Editor für Notes wurde durch den Milkdown Editor ersetzt - einen modernen, Markdown-basierten WYSIWYG-Editor.
Features: - Markdown-Rendering in Echtzeit - @Mentions für Benutzer-Referenzen - Toolbar für häufige Formatierungen - Inline-Code und Code-Blöcke - Listen, Links und mehr
Technische Umsetzung:
- Neues structured_content Feld auf Note Model (JSONField)
- Milkdown-Konfiguration in static/polycrate_api/js/milkdown.js
- Mention-Plugin mit User-Autocomplete
S3 Media Storage Backend
Medien-Dateien werden jetzt in S3-kompatiblem Object Storage gespeichert statt auf dem lokalen Dateisystem.
Vorteile: - Skalierbar über mehrere API-Instanzen - Persistente Speicherung unabhängig von Container-Lifecycle - CDN-fähig für schnellere Auslieferung
Konfiguration:
# In settings.py oder .env
AWS_ACCESS_KEY_ID = "..."
AWS_SECRET_ACCESS_KEY = "..."
AWS_STORAGE_BUCKET_NAME = "polycrate-media"
AWS_S3_ENDPOINT_URL = "https://s3.example.com"
V2 Table Filter UI
Neue Filter-Komponente für alle Tables mit verbesserter UX:
Features: - Filter-Chips: Aktive Filter als Badges sichtbar - URL-State: Filter werden in URL persistiert (teilbar, bookmarkbar) - get_available_filters(): Dynamische Filter-Optionen pro Table - Clear-All Button: Alle Filter mit einem Klick zurücksetzen
Toast System Modernization
Neues Toast-Notification-System mit einheitlicher API:
// Neue Polycrate.toast API
Polycrate.toast.success('Änderungen gespeichert');
Polycrate.toast.error('Fehler beim Speichern');
Polycrate.toast.info('Synchronisation läuft...');
Polycrate.toast.warning('Bitte prüfen Sie die Eingabe');
Critical Label in Table UI
Tables zeigen jetzt ein Critical-Label für Objekte mit dem Label polycrate.io/critical:
- Rotes Badge in der Label-Spalte
- Filterable über Table-Filter
- Kennzeichnet geschäftskritische Ressourcen
Inline Reply System
Notes unterstützen jetzt Inline-Replies:
- Antwort-Button auf jeder Note
- Verschachtelte Darstellung
- Referenz zur Parent-Note
Performance-Verbesserungen
System State Loop Optimierung
Der System State Loop wurde von 5-15 Sekunden auf 1-3 Sekunden optimiert.
Änderungen: - Optimierte Datenbankabfragen - Reduzierte Celery Task Overhead - Effizientere State-Berechnung
Auswirkung: - Schnellere UI-Updates bei State-Änderungen - Geringere Latenz bei Downtime-Erkennung - Weniger Datenbank-Last
Condition Save Optimization
Die add_condition() und remove_condition() Methoden haben jetzt save=False als Default:
# Vorher: Jeder Condition-Aufruf = 1 DB-Write
self.add_condition("MY_CONDITION", "reason") # → save()
# Nachher: Explizites save() erforderlich
self.add_condition("MY_CONDITION", "reason") # → kein save()
self.save() # → Einmaliges save() am Ende
Auswirkung: - Weniger Datenbankschreibvorgänge bei Reconciliation - Batch-Updates möglich - Konsistentere Transaktionen
Cleanup
downstream_objects Graph entfernt
Der komplette downstream_objects Graph-Code wurde entfernt (~600 Zeilen):
| Komponente | Änderung |
|---|---|
ManagedObject.downstream_objects |
Property entfernt |
templates/graph/ |
Alle Templates entfernt |
views/graph.py |
View entfernt |
urls.py |
Route entfernt |
| JavaScript | Graph-Rendering Code entfernt |
Grund: Feature wurde nie produktiv genutzt und verursachte unnötige Komplexität.
Update Activities optional
Update-Activities können jetzt über SystemConfig deaktiviert werden:
# In SystemConfig
SYSTEM_CREATE_UPDATE_ACTIVITIES = False # Keine Update-Activities erstellen
Use Case: Reduzierung des Activity-Log Volumens in großen Installationen.
polycrate-api Block
Der polycrate-api Block wurde auf Version 0.5.16 aktualisiert:
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install
Migration
Datenbank-Migrationen erforderlich:
# In Docker Container
python manage.py migrate
Die Migrationen fügen das structured_content Feld hinzu und entfernen deprecated Felder.
Weitere Informationen
- Polycrate API Übersicht - Allgemeine Dokumentation
- Vollständiger Changelog