Zum Inhalt springen

Artefakte und Katalog ​

Veröffentlichte Artefakte: Auflistung, Details, Inhalt, Annotationen, Referenzen, Suche, das Katalog-Audit und sein Änderungsfeed.

Die Vorgänge dieser Gruppe mit ihrer Zugriffsregel, Wiederholungsregel, ihren Parametern und Antworten. Jede Anfrage trägt einen Schlüssel: Authorization: Bearer <Schlüssel> (siehe „Authentifizierung“).

Vorgänge ​

Annotationen eines Artefakts abrufen ​

GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/annotations

Zugriff: Repository-Berechtigung: annotation.read; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Liefert die aktuellen Labels, Metadaten und Sammlungen eines veröffentlichten Artefakts mit ihrer revision. Revision 0 bedeutet, dass sie nie ersetzt wurden: Labels und Metadaten sind die beim Anlegen des Uploads angegebenen, und die Sammlungen sind leer. Übergeben Sie die Revision an setAnnotations als expectedRevision.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Antwort 200

FeldTypErforderlichRegeln
revisionintegerja0–2147483647
labelsArray von stringjahöchstens 32 Elemente
metadataMap von stringjahöchstens 32 Einträge
collectionsArray von stringjahöchstens 32 Elemente

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/annotations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Annotationen eines Artefakts ersetzen ​

PUT /api/v1/repositories/{repository}/artifacts/{id}/annotations

Zugriff: Repository-Berechtigung: annotation.write, artifact.read; Dateischlüssel: read, write · Wiederholung: Nur mit der erwarteten Revision wiederholen (compare-and-swap)

Ersetzt labels, metadata und collections eines veröffentlichten Artefakts auf einmal; ein in value weggelassenes Feld wird leer. expectedRevision muss die aktuelle Revision sein (0 für die erste Änderung), sonst 409 revision_mismatch: Lesen Sie die Annotationen erneut und wenden Sie die Änderung neu an. Bis zu 32 Labels und 32 Sammlungen (1–64 Buchstaben, Ziffern oder _.:-) sowie 32 Metadateneinträge (Werte bis zu 1024 Zeichen); die Bytes und der ursprüngliche Deskriptor ändern sich nie.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Anfragetext (application/json)

FeldTypErforderlichRegeln
expectedRevisionintegerja0–2147483646
valueobjectja—
value.labelsArray von stringneinhöchstens 32 Elemente
value.metadataMap von stringneinhöchstens 32 Einträge
value.collectionsArray von stringneinhöchstens 32 Elemente

Antwort 200

FeldTypErforderlichRegeln
revisionintegerja0–2147483647
labelsArray von stringjahöchstens 32 Elemente
metadataMap von stringjahöchstens 32 Einträge
collectionsArray von stringjahöchstens 32 Elemente

Antworten: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/annotations" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"value":{}}'

Artefakt als UPack-Paket registrieren ​

POST /api/v1/repositories/{repository}/artifacts/{id}/package

Zugriff: Repository-Berechtigung: package.publish, artifact.read; Dateischlüssel: read, write · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Öffnet das veröffentlichte Artefakt als UPack-ZIP, liest die upack.json im Stammverzeichnis des Archivs (name, optional group, version nach SemVer) und registriert diese Paketversion dafür; unsichere oder ungültige Archive werden mit 400 abgelehnt. Eine Version ist unveränderlich: Dasselbe Artefakt erneut zu registrieren liefert denselben Eintrag, ein anderes Artefakt für eine vorhandene Kombination aus Gruppe, Name und Version (ohne Beachtung der Groß-/Kleinschreibung verglichen) ergibt 409 version_exists. Danach erscheint die Version in listPackages und wird nach Name, Versionsbereich und Stufe aufgelöst.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Antwort 200

FeldTypErforderlichRegeln
groupstringnein—
namestringnein—
versionstringnein—
artifactIdstring (uuid)nein—
manifestobjectnein—

Antworten: 200, 400, 401, 403, 404, 405, 409, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/package" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Artefakte suchen ​

GET HEAD /api/v1/repositories/{repository}/search

Zugriff: Repository-Berechtigung: artifact.list; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Findet veröffentlichte Artefakte anhand von q (einer Teilzeichenfolge des Namens oder eines aktuellen Metadatenwerts, ohne Beachtung der Groß-/Kleinschreibung), eines exakten aktuellen label, einer collection und eines exakten Paars metadataKey/metadataValue, die nur zusammen angegeben werden; alle angegebenen Filter müssen zutreffen. Die Ergebnisse kommen in Seiten zu 100, nach ID geordnet, jeweils mit Größe, Erstellungs- und Veröffentlichungszeit, aktuellen Labels und Hochstufungsstufen; weiter mit after = next. Metadaten und Sammlungen werden nicht zurückgegeben: Lesen Sie sie mit getAnnotations.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
qQuerystringnein—
labelQuerystringnein—
collectionQuerystringnein—
afterQuerystringnein—
metadataKeyQuerystringneinentspricht ^[a-zA-Z][a-zA-Z0-9_.-]{0,63}$; höchstens 64 Zeichen; Exact metadata key; requires metadataValue.
metadataValueQuerystringneinhöchstens 1024 Zeichen; Exact case-sensitive value; requires metadataKey. Empty string is allowed.

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectjahöchstens 100 Elemente
items[].idstring (uuid)ja—
items[].namestringja—
items[].sizestringjaeine ganze Zahl in Dezimalziffern, als String gesendet; Größe in Bytes, Dezimalzeichenfolge
items[].createdAtstring (date-time)jaZeitpunkt der Upload-Reservierung
items[].publishedAtstring (date-time)jadarf null sein; Veröffentlichungszeit; nur dann null, wenn keine aufgezeichnet wurde
items[].labelsArray von stringjahöchstens 32 Elemente; Aktuelle Labels: die Annotation, wenn sie ersetzt wurde, sonst der Deskriptor des Uploads
items[].stagesArray von stringjahöchstens 16 Elemente; jedes Element: entspricht ^[a-z0-9][a-z0-9_.-]{0,31}$; Aktuelle Hochstufungsstufen in Byte-Reihenfolge
nextstring (uuid)jadarf null sein; Letzte ID einer vollen Seite; als after übergeben

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/search" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Katalog-Audit eines Repositorys lesen ​

