Generic
Referenz für Generic in Craftifact: Speichere und rufe opake Dateien über Objektpfade ab und kenne die Grenzen ohne Paketsemantik oder automatische Analyse.
Generic speichert beliebige Bytes unter einem von dir gewählten Pfad und unterstützt derzeit nur Hosted-Repositorys. Es ist ein HTTP-Objekt-Repository, kein Maven-Ersatz, Archivformat, Website-Host oder WebDAV-Server. Eine Dateiendung wie .jar, .deb oder .zip aktiviert weder Paketsemantik noch Analysen.
Konfiguration
generic:
max_object_size: 10GiB
max_inflight_size: 40GiB
repositories:
- name: binaries
type: generic
redeploy: false
generic:
max_object_size: 2GiB
max_inflight_size: 4GiB
Die Repository-Grenzen dürfen die globalen Grenzen nicht überschreiten. Tokens benötigen zusätzlich zur passenden Repository-Berechtigung für Lesen, Veröffentlichen oder erneutes Veröffentlichen den Scope generic.
HTTP-Operationen
curl -u 'robot:TOKEN' --upload-file ./release.bin \
https://repo.example/repository/generic/binaries/releases/release.bin
curl -u 'robot:TOKEN' -o release.bin \
https://repo.example/repository/generic/binaries/releases/release.bin
curl -u 'robot:TOKEN' --head \
https://repo.example/repository/generic/binaries/releases/release.bin
PUT legt ein Objekt an und antwortet mit 201. Ein Ersetzen antwortet nur bei aktiviertem Redeploy mit 204; nutze If-Match, wenn du verlorene Aktualisierungen verhindern musst. GET und HEAD liefern starke SHA-256-ETags. Antworten verwenden application/octet-stream und einen Download-Header.
Pfadregeln
- Die Identität besteht aus dem Repository und dem vollständigen kanonischen Objektpfad. Generic besitzt keine Paket- oder Versionsidentität.
- Pfade sind UTF-8 und werden auf NFC normalisiert. Leere Segmente,
.,.., Backslashes, kodierte Trenner, Steuer- oder unsichtbare Formatzeichen und zu lange Segmente werden abgelehnt. _craftifact_internalist als erstes Segment reserviert.- Eine Datei kann nicht zugleich ein Verzeichnis sein:
akollidiert mita/b. - Es gibt weder Verzeichnislisten noch einen
index.html-Fallback.
Retention
Generic unterstützt min_duration_since_published, max_duration_since_published und max_duration_since_download. Ein name-Selektor entspricht dem vollständigen Objektpfad. Versionsselektoren und keep_last-Werte über 0 sind ungültig, weil Generic kein Versionsmodell besitzt.
Bewusste Ausschlüsse
Generic bietet keinen Proxy- oder Group-Modus, keine Byte-Ranges, kein protokollseitiges DELETE, keine Teil-Uploads, keine MIME-Übernahme, kein WebDAV, kein Website-Serving und keine Paketauflösung. Craftifact untersucht oder entpackt Generic-Objekte nicht und erzeugt weder automatisch SBOMs noch Schwachstellen-, Lizenz-, Secret-, Provenance- oder Malware-Analysen. Fehlende Analysen werden niemals als sauberes Ergebnis dargestellt.
Nexus-Raw-Hosted-Repositorys können über die Control Plane importiert werden, wenn die Craftifact-Version des Ziels diese Capability ausweist. Nexus-Raw-Proxy- und -Group-Repositorys können nicht importiert werden.