rio. Ein Aufruf. Ein Beleg.

Ihr Build erzeugt SBOMs. Ein Aufruf von rio übernimmt sie, ergänzt bereitgestellte Produkt- und Build-Angaben, prüft Ihre Qualitätsanforderungen und liefert die Dateien an Dependency-Track oder eine OCI-Registry. Jeder Lauf hinterlässt einen kompakten Beleg: was übernommen, geändert, geprüft und ausgeliefert wurde und was der Empfänger bestätigt hat.

Aktuelle Version: v0.8.1 · veröffentlicht am

Mit dem Beispiel starten

Kein Konto und kein eigener Projekt-Build nötig. Downloads für Linux, macOS und Windows · Was die Releases mitbringen

So sieht ein Beleg aus

Ausschnitt aus dem tatsächlich erzeugten Beispiel von rio v0.7.0: zwei SBOMs übernommen, Build-Angaben ergänzt, an Dependency-Track geliefert, Annahme bestätigt.

Consumed → enriched → delivered → acknowledged

api.cdx.json 1d2b04c0df45… → 55e46a63a8b3… (2307 output bytes) worker.cdx.json 721bd8311e64… → 085265392b20… (2316 output bytes)

Added to both: build.url = https://ci.example.org/runs/42 build.id = 42 Destination: https://127.0.0.1:53946 Projects: api / 1.0.0, worker / 1.0.0 TLS: observed; certificate verification enforced

api: HTTP 200, accepted; token 11111111-1111-4111-8111-111111111111 worker: HTTP 200, accepted; token 22222222-2222-4222-8222-222222222222

Synthetische Daten: Beispiel-SBOMs, lokaler HTTPS-Empfänger und Beispiel-Tokens. Die Digests sind nur in diesem Ausschnitt gekürzt; der vollständige Beleg enthält sie ungekürzt. Die URL bezeichnet den Zielserver, in Ihrem Beleg steht Ihre konfigurierte Instanz.

Vollständiger JSON-Beleg (5.791 Bytes) · HTML-Bericht herunterladen · Lauffähiges Beispiel herunterladen

Was rio heute übernimmt

Unser Open-Source Evidence Compiler läuft als eigenständiges Kommandozeilenwerkzeug in Ihrer Pipeline oder lokal. Eine rio.yaml beschreibt Eingaben, Verarbeitung und Lieferziele.

Ein Aufruf für die ganze Pipeline

rio übernimmt die ausgewählten SBOMs, normalisiert und ergänzt sie, prüft Schema und Qualität und liefert an die konfigurierten Ziele, ohne weiteren Befehl. rio plan zeigt Konfiguration, Prüfregeln und Lieferwege vorab und offline.

Ein Beleg je Lauf

Jeder Lauf erhält ein eigenes Verzeichnis und einen kompakten Beleg: Digests und Größen der Ein- und Ausgaben, geänderte Metadaten, wirksame Prüfungen, Zielprojekte, TLS-Beobachtungen und Antworten der Empfänger. Ein Beleg wird nie überschrieben.

Fehlschläge bleiben sichtbar

Eine durchgesetzte, fehlgeschlagene Prüfung stoppt standardmäßig alle Lieferungen. Ein ausdrücklich gewählter Warnmodus wird im Beleg festgehalten. Angenommene, abgelehnte, unklare und nicht versuchte Lieferungen werden unterschieden.

SBOMs vereinheitlichen und ergänzen

Unterstützte CycloneDX-Versionen auf die gewählte Mindestversion anheben, Modul-SBOMs über Dateimuster auswählen und Produkt-, Hersteller- und Build-Angaben aus dem Manifest ergänzen. Optional lassen sich unterstützte p2-Koordinaten in Maven-Koordinaten überführen.

Nativ ausliefern

SBOMs direkt an Dependency-Track senden oder in OCI-Registries veröffentlichen, auch als Anhang an ein bestehendes Image oder einen Image-Index. Bereits vorhandene Inhalte werden nicht als neuer Upload ausgewiesen.

Offline prüfen und weitergeben