GET HEAD /api/v1/repositories/{repository}/audit

Zugriff: Repository-Berechtigung: audit.read; Dateischlüssel: write · Wiederholung: Wiederholen ist sicher (Lesen)

Liefert, älteste zuerst, bis zu 100 Katalogänderungen des Repositorys nach der Sequenznummer after (Standard 0): Veröffentlichungen, Löschungen, Änderungen an Annotationen und Anhängen, Paketregistrierungen, Änderungen von Dateipfaden, Referenzen, Stufen und Hochstufungen, jeweils mit Akteur, Aktion, Artefakt und Zeit. Um weiterzulesen, übergeben Sie die letzte sequence der Seite als after; es gibt kein Feld next. Downloads und Anmeldungen sind darin nicht enthalten; Spiegel folgen listCatalogChanges, das die Akteure auslässt.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
afterQuerystringnein—

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectnein—
items[].sequencestringnein—
items[].actorstringnein—
items[].actionstringnein—
items[].artifactIdstringnein—
items[].occurredAtstring (date-time)nein—

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/audit" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Referenz zu einem Artefakt hinzufügen ​

POST /api/v1/repositories/{repository}/artifacts/{id}/references

Zugriff: Repository-Berechtigung: reference.write, artifact.read; Dateischlüssel: read, write · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Vermerkt, dass etwas außerhalb von Arkvory dieses Artefakt verwendet, unter einem frei gewählten key (1–256 Buchstaben, Ziffern oder _.:/-), zum Beispiel dem Namen einer Bereitstellung. Ein referenziertes Artefakt kann weder gelöscht noch durch die Aufbewahrungsregeln entfernt werden, solange noch eine Referenz besteht. Die Referenz gehört dem Aufrufer; denselben Schlüssel erneut hinzuzufügen ändert nichts.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Anfragetext (application/json)

FeldTypErforderlichRegeln
keystringjahöchstens 256 Zeichen

Antworten: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/references" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key":"<key>"}'

Referenz von einem Artefakt entfernen ​

DELETE /api/v1/repositories/{repository}/artifacts/{id}/references

Zugriff: Repository-Berechtigung: reference.write, artifact.read; Dateischlüssel: read, write · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Entfernt die eigene Referenz key des Aufrufers vom Artefakt; Referenzen anderer Aufrufer bleiben bestehen. Auch das Entfernen eines nicht vorhandenen Schlüssels ist erfolgreich.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Anfragetext (application/json)

FeldTypErforderlichRegeln
keystringjahöchstens 256 Zeichen

Antworten: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X DELETE "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/references" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"key":"<key>"}'

Artefakte auflisten ​

GET HEAD /api/v1/repositories/{repository}/artifacts

Zugriff: Repository-Berechtigung: artifact.list; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Listet die veröffentlichten Artefakte des Repositorys nach ID geordnet auf, limit pro Seite (1–100, Standard 50); weiter mit after = next. next ist gesetzt, sobald eine Seite voll ist, daher kann die letzte Seite leer sein. Jeder Eintrag enthält den beim Upload angegebenen Deskriptor; aktuelle Labels und Metadaten stehen in getAnnotations.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
afterQuerystring (uuid)nein—
limitQueryintegernein1–100; Standard 50

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectnein—
items[].idstring (uuid)ja—
items[].repositorystringja—
items[].statusstringjaeiner von pending, available, cancelled
items[].createdAtstring (date-time)ja—
items[].expiresAtstring (date-time)ja—
items[].descriptorobjectja—
items[].descriptor.namestringja1–240 Zeichen
items[].descriptor.sizestringjaeine ganze Zahl in Dezimalziffern, als String gesendet
items[].descriptor.sha256stringjaSHA-256: 64 hexadezimale Ziffern in Kleinbuchstaben
items[].descriptor.labelsArray von stringneinhöchstens 32 Elemente; jedes Element: höchstens 64 Zeichen
items[].descriptor.metadataMap von stringneinhöchstens 32 Einträge
nextstringneindarf null sein

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Artefakt abrufen ​

GET HEAD /api/v1/repositories/{repository}/artifacts/{id}

Zugriff: Repository-Berechtigung: artifact.read; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Liefert ein veröffentlichtes Artefakt: seine ID, das Repository, den Status, die Erstellungszeit und den beim Upload angegebenen Deskriptor (Name, Größe, SHA-256, ursprüngliche Labels und Metadaten). Ausstehende, abgebrochene und gelöschte Artefakte antworten mit 404. Die Bytes lesen Sie mit downloadArtifact.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Antwort 200

FeldTypErforderlichRegeln
idstring (uuid)ja—
repositorystringja—
statusstringjaeiner von pending, available, cancelled
createdAtstring (date-time)ja—
expiresAtstring (date-time)ja—
descriptorobjectja—
descriptor.namestringja1–240 Zeichen
descriptor.sizestringjaeine ganze Zahl in Dezimalziffern, als String gesendet
descriptor.sha256stringjaSHA-256: 64 hexadezimale Ziffern in Kleinbuchstaben
descriptor.labelsArray von stringneinhöchstens 32 Elemente; jedes Element: höchstens 64 Zeichen
descriptor.metadataMap von stringneinhöchstens 32 Einträge

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Artefakt löschen ​

DELETE /api/v1/repositories/{repository}/artifacts/{id}

