Zum Inhalt

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

Installationsanleitung


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

Note System Dokumentation

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