Zum Inhalt springen

Clients und Protokolle ​

Arkvory hat einen Speicher und ein Zugriffsmodell, aber mehrere Zugänge dazu. Jeder Zugang ist ein Client oder ein Protokoll, das ein Tool bereits spricht. Alle speichern Daten als Arkvory-Artefakte. Deshalb gelten dieselben Berechtigungen, Kontingente, SHA-256-Prüfungen, Aufbewahrungsregeln, Backups und Spiegel, egal welchen Zugang Sie nutzen.

Diese Seite listet alle Zugänge zu Arkvory auf, wofür sie gedacht sind und welche Anmeldedaten sie akzeptieren. Nutzen Sie sie, um das passende Tool für eine Aufgabe zu wählen.

Überblick ​

ZugangAdresseEinsatzAnmeldedaten
Webkonsolehttps://arkvory.example/console/Repositorys durchsuchen, im Browser hoch- und herunterladen, Benutzer, Schlüssel und Backups verwaltenAnmeldung mit Benutzername und Passwort oder mit einem Dienstschlüssel
Kommandozeile arkvoryctl/api/v1CI-Skripte, fortsetzbare Uploads und Downloads, Dateien nach Pfad, Hochstufung, BackupsSchlüssel aus einer Datei oder einer Umgebungsvariablen (als Bearer gesendet)
TypeScript-SDK/api/v1Eigene Tools in TypeScript oder JavaScript, in Node.js oder im BrowserSchlüssel aus einem Callback (als Bearer gesendet)
REST-API/api/v1/...Integrationen in jeder SpracheNur Authorization: Bearer <key>
Container-Registry (OCI)/v2/Docker, Podman, Buildx, containerd, Helm-Charts, ORAS-ArtefakteBasic mit dem Schlüssel als Passwort (docker login) oder Bearer
Git LFS/lfs/<repository>Große Dateien eines Git-Repositorys, Dateisperren für Unity und UnrealBasic mit dem Schlüssel als Passwort (Git-Credential-Helper) oder Bearer
npm-Registry/npm/<repository>/Scoped Registrys des Unity Package Managers, npm publish und npm installBearer (_authToken in .npmrc, token in .upmconfig.toml) oder Basic _auth
Raw-Dateien nach Pfad/api/v1/repositories/<repository>/raw/<path>Eine Anfrage mit curl -T oder PowerShellNur Authorization: Bearer <key>
WebhooksDie URL Ihres EmpfängersEin Deployment oder einen Job starten, wenn sich ein Repository ändertHMAC-Signatur jeder Anfrage

Die Routen unter /v2, /lfs und /npm folgen den Spezifikationen ihrer Protokolle. Sie sind nicht Teil des OpenAPI-Dokuments von /api/v1 und melden Fehler in dem Format, das ihre Clients erwarten.

Anmeldedaten ​

Jede Anfrage benötigt Anmeldedaten, außer öffentlichen Health-Checks. Arkvory akzeptiert diese Arten:

ArtSieht so ausWoher es kommtTypische Verwendung
Persönliches Zugriffstokenpat_...Wird von einem Benutzer in der Konsole erstellt. Zugriff read oder read-write. Läuft ab (standardmäßig nach 90 Tagen, höchstens 365).Entwickler: Unity, Git, Docker auf einem Arbeitsplatzrechner
Dienstschlüsselarkvory_...Wird für ein Dienstkonto ausgestellt, mit genau festgelegten Aktionen pro Repository, mit dem Wiederherstellungsschlüssel oder von einem delegierten Operator-SchlüsselCI/CD, Deployment-Agents, Build-Server
Dateischlüsselbeliebiges GeheimnisDie Schlüsseldatei des Servers (ARKVORY_KEYS_FILE), mit read oder write pro Repository; der Besitzerschlüssel verwaltet außerdemBesitzer der Installation, ältere Integrationen
Sitzungdps_...Anmeldung an der Konsole; 12 Stunden gültigInteraktive Arbeit in der Konsole
Download-LinkURL mit ?token=Für ein Artefakt erstellt; 60 Sekunden bis 24 StundenEine Datei ohne Schlüssel an jemanden weitergeben

