आर्टिफ़ैक्ट और कैटलॉग
प्रकाशित आर्टिफ़ैक्ट: सूची, विवरण, सामग्री, एनोटेशन, संदर्भ, खोज, कैटलॉग ऑडिट और उसकी परिवर्तन फ़ीड।
इस समूह के ऑपरेशन, उनके एक्सेस नियम, पुनः प्रयास नियम, पैरामीटर और जवाबों के साथ। हर अनुरोध में एक कुंजी होती है: Authorization: Bearer <कुंजी> (“प्रमाणीकरण” देखें)।
ऑपरेशन
आर्टिफ़ैक्ट के एनोटेशन प्राप्त करें
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/annotations
एक्सेस: रिपॉज़िटरी अनुमति: annotation.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
प्रकाशित आर्टिफ़ैक्ट के वर्तमान लेबल, मेटाडेटा और संग्रह उनके revision के साथ लौटाता है। संशोधन 0 का अर्थ है कि उन्हें कभी बदला नहीं गया: लेबल और मेटाडेटा वही हैं जो अपलोड बनाते समय दिए गए थे, और संग्रह खाली हैं। संशोधन को setAnnotations में expectedRevision के रूप में दें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
labels | string का ऐरे | हाँ | अधिकतम 32 आइटम |
metadata | string का मैप | हाँ | अधिकतम 32 प्रविष्टियाँ |
collections | string का ऐरे | हाँ | अधिकतम 32 आइटम |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/annotations" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट के एनोटेशन प्रतिस्थापित करें
PUT /api/v1/repositories/{repository}/artifacts/{id}/annotations
एक्सेस: रिपॉज़िटरी अनुमति: annotation.write, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
प्रकाशित आर्टिफ़ैक्ट के labels, metadata और collections एक साथ प्रतिस्थापित करता है; value से छोड़ा गया फ़ील्ड खाली हो जाता है। expectedRevision वर्तमान संशोधन होना चाहिए (पहले परिवर्तन के लिए 0), अन्यथा 409 revision_mismatch: एनोटेशन फिर से पढ़ें और परिवर्तन दोबारा लागू करें। अधिकतम 32 लेबल और 32 संग्रह (1–64 अक्षर, अंक या _.:-) और 32 मेटाडेटा प्रविष्टियाँ (मान 1024 वर्णों तक); बाइट और मूल डिस्क्रिप्टर कभी नहीं बदलते।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483646 |
value | object | हाँ | — |
value.labels | string का ऐरे | नहीं | अधिकतम 32 आइटम |
value.metadata | string का मैप | नहीं | अधिकतम 32 प्रविष्टियाँ |
value.collections | string का ऐरे | नहीं | अधिकतम 32 आइटम |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
labels | string का ऐरे | हाँ | अधिकतम 32 आइटम |
metadata | string का मैप | हाँ | अधिकतम 32 प्रविष्टियाँ |
collections | string का ऐरे | हाँ | अधिकतम 32 आइटम |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
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":{}}'आर्टिफ़ैक्ट को UPack पैकेज के रूप में पंजीकृत करें
POST /api/v1/repositories/{repository}/artifacts/{id}/package
एक्सेस: रिपॉज़िटरी अनुमति: package.publish, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
प्रकाशित आर्टिफ़ैक्ट को UPack ZIP के रूप में खोलता है, रूट upack.json (name, वैकल्पिक group, SemVer version) पढ़ता है और उसके लिए वह पैकेज संस्करण पंजीकृत करता है; असुरक्षित या अमान्य आर्काइव 400 के साथ अस्वीकार की जाती हैं। संस्करण अपरिवर्तनीय है: उसी आर्टिफ़ैक्ट को फिर पंजीकृत करने पर वही प्रविष्टि मिलती है, जबकि मौजूदा समूह, नाम और संस्करण (बड़े-छोटे अक्षर का भेद किए बिना तुलना) के लिए कोई अन्य आर्टिफ़ैक्ट 409 version_exists है। इसके बाद संस्करण listPackages में दिखता है और नाम, श्रेणी तथा स्टेज से निर्धारित (resolve) किया जा सकता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
group | string | नहीं | — |
name | string | नहीं | — |
version | string | नहीं | — |
artifactId | string (uuid) | नहीं | — |
manifest | object | नहीं | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/package" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट खोजें
GET HEAD /api/v1/repositories/{repository}/search
एक्सेस: रिपॉज़िटरी अनुमति: artifact.list; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
प्रकाशित आर्टिफ़ैक्ट q (नाम या किसी वर्तमान मेटाडेटा मान का बड़े-छोटे अक्षर का भेद न करने वाला सबस्ट्रिंग), किसी सटीक वर्तमान label, किसी collection, और सटीक metadataKey/metadataValue जोड़ी से खोजता है, जो साथ-साथ दिए जाते हैं; दिए गए सभी फ़िल्टर मेल खाने चाहिए। परिणाम ID के क्रम में 100 के पृष्ठों में आते हैं, प्रत्येक के साथ आकार, निर्माण और प्रकाशन का समय, वर्तमान लेबल और प्रमोशन स्टेज; after में next देकर आगे बढ़ें। मेटाडेटा और संग्रह नहीं लौटाए जाते: उन्हें getAnnotations से पढ़ें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
q | क्वेरी | string | नहीं | — |
label | क्वेरी | string | नहीं | — |
collection | क्वेरी | string | नहीं | — |
after | क्वेरी | string | नहीं | — |
metadataKey | क्वेरी | string | नहीं | पैटर्न: ^[a-zA-Z][a-zA-Z0-9_.-]{0,63}$; अधिकतम 64 वर्ण; Exact metadata key; requires metadataValue. |
metadataValue | क्वेरी | string | नहीं | अधिकतम 1024 वर्ण; Exact case-sensitive value; requires metadataKey. Empty string is allowed. |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | — |
items[].size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; बाइट में आकार, दशमलव स्ट्रिंग |
items[].createdAt | string (date-time) | हाँ | अपलोड आरक्षण का समय |
items[].publishedAt | string (date-time) | हाँ | null हो सकता है; प्रकाशन समय; null केवल तब जब कोई दर्ज न हुआ हो |
items[].labels | string का ऐरे | हाँ | अधिकतम 32 आइटम; वर्तमान लेबल: बदले जाने पर एनोटेशन के, अन्यथा अपलोड डिस्क्रिप्टर के |
items[].stages | string का ऐरे | हाँ | अधिकतम 16 आइटम; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$; वर्तमान प्रमोशन स्टेज, बाइट क्रम में |
next | string (uuid) | हाँ | null हो सकता है; भरे हुए पृष्ठ की अंतिम ID; after के रूप में दें |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/search" \
-H "Authorization: Bearer $ARKVORY_TOKEN"रिपॉज़िटरी का कैटलॉग ऑडिट पढ़ें
GET HEAD /api/v1/repositories/{repository}/audit
एक्सेस: रिपॉज़िटरी अनुमति: audit.read; फ़ाइल कुंजियाँ: write · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
क्रम संख्या after (डिफ़ॉल्ट 0) के बाद रिपॉज़िटरी के अधिकतम 100 कैटलॉग परिवर्तन, सबसे पुराना पहले, लौटाता है: प्रकाशन, हटाना, एनोटेशन और अटैचमेंट के परिवर्तन, पैकेज पंजीकरण, फ़ाइल पथ के परिवर्तन, संदर्भ, स्टेज और प्रमोशन, प्रत्येक के साथ कर्ता, क्रिया, आर्टिफ़ैक्ट और समय। आगे पढ़ने के लिए पृष्ठ का अंतिम sequence after में दें; कोई next फ़ील्ड नहीं है। डाउनलोड और साइन-इन इसमें नहीं हैं; मिरर listCatalogChanges का अनुसरण करते हैं, जिसमें कर्ता नहीं होते।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
after | क्वेरी | string | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | नहीं | — |
items[].sequence | string | नहीं | — |
items[].actor | string | नहीं | — |
items[].action | string | नहीं | — |
items[].artifactId | string | नहीं | — |
items[].occurredAt | string (date-time) | नहीं | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/audit" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट में संदर्भ जोड़ें
POST /api/v1/repositories/{repository}/artifacts/{id}/references
एक्सेस: रिपॉज़िटरी अनुमति: reference.write, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
दर्ज करता है कि Arkvory के बाहर कोई चीज़ इस आर्टिफ़ैक्ट का उपयोग करती है, आपकी चुनी हुई key (1–256 अक्षर, अंक या _.:/-) के अंतर्गत, उदाहरण के लिए किसी डिप्लॉयमेंट का नाम। संदर्भित आर्टिफ़ैक्ट को हटाया नहीं जा सकता और प्रतिधारण भी उसे नहीं हटा सकता, जब तक सभी संदर्भ समाप्त न हो जाएँ। संदर्भ कॉलर का होता है; वही कुंजी फिर जोड़ने पर कुछ नहीं बदलता।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
key | string | हाँ | अधिकतम 256 वर्ण |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
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>"}'आर्टिफ़ैक्ट से संदर्भ हटाएँ
DELETE /api/v1/repositories/{repository}/artifacts/{id}/references
एक्सेस: रिपॉज़िटरी अनुमति: reference.write, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
आर्टिफ़ैक्ट से कॉलर का अपना संदर्भ key हटाता है; अन्य कॉलर के संदर्भ बने रहते हैं। जो कुंजी मौजूद नहीं है उसे हटाना भी सफल होता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
key | string | हाँ | अधिकतम 256 वर्ण |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
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>"}'आर्टिफ़ैक्ट सूचीबद्ध करें
GET HEAD /api/v1/repositories/{repository}/artifacts
एक्सेस: रिपॉज़िटरी अनुमति: artifact.list; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
रिपॉज़िटरी के प्रकाशित आर्टिफ़ैक्ट ID के क्रम में सूचीबद्ध करता है, प्रति पृष्ठ limit (1–100, डिफ़ॉल्ट 50); after में next देकर आगे बढ़ें। पृष्ठ भरा होने पर हर बार next सेट होता है, इसलिए अंतिम पृष्ठ खाली हो सकता है। प्रत्येक आइटम में अपलोड के समय दिया गया डिस्क्रिप्टर होता है; वर्तमान लेबल और मेटाडेटा getAnnotations में हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
after | क्वेरी | string (uuid) | नहीं | — |
limit | क्वेरी | integer | नहीं | 1–100; डिफ़ॉल्ट 50 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | नहीं | — |
items[].id | string (uuid) | हाँ | — |
items[].repository | string | हाँ | — |
items[].status | string | हाँ | इनमें से एक: pending, available, cancelled |
items[].createdAt | string (date-time) | हाँ | — |
items[].expiresAt | string (date-time) | हाँ | — |
items[].descriptor | object | हाँ | — |
items[].descriptor.name | string | हाँ | 1–240 वर्ण |
items[].descriptor.size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].descriptor.sha256 | string | हाँ | SHA-256: 64 लोअरकेस हेक्साडेसिमल अंक |
items[].descriptor.labels | string का ऐरे | नहीं | अधिकतम 32 आइटम; हर आइटम: अधिकतम 64 वर्ण |
items[].descriptor.metadata | string का मैप | नहीं | अधिकतम 32 प्रविष्टियाँ |
next | string | नहीं | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट प्राप्त करें
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}
एक्सेस: रिपॉज़िटरी अनुमति: artifact.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
प्रकाशित आर्टिफ़ैक्ट लौटाता है: उसकी ID, रिपॉज़िटरी, स्थिति, निर्माण समय और अपलोड के समय दिया गया डिस्क्रिप्टर (नाम, आकार, SHA-256, मूल लेबल और मेटाडेटा)। लंबित, रद्द किए गए और हटाए गए आर्टिफ़ैक्ट पर 404 मिलता है। बाइट पढ़ने के लिए downloadArtifact का उपयोग करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
repository | string | हाँ | — |
status | string | हाँ | इनमें से एक: pending, available, cancelled |
createdAt | string (date-time) | हाँ | — |
expiresAt | string (date-time) | हाँ | — |
descriptor | object | हाँ | — |
descriptor.name | string | हाँ | 1–240 वर्ण |
descriptor.size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
descriptor.sha256 | string | हाँ | SHA-256: 64 लोअरकेस हेक्साडेसिमल अंक |
descriptor.labels | string का ऐरे | नहीं | अधिकतम 32 आइटम; हर आइटम: अधिकतम 64 वर्ण |
descriptor.metadata | string का मैप | नहीं | अधिकतम 32 प्रविष्टियाँ |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"आर्टिफ़ैक्ट हटाएँ
DELETE /api/v1/repositories/{repository}/artifacts/{id}
एक्सेस: रिपॉज़िटरी अनुमति: artifact.delete · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
प्रकाशित आर्टिफ़ैक्ट को तार्किक रूप से हटाता है: वह सूचियों, खोजों और डाउनलोड से तुरंत गायब हो जाता है, और उसके बाइट रिपॉज़िटरी के ऑनलाइन क्लीनअप (setCleanup, डिफ़ॉल्ट रूप से बंद) द्वारा उसकी छूट अवधि के बाद वापस लिए जाते हैं। expectedAnnotationRevision वर्तमान एनोटेशन संशोधन के बराबर होना चाहिए। उत्तर 200 है और उसमें एक outcome होता है: deleted, already_deleted, changed (संशोधन भिन्न है), not_found, या protected के साथ वे blockers जो उसे रोके रखते हैं (कोई संदर्भ, फ़ाइल पथ का संशोधन, बिल्ड अटैचमेंट या प्रमोशन स्टेज)। पहले inspectArtifactDeletion से जाँच लें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedAnnotationRevision | integer | हाँ | 0–2147483647 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
outcome | string | हाँ | इनमें से एक: deleted, already_deleted, protected, changed, not_eligible, not_found |
blockers | string का ऐरे | हाँ | अधिकतम 4 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: reference, asset_history, attachment_history, protected_label, promotion_stage |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X DELETE "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedAnnotationRevision":0}'आर्टिफ़ैक्ट डाउनलोड करें
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/content
एक्सेस: रिपॉज़िटरी अनुमति: content.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
मूल बाइट Content-Length, Content-Disposition (आर्टिफ़ैक्ट का नाम) और सशक्त (strong) ETag ("sha256:<hex>") के साथ स्ट्रीम करता है। एकल Range पर 206 मिलता है (जिसे पूरा नहीं किया जा सकता उस पर 416); ETag के साथ If-Range सुरक्षित रूप से डाउनलोड जारी रखता है, और If-None-Match पर 304 मिलता है। HEAD बिना बॉडी के वही हेडर लौटाता है और Range की उपेक्षा करता है। Authorization हेडर के बजाय अनुरोध createDownloadLink से मिला डाउनलोड लिंक token के रूप में ले जा सकता है; डाउनलोड सर्वर के डाउनलोड प्रवेश नियंत्रण में खाली स्लॉट की प्रतीक्षा करते हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
Range | हेडर | string | नहीं | — |
If-Range | हेडर | string | नहीं | — |
If-None-Match | हेडर | string | नहीं | — |
Arkvory-Download-Id | हेडर | string | नहीं | पैटर्न: ^[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-Ticket | हेडर | string | नहीं | अधिकतम 80 वर्ण; 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-Class | हेडर | string | नहीं | इनमें से एक: 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. |
token | क्वेरी | string | नहीं | पैटर्न: ^dtl_[A-Za-z0-9_-]{43}$; Download link from POST …/artifacts/{id}/links, instead of an Authorization header |
प्रतिक्रियाएँ: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/content" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-o fileसाइटों का अवलोकन पढ़ें
GET HEAD /api/v1/fleet/overview
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
प्रबंधित साइटों और इस इंस्टॉलेशन की चेतावनियाँ, सबसे गंभीर पहले (critical, warning, info), और उनके बीच मिरर संबंध। पिछली पृष्ठभूमि रीड से बनता है, अधिकतम हर 5 सेकंड में एक बार। जिस स्रोत के पते पर कोई प्रबंधित साइट उत्तर नहीं देती वह external:<origin> है; यह इंस्टॉलेशन self है और इसकी ओर के संबंध केवल ARKVORY_SITE_URL सेट होने पर दिखते हैं। केवल लेखन प्रक्रिया उत्तर देती है।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
generatedAt | string (date-time) | हाँ | — |
self | object | हाँ | — |
self.name | string | हाँ | — |
self.version | string | हाँ | — |
self.url | string | हाँ | null हो सकता है |
alerts | object का ऐरे | हाँ | — |
alerts[].site | string | हाँ | — |
alerts[].name | string | हाँ | — |
alerts[].kind | string | हाँ | इनमें से एक: unreachable, certificate, revoked, refused, invalid, stale, not-writable, copies, single-copy, mirror-failing, mirror-lag, updates-failed, version-skew |
alerts[].severity | string | हाँ | इनमें से एक: critical, warning, info |
alerts[].subject | string | हाँ | null हो सकता है |
alerts[].since | string (date-time) | हाँ | null हो सकता है |
links | object का ऐरे | हाँ | — |
links[].from | string | हाँ | — |
links[].to | string | हाँ | — |
links[].repository | string | हाँ | — |
links[].sourceRepository | string | हाँ | — |
links[].mode | string | हाँ | इनमें से एक: mirror, import |
links[].lagChanges | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
links[].failing | boolean | हाँ | — |
links[].stale | boolean | नहीं | — |
external | string का ऐरे | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/fleet/overview" \
-H "Authorization: Bearer $ARKVORY_TOKEN"प्रबंधित साइटों की सूची
GET HEAD /api/v1/fleet/sites
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
इस इंस्टॉलेशन द्वारा प्रबंधित साइटें (ADR 0077) और हर साइट की अंतिम रिपोर्ट: state (ok, या न पढ़े जाने का कारण: unreachable, certificate, revoked, invalid, refused), अंतिम बार कब दिखी, और उसकी अंतिम topology। साइटें हर 30 सेकंड पृष्ठभूमि में पढ़ी जाती हैं। साइट की कुंजी कभी नहीं लौटाई जाती।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 256 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | — |
items[].url | string | हाँ | — |
items[].fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$; null हो सकता है |
items[].addedBy | string | हाँ | — |
items[].addedAt | string (date-time) | हाँ | — |
items[].seenAt | string (date-time) | हाँ | null हो सकता है |
items[].state | string | हाँ | इनमें से एक: pending, ok, unreachable, certificate, revoked, invalid, refused |
items[].error | string | हाँ | null हो सकता है |
items[].topology | object | हाँ | null हो सकता है |
items[].topology.collectedAt | string (date-time) | हाँ | — |
items[].topology.site | object | हाँ | — |
items[].topology.health | object | हाँ | — |
items[].topology.replication | object | हाँ | null हो सकता है |
items[].topology.gateways | object का ऐरे | हाँ | अधिकतम 16 आइटम |
items[].topology.mirrors | object का ऐरे | हाँ | अधिकतम 64 आइटम |
items[].topology.updates | object | हाँ | null हो सकता है |
items[].topology.downloads | object | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/fleet/sites" \
-H "Authorization: Bearer $ARKVORY_TOKEN"साइट से युग्मित करें
POST /api/v1/fleet/sites
एक्सेस: व्यवस्थापक · पुनः प्रयास: अपने-आप न दोहराएँ
साइट से युग्मन: नियंत्रक फिर से जुड़ता है, प्रमाणपत्र में अब भी व्यवस्थापक द्वारा पुष्टि किया fingerprint होना चाहिए (loopback पर HTTP के लिए null), साइट पर बना युग्मन code कुंजी से बदला जाता है, और कुंजी ARKVORY_FLEET_KEY_FILE से सील होती है। उत्तर से पहले साइट एक बार पढ़ी जाती है। कुंजी फ़ाइल के बिना उत्तर 503 है।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
url | string | हाँ | — |
fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$; null हो सकता है |
code | string | हाँ | अधिकतम 32 वर्ण |
प्रतिक्रिया 201
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | — |
url | string | हाँ | — |
fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$; null हो सकता है |
addedBy | string | हाँ | — |
addedAt | string (date-time) | हाँ | — |
seenAt | string (date-time) | हाँ | null हो सकता है |
state | string | हाँ | इनमें से एक: pending, ok, unreachable, certificate, revoked, invalid, refused |
error | string | हाँ | null हो सकता है |
topology | object | हाँ | null हो सकता है |
topology.collectedAt | string (date-time) | हाँ | — |
topology.site | object | हाँ | — |
topology.site.name | string | हाँ | — |
topology.site.version | string | हाँ | — |
topology.site.schema | integer | हाँ | कम से कम 0 |
topology.site.role | string | हाँ | इनमें से एक: api, reader |
topology.health | object | हाँ | — |
topology.health.available | boolean | हाँ | — |
topology.health.writable | boolean | हाँ | — |
topology.health.draining | boolean | हाँ | — |
topology.replication | object | हाँ | null हो सकता है |
topology.replication.copies | integer | हाँ | 0–16 |
topology.replication.required | integer | हाँ | 1–16 |
topology.replication.singleCopyUntil | string (date-time) | हाँ | null हो सकता है |
topology.replication.node | string | नहीं | अधिकतम 63 वर्ण |
topology.replication.profile | string | नहीं | इनमें से एक: ha-2, ha-3 |
topology.replication.peers | object का ऐरे | नहीं | अधिकतम 16 आइटम |
topology.gateways | object का ऐरे | हाँ | अधिकतम 16 आइटम |
topology.gateways[].slot | integer | हाँ | कम से कम 0 |
topology.gateways[].active | boolean | हाँ | — |
topology.gateways[].expiresAt | string (date-time) | हाँ | — |
topology.mirrors | object का ऐरे | हाँ | अधिकतम 64 आइटम |
topology.mirrors[].repository | string | हाँ | — |
topology.mirrors[].mode | string | हाँ | इनमें से एक: mirror, import |
topology.mirrors[].upstream | string | हाँ | — |
topology.mirrors[].sourceRepository | string | हाँ | — |
topology.mirrors[].phase | string | हाँ | — |
topology.mirrors[].errorCode | string | हाँ | null हो सकता है |
topology.mirrors[].checkedAt | string (date-time) | हाँ | null हो सकता है |
topology.mirrors[].syncedAt | string (date-time) | हाँ | null हो सकता है |
topology.mirrors[].lagChanges | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
topology.mirrors[].copiedArtifacts | integer | हाँ | कम से कम 0 |
topology.mirrors[].copiedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
topology.updates | object | हाँ | null हो सकता है |
topology.updates.currentVersion | string | हाँ | — |
topology.updates.latest | string | हाँ | null हो सकता है |
topology.updates.phase | string | हाँ | — |
topology.updates.error | string | हाँ | null हो सकता है |
topology.updates.automatic | boolean | हाँ | — |
topology.updates.heartbeatAt | string (date-time) | हाँ | — |
topology.downloads | object | हाँ | — |
topology.downloads.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
topology.downloads.sessions | integer | हाँ | कम से कम 0 |
topology.downloads.active | integer | हाँ | कम से कम 0 |
topology.downloads.waiting | integer | हाँ | कम से कम 0 |
topology.downloads.oldestWaitSeconds | integer | हाँ | कम से कम 0 |
topology.downloads.bytesPerSecond | integer | हाँ | कम से कम 0 |
प्रतिक्रियाएँ: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
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>"}'साइट का प्रमाणपत्र पढ़ें
POST /api/v1/fleet/sites/probe
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
पते से जुड़कर साइट का प्रमाणपत्र पढ़ता है, कुछ भी भेजे बिना: युग्मन से पहले उसका fingerprint साइट के व्यवस्थापक को दिखने वाले से मिलाएँ।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
url | string | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
url | string | हाँ | — |
certificate | object | हाँ | null हो सकता है |
certificate.fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$ |
certificate.subject | string | हाँ | — |
certificate.issuer | string | हाँ | — |
certificate.validTo | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/probe" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"<url>"}'साइट भूल जाएँ
DELETE /api/v1/fleet/sites/{id}
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
यहाँ साइट और उसकी सील की हुई कुंजी हटाता है। साइट पर भी इस नियंत्रक को रद्द करें; तब तक कुंजी वहाँ मान्य रहती है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X DELETE "$ARKVORY_URL/api/v1/fleet/sites/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"साइट का कैटलॉग पढ़ें
GET HEAD /api/v1/fleet/sites/{id}/read
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
एक कैटलॉग पठन को प्रबंधित साइट तक पहुँचाता है और उसका उत्तर बिना बदले लौटाता है: रिपॉजिटरी, खोज, आर्टिफ़ैक्ट, एनोटेशन, चरण, पैकेज, फ़ाइल पेज और इतिहास, संग्रहण उपयोग, मिरर स्थिति। path साइट का रूट और उसकी क्वेरी है। अन्य रूट और फ़ाइल बाइट 400 के साथ अस्वीकार होते हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
path | क्वेरी | string | हाँ | पैटर्न: ^/api/v1/; अधिकतम 2048 वर्ण; 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. |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/fleet/sites/$ID/read?path=$PATH" \
-H "Authorization: Bearer $ARKVORY_TOKEN"साइट की सेटिंग बदलें
POST /api/v1/fleet/sites/{id}/change
एक्सेस: व्यवस्थापक · पुनः प्रयास: अपने-आप न दोहराएँ
एक बदलाव को प्रबंधित साइट तक पहुँचाता है और उसका उत्तर बिना बदले लौटाता है। path इनमें से एक रूट है: /api/v1/system/downloads/settings (डाउनलोड कतार सेटिंग, PUT के रूप में भेजी जाती है) या /api/v1/system/updates/requests (अपडेट अनुरोध, POST के रूप में भेजा जाता है)। बॉडी साइट को जैसी है वैसी जाती है; साइट संशोधन या अनुरोध id जाँचती है, इसलिए दोहराया गया बदलाव दो बार लागू नहीं होता। अन्य पथ 400 के साथ अस्वीकार होते हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
path | क्वेरी | string | हाँ | पैटर्न: ^/api/v1/; अधिकतम 2048 वर्ण; A change route of the site, from a fixed list: PUT /api/v1/system/downloads/settings, POST /api/v1/system/updates/requests. |
अनुरोध बॉडी (application/json)
प्रतिक्रियाएँ: 200, 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/$ID/change?path=$PATH" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'साइट अभी पढ़ें
POST /api/v1/fleet/sites/{id}/refresh
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
अगले दौर की प्रतीक्षा किए बिना साइट अभी पढ़ता है और नई स्थिति के साथ लौटाता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | — |
url | string | हाँ | — |
fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$; null हो सकता है |
addedBy | string | हाँ | — |
addedAt | string (date-time) | हाँ | — |
seenAt | string (date-time) | हाँ | null हो सकता है |
state | string | हाँ | इनमें से एक: pending, ok, unreachable, certificate, revoked, invalid, refused |
error | string | हाँ | null हो सकता है |
topology | object | हाँ | null हो सकता है |
topology.collectedAt | string (date-time) | हाँ | — |
topology.site | object | हाँ | — |
topology.site.name | string | हाँ | — |
topology.site.version | string | हाँ | — |
topology.site.schema | integer | हाँ | कम से कम 0 |
topology.site.role | string | हाँ | इनमें से एक: api, reader |
topology.health | object | हाँ | — |
topology.health.available | boolean | हाँ | — |
topology.health.writable | boolean | हाँ | — |
topology.health.draining | boolean | हाँ | — |
topology.replication | object | हाँ | null हो सकता है |
topology.replication.copies | integer | हाँ | 0–16 |
topology.replication.required | integer | हाँ | 1–16 |
topology.replication.singleCopyUntil | string (date-time) | हाँ | null हो सकता है |
topology.replication.node | string | नहीं | अधिकतम 63 वर्ण |
topology.replication.profile | string | नहीं | इनमें से एक: ha-2, ha-3 |
topology.replication.peers | object का ऐरे | नहीं | अधिकतम 16 आइटम |
topology.gateways | object का ऐरे | हाँ | अधिकतम 16 आइटम |
topology.gateways[].slot | integer | हाँ | कम से कम 0 |
topology.gateways[].active | boolean | हाँ | — |
topology.gateways[].expiresAt | string (date-time) | हाँ | — |
topology.mirrors | object का ऐरे | हाँ | अधिकतम 64 आइटम |
topology.mirrors[].repository | string | हाँ | — |
topology.mirrors[].mode | string | हाँ | इनमें से एक: mirror, import |
topology.mirrors[].upstream | string | हाँ | — |
topology.mirrors[].sourceRepository | string | हाँ | — |
topology.mirrors[].phase | string | हाँ | — |
topology.mirrors[].errorCode | string | हाँ | null हो सकता है |
topology.mirrors[].checkedAt | string (date-time) | हाँ | null हो सकता है |
topology.mirrors[].syncedAt | string (date-time) | हाँ | null हो सकता है |
topology.mirrors[].lagChanges | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
topology.mirrors[].copiedArtifacts | integer | हाँ | कम से कम 0 |
topology.mirrors[].copiedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
topology.updates | object | हाँ | null हो सकता है |
topology.updates.currentVersion | string | हाँ | — |
topology.updates.latest | string | हाँ | null हो सकता है |
topology.updates.phase | string | हाँ | — |
topology.updates.error | string | हाँ | null हो सकता है |
topology.updates.automatic | boolean | हाँ | — |
topology.updates.heartbeatAt | string (date-time) | हाँ | — |
topology.downloads | object | हाँ | — |
topology.downloads.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
topology.downloads.sessions | integer | हाँ | कम से कम 0 |
topology.downloads.active | integer | हाँ | कम से कम 0 |
topology.downloads.waiting | integer | हाँ | कम से कम 0 |
topology.downloads.oldestWaitSeconds | integer | हाँ | कम से कम 0 |
topology.downloads.bytesPerSecond | integer | हाँ | कम से कम 0 |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/fleet/sites/$ID/refresh" \
-H "Authorization: Bearer $ARKVORY_TOKEN"युग्मन कोड बनाएँ
POST /api/v1/system/fleet/pairings
एक्सेस: व्यवस्थापक · पुनः प्रयास: अपने-आप न दोहराएँ
दस मिनट के लिए वैध एक बार का कोड बनाता है, जिसे नियंत्रक का व्यवस्थापक इस साइट को प्रबंधित करने के लिए डालता है। कोड एक बार दिखता है और केवल हैश के रूप में रखा जाता है। केवल साइट का ग्लोबल व्यवस्थापक इसे बना सकता है।
प्रतिक्रिया 201
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
code | string | हाँ | पैटर्न: ^[0-9A-Z]{4}-[0-9A-Z]{4}-[0-9A-Z]{4}$ |
expiresAt | string (date-time) | हाँ | — |
fingerprint | string | हाँ | पैटर्न: ^[0-9a-f]{64}$; null हो सकता है |
प्रतिक्रियाएँ: 201, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/system/fleet/pairings" \
-H "Authorization: Bearer $ARKVORY_TOKEN"इस साइट के नियंत्रकों की सूची
GET HEAD /api/v1/system/fleet/controllers
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
उन नियंत्रकों की सूची देता है जो इस साइट को प्रबंधित कर सकते हैं: नाम, किसने युग्मित किया, कब, और उनकी कुंजी अंतिम बार कब उपयोग हुई।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | — |
items[].pairedBy | string | हाँ | — |
items[].pairedAt | string (date-time) | हाँ | — |
items[].usedAt | string (date-time) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/system/fleet/controllers" \
-H "Authorization: Bearer $ARKVORY_TOKEN"नियंत्रक रद्द करें
DELETE /api/v1/system/fleet/controllers/{id}
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
नियंत्रक को रद्द करता है: उसकी फ़्लीट कुंजी तुरंत अस्वीकार होती है। साइट को फिर से प्रबंधित करने के लिए नए कोड से युग्मन करना होगा।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X DELETE "$ARKVORY_URL/api/v1/system/fleet/controllers/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"नियंत्रक से युग्मित करें
POST /api/v1/system/fleet/enrollment
एक्सेस: कोई भी, बिना कुंजी के · पुनः प्रयास: अपने-आप न दोहराएँ
एक वैध युग्मन कोड को एक बार फ़्लीट कुंजी से बदलता है। नियंत्रक इसे व्यवस्थापक द्वारा पुष्टि किए गए फ़िंगरप्रिंट पर पिन किए TLS से बुलाता है। कुंजी एक बार लौटाई जाती है और केवल नियंत्रक के लिए ज़रूरी रूट तक पहुँचती है।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
code | string | हाँ | अधिकतम 32 वर्ण |
name | string | हाँ | 1–63 वर्ण |
प्रतिक्रिया 201
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
key | string | हाँ | पैटर्न: ^afk_[A-Za-z0-9_-]{43}$ |
site | object | हाँ | — |
site.name | string | हाँ | — |
site.version | string | हाँ | — |
प्रतिक्रियाएँ: 201, 400, 403, 405, 413, 415, 503
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/system/fleet/enrollment" \
-H "Content-Type: application/json" \
-d '{"code":"<code>","name":"<name>"}'फ़्लीट कंसोल के लिए यह साइट पाएँ
GET HEAD /api/v1/system/topology
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
इस इंस्टॉलेशन को फ़्लीट की एक साइट के रूप में लौटाता है (ADR 0077): नाम, संस्करण, स्कीमा और भूमिका, उपलब्ध और लिखने योग्य है या नहीं, HA प्रतियाँ और नोड, लीज़ के आधार पर रीड गेटवे, हर मिरर और इम्पोर्ट उसके चरण, अंतिम सिंक और lagChanges (स्रोत के अभी लागू न हुए बदलाव) के साथ, अपडेट एजेंट की स्थिति और डाउनलोड कतार। केवल साइट का ग्लोबल व्यवस्थापक या उससे युग्मित नियंत्रक इसे पढ़ सकता है।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
collectedAt | string (date-time) | हाँ | — |
site | object | हाँ | — |
site.name | string | हाँ | — |
site.version | string | हाँ | — |
site.schema | integer | हाँ | कम से कम 0 |
site.role | string | हाँ | इनमें से एक: api, reader |
health | object | हाँ | — |
health.available | boolean | हाँ | — |
health.writable | boolean | हाँ | — |
health.draining | boolean | हाँ | — |
replication | object | हाँ | null हो सकता है |
replication.copies | integer | हाँ | 0–16 |
replication.required | integer | हाँ | 1–16 |
replication.singleCopyUntil | string (date-time) | हाँ | null हो सकता है |
replication.node | string | नहीं | अधिकतम 63 वर्ण |
replication.profile | string | नहीं | इनमें से एक: ha-2, ha-3 |
replication.peers | object का ऐरे | नहीं | अधिकतम 16 आइटम |
replication.peers[].name | string | हाँ | अधिकतम 63 वर्ण |
replication.peers[].connected | boolean | हाँ | — |
replication.peers[].disk | string | हाँ | अधिकतम 24 वर्ण |
replication.peers[].complete | boolean | हाँ | — |
replication.peers[].witness | boolean | हाँ | — |
gateways | object का ऐरे | हाँ | अधिकतम 16 आइटम |
gateways[].slot | integer | हाँ | कम से कम 0 |
gateways[].active | boolean | हाँ | — |
gateways[].expiresAt | string (date-time) | हाँ | — |
mirrors | object का ऐरे | हाँ | अधिकतम 64 आइटम |
mirrors[].repository | string | हाँ | — |
mirrors[].mode | string | हाँ | इनमें से एक: mirror, import |
mirrors[].upstream | string | हाँ | — |
mirrors[].sourceRepository | string | हाँ | — |
mirrors[].phase | string | हाँ | — |
mirrors[].errorCode | string | हाँ | null हो सकता है |
mirrors[].checkedAt | string (date-time) | हाँ | null हो सकता है |
mirrors[].syncedAt | string (date-time) | हाँ | null हो सकता है |
mirrors[].lagChanges | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
mirrors[].copiedArtifacts | integer | हाँ | कम से कम 0 |
mirrors[].copiedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
updates | object | हाँ | null हो सकता है |
updates.currentVersion | string | हाँ | — |
updates.latest | string | हाँ | null हो सकता है |
updates.phase | string | हाँ | — |
updates.error | string | हाँ | null हो सकता है |
updates.automatic | boolean | हाँ | — |
updates.heartbeatAt | string (date-time) | हाँ | — |
downloads | object | हाँ | — |
downloads.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
downloads.sessions | integer | हाँ | कम से कम 0 |
downloads.active | integer | हाँ | कम से कम 0 |
downloads.waiting | integer | हाँ | कम से कम 0 |
downloads.oldestWaitSeconds | integer | हाँ | कम से कम 0 |
downloads.bytesPerSecond | integer | हाँ | कम से कम 0 |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/system/topology" \
-H "Authorization: Bearer $ARKVORY_TOKEN"डाउनलोड कतार सेटिंग पढ़ें
GET HEAD /api/v1/system/downloads/settings
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
बदले गए मान (overrides), सर्वर के एनवायरनमेंट के मान (defaults) और कतार अभी जो उपयोग कर रही है (effective) लौटाता है, साथ में बदलाव के समय वापस भेजने वाला संशोधन। problem बताता है कि सहेजी गई सेटिंग इस सर्वर पर क्यों नहीं चलतीं; तब कतार डिफ़ॉल्ट मानों पर चलती है।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–9007199254740991 |
overrides | object | हाँ | — |
overrides.strategy | string | नहीं | इनमें से एक: ordered, smallest-first, shared |
overrides.sessions | integer | नहीं | 1–1024 |
overrides.reserve | integer | नहीं | 0–1023 |
overrides.perPrincipal | integer | नहीं | 1–1024 |
overrides.weights | object | नहीं | — |
overrides.weights.interactive | integer | हाँ | 1–1000 |
overrides.weights.release | integer | हाँ | 1–1000 |
overrides.weights.bulk | integer | हाँ | 1–1000 |
overrides.weights.background | integer | हाँ | 1–1000 |
overrides.sessionMinBytes | integer | नहीं | 0–9007199254740991 |
overrides.idleSeconds | integer | नहीं | 1–3600 |
overrides.agingMinutes | integer | नहीं | 0–10080 |
overrides.preempt | boolean | नहीं | — |
overrides.rangesPerSession | integer | नहीं | 1–64 |
defaults | object | हाँ | — |
defaults.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
defaults.sessions | integer | हाँ | 1–1024 |
defaults.reserve | integer | हाँ | 0–1023 |
defaults.perPrincipal | integer | हाँ | 1–1024 |
defaults.weights | object | हाँ | — |
defaults.weights.interactive | integer | हाँ | 1–1000 |
defaults.weights.release | integer | हाँ | 1–1000 |
defaults.weights.bulk | integer | हाँ | 1–1000 |
defaults.weights.background | integer | हाँ | 1–1000 |
defaults.sessionMinBytes | integer | हाँ | 0–9007199254740991 |
defaults.idleSeconds | integer | हाँ | 1–3600 |
defaults.agingMinutes | integer | हाँ | 0–10080 |
defaults.preempt | boolean | हाँ | — |
defaults.rangesPerSession | integer | हाँ | 1–64 |
effective | object | हाँ | — |
effective.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
effective.sessions | integer | हाँ | 1–1024 |
effective.reserve | integer | हाँ | 0–1023 |
effective.perPrincipal | integer | हाँ | 1–1024 |
effective.weights | object | हाँ | — |
effective.weights.interactive | integer | हाँ | 1–1000 |
effective.weights.release | integer | हाँ | 1–1000 |
effective.weights.bulk | integer | हाँ | 1–1000 |
effective.weights.background | integer | हाँ | 1–1000 |
effective.sessionMinBytes | integer | हाँ | 0–9007199254740991 |
effective.idleSeconds | integer | हाँ | 1–3600 |
effective.agingMinutes | integer | हाँ | 0–10080 |
effective.preempt | boolean | हाँ | — |
effective.rangesPerSession | integer | हाँ | 1–64 |
admission | string | हाँ | इनमें से एक: sessions, per-request |
updatedAt | string (date-time) | हाँ | null हो सकता है |
updatedBy | string | हाँ | null हो सकता है |
actor | string | हाँ | null हो सकता है |
problem | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/system/downloads/settings" \
-H "Authorization: Bearer $ARKVORY_TOKEN"डाउनलोड कतार सेटिंग बदलें
PUT /api/v1/system/downloads/settings
एक्सेस: व्यवस्थापक · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
overrides को सर्वर के एनवायरनमेंट के ऊपर सहेजता है और बिना रीस्टार्ट लागू करता है: नए निर्णय तुरंत इनका पालन करते हैं, सक्रिय डाउनलोड अपनी जगह रखते हैं। दिए गए मान पहले के सभी बदलावों को बदल देते हैं; {} एनवायरनमेंट पर लौटाता है। जो सेटिंग यहाँ नहीं चल सकतीं वे फ़ील्ड के नाम के साथ 400 से अस्वीकार होती हैं; पुराना expectedRevision 409 पाता है। रीड गेटवे अपना एनवायरनमेंट रखते हैं।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–9007199254740991 |
overrides | object | हाँ | — |
overrides.strategy | string | नहीं | इनमें से एक: ordered, smallest-first, shared |
overrides.sessions | integer | नहीं | 1–1024 |
overrides.reserve | integer | नहीं | 0–1023 |
overrides.perPrincipal | integer | नहीं | 1–1024 |
overrides.weights | object | नहीं | — |
overrides.weights.interactive | integer | हाँ | 1–1000 |
overrides.weights.release | integer | हाँ | 1–1000 |
overrides.weights.bulk | integer | हाँ | 1–1000 |
overrides.weights.background | integer | हाँ | 1–1000 |
overrides.sessionMinBytes | integer | नहीं | 0–9007199254740991 |
overrides.idleSeconds | integer | नहीं | 1–3600 |
overrides.agingMinutes | integer | नहीं | 0–10080 |
overrides.preempt | boolean | नहीं | — |
overrides.rangesPerSession | integer | नहीं | 1–64 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–9007199254740991 |
overrides | object | हाँ | — |
overrides.strategy | string | नहीं | इनमें से एक: ordered, smallest-first, shared |
overrides.sessions | integer | नहीं | 1–1024 |
overrides.reserve | integer | नहीं | 0–1023 |
overrides.perPrincipal | integer | नहीं | 1–1024 |
overrides.weights | object | नहीं | — |
overrides.weights.interactive | integer | हाँ | 1–1000 |
overrides.weights.release | integer | हाँ | 1–1000 |
overrides.weights.bulk | integer | हाँ | 1–1000 |
overrides.weights.background | integer | हाँ | 1–1000 |
overrides.sessionMinBytes | integer | नहीं | 0–9007199254740991 |
overrides.idleSeconds | integer | नहीं | 1–3600 |
overrides.agingMinutes | integer | नहीं | 0–10080 |
overrides.preempt | boolean | नहीं | — |
overrides.rangesPerSession | integer | नहीं | 1–64 |
defaults | object | हाँ | — |
defaults.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
defaults.sessions | integer | हाँ | 1–1024 |
defaults.reserve | integer | हाँ | 0–1023 |
defaults.perPrincipal | integer | हाँ | 1–1024 |
defaults.weights | object | हाँ | — |
defaults.weights.interactive | integer | हाँ | 1–1000 |
defaults.weights.release | integer | हाँ | 1–1000 |
defaults.weights.bulk | integer | हाँ | 1–1000 |
defaults.weights.background | integer | हाँ | 1–1000 |
defaults.sessionMinBytes | integer | हाँ | 0–9007199254740991 |
defaults.idleSeconds | integer | हाँ | 1–3600 |
defaults.agingMinutes | integer | हाँ | 0–10080 |
defaults.preempt | boolean | हाँ | — |
defaults.rangesPerSession | integer | हाँ | 1–64 |
effective | object | हाँ | — |
effective.strategy | string | हाँ | इनमें से एक: ordered, smallest-first, shared |
effective.sessions | integer | हाँ | 1–1024 |
effective.reserve | integer | हाँ | 0–1023 |
effective.perPrincipal | integer | हाँ | 1–1024 |
effective.weights | object | हाँ | — |
effective.weights.interactive | integer | हाँ | 1–1000 |
effective.weights.release | integer | हाँ | 1–1000 |
effective.weights.bulk | integer | हाँ | 1–1000 |
effective.weights.background | integer | हाँ | 1–1000 |
effective.sessionMinBytes | integer | हाँ | 0–9007199254740991 |
effective.idleSeconds | integer | हाँ | 1–3600 |
effective.agingMinutes | integer | हाँ | 0–10080 |
effective.preempt | boolean | हाँ | — |
effective.rangesPerSession | integer | हाँ | 1–64 |
admission | string | हाँ | इनमें से एक: sessions, per-request |
updatedAt | string (date-time) | हाँ | null हो सकता है |
updatedBy | string | हाँ | null हो सकता है |
actor | string | हाँ | null हो सकता है |
problem | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/system/downloads/settings" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"overrides":{}}'साइट के बदलाव पढ़ें
GET HEAD /api/v1/system/changes
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
लौटाता है कि साइट का एजेंट रिपोर्ट कर रहा है या नहीं (agent), लंबित अनुरोध और 20 सबसे नए अनुरोध उनकी स्थिति के साथ: pending, applying, done या कारण सहित failed। स्रोत कुंजियाँ यहाँ कभी नहीं दिखतीं।
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
agent | boolean | हाँ | — |
updating | boolean | हाँ | — |
blocked | string | हाँ | इनमें से एक: expired, interrupted, key_missing, not_a_mirror, already_attached, mirror_failed, switchover_failed, single_copy_failed, unreadable, digest_mismatch, null; null हो सकता है |
pending | object | हाँ | null हो सकता है |
pending.id | string (uuid) | हाँ | — |
pending.kind | string | हाँ | इनमें से एक: mirror-attach, mirror-key, mirror-detach, cluster-switchover, single-copy |
pending.actor | string | हाँ | अधिकतम 200 वर्ण |
pending.requestedAt | string (date-time) | हाँ | — |
recent | object का ऐरे | हाँ | अधिकतम 20 आइटम |
recent[].id | string (uuid) | हाँ | — |
recent[].digest | string | हाँ | पैटर्न: ^[0-9a-f]{64}$ |
recent[].kind | string | हाँ | इनमें से एक: mirror-attach, mirror-key, mirror-detach, cluster-switchover, single-copy |
recent[].state | string | हाँ | इनमें से एक: pending, applying, done, failed |
recent[].error | string | हाँ | इनमें से एक: expired, interrupted, key_missing, not_a_mirror, already_attached, mirror_failed, switchover_failed, single_copy_failed, unreadable, digest_mismatch, null; null हो सकता है |
recent[].actor | string | हाँ | अधिकतम 200 वर्ण |
recent[].requestedAt | string (date-time) | हाँ | — |
recent[].finishedAt | string (date-time) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/system/changes" \
-H "Authorization: Bearer $ARKVORY_TOKEN"साइट का बदलाव कतार में डालें
POST /api/v1/system/changes
एक्सेस: व्यवस्थापक · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
साइट के एजेंट के लिए एक बदलाव कतार में डालता है, जो उसे एक मिनट के भीतर arkvory configure और cluster-* की जाँच और रोलबैक के साथ लागू करता है: मिरर या इम्पोर्ट जोड़ना, उसकी स्रोत कुंजी बदलना, मिरर हटाना, सक्रिय HA नोड बदलना (नोड का नाम दो बार लिखा जाता है) या एक प्रति से लेखन का निर्णय। id क्लाइंट चुनता है; उसे दोहराने से बदलाव फिर से कतार में नहीं जाता। key केवल mirror-attach और mirror-key की स्रोत कुंजी है: यह एजेंट तक अपनी 0600 फ़ाइल में जाती है और कभी लौटाई नहीं जाती। 202 का अर्थ कतार में है, लागू नहीं।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
change | object | हाँ | — |
change.kind | string | हाँ | इनमें से एक: mirror-attach |
change.repository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
change.upstream | string | हाँ | अधिकतम 255 वर्ण |
change.sourceRepository | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
change.stages | string का ऐरे | नहीं | 1–16 आइटम; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_.-]{0,31}$; null हो सकता है |
change.repositories | string का ऐरे | हाँ | 1–64 आइटम; हर आइटम: पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
change.node | string | हाँ | पैटर्न: ^[A-Za-z0-9][A-Za-z0-9_.-]{0,62}$ |
change.confirm | string | हाँ | पैटर्न: ^[A-Za-z0-9][A-Za-z0-9_.-]{0,62}$ |
change.until | string (date-time) | हाँ | null हो सकता है |
change.reason | string | हाँ | 1–200 वर्ण |
key | string | नहीं | 16–4000 वर्ण |
प्रतिक्रिया 202
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
प्रतिक्रियाएँ: 202, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
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>"}}'रिपॉज़िटरी की परिवर्तन फ़ीड का अनुसरण करें
GET HEAD /api/v1/repositories/{repository}/changes
एक्सेस: रिपॉज़िटरी अनुमति: artifact.list; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
क्रम संख्या after (डिफ़ॉल्ट 0) के बाद कमिट के क्रम में अधिकतम limit परिवर्तन (1–100, डिफ़ॉल्ट 100) लौटाता है: क्रिया, आर्टिफ़ैक्ट और, फ़ाइल पथ व स्टेज के लिए, detail में पथ या स्टेज; कर्ता छोड़ दिए जाते हैं, इसलिए सूची देखने की पहुँच पर्याप्त है। head रिपॉज़िटरी का नवीनतम क्रम है, next अगले पृष्ठ का कर्सर है या null जब पृष्ठ नवीनतम क्रम तक पहुँच गया हो। मिरर अंतिम लागू किया गया क्रम सहेजता है और वहीं से पोल करता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
after | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; Sequence cursor, default 0 |
limit | क्वेरी | integer | नहीं | 1–100 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | — |
items[].sequence | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].action | string | हाँ | — |
items[].artifactId | string (uuid) | हाँ | — |
items[].detail | string | हाँ | null हो सकता है |
head | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
next | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/changes" \
-H "Authorization: Bearer $ARKVORY_TOKEN"डाउनलोड लिंक बनाएँ
POST /api/v1/repositories/{repository}/artifacts/{id}/links
एक्सेस: रिपॉज़िटरी अनुमति: content.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: अपने-आप न दोहराएँ
कुंजी के बिना केवल इसी एक आर्टिफ़ैक्ट के downloadArtifact के लिए एक गुप्त token, API ऑरिजिन के सापेक्ष url और expiresAt लौटाता है; ttlSeconds जीवनकाल तय करता है (60 सेकंड से एक दिन तक, डिफ़ॉल्ट एक घंटा)। टोकन केवल इसी उत्तर में दिखाया जाता है और निरस्त नहीं किया जा सकता: वह समाप्त होने या आर्टिफ़ैक्ट हटाए जाने पर काम करना बंद कर देता है, और उसके द्वारा किए गए डाउनलोड निर्माता की ट्रांसफ़र सीमाओं में गिने जाते हैं। कॉलर के पास 1000 सक्रिय लिंक हो सकते हैं (507 token_limit), और डाउनलोड लिंक से आगे के लिंक नहीं बनाए जा सकते।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
ttlSeconds | integer | नहीं | 60–86400; डिफ़ॉल्ट 3600 |
प्रतिक्रिया 201
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
token | string | हाँ | पैटर्न: ^dtl_[A-Za-z0-9_-]{43}$ |
url | string | हाँ | — |
expiresAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/links" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'