ADR-053: Sandboxed Plugin-Jobs
Rechenintensive oder nicht vertrauenswürdige Plugin-Berechnungen laufen als credential-freier Prozess hinter einer host-eigenen Job-Registry.
- Status: Als Protokoll angenommen; Host-Enqueue-Adapter nicht ausgeliefert
- Datum: 2026-07-19
Kontext
Langlaufende oder nicht vertrauenswürdige Arbeit gehört weder in Convex-Actions noch in den Web-Prozess. Beliebige Kommandos an den bestehenden Code-Worker zu übergeben, würde jedoch eine Plugin-Payload in Remote-Shell-Ausführung verwandeln.
Entscheidung
Das Protokoll lässt ausschließlich Daten-Jobs zu, deren namensraumgebundene Art über eine host-kontrollierte Registry aus eigenen Objekteigenschaften aufgelöst wird. Derzeit wird kein Host-Enqueue-Adapter ausgeliefert. Sobald einer landet, wählt der Worker die ausführbare Datei und die Argv; Payload-Daten werden niemals in eine Shell-Zeichenkette interpoliert. Jobs laufen unter einer nicht privilegierten UID mit harten Zeit- und Ressourcengrenzen, einem privaten Workspace und einer Umgebung ohne Admin-, GitHub-, Convex- oder LLM-Zugangsdaten.
Der Host besitzt Claim-Leases, Heartbeat-Abbruch, Retry-Obergrenzen, das Begrenzen von Ergebnissen und den Endzustand. Unbekannte oder über das Prototype geerbte Job-Arten schlagen vor dem Spawn fehl. Jede Operation mit Zugangsdaten muss über einen separat autorisierten Host-Service zurücklaufen.
Konsequenzen
Owlats Protokoll kann rechenintensive Plugin-Aufgaben unterstützen, ohne plugin-gewählte Kommandos auszuführen oder ambiente Secrets preiszugeben. Das Worker-Image muss jede unterstützte Job-Implementierung explizit registrieren; der Host-Enqueue-Adapter wird derzeit nicht ausgeliefert. Siehe Sandboxed Jobs.