[{"data":1,"prerenderedAt":83},["ShallowReactive",2],{"search-de":3,"content-de-developer\u002Fdecisions\u002F053-sandboxed-plugin-jobs":4,"surround-de-\u002Fdeveloper\u002Fdecisions\u002F053-sandboxed-plugin-jobs":74},[],{"id":5,"title":6,"body":7,"description":66,"extension":67,"meta":68,"navigation":69,"path":70,"seo":71,"stem":72,"__hash__":73},"content_de\u002F3.developer\u002Fdecisions\u002F16.053-sandboxed-plugin-jobs.md","ADR-053: Sandboxed Plugin-Jobs",{"type":8,"value":9,"toc":59},"minimark",[10,27,32,36,40,43,46,50],[11,12,13,21],"ul",{},[14,15,16,20],"li",{},[17,18,19],"strong",{},"Status:"," Als Protokoll angenommen; Host-Enqueue-Adapter nicht ausgeliefert",[14,22,23,26],{},[17,24,25],{},"Datum:"," 2026-07-19",[28,29,31],"h2",{"id":30},"kontext","Kontext",[33,34,35],"p",{},"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.",[28,37,39],{"id":38},"entscheidung","Entscheidung",[33,41,42],{},"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.",[33,44,45],{},"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.",[28,47,49],{"id":48},"konsequenzen","Konsequenzen",[33,51,52,53,58],{},"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 ",[54,55,57],"a",{"href":56},"\u002Fdeveloper\u002Fplugin-sandboxed-jobs","Sandboxed Jobs",".",{"title":60,"searchDepth":61,"depth":61,"links":62},"",2,[63,64,65],{"id":30,"depth":61,"text":31},{"id":38,"depth":61,"text":39},{"id":48,"depth":61,"text":49},"Rechenintensive oder nicht vertrauenswürdige Plugin-Berechnungen laufen als credential-freier Prozess hinter einer host-eigenen Job-Registry.","md",{},true,"\u002Fdeveloper\u002Fdecisions\u002F053-sandboxed-plugin-jobs",{"title":6,"description":66},"3.developer\u002Fdecisions\u002F16.053-sandboxed-plugin-jobs","_3dLfUwCYisT8SwUkKOPqhQXsPYl7yePoJISWJSp2qc",[75,79],{"title":76,"path":77,"stem":78,"children":-1},"ADR-052: Connected Apps und signierte Hooks","\u002Fdeveloper\u002Fdecisions\u002F052-connected-apps-and-signed-hooks","3.developer\u002Fdecisions\u002F15.052-connected-apps-and-signed-hooks",{"title":80,"path":81,"stem":82,"children":-1},"ADR-001: Eigener E-Mail-Renderer statt MJML","\u002Fdeveloper\u002Fdecisions\u002F001-custom-email-renderer","3.developer\u002Fdecisions\u002F2.001-custom-email-renderer",1786915115174]