Zugriff: Repository-Berechtigung: artifact.delete · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Löscht ein veröffentlichtes Artefakt logisch: Es verschwindet sofort aus Listen, Suchen und Downloads, und seine Bytes werden nach der Karenzzeit von der Online-Bereinigung des Repositorys (setCleanup, standardmäßig aus) freigegeben. expectedAnnotationRevision muss der aktuellen Annotationsrevision entsprechen. Die Antwort ist 200 mit einem outcome: deleted, already_deleted, changed (die Revision weicht ab), not_found oder protected mit den blockers, die es zurückhalten (eine Referenz, eine Revision eines Dateipfads, ein Build-Anhang oder eine Hochstufungsstufe). Prüfen Sie vorab mit inspectArtifactDeletion.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Anfragetext (application/json)

FeldTypErforderlichRegeln
expectedAnnotationRevisionintegerja0–2147483647

Antwort 200

FeldTypErforderlichRegeln
idstring (uuid)ja—
outcomestringjaeiner von deleted, already_deleted, protected, changed, not_eligible, not_found
blockersArray von stringjahöchstens 4 Elemente; keine wiederholten Elemente; jedes Element: einer von reference, asset_history, attachment_history, protected_label, promotion_stage

Antworten: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X DELETE "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedAnnotationRevision":0}'

Artefakt herunterladen ​

GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/content

Zugriff: Repository-Berechtigung: content.read; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Streamt die Originalbytes mit Content-Length, Content-Disposition (dem Artefaktnamen) und einem starken ETag ("sha256:<hex>"). Ein einzelner Range-Header ergibt 206 (ein nicht erfüllbarer 416); If-Range mit dem ETag setzt den Download sicher fort, und If-None-Match ergibt 304. HEAD liefert dieselben Header ohne Body und ignoriert Range. Statt eines Authorization-Headers kann die Anfrage einen Download-Link aus createDownloadLink als token tragen; Downloads warten auf einen freien Slot der Download-Zulassung des Servers.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—
RangeHeaderstringnein—
If-RangeHeaderstringnein—
If-None-MatchHeaderstringnein—
Arkvory-Download-IdHeaderstringneinentspricht ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time.
Arkvory-Queue-TicketHeaderstringneinhöchstens 80 Zeichen; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored.
Arkvory-Download-ClassHeaderstringneineiner von interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied.
tokenQuerystringneinentspricht ^dtl_[A-Za-z0-9_-]{43}$; Download link from POST …/artifacts/{id}/links, instead of an Authorization header

Antworten: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/content" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

Übersicht der Standorte lesen ​

GET HEAD /api/v1/fleet/overview

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Warnungen über die verwalteten Standorte und diese Installation, die schwersten zuerst (critical, warning, info), und die Spiegelverbindungen zwischen ihnen. Aus den letzten Hintergrundabfragen erstellt, höchstens alle 5 Sekunden. Eine Quelle, an deren Adresse kein verwalteter Standort antwortet, ist external:<origin>; diese Installation ist self und erhält Verbindungen zu ihr nur, wenn ARKVORY_SITE_URL gesetzt ist. Nur der Schreibprozess antwortet.

Antwort 200

FeldTypErforderlichRegeln
generatedAtstring (date-time)ja—
selfobjectja—
self.namestringja—
self.versionstringja—
self.urlstringjadarf null sein
alertsArray von objectja—
alerts[].sitestringja—
alerts[].namestringja—
alerts[].kindstringjaeiner von unreachable, certificate, revoked, refused, invalid, stale, not-writable, copies, single-copy, mirror-failing, mirror-lag, updates-failed, version-skew
alerts[].severitystringjaeiner von critical, warning, info
alerts[].subjectstringjadarf null sein
alerts[].sincestring (date-time)jadarf null sein
linksArray von objectja—
links[].fromstringja—
links[].tostringja—
links[].repositorystringja—
links[].sourceRepositorystringja—
links[].modestringjaeiner von mirror, import
links[].lagChangesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet; darf null sein
links[].failingbooleanja—
links[].stalebooleannein—
externalArray von stringja—

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/fleet/overview" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Verwaltete Standorte auflisten ​

GET HEAD /api/v1/fleet/sites

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Listet die Standorte, die diese Installation verwaltet (ADR 0077), mit dem, was jeder zuletzt gemeldet hat: state (ok oder warum er nicht gelesen wurde: unreachable, certificate, revoked, invalid, refused), wann er zuletzt gesehen wurde, und seine letzte topology. Standorte werden alle 30 Sekunden im Hintergrund gelesen. Ein Standortschlüssel wird nie zurückgegeben.

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectjahöchstens 256 Elemente
items[].idstring (uuid)ja—
items[].namestringja—
items[].urlstringja—
items[].fingerprintstringjaentspricht ^[0-9a-f]{64}$; darf null sein
items[].addedBystringja—
items[].addedAtstring (date-time)ja—
items[].seenAtstring (date-time)jadarf null sein
items[].statestringjaeiner von pending, ok, unreachable, certificate, revoked, invalid, refused
items[].errorstringjadarf null sein
items[].topologyobjectjadarf null sein
items[].topology.collectedAtstring (date-time)ja—
items[].topology.siteobjectja—
items[].topology.healthobjectja—
items[].topology.replicationobjectjadarf null sein
items[].topology.gatewaysArray von objectjahöchstens 16 Elemente
items[].topology.mirrorsArray von objectjahöchstens 64 Elemente
items[].topology.updatesobjectjadarf null sein
items[].topology.downloadsobjectja—

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/fleet/sites" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Mit einem Standort koppeln ​

POST /api/v1/fleet/sites

Zugriff: Administrator · Wiederholung: Nicht automatisch wiederholen

Koppelt einen Standort: der Controller verbindet sich erneut, das Zertifikat muss noch den vom Administrator bestätigten fingerprint haben (null für HTTP auf Loopback), der am Standort erstellte Kopplungs-code wird gegen einen Schlüssel getauscht und dieser mit ARKVORY_FLEET_KEY_FILE versiegelt. Vor der Antwort wird der Standort einmal gelesen. Ohne Schlüsseldatei lautet die Antwort 503.

