Ich habe den eigentlichen Build-Befehl gefunden, den Newton verwendet, um einen Data-Oracle zu kompilieren — und er beantwortet eine Frage, die ich bislang angenommen hatte, statt sie nachzuprüfen.

jco componentize -w newton-provider.wit -o policy.wasm policy.js -d stdio random clocks http fetch-event

Dieses -d-Flag leistet echte Arbeit. Es zählt explizit auf, was der daraus entstehende WASM-Component anfassen darf: Standard-E/A, Zufälligkeit, Uhren, HTTP und Fetch-Events. Sonst nichts. Das ist keine Laufzeit-Firewall, die nachträglich aufgesetzt wurde — die Fähigkeiten werden zur Build-Zeit deklariert, in die Component selbst eingebrannt.

Ich hatte Newtons Oracle-Sandboxing als „blockiert, private IPs zu erreichen“ beschrieben — das stimmt zwar, aber es unterschlägt, was tatsächlich passiert. Das Filter-Routing zur Laufzeit verhindert, dass eine Component irgendwohin gelangt, wohin sie nicht sollte. Die Capability-Deklaration zur Build-Zeit kommt eine Stufe früher: Die Component hat nie die allgemeine Möglichkeit, irgendetwas anderes zu tun als diese benannte Liste — unabhängig davon, welche Laufzeitfilter zusätzlich darüber existieren.

Zwei Ebenen, nicht eine. Das sollte man wissen, wenn jemand sagt, die Oracle-Sandbox sei „sicher“ — sicher wogegen, erzwungen wo, ist wichtiger als die Ein-Wort-Aussage.

@NewtonProtocol $NEWT #Newt