rio record inspect prüft Aufbau und innere Konsistenz eines Belegs. rio record report erzeugt einen eigenständigen HTML-Bericht ohne Skripte oder externe Inhalte. Nach einem Abbruch stellt rio record recover den Beleg wieder her, ohne erneut hochzuladen.

Eine Konfiguration. Vom lokalen Check bis zur Übergabe.

In rio.yaml stehen Ihre SBOMs, ergänzende Angaben und Lieferziele. Danach genügt rio: Der Aufruf führt die Verarbeitung aus und nennt den Pfad zum Beleg. Mit --skip-delivery bleiben alle Schritte lokal.

Erst offline prüfen

Normalisierung, Planung, Inspektion und Bericht laufen ohne Netzwerkzugriff. rio plan --json zeigt die wirksame Konfiguration, ohne etwas zu schreiben oder hochzuladen.

Dann gezielt ausliefern

Namen und Versionen für Dependency-Track stammen aus dem SBOM-Gegenstand. Fehlende Eingaben führen nie dazu, dass veraltete Ergebnisse eines früheren Laufs ausgeliefert werden. rio wiederholt Lieferungen nicht automatisch; eine verlorene Antwort gilt nicht als Ablehnung. Ausdrückliche Wiederholungen und Abgleiche erzeugen neue Belege mit Verweis auf den früheren Versuch.

Für interne Zertifizierungsstellen lässt sich ein CA-Zertifikat konfigurieren. Eine ausdrücklich gewählte Abschaltung der Zertifikatsprüfung wird im Beleg sichtbar; sie ist kein automatischer Fallback.

Schnellstart · Lieferziele einrichten · Aufbau und Grenzen des Belegs

Erprobter Umfang: Dependency-Track 5.1.1 über HTTP und HTTPS, zot und Distribution für die OCI-Lieferung, mit v0.5.0 zusätzlich Nexus Community 3.94.0-12. Distribution unterstützt die eigenständige SBOM-Lieferung; Image-Anhänge werden dort wegen fehlender Referrers-Unterstützung abgewiesen. Artifactory ist noch nicht validiert. Testumfang von v0.6.0 · v0.5.0

Was wir ausgeliefert haben

v0.8.1 · Signiert und notarisiert auf macOS

— Die macOS-Binaries sind mit der Developer ID von rebaze signiert und von Apple notarisiert. Die Homebrew-Installation behält die Quarantäne-Markierung bei, damit Gatekeeper die Datei prüft. Befehle, Konfiguration und Belegformat bleiben unverändert.

v0.8.0 · Schlankere Grundlage

— Bereinigte Begleitwerkzeuge und Beispiele sowie aktualisierte Release-Prüfungen. Die Pipeline und das Belegformat bleiben auf dem Stand von v0.7.2; das synthetische Beispiel zeigt weiterhin den vollständigen Weg von der Übernahme bis zur Empfängerantwort.

v0.7.2 · Sicherheitswartung und optionale Signierwerkzeuge

— Neu gebaute Binaries mit Go 1.27.2 und aktualisierten Abhängigkeiten, zusätzliche Release-Prüfungen sowie separate Werkzeuge zum Signieren von Normalisierungsstatements und zur Prüfung durch Empfänger. Der Pipeline- und Belegvertrag bleibt unverändert.

v0.7.0 · Ein Aufruf, ein Beleg

— rio führt die ganze Pipeline aus rio.yaml aus und schreibt je Lauf einen kompakten Beleg in ein eigenes Verzeichnis. Prüfungen stoppen Lieferungen standardmäßig, Abbrüche lassen sich offline wiederherstellen. Die Exportformate von v0.6 entfallen zugunsten des automatischen Belegs.

v0.6.0 · Nachweise für Empfänger

— Eine JSON-Datei zeigt Auswahl, Änderungen, Prüfungen und jeden Lieferversuch. Dazu ein eigenständiger HTML-Bericht für Empfänger ohne Zugriff auf Ihre Arbeitsumgebung.

v0.5.0 · Native Lieferung und portable Nachweise

— Dependency-Track und OCI direkt aus rio, gemeinsame Konfiguration für Eingaben und Ziele, mehrere Lieferziele, Lieferjournale und Statusabgleich. Dazu explizite TLS-Einstellungen und Prüfungen auf Linux, macOS und Windows.

