الحسابات وتسجيل الدخول
تسجيل الدخول، والجلسات، ورموز الوصول الشخصية، والمستخدمون، والمجموعات، وتدقيق الأمان.
عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).
العمليات
تسجيل الدخول
POST /api/v1/auth/login
الوصول: أي شخص، دون مفتاح · إعادة المحاولة: لا تكرّره تلقائيًا
يبادل name وpassword لحساب برمز جلسة token من نوع Bearer صالح لمدة 12 ساعة، مع expiresAt والحساب؛ أرسله بالصيغة Authorization: Bearer. الاسم غير المعروف وكلمة المرور الخاطئة والحساب المعطّل تعطي كلها الردّ نفسه: 401 invalid_credentials. تُقيَّد وتيرة المحاولات لكل عنوان عميل ولكل حساب (429 rate_limited مع Retry-After)، ويحتفظ الحساب بما لا يزيد على 32 جلسة: وجلسة جديدة تنهي الأقدم.
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
name | string | نعم | — |
password | string (password) | نعم | — |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
token | string | نعم | — |
expiresAt | string (date-time) | نعم | — |
account | object | نعم | — |
account.id | string (uuid) | نعم | — |
account.name | string | نعم | — |
account.administrator | boolean | نعم | — |
account.enabled | boolean | نعم | — |
الاستجابات: 200, 400, 401, 403, 405, 413, 415, 429, 503
مثال
curl -X POST "$ARKVORY_URL/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","password":"<password>"}'تسجيل حساب
POST /api/v1/auth/register
الوصول: أي شخص، دون مفتاح · إعادة المحاولة: لا تكرّره تلقائيًا
ينشئ حسابًا عاديًا (وليس مسؤولًا أبدًا) بـ name (من 3 إلى 64 حرفًا من الأحرف والأرقام أو _.-) وpassword (من 12 إلى 128 حرفًا) ويسجّل دخوله، ويردّ بـ 201 مع جلسة مدتها 12 ساعة كما في login. يعمل فقط عندما يسمح الخادم بالتسجيل الذاتي (انظر getAuthOptions)، وإلا كان 403 registration_disabled؛ والاسم المأخوذ هو 409 already_exists. تُقيَّد وتيرة المحاولات لكل عنوان عميل (429 مع Retry-After)، ويتوقف التسجيل الذاتي عند 900 حساب.
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
name | string | نعم | — |
password | string (password) | نعم | — |
الاستجابة 201
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
token | string | نعم | — |
expiresAt | string (date-time) | نعم | — |
account | object | نعم | — |
account.id | string (uuid) | نعم | — |
account.name | string | نعم | — |
account.administrator | boolean | نعم | — |
account.enabled | boolean | نعم | — |
الاستجابات: 201, 400, 403, 405, 413, 415, 429, 503
مثال
curl -X POST "$ARKVORY_URL/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","password":"<password>"}'الحصول على خيارات تسجيل الدخول
GET HEAD /api/v1/auth/options
الوصول: أي شخص، دون مفتاح · إعادة المحاولة: آمن للتكرار (قراءة)
يخبر وحدة التحكم قبل تسجيل الدخول بالنماذج التي ينبغي عرضها: تكون selfRegistration صحيحة (true) عندما تكون registerAccount متاحة على هذا الخادم.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
selfRegistration | boolean | نعم | — |
الاستجابات: 200, 400, 403, 503
مثال
curl -X GET "$ARKVORY_URL/api/v1/auth/options"عرض قائمة رموز الوصول الشخصية الخاصة بك
GET HEAD /api/v1/auth/tokens
الوصول: جلسة حساب مسجّل الدخول (لا مفتاح) · إعادة المحاولة: آمن للتكرار (قراءة)
يسرد رموز الوصول الشخصية للحساب الذي سجّل دخوله، الفعّالة أولًا، مع الاسم والبادئة والنطاق وتاريخ الإنشاء والانتهاء وآخر استخدام وما إذا كان الرمز مُبطَلًا؛ ولا تُعرض الأسرار مرة أخرى أبدًا.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | نعم | عدد العناصر: 100 كحد أقصى |
items[].id | string (uuid) | نعم | — |
items[].name | string | نعم | — |
items[].prefix | string | نعم | — |
items[].scope | string | نعم | إحدى القيم: read, read-write |
items[].createdAt | string (date-time) | نعم | — |
items[].expiresAt | string (date-time) | لا | يمكن أن يكون null |
items[].lastUsedAt | string (date-time) | لا | يمكن أن يكون null |
items[].revoked | boolean | نعم | — |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/auth/tokens" \
-H "Authorization: Bearer $ARKVORY_TOKEN"إنشاء رمز وصول شخصي
POST /api/v1/auth/tokens
الوصول: جلسة حساب مسجّل الدخول (لا مفتاح) · إعادة المحاولة: لا تكرّره تلقائيًا
ينشئ رمزًا للنصوص البرمجية والأدوات يعمل بصفة الحساب الذي سجّل دخوله؛ ويظهر السر في هذه الإجابة فقط. لـ name من 1 إلى 64 حرفًا، وتكون expiresAt افتراضيًا بعد 90 يومًا ويجب أن تقع في المستقبل وخلال 365 يومًا، وscope هي read-write (الافتراضي) أو read الذي لا يستطيع تغيير أي شيء أبدًا. الرموز لا تحمل صلاحيات المسؤول أبدًا ولا تستطيع إنشاء رموز، وللحساب 50 رمزًا فعّالًا كحد أقصى (507 token_limit).
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
name | string | نعم | — |
expiresAt | string (date-time) | لا | — |
scope | string | لا | إحدى القيم: read, read-write |
الاستجابة 201
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
name | string | نعم | — |
prefix | string | نعم | — |
scope | string | نعم | إحدى القيم: read, read-write |
createdAt | string (date-time) | نعم | — |
expiresAt | string (date-time) | لا | يمكن أن يكون null |
lastUsedAt | string (date-time) | لا | يمكن أن يكون null |
revoked | boolean | نعم | — |
token | string | نعم | — |
الاستجابات: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/auth/tokens" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"<name>"}'إبطال رمز الوصول الشخصي الخاص بك
DELETE /api/v1/auth/tokens/{id}
الوصول: جلسة حساب مسجّل الدخول (لا مفتاح) · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يبطل رمز وصول شخصي واحدًا للحساب الذي سجّل دخوله؛ وتفشل الطلبات التي تحمله من الآن فصاعدًا. وإبطال رمز مُبطَل بالفعل ينجح هو الآخر.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X DELETE "$ARKVORY_URL/api/v1/auth/tokens/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"تسجيل الخروج
POST /api/v1/auth/logout
الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
ينهي جلسة الحساب المرسلة في Authorization؛ ويتوقف رمزها عن العمل فورًا. ومع أي بيانات اعتماد أخرى (رمز شخصي أو مفتاح خدمة) يردّ بـ 204 ولا يُبطل شيئًا.
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/auth/logout" \
-H "Authorization: Bearer $ARKVORY_TOKEN"تغيير كلمة مرورك
POST /api/v1/auth/password
الوصول: جلسة حساب مسجّل الدخول (لا مفتاح) · إعادة المحاولة: لا تكرّره تلقائيًا
يعيّن newPassword (من 12 إلى 128 حرفًا) بعد التحقق من currentPassword؛ وكلمة المرور الحالية الخاطئة هي 401 current_password_invalid وتُحتسب ضمن التأخير المتصاعد لتسجيل الدخول (backoff). وعند النجاح تُبطَل كل جلسات الحساب وكل رموز الوصول الشخصية الخاصة به، بما في ذلك الجلسة الحالية، لذا سجّل الدخول من جديد.
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
currentPassword | string (password) | نعم | — |
newPassword | string (password) | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 429, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/auth/password" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"currentPassword":"<currentPassword>","newPassword":"<newPassword>"}'الحصول على الهوية الحالية
GET HEAD /api/v1/auth/me
الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد صاحب بيانات الاعتماد: id الخاص به، وما إذا كان مسؤولًا، ونوع بيانات الاعتماد (session أو personal-token أو service-key أو file-key)، ونطاق الرمز الشخصي، والمستودعات التي يملك لها وصول read أو write. استخدمه لعرض المستخدم الذي سجّل دخوله ولاختيار مستودع؛ أما الأذونات الدقيقة لمفتاح خدمة مُدار فاستخدم لها getOwnPermissions.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string | نعم | — |
administrator | boolean | نعم | — |
credential | string | لا | إحدى القيم: session, personal-token, service-key, file-key |
tokenScope | string | لا | إحدى القيم: read, read-write |
grants | مصفوفة من object | نعم | — |
grants[].repository | string | نعم | — |
grants[].permissions | مصفوفة من string | نعم | كل عنصر: إحدى القيم: read, write |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/auth/me" \
-H "Authorization: Bearer $ARKVORY_TOKEN"عرض قائمة الحسابات
GET HEAD /api/v1/users
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار (قراءة)
يسرد كل حسابات المستخدمين مرتبةً حسب الاسم، مع المعرّف والاسم وعلامة المسؤول وما إذا كانت الحسابات مفعّلة. يحتفظ الخادم بما لا يزيد على 1000 حساب.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | لا | — |
items[].id | string (uuid) | نعم | — |
items[].name | string | نعم | — |
items[].administrator | boolean | نعم | — |
items[].enabled | boolean | نعم | — |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/users" \
-H "Authorization: Bearer $ARKVORY_TOKEN"إنشاء حساب
POST /api/v1/users
الوصول: مسؤول · إعادة المحاولة: لا تكرّره تلقائيًا
ينشئ حسابًا بـ name (من 3 إلى 64 حرفًا من الأحرف والأرقام أو _.-) وpassword (من 12 إلى 128 حرفًا) وadministrator (الافتراضي false)، ويردّ بـ 201 معه. الاسم المأخوذ هو 409 already_exists؛ ويحتفظ الخادم بما لا يزيد على 1000 حساب (507 account_limit).
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
name | string | نعم | — |
password | string (password) | نعم | — |
administrator | boolean | لا | — |
الاستجابة 201
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
name | string | نعم | — |
administrator | boolean | نعم | — |
enabled | boolean | نعم | — |
الاستجابات: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/users" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"<name>","password":"<password>"}'تفعيل حساب أو تعطيله أو إعادة تعيينه
PATCH /api/v1/users/{id}
الوصول: مسؤول · إعادة المحاولة: لا تكرّره تلقائيًا
يغيّر enabled و/أو يعيّن password جديدة لحساب؛ ولا يمكن تغيير علامة المسؤول هنا. يُنهي التعطيل كل جلسات الحساب وتتوقف رموز وصوله الشخصية عن العمل ما دام معطّلًا؛ وإعادة تعيين كلمة المرور تُنهي كل الجلسات وتُبطل كل رمز شخصي.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
enabled | boolean | لا | — |
password | string (password) | لا | — |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
name | string | نعم | — |
administrator | boolean | نعم | — |
enabled | boolean | نعم | — |
الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X PATCH "$ARKVORY_URL/api/v1/users/$ID" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'عرض قائمة رموز الوصول الشخصية لحساب
GET HEAD /api/v1/users/{id}/tokens
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار (قراءة)
يسرد رموز الوصول الشخصية لأي حساب، الفعّالة أولًا، مع الاسم والبادئة والنطاق والإنشاء والانتهاء وآخر استخدام والإبطال؛ ولا يعرض الأسرار أبدًا. استخدمه لمراجعة الأتمتة قبل تعطيل الحساب أو إعادة تعيينه.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | نعم | عدد العناصر: 100 كحد أقصى |
items[].id | string (uuid) | نعم | — |
items[].name | string | نعم | — |
items[].prefix | string | نعم | — |
items[].scope | string | نعم | إحدى القيم: read, read-write |
items[].createdAt | string (date-time) | نعم | — |
items[].expiresAt | string (date-time) | لا | يمكن أن يكون null |
items[].lastUsedAt | string (date-time) | لا | يمكن أن يكون null |
items[].revoked | boolean | نعم | — |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/users/$ID/tokens" \
-H "Authorization: Bearer $ARKVORY_TOKEN"إبطال رمز وصول شخصي لحساب
DELETE /api/v1/users/{id}/tokens/{tokenId}
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يبطل رمز وصول شخصي واحدًا للحساب id؛ وتفشل الطلبات التي تحمله من الآن فصاعدًا، ويُسجَّل الحدث في تدقيق الأمان. وإبطال رمز مُبطَل بالفعل ينجح هو الآخر.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
tokenId | المسار | string (uuid) | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X DELETE "$ARKVORY_URL/api/v1/users/$ID/tokens/$TOKENID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"عرض قائمة مجموعات الوصول
GET HEAD /api/v1/access-groups
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار (قراءة)
يسرد كل مجموعات الوصول مع معرّفات حسابات أعضائها ومنح المستودعات (read أو write). يحتفظ الخادم بما لا يزيد على 100 مجموعة، وبما لا يزيد على 10 000 عضوية و10 000 منحة.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | لا | — |
items[].id | string (uuid) | نعم | — |
items[].name | string | نعم | — |
items[].members | مصفوفة من string (uuid) | نعم | — |
items[].grants | مصفوفة من object | نعم | — |
items[].grants[].repository | string | نعم | — |
items[].grants[].access | string | نعم | إحدى القيم: read, write |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/access-groups" \
-H "Authorization: Bearer $ARKVORY_TOKEN"إنشاء مجموعة وصول
POST /api/v1/access-groups
الوصول: مسؤول · إعادة المحاولة: لا تكرّره تلقائيًا
ينشئ مجموعة فارغة بـ name (من 2 إلى 64 حرفًا من الأحرف والأرقام أو _.-) ويردّ بـ 201 معها؛ والاسم المأخوذ هو 409 already_exists. أضف الأعضاء بـ addGroupMember والمستودعات بـ setGroupGrant.
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
name | string | نعم | — |
الاستجابة 201
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string (uuid) | نعم | — |
name | string | نعم | — |
members | مصفوفة من string (uuid) | نعم | — |
grants | مصفوفة من object | نعم | — |
grants[].repository | string | نعم | — |
grants[].access | string | نعم | إحدى القيم: read, write |
الاستجابات: 201, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X POST "$ARKVORY_URL/api/v1/access-groups" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"<name>"}'إضافة حساب إلى مجموعة
PUT /api/v1/access-groups/{id}/members/{userId}
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يجعل الحساب userId عضوًا في المجموعة؛ ويكتسب وصول المجموعة إلى المستودعات مع طلبه التالي. وإضافة عضو موجود بالفعل لا تغيّر شيئًا؛ والحد 10 000 عضوية إجمالًا (507 membership_limit).
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
userId | المسار | string (uuid) | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X PUT "$ARKVORY_URL/api/v1/access-groups/$ID/members/$USERID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"إزالة حساب من مجموعة
DELETE /api/v1/access-groups/{id}/members/{userId}
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يزيل الحساب userId من المجموعة؛ ويزول الوصول الذي كان يملكه عبر المجموعة مع طلبه التالي. وإزالة حساب ليس عضوًا تنجح هي الأخرى.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
userId | المسار | string (uuid) | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X DELETE "$ARKVORY_URL/api/v1/access-groups/$ID/members/$USERID" \
-H "Authorization: Bearer $ARKVORY_TOKEN"منح مجموعة وصولًا إلى مستودع
PUT /api/v1/access-groups/{id}/grants/{repository}
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يمنح أعضاء المجموعة وصولًا access من نوع read أو write إلى repository، ويستبدل منحة سابقة للمجموعة هناك؛ ويسري من طلبهم التالي. لا يحتاج المستودع إلى إنشاء منفصل: المنحة تجعله مرئيًا لهم. والحد 10 000 منحة إجمالًا (507 grant_limit).
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
repository | المسار | string | نعم | — |
نص الطلب (application/json)
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
access | string | نعم | إحدى القيم: read, write |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
مثال
curl -X PUT "$ARKVORY_URL/api/v1/access-groups/$ID/grants/$REPOSITORY" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"access":"read"}'إزالة وصول مجموعة إلى مستودع
DELETE /api/v1/access-groups/{id}/grants/{repository}
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه
يزيل منحة المجموعة للمستودع repository؛ ولا يحتفظ أعضاؤها إلا بالوصول الذي يملكونه عبر مجموعات أخرى. وإزالة منحة غير موجودة تنجح هي الأخرى.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
id | المسار | string (uuid) | نعم | — |
repository | المسار | string | نعم | — |
الاستجابات: 204, 400, 401, 403, 404, 405, 409, 422, 503, 507
مثال
curl -X DELETE "$ARKVORY_URL/api/v1/access-groups/$ID/grants/$REPOSITORY" \
-H "Authorization: Bearer $ARKVORY_TOKEN"قراءة تدقيق الأمان
GET HEAD /api/v1/security/audit
الوصول: مسؤول · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد السجل الذي لا يقبل إلا الإلحاق (append-only) لتسجيلات الدخول والتسجيلات وتغييرات الحسابات والمجموعات والمنح وكلمات المرور ورموز الوصول الشخصية، بدءًا من الأحدث، لكل منها الفاعل ونوع بيانات الاعتماد والهدف والنتيجة وعنوان العميل؛ ولا تُسجَّل المحاولات المقيَّدة. تحتوي الصفحة على limit مدخلًا (من 1 إلى 100، والافتراضي 50)؛ وللمتابعة اضبط after على قيمة next.
المعلمات
| الاسم | الموضع | النوع | مطلوب | القواعد |
|---|---|---|---|---|
after | الاستعلام | string | لا | عدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية |
limit | الاستعلام | integer | لا | 1–100 |
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
items | مصفوفة من object | نعم | عدد العناصر: 100 كحد أقصى |
items[].id | string | نعم | عدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية |
items[].occurredAt | string (date-time) | نعم | — |
items[].actor | string | نعم | يمكن أن يكون null |
items[].credential | string | نعم | إحدى القيم: session, personal-token, service-key, file-key; يمكن أن يكون null |
items[].clientIp | string | نعم | يمكن أن يكون null |
items[].action | string | نعم | — |
items[].target | string | نعم | يمكن أن يكون null |
items[].outcome | string | نعم | إحدى القيم: success, failure, denied |
items[].code | string | نعم | يمكن أن يكون null |
items[].details | object | نعم | — |
next | string | نعم | يمكن أن يكون null |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/security/audit" \
-H "Authorization: Bearer $ARKVORY_TOKEN"الحصول على أذوناتك الفعلية
GET HEAD /api/v1/auth/permissions
الوصول: أي مفتاح أو جلسة صالحة · إعادة المحاولة: آمن للتكرار (قراءة)
يعيد profile للمستدعي (managed لمفتاح خدمة مُدار، وlegacy فيما عدا ذلك)، ومعرّف مفتاحه، وارتباطاته الفعلية (كل مستودع مع الإجراءات المسموحة فيه بدقة)، وما إذا كان مسؤول الخدمة الأولي (bootstrap). استخدمه لتكييف العميل؛ ومع ذلك يفحص الخادم كل طلب، لذا يسري أي تغيير في الأذونات فورًا.
الاستجابة 200
| الحقل | النوع | مطلوب | القواعد |
|---|---|---|---|
id | string | نعم | — |
profile | string | نعم | إحدى القيم: legacy, managed |
bindings | مصفوفة من object | نعم | عدد العناصر: 10000 كحد أقصى |
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 |
serviceAdministration | boolean | نعم | — |
credentialId | string (uuid) | لا | يمكن أن يكون null |
الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507
مثال
curl -X GET "$ARKVORY_URL/api/v1/auth/permissions" \
-H "Authorization: Bearer $ARKVORY_TOKEN"