सेवा खाते और कुंजियाँ
CI और ऑटोमेशन के लिए सेवा खाते, उनकी कुंजियाँ, नीतियाँ, प्रत्यायोजन और ऑडिट।
इस समूह के ऑपरेशन, उनके एक्सेस नियम, पुनः प्रयास नियम, पैरामीटर और जवाबों के साथ। हर अनुरोध में एक कुंजी होती है: Authorization: Bearer <कुंजी> (“प्रमाणीकरण” देखें)।
ऑपरेशन
सेवा खाते सूचीबद्ध करें
GET HEAD /api/v1/service-accounts
एक्सेस: सेवा प्रशासन अनुमति service-account.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
कॉलर जो सेवा खाते देख सकता है उन्हें ID के क्रम में, प्रति पृष्ठ 50, सूचीबद्ध करता है; प्रत्येक के साथ नाम, सक्षम फ़्लैग, revision, नीति bindings और निर्माण समय है; after में next देकर आगे बढ़ें। बूटस्ट्रैप कुंजी सभी देखती है, डेलिगेट केवल वे लक्ष्य जहाँ उसके प्रत्यायोजन में service-account.read शामिल है; वह न हो तो सूची अस्वीकार किए जाने के बजाय खाली रहती है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
after | क्वेरी | string (uuid) | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 50 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
items[].enabled | boolean | हाँ | — |
items[].revision | integer | हाँ | 1–2147483647 |
items[].bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
items[].bindings[].resource | object | हाँ | — |
items[].bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
items[].createdAt | string (date-time) | हाँ | — |
next | string (uuid) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/service-accounts" \
-H "Authorization: Bearer $ARKVORY_TOKEN"सेवा खाता बनाएँ
POST /api/v1/service-accounts
एक्सेस: बूटस्ट्रैप कुंजी (इंस्टॉलेशन की पुनर्प्राप्ति कुंजी) · पुनः प्रयास: अपने-आप न दोहराएँ
CI या किसी एप्लिकेशन के लिए name (3–64 अक्षर, अंक या _.-) और उसकी नीति bindings के साथ मशीन पहचान बनाता है: प्रत्येक रिपॉज़िटरी के लिए वे सटीक क्रियाएँ जो उसकी कुंजियाँ उपयोग कर सकती हैं (जैसे upload.create या content.read)। खाते के साथ 201 लौटाता है; फिर issueServiceKey से कुंजी जारी करें। लिया जा चुका नाम 409 already_exists है।
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रिया 201
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/service-accounts" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","bindings":[]}'सेवा खाता प्राप्त करें
GET HEAD /api/v1/service-accounts/{id}
एक्सेस: सेवा प्रशासन अनुमति service-account.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
खाते का नाम, सक्षम फ़्लैग, revision, नीति बाइंडिंग और निर्माण समय लौटाता है। डेलिगेट के लिए, जो खाता उसे सौंपा नहीं गया उस पर 404 मिलता है और सौंपे गए खाते पर किसी क्रिया की कमी होने पर 403।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"सेवा खाता सक्षम या अक्षम करें
PATCH /api/v1/service-accounts/{id}
एक्सेस: सेवा प्रशासन अनुमति service-account.manage · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
enabled सेट करता है; expectedRevision वर्तमान संशोधन होना चाहिए, अन्यथा 409 revision_mismatch। यहाँ केवल यही फ़्लैग बदलता है (नाम नहीं बदला जा सकता)। अक्षम करने से खाते की हर कुंजी अगले अनुरोध से अवरुद्ध हो जाती है; सक्षम करने से वे कुंजियाँ बहाल होती हैं जो न समाप्त हुई हैं और न निरस्त। डेलिगेट यह तभी कर सकता है जब पूरी वर्तमान नीति उसकी ऊपरी सीमा के भीतर हो।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 1–2147483646 |
enabled | boolean | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PATCH "$ARKVORY_URL/api/v1/service-accounts/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":1,"enabled":false}'सेवा खाते की नीति प्राप्त करें
GET HEAD /api/v1/service-accounts/{id}/policy
एक्सेस: सेवा प्रशासन अनुमति policy.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
policy.read रखने वाले कॉलर के लिए, getServiceAccount की तरह, खाते को उसकी नीति bindings और revision के साथ लौटाता है। कुंजी की प्रभावी अनुमतियाँ इस नीति और कुंजी की अपनी बाइंडिंग का प्रतिच्छेदन हैं, प्रति रिपॉज़िटरी और क्रिया।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
-H "Authorization: Bearer $ARKVORY_TOKEN"सेवा खाते की नीति प्रतिस्थापित करें
PUT /api/v1/service-accounts/{id}/policy
एक्सेस: सेवा प्रशासन अनुमति policy.manage · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
खाते की bindings प्रतिस्थापित करता है (अधिकतम 64, प्रत्येक एक रिपॉज़िटरी और उसकी सटीक क्रियाएँ); expectedRevision वर्तमान संशोधन होना चाहिए, अन्यथा 409 revision_mismatch। हर कुंजी अपने अगले अनुरोध से परिवर्तन का पालन करती है: संकुचन तुरंत प्रभावी होता है, विस्तार कभी कुंजी की अपनी बाइंडिंग से आगे नहीं जाता। डेलिगेट को वर्तमान और नई, दोनों नीतियाँ अपनी ऊपरी सीमा के भीतर चाहिए।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 1–2147483646 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/service-accounts/$ID/policy" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":1,"bindings":[]}'सेवा खाते की कुंजियाँ सूचीबद्ध करें
GET HEAD /api/v1/service-accounts/{id}/keys
एक्सेस: सेवा प्रशासन अनुमति credential.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
खाते की कुंजियों का मेटाडेटा ID के क्रम में, प्रति पृष्ठ 50, सूचीबद्ध करता है: नाम, state (pending, active, revoked), बाइंडिंग, निर्माण, समाप्ति, सक्रियण की समय-सीमा और वह कुंजी जिससे इसे रोटेट किया गया; गोपनीय मान या हैश कभी नहीं। after में next देकर आगे बढ़ें। समाप्ति से state नहीं बदलती, इसलिए expiresAt की तुलना वर्तमान समय से करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
after | क्वेरी | string (uuid) | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 50 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].accountId | string (uuid) | हाँ | — |
items[].name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
items[].state | string | हाँ | इनमें से एक: pending, active, revoked |
items[].bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
items[].bindings[].resource | object | हाँ | — |
items[].bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
items[].createdAt | string (date-time) | हाँ | — |
items[].expiresAt | string (date-time) | हाँ | — |
items[].activationExpiresAt | string (date-time) | हाँ | — |
items[].rotatedFrom | string (uuid) | हाँ | null हो सकता है |
next | string (uuid) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
-H "Authorization: Bearer $ARKVORY_TOKEN"सेवा खाते के लिए कुंजी जारी करें
POST /api/v1/service-accounts/{id}/keys
एक्सेस: सेवा प्रशासन अनुमति credential.manage · पुनः प्रयास: उसी Idempotency-Key के साथ दोहराना सुरक्षित है
name, bindings (केवल वहीं प्रभावी जहाँ खाते की नीति भी उन्हें अनुमति देती है) और वैकल्पिक expiresAt (UTC; डिफ़ॉल्ट 90 दिन, अधिकतम 365, और डेलिगेट के लिए कभी उसकी अपनी कुंजी से आगे नहीं) के साथ लंबित कुंजी जारी करता है। पहला उत्तर key और secret के साथ 201 है, जो केवल इसी एक बार दिखाया जाता है; उसी Idempotency-Key और बॉडी के साथ दोहराने पर केवल मेटाडेटा के साथ 200 मिलता है, भिन्न बॉडी पर 409। धारक को गोपनीय मान के साथ 15 मिनट के भीतर activateServiceKey कॉल करना होगा; गोपनीय मान खो जाए तो कुंजी निरस्त करें और नई Idempotency-Key के साथ नई जारी करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
Idempotency-Key | हेडर | string | हाँ | अधिकतम 128 वर्ण |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
expiresAt | string (date-time) | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
key | object | हाँ | — |
key.id | string (uuid) | हाँ | — |
key.accountId | string (uuid) | हाँ | — |
key.name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
key.state | string | हाँ | इनमें से एक: pending, active, revoked |
key.bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
key.bindings[].resource | object | हाँ | — |
key.bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
key.createdAt | string (date-time) | हाँ | — |
key.expiresAt | string (date-time) | हाँ | — |
key.activationExpiresAt | string (date-time) | हाँ | — |
key.rotatedFrom | string (uuid) | हाँ | null हो सकता है |
secret | string | नहीं | — |
प्रतिक्रियाएँ: 200, 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/service-accounts/$ID/keys" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","bindings":[]}'सेवा खाते का ऑडिट पढ़ें
GET HEAD /api/v1/service-accounts/{id}/audit
एक्सेस: सेवा प्रशासन अनुमति service-audit.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
क्रम संख्या after (डिफ़ॉल्ट 0) के बाद खाते की अधिकतम 100 घटनाएँ, सबसे पुरानी पहले, लौटाता है: खाते, नीति और कुंजी के परिवर्तन जैसे जारी करना, रोटेशन, सक्रियण और निरस्तीकरण, प्रत्येक के साथ कर्ता, क्रिया, कुंजी और समय। आगे पढ़ने के लिए अंतिम sequence after में दें; कोई next फ़ील्ड नहीं है। सर्वर की केवल नवीनतम 100 000 घटनाएँ रखी जाती हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
after | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].sequence | string | हाँ | — |
items[].actor | string | हाँ | — |
items[].action | string | हाँ | — |
items[].accountId | string (uuid) | हाँ | — |
items[].keyId | string (uuid) | हाँ | null हो सकता है |
items[].occurredAt | string (date-time) | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/service-accounts/$ID/audit" \
-H "Authorization: Bearer $ARKVORY_TOKEN"कुंजी प्राप्त करें
GET HEAD /api/v1/api-keys/{id}
एक्सेस: सेवा प्रशासन अनुमति credential.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
एक प्रबंधित कुंजी का मेटाडेटा लौटाता है: उसका खाता, नाम, स्थिति, बाइंडिंग, निर्माण, समाप्ति, सक्रियण की समय-सीमा और वह कुंजी जिससे इसे रोटेट किया गया; गोपनीय मान या उसका हैश कभी नहीं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
accountId | string (uuid) | हाँ | — |
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
state | string | हाँ | इनमें से एक: pending, active, revoked |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
createdAt | string (date-time) | हाँ | — |
expiresAt | string (date-time) | हाँ | — |
activationExpiresAt | string (date-time) | हाँ | — |
rotatedFrom | string (uuid) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/api-keys/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"कुंजी रोटेट करें
POST /api/v1/api-keys/{id}/rotate
एक्सेस: सेवा प्रशासन अनुमति credential.manage · पुनः प्रयास: उसी Idempotency-Key के साथ दोहराना सुरक्षित है
कुंजी id का उसी खाते के लिए लंबित उत्तराधिकारी जारी करता है, उन्हीं या संकरी bindings के साथ, और issueServiceKey की तरह उत्तर देता है: एक बार दिखने वाले secret के साथ 201, उसी Idempotency-Key के साथ दोहराने पर केवल मेटाडेटा के साथ 200। उत्तराधिकारी के सक्रिय होने के बाद पुरानी कुंजी अधिकतम 24 घंटे और वैध रहती है; नई कुंजी के काम करने पर उसे स्पष्ट रूप से निरस्त करें, पर तभी जब उसके शुरू किए जॉब समाप्त हो चुके हों। ऑपरेटर कुंजी के प्रत्यायोजन उसके उत्तराधिकारी में कॉपी नहीं होते।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
Idempotency-Key | हेडर | string | हाँ | अधिकतम 128 वर्ण |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
bindings[].resource | object | हाँ | — |
bindings[].resource.kind | string | हाँ | इनमें से एक: repository |
bindings[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
expiresAt | string (date-time) | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
key | object | हाँ | — |
key.id | string (uuid) | हाँ | — |
key.accountId | string (uuid) | हाँ | — |
key.name | string | हाँ | पैटर्न: ^[a-zA-Z0-9_.-]{3,64}$ |
key.state | string | हाँ | इनमें से एक: pending, active, revoked |
key.bindings | object का ऐरे | हाँ | अधिकतम 64 आइटम |
key.bindings[].resource | object | हाँ | — |
key.bindings[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
key.createdAt | string (date-time) | हाँ | — |
key.expiresAt | string (date-time) | हाँ | — |
key.activationExpiresAt | string (date-time) | हाँ | — |
key.rotatedFrom | string (uuid) | हाँ | null हो सकता है |
secret | string | नहीं | — |
प्रतिक्रियाएँ: 200, 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/rotate" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","bindings":[]}'कुंजी निरस्त करें
POST /api/v1/api-keys/{id}/revoke
एक्सेस: सेवा प्रशासन अनुमति credential.manage · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
कुंजी को हमेशा के लिए निरस्त करता है: उसका अगला अनुरोध विफल होगा, जबकि पहले से चल रहा डाउनलोड नहीं कटता। दोहराने पर 204 के साथ सफल होता है। जो कुंजियाँ निरस्त ऑपरेटर कुंजी ने जारी की थीं और जो पहले ही सक्रिय हो चुकी हैं वे वैध रहती हैं; उन्हें अलग से निरस्त करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/api-keys/$ID/revoke" \
-H "Authorization: Bearer $ARKVORY_TOKEN"कुंजी सक्रिय करें
POST /api/v1/auth/activate-key
एक्सेस: जारी की गई कुंजी, सक्रियण से पहले या बाद में · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
प्रमाणित करता है कि धारक को नई जारी की गई कुंजी मिल गई है: उसे जारी होने के 15 मिनट के भीतर उसी कुंजी को Authorization: Bearer के रूप में देकर कॉल करें, और कुंजी सक्रिय हो जाती है (204)। दोहराना सुरक्षित है और समाप्ति को नहीं बढ़ाता। रोटेट की गई कुंजी को सक्रिय करने से जिस कुंजी को वह प्रतिस्थापित करती है उसका शेष जीवनकाल अधिकतम 24 घंटे तक घट जाता है।
प्रतिक्रियाएँ: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/auth/activate-key" \
-H "Authorization: Bearer $ARKVORY_TOKEN"कुंजी के प्रत्यायोजन सूचीबद्ध करें
GET HEAD /api/v1/api-keys/{id}/delegations
एक्सेस: बूटस्ट्रैप कुंजी, या स्वयं वही कुंजी · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
ऑपरेटर कुंजी id के प्रत्यायोजन लौटाता है, अक्षम किए गए सहित अधिकतम 64: प्रत्येक लक्ष्य खाते के लिए उसका revision, वह enabled है या नहीं, प्रशासनिक actions (जैसे credential.manage) और रिपॉज़िटरी बाइंडिंग की वह ceiling जो वह आगे दे सकती है। डेलिगेट यहाँ अपने ही प्रत्यायोजन पढ़ता है (उसकी कुंजी की ID getOwnPermissions में credentialId है); किसी अन्य कुंजी की सूची 403 है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 64 आइटम |
items[].keyId | string (uuid) | हाँ | — |
items[].targetAccountId | string (uuid) | हाँ | — |
items[].enabled | boolean | हाँ | — |
items[].revision | integer | हाँ | 1–2147483647 |
items[].actions | string का ऐरे | हाँ | अधिकतम 7 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read |
items[].ceiling | object का ऐरे | हाँ | अधिकतम 16 आइटम |
items[].ceiling[].resource | object | हाँ | — |
items[].ceiling[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/api-keys/$ID/delegations" \
-H "Authorization: Bearer $ARKVORY_TOKEN"सेवा खाते का प्रशासन प्रत्यायोजित करें
PUT /api/v1/api-keys/{id}/delegations/{accountId}
एक्सेस: बूटस्ट्रैप कुंजी (इंस्टॉलेशन की पुनर्प्राप्ति कुंजी) · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
कुंजी id को दी गई actions (service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read) के साथ सेवा खाते accountId का प्रशासन करने देता है, ceiling के भीतर, यानी अधिकतम 16 रिपॉज़िटरी बाइंडिंग जो वह आगे दे सकती है; manage का अर्थ read नहीं होता। expectedRevision बनाने के लिए 0 है और बदलने या फिर से सक्षम करने के लिए रिकॉर्ड का वर्तमान संशोधन, अन्यथा 409। कुंजी सक्रिय होनी चाहिए और बूटस्ट्रैप कुंजी से जारी की गई हो, और कोई खाता एक साथ प्रत्यायोजन रखने वाला और किसी प्रत्यायोजन का लक्ष्य नहीं हो सकता, इसलिए प्रत्यायोजन कभी शृंखला नहीं बनाता।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
accountId | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483646 |
actions | string का ऐरे | हाँ | 1–7 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read |
ceiling | object का ऐरे | हाँ | अधिकतम 16 आइटम |
ceiling[].resource | object | हाँ | — |
ceiling[].resource.kind | string | हाँ | इनमें से एक: repository |
ceiling[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
ceiling[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
keyId | string (uuid) | हाँ | — |
targetAccountId | string (uuid) | हाँ | — |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
actions | string का ऐरे | हाँ | अधिकतम 7 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read |
ceiling | object का ऐरे | हाँ | अधिकतम 16 आइटम |
ceiling[].resource | object | हाँ | — |
ceiling[].resource.kind | string | हाँ | इनमें से एक: repository |
ceiling[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
ceiling[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"actions":["service-account.read"],"ceiling":[]}'प्रत्यायोजन वापस लें
DELETE /api/v1/api-keys/{id}/delegations/{accountId}
एक्सेस: बूटस्ट्रैप कुंजी (इंस्टॉलेशन की पुनर्प्राप्ति कुंजी) · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
accountId पर कुंजी id का प्रत्यायोजन अक्षम करता है; JSON बॉडी में expectedRevision होता है, यानी रिकॉर्ड का वर्तमान संशोधन। रिकॉर्ड बिना क्रियाओं और ऊँचे संशोधन के साथ अक्षम प्रविष्टि के रूप में रहता है, जो 200 के साथ लौटाया जाता है; उत्तर खो जाने पर दोहराने के बजाय उसे listServiceDelegations से पढ़ें, क्योंकि पुराना संशोधन 409 है। जो कुंजियाँ डेलिगेट पहले ही जारी और सक्रिय कर चुका है वे काम करती रहती हैं: उन्हें निरस्त करें या खाते को अलग से अक्षम करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
id | पथ | string (uuid) | हाँ | — |
accountId | पथ | string (uuid) | हाँ | — |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 1–2147483646 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
keyId | string (uuid) | हाँ | — |
targetAccountId | string (uuid) | हाँ | — |
enabled | boolean | हाँ | — |
revision | integer | हाँ | 1–2147483647 |
actions | string का ऐरे | हाँ | अधिकतम 7 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: service-account.read, service-account.manage, policy.read, policy.manage, credential.read, credential.manage, service-audit.read |
ceiling | object का ऐरे | हाँ | अधिकतम 16 आइटम |
ceiling[].resource | object | हाँ | — |
ceiling[].resource.kind | string | हाँ | इनमें से एक: repository |
ceiling[].resource.id | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
ceiling[].actions | string का ऐरे | हाँ | 1–24 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: repository.read, storage.read, storage.manage, diagnostics.read, artifact.read, artifact.list, artifact.delete, artifact.promote, content.read, upload.create, upload.read, upload.write, upload.complete, upload.cancel, job.read, package.read, package.publish, asset.read, asset.write, asset.restore, annotation.read, annotation.write, reference.write, audit.read |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X DELETE "$ARKVORY_URL/api/v1/api-keys/$ID/delegations/$ACCOUNTID" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":1}'