v0.4.0 · Module, Produktdaten und Build-Kontext

— Automatische Auswahl von Modul-SBOMs, gemeinsame Produktangaben mit gezielten Überschreibungen und lokal bereitgestellter Quellcode-/Build-Kontext. Neue Beispiele erleichtern die Integration in Projekte und CI-Pipelines.

v0.3.0 · Normalisierung als Statement

— Optionale, unsignierte in-toto Statements je normalisierter SBOM und strengere Behandlung unvollständiger SBOM-Suchen. Der Release-Prozess für rio selbst prüft Dateien, Signaturen und Attestierungen vor der Veröffentlichung.

v0.2.0 · Planung und robustere Zuordnung

— rio plan beschreibt die Konfiguration für begleitende Werkzeuge, dazu weitere Zuordnungsfälle und zusätzliche Sicherheitsprüfungen in der Entwicklung.

v0.1.0 · Die Grundlage

— CycloneDX-Normalisierung, Qualitätschecks und index.json als eigenständige CLI. v0.1.1 folgte am selben Tag mit einer Korrektur am Homebrew-Installationsweg.

Was der Beleg aussagt

rio erzeugt keine Komponenteninventur und sucht nicht selbst nach Schwachstellen. Es ergänzt keine fehlenden Komponenten oder geratenen Abhängigkeiten. Ein bestandener Qualitätscheck bestätigt die deklarierten SBOM-Anforderungen, nicht die Vollständigkeit der SBOM.

Digests identifizieren die verarbeiteten Bytes. Sie authentifizieren nicht den Erzeuger und belegen nicht, was ein Empfänger aufbewahrt. Eine HTTP-Annahme ist keine bestätigte Verarbeitung. Bereitgestellte Build-Angaben bleiben Aussagen ihres Erzeugers.

Die CLI schreibt Belege und Normalisierungsstatements unsigniert. Separate Signier- und Prüfwerkzeuge können die Normalisierungsstatements mit einem lokalen Schlüssel signieren und zusammen mit der zugehörigen SBOM prüfen. Sie signieren nicht den Laufbeleg. Vertrauen in den Schlüssel und langfristige Aufbewahrung bleiben Aufgaben Ihrer Umgebung. Die Signaturen der rio-Release-Dateien und Apples Notarisierung ersetzen das nicht.

Die weitere Entwicklung

Geplant sind zusätzliche Beziehungen zwischen Release-Artefakten, SBOMs und Prüfergebnissen sowie die Auswertung vereinbarter Release-Anforderungen. Eine allgemeine Release-Freigabe oder die vollständige Verbindung bis zum aktuellen Deployment-Stand gehört noch nicht zum Funktionsumfang. rebaze implementiert die benötigten Prüfungen und Freigaberegeln in Ihrem Release-Prozess.

Release Controls und ihre Rolle verstehen

Unabhängig einsetzbar.

Sie können rio ohne rebaze einsetzen. Eine Zusammenarbeit mit rebaze setzt rio nicht voraus. Die CLI ist ein eigenständiges Binary für Linux, macOS und Windows; die Dokumentation enthält lauffähige Beispiele mit synthetischen Daten.

brew install rebaze/tap/rio

Ab v0.8.1 sind die macOS-Binaries mit der Developer ID von rebaze signiert und von Apple notarisiert. Die Installation benötigt keine Umgehung der Gatekeeper-Prüfung. Linux- und Windows-Downloads lassen sich weiterhin über signierte Prüfsummen und GitHub-Attestierungen verifizieren; Windows-Authenticode-Signierung ist nicht enthalten.

Installation und Verifikation · Beispiele und begleitende Werkzeuge · Quellcode und aktuelle Entwicklung

SBOMs in Ihren Release-Prozess integrieren?

Ich kläre mit Ihrem Team die Anforderungen, richte die Verarbeitung und Übergabe in Ihrer Toolchain ein und erprobe mit Ihnen den Ablauf an einem konkreten Release. Ihr Team erhält die Konfiguration und Anleitung für den nächsten Lauf.

Erstgespräch vereinbaren

30 Minuten mit Toni Menzel. Kostenlos und unverbindlich.

Clear to Ship: CRA-Releases