Public-API (neu, directus-extension-skrift-api): - Versionierter /v1-Namespace: POST /v1/orders, GET /v1/orders/:nr (Status pending/processing/shipped/cancelled), POST /v1/files (nur PDF, ≤80 MB). - Auth über X-Api-Key (Authorization ist von Directus reserviert), SHA-256-Hash. - Produkt-gebunden; Kuvert-only-Produkttyp; Kuvertformat automatisch (A4→DIN Lang, sonst C6); kein Platzhalter, kein Kunden-multipage/font_scale; Versandart englisch (single/bulk). - Selbst gehostete Swagger-UI-Doku (/docs) + OpenAPI (/v1/openapi.json), englisch/technisch. - Key-Hook (directus-extension-skrift-apikey): erzeugt Key automatisch, zeigt ihn einmalig in key_plain. Mehrseitige Schriftstücke: - generateLetterPages (Auto-Fluss, [[seitenumbruch]], Leerseiten-Filter). - Preview/Order-Generierung schreiben letter_NNN_pM.svg; Seiten-Übersicht im Neuauftrag. - Agent (skrift-agent): Seiten je Brief absteigend an den Plotter (Stapel-Reihenfolge). - countLetterPages + /api/order/pagecount für die Seiten-Vorschau. Manuelle Aufträge: - Schriftgröße (Brief/Kuvert), Signatur auf dem Brief mit X/Y/Größe-Feinjustierung, realistische Handschrift bis in den finalen Druck durchgereicht. - Spalten-Einfügen in der Empfängertabelle (Excel-Spalte je Zelle). Mailer: Text-Alternative + Reply-To (Zustellbarkeit). App: Freitext in Musteranfrage, Konfigurator-Reset, Lightbox-Seitenverhältnis + Bild-Download, Sticky-Vorschau-Fix, Tab-Eingabe + Rechtsbündigkeit, Leerzeilen-Trim. Bootstrap: neue Felder (font_scale_*, signatures_manual, multi_page, page_count, realistic, shipping_day, api_client) + Collections api_clients, Produkttyp envelope. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Skrift Produktions-Agent
Schlanker lokaler Agent (Windows) neben dem Plotter. Steuerung läuft über Directus – der Agent macht nur: Heartbeat → Job holen → drucken → melden.
Einrichtung
- In Directus einen Nutzer der Rolle Service anlegen und einen statischen Token erzeugen.
- Die Maschine in Directus unter Einstellungen → Maschinen anlegen
(
base_url, ggf.mid/Login). Die numerische ID der Maschine ist diemachine_idfür die Agent-Config. config.example.json→config.jsonkopieren und ausfüllen (directus_url,directus_token,machine_id).- Abhängigkeiten installieren und starten:
python -m venv .venv
.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python agent.py
Ablauf
- Der Agent meldet zyklisch
machines.status+last_seen(Heartbeat). - Er zieht den nächsten
jobs-Eintrag seiner Maschine mitstatus=queued(sortiert nachpriority, dann Alter). - Er lädt die SVGs des Auftrags passend zum Job-Typ (Schriftstück/Umschlag)
über den Directus-Datei-Endpoint (
/skrift-orders/files/...) und schickt sie mit den Template-Werten (Maße/Position/Rotation) an den Plotter. - Status zurück:
printing → printedbzw.failed(+ Fehlermeldung). - Bei Maschinenfehler (z. B. Papierende) ruft er
recover_writeauf.
Jobs entstehen
Über den Admin-Trigger POST /skrift-orders/enqueue { order, machine }
(bzw. später ein Button in der Webapp). Pro Auftrag entsteht ein Brief-Job und
– falls Kuvert beschriftet – ein Umschlag-Job, jeweils mit aufgelöstem Template.
Signaturen / AutoRecover
Der Signatur-Service bleibt vorerst unberührt. Das win32-AutoRecover
(klickt das Java-Fenster) kann weiter separat laufen; der Agent nutzt zusätzlich
den API-recover_write der Maschine.