Die Protokolle unterscheiden sich nur darin, wie sie den Schlüssel senden:

  • /api/v1, die CLI, das SDK und Raw-Dateien verwenden Authorization: Bearer <key>.
  • /v2, /lfs und /npm akzeptieren auch HTTP Basic. Der Benutzername wird nicht geprüft. Das Passwort ist der Arkvory-Schlüssel. So senden docker login, Git-Credential-Helper und npm _auth ihre Anmeldedaten.
  • Ein schreibgeschütztes persönliches Token ändert nie Daten. Es kann trotzdem Git-LFS-Objekte herunterladen, weil die Batch-Anfrage von Git LFS auch für Downloads ein POST ist.

So erstellen Sie Token und Schlüssel: Konten und Schlüssel. Details zu den Headern: Authentifizierung.

Welchen Zugang soll ich verwenden? ​

AufgabeEmpfohlener Zugang
Ein Build-Artefakt aus CI hochladen und nach einem Netzwerkausfall fortsetzenarkvoryctl upload oder arkvoryctl put
Ein UPack-Paket aus CI veröffentlichenarkvoryctl packages publish
„Das neueste 1.4-Release“ auf einem Server bereitstellenarkvoryctl packages download --range ^1.4 --stage release
Eine kleine oder mittelgroße Datei per Pfad aus einem Shell-Skript ablegen, ohne etwas zu installierenRaw-Dateien mit curl -T oder PowerShell
Container-Images oder Helm-Charts speichernContainer-Images
Texturen, Modelle und Levels eines Spiels außerhalb des Git-Hosts aufbewahrenGit LFS
Unity-Pakete zwischen Projekten teilenUnity- und npm-Pakete
Ein eigenes Tool oder eine eigene Weboberfläche bauenTypeScript-SDK
Aus Python, Go, C# oder einer anderen Sprache integrierenREST-API
Sich umsehen, Benutzer, Schlüssel und Backups verwaltenWebkonsole

Faustregeln:

  • Große Dateien (viele Gigabyte): Verwenden Sie arkvoryctl oder das SDK. Sie laden in Teilen hoch und setzen nach einer Unterbrechung fort. Eine einzelne PUT-Anfrage (Raw-Dateien, Git-LFS-Objekte, npm publish, ein Docker-Layer) beginnt nach einem Fehler wieder bei Byte null.
  • Das Tool spricht bereits ein Protokoll: Verwenden Sie dieses Protokoll. Docker, Git und Unity brauchen keine zusätzliche Software.
  • Eine Maschine liest nur: Geben Sie ihr ein schreibgeschütztes Token oder einen Dienstschlüssel nur mit Leseaktionen.

Gemeinsame Regeln ​

HTTPS. Verwenden Sie HTTPS für jeden Client. Die CLI und das SDK lehnen unverschlüsseltes HTTP ab, außer auf Loopback (localhost, 127.0.0.1, [::1]). Docker braucht ein vertrauenswürdiges Zertifikat. Git sendet den Schlüssel mit jeder Anfrage. Siehe HTTPS.

Gleicher Speicher. Ein Image-Layer, ein Git-LFS-Objekt, ein npm-Tarball und eine Raw-Datei sind alle Artefakte. Sie zählen auf die Repository-Kontingente und die Kapazität der Installation. Sie werden beim Speichern per SHA-256 geprüft. Sie sind in Backups enthalten.

Lese-Gateways und Spiegel. Ein Lese-Gateway akzeptiert nur GET und HEAD. Ein Spiegel ist eine schreibgeschützte Kopie eines Repositorys auf einer anderen Installation.

ZugangAuf einem Lese-GatewayAuf einem Spiegel
/api/v1, CLI, SDKNur LesenLesen; Änderungen werden abgelehnt (409 mirror_read_only)
Container-RegistryPullPull; Push wird abgelehnt
Git LFSNicht unterstützt (die Batch-Anfrage ist ein POST)Clone und Fetch; Push und Sperren werden abgelehnt
npm-RegistryInstallieren und SuchenInstallieren und Suchen; Publish wird abgelehnt
Raw-DateienGET und HEADGET und HEAD

Siehe Lese-Gateways und Spiegel.

Arkvory · ProAnimaStudio