Anfragetext (application/json)

FeldTypErforderlichRegeln
urlstringja—
fingerprintstringjaentspricht ^[0-9a-f]{64}$; darf null sein
codestringjahöchstens 32 Zeichen

Antwort 201

FeldTypErforderlichRegeln
idstring (uuid)ja—
namestringja—
urlstringja—
fingerprintstringjaentspricht ^[0-9a-f]{64}$; darf null sein
addedBystringja—
addedAtstring (date-time)ja—
seenAtstring (date-time)jadarf null sein
statestringjaeiner von pending, ok, unreachable, certificate, revoked, invalid, refused
errorstringjadarf null sein
topologyobjectjadarf null sein
topology.collectedAtstring (date-time)ja—
topology.siteobjectja—
topology.site.namestringja—
topology.site.versionstringja—
topology.site.schemaintegerjamindestens 0
topology.site.rolestringjaeiner von api, reader
topology.healthobjectja—
topology.health.availablebooleanja—
topology.health.writablebooleanja—
topology.health.drainingbooleanja—
topology.replicationobjectjadarf null sein
topology.replication.copiesintegerja0–16
topology.replication.requiredintegerja1–16
topology.replication.singleCopyUntilstring (date-time)jadarf null sein
topology.replication.nodestringneinhöchstens 63 Zeichen
topology.replication.profilestringneineiner von ha-2, ha-3
topology.replication.peersArray von objectneinhöchstens 16 Elemente
topology.gatewaysArray von objectjahöchstens 16 Elemente
topology.gateways[].slotintegerjamindestens 0
topology.gateways[].activebooleanja—
topology.gateways[].expiresAtstring (date-time)ja—
topology.mirrorsArray von objectjahöchstens 64 Elemente
topology.mirrors[].repositorystringja—
topology.mirrors[].modestringjaeiner von mirror, import
topology.mirrors[].upstreamstringja—
topology.mirrors[].sourceRepositorystringja—
topology.mirrors[].phasestringja—
topology.mirrors[].errorCodestringjadarf null sein
topology.mirrors[].checkedAtstring (date-time)jadarf null sein
topology.mirrors[].syncedAtstring (date-time)jadarf null sein
topology.mirrors[].lagChangesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet; darf null sein
topology.mirrors[].copiedArtifactsintegerjamindestens 0
topology.mirrors[].copiedBytesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet
topology.updatesobjectjadarf null sein
topology.updates.currentVersionstringja—
topology.updates.lateststringjadarf null sein
topology.updates.phasestringja—
topology.updates.errorstringjadarf null sein
topology.updates.automaticbooleanja—
topology.updates.heartbeatAtstring (date-time)ja—
topology.downloadsobjectja—
topology.downloads.strategystringjaeiner von ordered, smallest-first, shared
topology.downloads.sessionsintegerjamindestens 0
topology.downloads.activeintegerjamindestens 0
topology.downloads.waitingintegerjamindestens 0
topology.downloads.oldestWaitSecondsintegerjamindestens 0
topology.downloads.bytesPerSecondintegerjamindestens 0

Antworten: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"<url>","fingerprint":"<fingerprint>","code":"<code>"}'

Zertifikat eines Standorts lesen ​

POST /api/v1/fleet/sites/probe

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Verbindet sich mit der Adresse und liest das Zertifikat des Standorts, ohne etwas zu senden: vergleichen Sie seinen fingerprint vor dem Koppeln mit dem, den der Administrator des Standorts sieht.

Anfragetext (application/json)

FeldTypErforderlichRegeln
urlstringja—

Antwort 200

FeldTypErforderlichRegeln
urlstringja—
certificateobjectjadarf null sein
certificate.fingerprintstringjaentspricht ^[0-9a-f]{64}$
certificate.subjectstringja—
certificate.issuerstringja—
certificate.validTostring (date-time)ja—

Antworten: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/probe" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"<url>"}'

Standort vergessen ​

DELETE /api/v1/fleet/sites/{id}

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Vergisst hier einen Standort und seinen versiegelten Schlüssel. Widerrufen Sie diesen Controller auch am Standort; bis dahin bleibt der Schlüssel dort gültig.

Parameter

NameOrtTypErforderlichRegeln
idPfadstring (uuid)ja—

Antworten: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507

Beispiel

bash
curl -X DELETE "$ARKVORY_URL/api/v1/fleet/sites/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Katalog eines Standorts lesen ​

GET HEAD /api/v1/fleet/sites/{id}/read

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Leitet einen Katalog-Lesezugriff an einen verwalteten Standort weiter und gibt dessen Antwort unverändert zurück: Repositorys, Suche, Artefakte, Annotationen, Stufen, Pakete, Dateiseiten und -verlauf, Speicherbelegung, Spiegelzustand. path ist die Route des Standorts mit ihrer Abfrage. Andere Routen und Dateibytes werden mit 400 abgelehnt.

Parameter

NameOrtTypErforderlichRegeln
idPfadstring (uuid)ja—
pathQuerystringjaentspricht ^/api/v1/; höchstens 2048 Zeichen; A read route of the site with its query, from a fixed list: catalog metadata (repositories, search, artifacts, annotations, stages, packages, file pages and history, storage usage, mirror state), download queue settings and update state. Never file bytes.

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/fleet/sites/$ID/read?path=$PATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Eine Einstellung eines Standorts ändern ​

POST /api/v1/fleet/sites/{id}/change

Zugriff: Administrator · Wiederholung: Nicht automatisch wiederholen

