Polycrate API 0.12.0¶
Release-Datum: 17. Februar 2026
Typ: Feature-Release
Highlights¶
Das groesste Feature-Release seit 0.11.0. Version 0.12.0 fuehrt den App-Katalog als First-Class ManagedObject ein, implementiert AI-gestuetzte Maintenance-Erkennung via OpenAI und staerkt die Infrastruktur-Modellierung mit dem Provider Model und der Workspace-Pop-Pflicht.
- CatalogueApp -- Plattformweiter App-Katalog als eigenstaendiges ManagedObject mit Baserow-Import
- AI Maintenance Detection -- Automatische Erkennung von Provider-Maintenances aus Status-Feeds via OpenAI
- Provider Model -- Externe Anbieter als eigenes ManagedObject mit Pop/DataSource-Verknuepfung
- Workspace Pop Required -- Pop als Pflichtfeld fuer Workspaces mit Condition-basiertem Monitoring
- Artifact Metadata Extraction -- Automatische Extraktion von Metadaten aus block.poly bei Polycrate-Discovery
Artefakte¶
Docker Images¶
Deployment¶
Neue Features¶
CatalogueApp -- App-Katalog als ManagedObject¶
Der plattformweite App-Katalog (bisher in Baserow) ist jetzt ein eigenstaendiges ManagedObject in der Polycrate API. Jede CatalogueApp ist mit einem ArtifactPackage (kind=polycrate) verknuepft und erbt darueber Metadaten wie Icon, Beschreibung und Repository-URLs.
Funktionsumfang:
- CatalogueApp Model mit Seriennummer, Claim, Pricing, Dependencies, Screenshot-Upload (S3)
- V2 Dynamic Table (List View) mit allen relevanten Spalten
- Alpine.js Detail View mit Version Switcher, Changelog und README Rendering
- ArtifactDerivedFieldsMixin fuer Metadaten vom neuesten Artifact
- CRUD via Django Forms (Paradigma A) im Drawer
- Baserow-Import via Management Command (
import_catalogue_from_baserow) - K8sApp FK auf CatalogueApp mit Auto-Zuordnung in Reconciliation
- API Filter: draft, is_new, zero_downtime, has_artifact_package, Preis-Range
AI-gestuetzte Maintenance-Erkennung¶
Provider-Status-Meldungen (RSS/API) werden automatisch via OpenAI analysiert und als Maintenance-Drafts erstellt. Die gesamte Logik laeuft in der Note-Reconciliation -- kein separater Celery Task noetig.
Funktionsumfang:
MaintenanceDetectionServicemit OpenAI-Integration (austauschbar: Ollama, vLLM, Azure)- Konfiguration ueber SystemConfig UI (Kategorie "Integration: OpenAI")
- Idempotenz via
analysis_resultsJSONField auf Note (content_hash Vergleich) - Automatisches Pop-Matching (exakt, contains, city/region)
- Maintenance-Lifecycle: Create als Draft, Update bei Follow-up-Meldungen
- Confidence-Threshold konfigurierbar (Default: 0.5)
- Note in Reconciliation Registry (10 Minuten Intervall)
- Neue Felder auf Maintenance:
pop,source_note,source_datasource,source_item_id - Neue Felder auf Note:
analysis_results(generisches JSONField fuer AI-Prozessoren)
Provider Model¶
Externe Anbieter (Hetzner, OVH, etc.) als eigenstaendiges ManagedObject im pops App. Provider sind mit Pops und DataSources verknuepft und bilden die Grundlage fuer die AI Maintenance Detection.
Funktionsumfang:
- Provider Model mit kind, legal_name, slug, logo, contact-Felder
- Pop hat
provider_entityFK zu Provider (required, PROTECT) - DataSource hat
provider_entityFK zu Provider - API, UI, Drawer Table, Admin-Registrierung
Workspace Pop Required¶
Das Pop-Feld ist fuer Workspaces jetzt pflicht -- per Soft-Enforcement auf Form- und API-Ebene. Bestehende Workspaces ohne Pop erhalten eine Warning-Condition.
Funktionsumfang:
- Forms:
poprequired in Create + Edit - Serializer:
PopSimpleSerializer(read) +pop_id(write, required) - Conditions:
WORKSPACE_POP_MISSINGundWORKSPACE_POP_ARCHIVED - Reconciliation prueft Pop-Zuordnung und Pop-Archivierungsstatus
Artifact Metadata Extraction¶
Die Polycrate-Discovery parst jetzt block.poly YAML und extrahiert Metadaten-Felder in die korrespondierenden Artifact-Model-Felder. Damit werden die ueber ArtifactDerivedFieldsMixin exponierten Felder korrekt befuellt.
Extrahierte Felder: icon_url, website_url, license, app_version, description, display_name, source_urls, default_config
Management Command: extract_artifact_metadata fuer bestehende Artifacts (mit --dry-run, --force, --kind)
Conditional Reconciliation¶
Reconciliation mit konfigurierbaren Intervallen und Queryset-Filtern. Models koennen ueber get_reconciliation_queryset() steuern, welche Objekte reconciled werden -- und ueber should_reconcile() ob ein individuelles Objekt verarbeitet wird.
Funktionsumfang:
get_reconciliation_queryset()Classmethod auf ManagedObjectshould_reconcile()Instance-Methode- Konfigurierbare Intervalle per Model in der Reconciliation Registry
- Priority-basierte Verarbeitung
Weitere Verbesserungen¶
- Sidebar-Menuestruktur-Redesign -- Breadcrumbs in Topbar, ueberarbeitete Gruppenstruktur
- Bottombar JS-Paradigma -- Edit/Delete Buttons fuer JS-basierte Models (Paradigma B) in der generischen Bottombar
- K8sApp Block-Version-Spalte -- Version des Polycrate-Blocks in der K8sApp V2 Table
- Polycrate Changelog Component -- Wiederverwendbare Alpine.js Component fuer CHANGELOG.poly Rendering
polycrate-api Block¶
Block-Version: 0.6.0
Migration¶
Datenbank-Migrationen¶
Dieses Release enthaelt Migrationen fuer:
artifacts-- CatalogueApp Modelk8s-- catalogue_app FK auf K8sAppmaintenances-- pop, source_note, source_datasource, source_item_idnotes-- analysis_results JSONFieldpops-- Provider Model, provider_entity FK auf Pop
Neue Python Dependencies¶
openai>=1.0.0-- OpenAI API Client fuer AI Maintenance Detection
CatalogueApp Import aus Baserow¶
Nach dem Deployment kann der App-Katalog aus Baserow importiert werden:
Artifact Metadata Backfill¶
Bestehende Polycrate-Artifacts erhalten Metadaten aus ihren block.poly Specs:
OpenAI-Integration konfigurieren¶
Die AI Maintenance Detection ist per Default deaktiviert. Aktivierung ueber die SystemConfig UI unter "Integration: OpenAI":
OPENAI_INTEGRATION_ENABLED= TrueOPENAI_API_KEYsetzen (oder lokaler Provider ohne Key)OPENAI_MAINTENANCE_DETECTION_ENABLED= True