Leitet eine Änderung an einen verwalteten Standort weiter und gibt dessen Antwort unverändert zurück. path ist eine dieser Routen: /api/v1/system/downloads/settings (Einstellungen der Download-Warteschlange, als PUT gesendet) oder /api/v1/system/updates/requests (eine Update-Anfrage, als POST gesendet). Der Body geht unverändert an den Standort; der Standort prüft Revision oder Anfrage-ID, daher wird eine wiederholte Änderung nicht doppelt angewendet. Andere Pfade werden mit 400 abgelehnt.

Parameter

NameOrtTypErforderlichRegeln
idPfadstring (uuid)ja—
pathQuerystringjaentspricht ^/api/v1/; höchstens 2048 Zeichen; A change route of the site, from a fixed list: PUT /api/v1/system/downloads/settings, POST /api/v1/system/updates/requests.

Anfragetext (application/json)

Antworten: 200, 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/$ID/change?path=$PATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Standort jetzt lesen ​

POST /api/v1/fleet/sites/{id}/refresh

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Liest den Standort jetzt, statt auf die nächste Runde zu warten, und gibt ihn mit dem neuen Zustand zurück.

Parameter

NameOrtTypErforderlichRegeln
idPfadstring (uuid)ja—

Antwort 200

FeldTypErforderlichRegeln
idstring (uuid)ja—
namestringja—
urlstringja—
fingerprintstringjaentspricht ^[0-9a-f]{64}$; darf null sein
addedBystringja—
addedAtstring (date-time)ja—
seenAtstring (date-time)jadarf null sein
statestringjaeiner von pending, ok, unreachable, certificate, revoked, invalid, refused
errorstringjadarf null sein
topologyobjectjadarf null sein
topology.collectedAtstring (date-time)ja—
topology.siteobjectja—
topology.site.namestringja—
topology.site.versionstringja—
topology.site.schemaintegerjamindestens 0
topology.site.rolestringjaeiner von api, reader
topology.healthobjectja—
topology.health.availablebooleanja—
topology.health.writablebooleanja—
topology.health.drainingbooleanja—
topology.replicationobjectjadarf null sein
topology.replication.copiesintegerja0–16
topology.replication.requiredintegerja1–16
topology.replication.singleCopyUntilstring (date-time)jadarf null sein
topology.replication.nodestringneinhöchstens 63 Zeichen
topology.replication.profilestringneineiner von ha-2, ha-3
topology.replication.peersArray von objectneinhöchstens 16 Elemente
topology.gatewaysArray von objectjahöchstens 16 Elemente
topology.gateways[].slotintegerjamindestens 0
topology.gateways[].activebooleanja—
topology.gateways[].expiresAtstring (date-time)ja—
topology.mirrorsArray von objectjahöchstens 64 Elemente
topology.mirrors[].repositorystringja—
topology.mirrors[].modestringjaeiner von mirror, import
topology.mirrors[].upstreamstringja—
topology.mirrors[].sourceRepositorystringja—
topology.mirrors[].phasestringja—
topology.mirrors[].errorCodestringjadarf null sein
topology.mirrors[].checkedAtstring (date-time)jadarf null sein
topology.mirrors[].syncedAtstring (date-time)jadarf null sein
topology.mirrors[].lagChangesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet; darf null sein
topology.mirrors[].copiedArtifactsintegerjamindestens 0
topology.mirrors[].copiedBytesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet
topology.updatesobjectjadarf null sein
topology.updates.currentVersionstringja—
topology.updates.lateststringjadarf null sein
topology.updates.phasestringja—
topology.updates.errorstringjadarf null sein
topology.updates.automaticbooleanja—
topology.updates.heartbeatAtstring (date-time)ja—
topology.downloadsobjectja—
topology.downloads.strategystringjaeiner von ordered, smallest-first, shared
topology.downloads.sessionsintegerjamindestens 0
topology.downloads.activeintegerjamindestens 0
topology.downloads.waitingintegerjamindestens 0
topology.downloads.oldestWaitSecondsintegerjamindestens 0
topology.downloads.bytesPerSecondintegerjamindestens 0

Antworten: 200, 400, 401, 403, 404, 405, 409, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/$ID/refresh" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Kopplungscode erstellen ​

POST /api/v1/system/fleet/pairings

Zugriff: Administrator · Wiederholung: Nicht automatisch wiederholen

Erstellt einen einmaligen, zehn Minuten gültigen Code, den der Administrator eines Controllers eingibt, um diesen Standort zu verwalten. Der Code wird einmal angezeigt und nur als Hash gespeichert. Nur der globale Administrator des Standorts darf ihn erstellen.

Antwort 201

FeldTypErforderlichRegeln
codestringjaentspricht ^[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}$
expiresAtstring (date-time)ja—
fingerprintstringjaentspricht ^[0-9a-f]{64}$; darf null sein

Antworten: 201, 400, 401, 403, 404, 405, 409, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/system/fleet/pairings" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Controller des Standorts auflisten ​

GET HEAD /api/v1/system/fleet/controllers

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Listet die Controller auf, die diesen Standort verwalten dürfen: Name, wer sie gekoppelt hat, wann, und wann ihr Schlüssel zuletzt benutzt wurde.

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectjahöchstens 100 Elemente
items[].idstring (uuid)ja—
items[].namestringja—
items[].pairedBystringja—
items[].pairedAtstring (date-time)ja—
items[].usedAtstring (date-time)jadarf null sein

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/system/fleet/controllers" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Controller widerrufen ​

DELETE /api/v1/system/fleet/controllers/{id}

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Widerruft einen Controller: sein Flottenschlüssel wird sofort abgelehnt. Um den Standort wieder zu verwalten, muss er mit einem neuen Code gekoppelt werden.

Parameter

NameOrtTypErforderlichRegeln
idPfadstring (uuid)ja—

Antworten: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507

Beispiel

bash
curl -X DELETE "$ARKVORY_URL/api/v1/system/fleet/controllers/$ID" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Mit einem Controller koppeln ​

POST /api/v1/system/fleet/enrollment

Zugriff: Jeder, ohne Schlüssel · Wiederholung: Nicht automatisch wiederholen

Tauscht einen gültigen Kopplungscode einmal gegen einen Flottenschlüssel. Der Controller ruft dies über TLS auf, das auf den vom Administrator bestätigten Fingerabdruck festgelegt ist. Der Schlüssel wird einmal zurückgegeben und erreicht nur die Routen, die ein Controller braucht.

Anfragetext (application/json)

FeldTypErforderlichRegeln
codestringjahöchstens 32 Zeichen
namestringja1–63 Zeichen

Antwort 201

FeldTypErforderlichRegeln
keystringjaentspricht ^afk_[A-Za-z0-9_-]{43}$
siteobjectja—
site.namestringja—
site.versionstringja—

Antworten: 201, 400, 403, 405, 413, 415, 503

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/system/fleet/enrollment" \
  -H "Content-Type: application/json" \
  -d '{"code":"<code>","name":"<name>"}'

Diesen Standort für die Flottenkonsole lesen ​

GET HEAD /api/v1/system/topology

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Liefert diese Installation als einen Standort einer Flotte (ADR 0077): Name, Version, Schema und Rolle, ob sie verfügbar und beschreibbar ist, die HA-Kopien und -Knoten, die Lese-Gateways aus ihren Leases, jeden Spiegel und Import mit Phase, letzter Synchronisierung und lagChanges (noch nicht übernommene Änderungen der Quelle), den Zustand des Update-Agenten und die Download-Warteschlange. Lesen darf nur der globale Administrator des Standorts oder ein damit gekoppelter Controller.

Antwort 200

FeldTypErforderlichRegeln
collectedAtstring (date-time)ja—
siteobjectja—
site.namestringja—
site.versionstringja—
site.schemaintegerjamindestens 0
site.rolestringjaeiner von api, reader
healthobjectja—
health.availablebooleanja—
health.writablebooleanja—
health.drainingbooleanja—
replicationobjectjadarf null sein
replication.copiesintegerja0–16
replication.requiredintegerja1–16
replication.singleCopyUntilstring (date-time)jadarf null sein
replication.nodestringneinhöchstens 63 Zeichen
replication.profilestringneineiner von ha-2, ha-3
replication.peersArray von objectneinhöchstens 16 Elemente
replication.peers[].namestringjahöchstens 63 Zeichen
replication.peers[].connectedbooleanja—
replication.peers[].diskstringjahöchstens 24 Zeichen
replication.peers[].completebooleanja—
replication.peers[].witnessbooleanja—
gatewaysArray von objectjahöchstens 16 Elemente
gateways[].slotintegerjamindestens 0
gateways[].activebooleanja—
gateways[].expiresAtstring (date-time)ja—
mirrorsArray von objectjahöchstens 64 Elemente
mirrors[].repositorystringja—
mirrors[].modestringjaeiner von mirror, import
mirrors[].upstreamstringja—
mirrors[].sourceRepositorystringja—
mirrors[].phasestringja—
mirrors[].errorCodestringjadarf null sein
mirrors[].checkedAtstring (date-time)jadarf null sein
mirrors[].syncedAtstring (date-time)jadarf null sein
mirrors[].lagChangesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet; darf null sein
mirrors[].copiedArtifactsintegerjamindestens 0
mirrors[].copiedBytesstringjaeine ganze Zahl in Dezimalziffern, als String gesendet
updatesobjectjadarf null sein
updates.currentVersionstringja—
updates.lateststringjadarf null sein
updates.phasestringja—
updates.errorstringjadarf null sein
updates.automaticbooleanja—
updates.heartbeatAtstring (date-time)ja—
downloadsobjectja—
downloads.strategystringjaeiner von ordered, smallest-first, shared
downloads.sessionsintegerjamindestens 0
downloads.activeintegerjamindestens 0
downloads.waitingintegerjamindestens 0
downloads.oldestWaitSecondsintegerjamindestens 0
downloads.bytesPerSecondintegerjamindestens 0

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/system/topology" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Einstellungen der Download-Warteschlange lesen ​

GET HEAD /api/v1/system/downloads/settings

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Gibt die geänderten Werte (overrides), die Werte aus der Umgebung des Servers (defaults) und das, was die Warteschlange jetzt verwendet (effective), zurück, dazu die Revision für eine Änderung. problem nennt, warum gespeicherte Einstellungen nicht zu diesem Server passen; die Warteschlange läuft dann mit den Standardwerten.

Antwort 200

FeldTypErforderlichRegeln
revisionintegerja0–9007199254740991
overridesobjectja—
overrides.strategystringneineiner von ordered, smallest-first, shared
overrides.sessionsintegernein1–1024
overrides.reserveintegernein0–1023
overrides.perPrincipalintegernein1–1024
overrides.weightsobjectnein—
overrides.weights.interactiveintegerja1–1000
overrides.weights.releaseintegerja1–1000
overrides.weights.bulkintegerja1–1000
overrides.weights.backgroundintegerja1–1000
overrides.sessionMinBytesintegernein0–9007199254740991
overrides.idleSecondsintegernein1–3600
overrides.agingMinutesintegernein0–10080
overrides.preemptbooleannein—
overrides.rangesPerSessionintegernein1–64
defaultsobjectja—
defaults.strategystringjaeiner von ordered, smallest-first, shared
defaults.sessionsintegerja1–1024
defaults.reserveintegerja0–1023
defaults.perPrincipalintegerja1–1024
defaults.weightsobjectja—
defaults.weights.interactiveintegerja1–1000
defaults.weights.releaseintegerja1–1000
defaults.weights.bulkintegerja1–1000
defaults.weights.backgroundintegerja1–1000
defaults.sessionMinBytesintegerja0–9007199254740991
defaults.idleSecondsintegerja1–3600
defaults.agingMinutesintegerja0–10080
defaults.preemptbooleanja—
defaults.rangesPerSessionintegerja1–64
effectiveobjectja—
effective.strategystringjaeiner von ordered, smallest-first, shared
effective.sessionsintegerja1–1024
effective.reserveintegerja0–1023
effective.perPrincipalintegerja1–1024
effective.weightsobjectja—
effective.weights.interactiveintegerja1–1000
effective.weights.releaseintegerja1–1000
effective.weights.bulkintegerja1–1000
effective.weights.backgroundintegerja1–1000
effective.sessionMinBytesintegerja0–9007199254740991
effective.idleSecondsintegerja1–3600
effective.agingMinutesintegerja0–10080
effective.preemptbooleanja—
effective.rangesPerSessionintegerja1–64
admissionstringjaeiner von sessions, per-request
updatedAtstring (date-time)jadarf null sein
updatedBystringjadarf null sein
actorstringjadarf null sein
problemstringjadarf null sein

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/system/downloads/settings" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Einstellungen der Download-Warteschlange ändern ​

PUT /api/v1/system/downloads/settings

Zugriff: Administrator · Wiederholung: Nur mit der erwarteten Revision wiederholen (compare-and-swap)

Speichert overrides über der Umgebung des Servers und wendet sie ohne Neustart an: neue Entscheidungen folgen ihnen sofort, aktive Downloads behalten ihre Plätze. Die angegebenen Werte ersetzen alle früheren Änderungen; {} kehrt zur Umgebung zurück. Einstellungen, die hier nicht laufen können, werden mit 400 und dem Feldnamen abgelehnt; eine veraltete expectedRevision erhält 409. Lese-Gateways behalten ihre Umgebung.

Anfragetext (application/json)

FeldTypErforderlichRegeln
expectedRevisionintegerja0–9007199254740991
overridesobjectja—
overrides.strategystringneineiner von ordered, smallest-first, shared
overrides.sessionsintegernein1–1024
overrides.reserveintegernein0–1023
overrides.perPrincipalintegernein1–1024
overrides.weightsobjectnein—
overrides.weights.interactiveintegerja1–1000
overrides.weights.releaseintegerja1–1000
overrides.weights.bulkintegerja1–1000
overrides.weights.backgroundintegerja1–1000
overrides.sessionMinBytesintegernein0–9007199254740991
overrides.idleSecondsintegernein1–3600
overrides.agingMinutesintegernein0–10080
overrides.preemptbooleannein—
overrides.rangesPerSessionintegernein1–64

Antwort 200

FeldTypErforderlichRegeln
revisionintegerja0–9007199254740991
overridesobjectja—
overrides.strategystringneineiner von ordered, smallest-first, shared
overrides.sessionsintegernein1–1024
overrides.reserveintegernein0–1023
overrides.perPrincipalintegernein1–1024
overrides.weightsobjectnein—
overrides.weights.interactiveintegerja1–1000
overrides.weights.releaseintegerja1–1000
overrides.weights.bulkintegerja1–1000
overrides.weights.backgroundintegerja1–1000
overrides.sessionMinBytesintegernein0–9007199254740991
overrides.idleSecondsintegernein1–3600
overrides.agingMinutesintegernein0–10080
overrides.preemptbooleannein—
overrides.rangesPerSessionintegernein1–64
defaultsobjectja—
defaults.strategystringjaeiner von ordered, smallest-first, shared
defaults.sessionsintegerja1–1024
defaults.reserveintegerja0–1023
defaults.perPrincipalintegerja1–1024
defaults.weightsobjectja—
defaults.weights.interactiveintegerja1–1000
defaults.weights.releaseintegerja1–1000
defaults.weights.bulkintegerja1–1000
defaults.weights.backgroundintegerja1–1000
defaults.sessionMinBytesintegerja0–9007199254740991
defaults.idleSecondsintegerja1–3600
defaults.agingMinutesintegerja0–10080
defaults.preemptbooleanja—
defaults.rangesPerSessionintegerja1–64
effectiveobjectja—
effective.strategystringjaeiner von ordered, smallest-first, shared
effective.sessionsintegerja1–1024
effective.reserveintegerja0–1023
effective.perPrincipalintegerja1–1024
effective.weightsobjectja—
effective.weights.interactiveintegerja1–1000
effective.weights.releaseintegerja1–1000
effective.weights.bulkintegerja1–1000
effective.weights.backgroundintegerja1–1000
effective.sessionMinBytesintegerja0–9007199254740991
effective.idleSecondsintegerja1–3600
effective.agingMinutesintegerja0–10080
effective.preemptbooleanja—
effective.rangesPerSessionintegerja1–64
admissionstringjaeiner von sessions, per-request
updatedAtstring (date-time)jadarf null sein
updatedBystringjadarf null sein
actorstringjadarf null sein
problemstringjadarf null sein

Antworten: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X PUT "$ARKVORY_URL/api/v1/system/downloads/settings" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"overrides":{}}'

Änderungen des Standorts lesen ​

GET HEAD /api/v1/system/changes

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher (Lesen)

Gibt zurück, ob sich der Agent des Standorts meldet (agent), die wartende Anfrage und die 20 neuesten mit ihrem Zustand: pending, applying, done oder failed mit Grund. Quellschlüssel erscheinen hier nie.

Antwort 200

FeldTypErforderlichRegeln
agentbooleanja—
updatingbooleanja—
blockedstringjaeiner von expired, interrupted, key_missing, not_a_mirror, already_attached, mirror_failed, switchover_failed, single_copy_failed, unreadable, digest_mismatch, null; darf null sein
pendingobjectjadarf null sein
pending.idstring (uuid)ja—
pending.kindstringjaeiner von mirror-attach, mirror-key, mirror-detach, cluster-switchover, single-copy
pending.actorstringjahöchstens 200 Zeichen
pending.requestedAtstring (date-time)ja—
recentArray von objectjahöchstens 20 Elemente
recent[].idstring (uuid)ja—
recent[].digeststringjaentspricht ^[0-9a-f]{64}$
recent[].kindstringjaeiner von mirror-attach, mirror-key, mirror-detach, cluster-switchover, single-copy
recent[].statestringjaeiner von pending, applying, done, failed
recent[].errorstringjaeiner von expired, interrupted, key_missing, not_a_mirror, already_attached, mirror_failed, switchover_failed, single_copy_failed, unreadable, digest_mismatch, null; darf null sein
recent[].actorstringjahöchstens 200 Zeichen
recent[].requestedAtstring (date-time)ja—
recent[].finishedAtstring (date-time)jadarf null sein

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/system/changes" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

Eine Änderung des Standorts einreihen ​

POST /api/v1/system/changes

Zugriff: Administrator · Wiederholung: Wiederholen ist sicher: Dieselbe Anfrage hat dieselbe Wirkung

Reiht eine Änderung für den Agenten des Standorts ein, der sie innerhalb einer Minute mit den Prüfungen und dem Rollback von arkvory configure und cluster-* anwendet: einen Spiegel oder Import anbinden, seinen Quellschlüssel ersetzen, Spiegel lösen, den aktiven HA-Knoten wechseln (Knotenname zweimal eingegeben) oder Schreibvorgänge mit einer Kopie beschließen. id wählt der Client; eine Wiederholung reiht die Änderung nicht erneut ein. key ist der Quellschlüssel nur für mirror-attach und mirror-key: er geht in einer eigenen 0600-Datei an den Agenten und wird nie zurückgegeben. 202 bedeutet eingereiht, nicht angewendet.

Anfragetext (application/json)

FeldTypErforderlichRegeln
idstring (uuid)ja—
changeobjectja—
change.kindstringjaeiner von mirror-attach
change.repositorystringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
change.upstreamstringjahöchstens 255 Zeichen
change.sourceRepositorystringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
change.stagesArray von stringnein1–16 Elemente; jedes Element: entspricht ^[a-z0-9][a-z0-9_.-]{0,31}$; darf null sein
change.repositoriesArray von stringja1–64 Elemente; jedes Element: entspricht ^[a-z0-9][a-z0-9_-]{0,63}$
change.nodestringjaentspricht ^[A-Za-z0-9][A-Za-z0-9_.-]{0,62}$
change.confirmstringjaentspricht ^[A-Za-z0-9][A-Za-z0-9_.-]{0,62}$
change.untilstring (date-time)jadarf null sein
change.reasonstringja1–200 Zeichen
keystringnein16–4000 Zeichen

Antwort 202

FeldTypErforderlichRegeln
idstring (uuid)ja—

Antworten: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/system/changes" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"id":"00000000-0000-4000-8000-000000000000","change":{"kind":"mirror-attach","repository":"<repository>","upstream":"<upstream>","sourceRepository":"<sourceRepository>"}}'

Änderungsfeed eines Repositorys verfolgen ​

GET HEAD /api/v1/repositories/{repository}/changes

Zugriff: Repository-Berechtigung: artifact.list; Dateischlüssel: read · Wiederholung: Wiederholen ist sicher (Lesen)

Liefert in Commit-Reihenfolge bis zu limit Änderungen (1–100, Standard 100) nach der Sequenz after (Standard 0): Aktion, Artefakt und, bei Dateipfaden und Stufen, den Pfad oder die Stufe in detail; Akteure werden ausgelassen, daher genügt Listenzugriff. head ist die neueste Sequenz des Repositorys, next der Cursor der folgenden Seite oder null, wenn die Seite den neuesten Stand erreicht hat. Ein Spiegel speichert die zuletzt angewendete Sequenz und fragt von dort aus zyklisch ab.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
afterQuerystringneineine ganze Zahl in Dezimalziffern, als String gesendet; Sequence cursor, default 0
limitQueryintegernein1–100

Antwort 200

FeldTypErforderlichRegeln
itemsArray von objectja—
items[].sequencestringjaeine ganze Zahl in Dezimalziffern, als String gesendet
items[].actionstringja—
items[].artifactIdstring (uuid)ja—
items[].detailstringjadarf null sein
headstringjaeine ganze Zahl in Dezimalziffern, als String gesendet
nextstringjaeine ganze Zahl in Dezimalziffern, als String gesendet; darf null sein

Antworten: 200, 400, 401, 403, 404, 409, 422, 503, 507

Beispiel

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/changes" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

POST /api/v1/repositories/{repository}/artifacts/{id}/links

Zugriff: Repository-Berechtigung: content.read; Dateischlüssel: read · Wiederholung: Nicht automatisch wiederholen

Liefert ein geheimes token, eine url relativ zum API-Origin und expiresAt für downloadArtifact genau dieses einen Artefakts ohne Schlüssel; ttlSeconds legt die Lebensdauer fest (60 Sekunden bis ein Tag, Standard eine Stunde). Das Token wird nur in dieser Antwort angezeigt und lässt sich nicht widerrufen: Es funktioniert nicht mehr, wenn es abläuft oder das Artefakt gelöscht wird, und Downloads damit werden auf die Transferlimits des Erstellers angerechnet. Ein Aufrufer darf 1000 aktive Links besitzen (507 token_limit), und ein Download-Link kann keine weiteren Links erstellen.

Parameter

NameOrtTypErforderlichRegeln
repositoryPfadstringjaentspricht ^[a-z0-9][a-z0-9_-]{0,63}$
idPfadstring (uuid)ja—

Anfragetext (application/json)

FeldTypErforderlichRegeln
ttlSecondsintegernein60–86400; Standard 3600

Antwort 201

FeldTypErforderlichRegeln
tokenstringjaentspricht ^dtl_[A-Za-z0-9_-]{43}$
urlstringja—
expiresAtstring (date-time)ja—

Antworten: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

Beispiel

bash
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/links" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Arkvory · ProAnimaStudio