أتمتة OrbitPage دون مشاركة جلسة لوحة المعلومات.
قم بإنشاء الرموز المميزة ذات النطاق وإدارة لوحة معلومات OrbitPage من النهاية إلى النهاية من البرامج النصية أو n8n أو الواجهات الخلفية أو CI.
أحدث مراجعة: 4 أغسطس 2026أدر مساحة عمل OrbitPage برموز شخصية محدودة: عدّل الصفحات وانشرها واستخدم الوسائط والنطاقات والتحليلات والذكاء الاصطناعي وShop والنشرات والفوترة.
ثلاثة حدود لبيانات الاعتماد تغطي ثلاث وظائف مختلفة.
توثق هذه الصفحة حدود REST التي تم إصدارها. رمز OrbitPage ليس مفتاح موفر OpenAI ولا يقوم مطلقًا بتوثيق نقاط نهاية لوحة المعلومات الخاصة.
| السطح | بيانات الاعتماد | الغرض والدعم |
|---|---|---|
| واجهة برمجة تطبيقات REST للأتمتة | op_pat_... | واجهة برمجة التطبيقات الخارجية المدعومة للبرامج النصية وn8n والواجهات الخلفية للخادم وCI. وهو يدير مساحة العمل المرتبطة بالرمز المميز من خلال /api/v1. |
| OrbitPage AI | op_pat_... + ai:read/ai:write | يقوم مسار الخطة العامة/الالتزام بإعداد وتطبيق مقترحات الذكاء الاصطناعي التي تم التحقق منها. تظل أي بيانات اعتماد لموفر OpenAI مصدر قلق منفصل من جانب الخادم ولا تعتبر أبدًا رمزًا مميزًا لحامل OrbitPage. |
| واجهات برمجة التطبيقات للوحة المعلومات | جلسة Firebase على SaaS؛ جلسة الإدارة على OSS | مسارات خاصة من المتصفح إلى التطبيق. إنها ليست عقد تكامل خارجي مستقر ويجب ألا تتلقى رموز API الشخصية. |
تغطي الموارد ذات الإصدار لوحة المعلومات؛ تُظهر نقاط نهاية الارتباط حلقة التحديث الآمن.
يرتبط كل طلب بمساحة العمل المحددة عند إنشاء الرمز المميز. لا يمكن للرمز المميز اختيار مستأجر آخر في عنوان URL أو نص الطلب، ويتم التحقق من أذونات مساحة العمل الحالية مرة أخرى في كل مكالمة.
يستخدم العقد عمليات HTTPS JSON القياسية — GET وPOST وPUT وPATCH وDELETE — ويدعم curl وعقدة طلب HTTP الخاصة بـ n8n وعملاء OpenAPI المُنشأين.
GET/api/v1/linksاقرأ كل جزء من الصفحة
إرجاع المجموعة المطلوبة وهوية مساحة العمل والمراجعة الحالية.
النطاق:links:readPATCH/api/v1/links/{linkId}قم بتغيير كتلة واحدة موجودة
يدمج الحقول القابلة للتحرير، ويتحقق من صحة الصفحة بأكملها وينشر المراجعة الجديدة.
النطاق:links:writePUT/api/v1/linksاستبدل المجموعة الكاملة
استخدم هذا لإضافة أو إزالة أو إعادة ترتيب الكتل بعد قراءة المجموعة الحالية والحفاظ عليها.
النطاق:links:write| سطح لوحة القيادة | مسارات واجهة برمجة التطبيقات | النطاقات |
|---|---|---|
| مساحة العمل والمسودة الكاملة | /workspace · /draft | workspace:read |
| الملف الشخصي والموضوع والصفحات الفرعية | /profile · /theme · /pages | profile:* · theme:* · pages:* |
| الإعدادات العامة والخصوصية والقائمة | /settings/* | settings:* |
| النشر والإصدارات والنسخ الاحتياطي | /publication · /versions · /backup | publication:* · backup:* |
| الوسائط والمجالات المخصصة | /media/* · /domains/* | media:* · domains:* |
| التحليلات ومراجعة تغييرات الذكاء الاصطناعي | /analytics · /ai/* | analytics:read · ai:* |
| المتجر والنشرة الإخبارية | /shop/* · /newsletter/* | shop:* · newsletter:* |
| الفريق والفواتير | /team/* · /billing/* | team:* · billing:* |
كل عملية مدعومة من لوحة المعلومات، مجمعة حسب السطح الذي تتحكم فيه.
المسارات أدناه مرتبطة بـ https://orbitpage.com/api/v1. الطريقة والمسار والنطاق هي عقد التكامل المستقر؛ توجد مخططات الطلب والتنسيقات وقيم التعداد ونماذج الاستجابة في مستند OpenAPI 3.1 المرتبط. تقوم المسارات غير المعروفة بإرجاع 404 ولا يتم أبدًا تحويل الطرق غير المدعومة بصمت.
01مساحة العمل والمحتوى والمظهرفحص مساحة العمل المرتبطة بالرمز المميز وإدارة المسودة الكاملة والملف التعريفي والكتل والموضوع والصفحات الفرعية.11 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/workspace | قراءة مساحة العمل والتخطيط والوصول والاستخدام والمراجعة | workspace:read | — |
GET/draft | اقرأ مسودة الصفحة الكاملة القابلة للتحرير | workspace:read | — |
GET/links | قائمة كتل الصفحة والمراجعة الحالية | links:read | — |
PUT/links | استبدل مجموعة الكتل المطلوبة الكاملة | links:write | LinksReplaceRequest · If-Match |
PATCH/links/{linkId} | قم بتحديث الحقول القابلة للتحرير في كتلة واحدة | links:write | LinkPatch · If-Match |
GET/profile | اقرأ هوية الملف الشخصي والبيانات الوصفية | profile:read | — |
PATCH/profile | تحديث حقول الملف الشخصي | profile:write | JSON · If-Match · ?publish=1 |
GET/theme | اقرأ المسودة النشطة للموضوع | theme:read | — |
PUT/theme | استبدل مسودة الموضوع | theme:write | JSON · If-Match · ?publish=1 |
GET/pages | قائمة بالصفحات الفرعية التي تم تكوينها | pages:read | — |
PUT/pages | استبدال الصفحات الفرعية التي تم تكوينها | pages:write | array | { pages } · If-Match · ?publish=1 |
02الإعدادات والنشرقوائم التحكم، والخصوصية، والملفات العامة المُدارة، وإنشاء خريطة الموقع، ودورة الحياة الصريحة للمسودة العامة.9 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/settings | قائمة القراءة، والخصوصية، والملف النصي، وإعدادات خريطة الموقع | settings:read | — |
PUT/settings/menu | تحديث إعدادات القائمة | settings:write | JSON · If-Match · ?publish=1 |
PUT/settings/privacy | قم بتحديث إعدادات الموافقة والخصوصية | settings:write | JSON · If-Match · ?publish=1 |
POST/settings/text-files | قم بإنشاء ملف نصي عام مُدار | settings:write | TextFileCreateRequest · If-Match |
PUT/settings/text-files/{key} | قم بتحديث ملف نصي عام مُدار | settings:write | TextFileUpdateRequest · If-Match |
DELETE/settings/text-files/{key} | حذف ملف نصي عام مُدار | settings:write | If-Match |
POST/settings/sitemap | قم بإعادة إنشاء خريطة الموقع المُدارة | settings:write | If-Match |
GET/publication | قراءة المسودة وحالة النشر | publication:read | — |
POST/publication | نشر أحدث مسودة تم التحقق منها | publication:write | — |
03الإصدارات والنسخ الاحتياطية والوسائطاستعادة المحتوى الذي تمت مراجعته، وتصدير أو استيراد بيانات مساحة العمل، وتشغيل دورة حياة الوسائط الاحتياطية والتحميل والانتهاء.9 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/versions | قائمة بإصدارات الصفحات المنشورة القابلة للاستعادة | backup:read | — |
POST/versions/{revision}/restore | استعادة النسخة التاريخية ونشرها على الفور | backup:write | If-Match |
GET/backup | تصدير نسخة احتياطية لمساحة العمل المُدارة | backup:read | ?sections=profile,links,… |
POST/backup/restore | التحقق من صحة النسخة الاحتياطية المُدارة واستعادتها ونشرها على الفور | backup:write | BackupRestoreRequest · If-Match |
GET/media | قم بإدراج البيانات التعريفية لوسائط مساحة العمل واستخدامها | media:read | — |
POST/media/cleanup | قم بمعاينة أو حذف الوسائط غير المرجعية | media:write | MediaCleanupRequest |
POST/media/uploads/reserve | احجز تحميلًا مباشرًا للوسائط | media:write | MediaUploadReserveRequest |
POST/media/uploads/finalize | قم بإنهاء وتسجيل الكائن الذي تم تحميله | media:write | UploadTokenRequest |
DELETE/media/uploads | قم بإحباط تحميل الوسائط المحجوزة | media:write | UploadTokenRequest |
04المجالات والتحليلات والذكاء الاصطناعيإدارة تنشيط DNS، وقراءة تقارير الأداء المرتبطة بالخطة، وتطبيق تغييرات الذكاء الاصطناعي فقط بعد المعاينة التي تم التحقق من صحتها.8 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/domains | اقرأ حالة المجال ومتطلبات DNS | domains:read | — |
POST/domains | قم بتوصيل المجال المخصص | domains:write | DomainConnectRequest |
POST/domains/refresh | تحديث التحقق والتنشيط | domains:write | — |
DELETE/domains | افصل المجال المخصص | domains:write | — |
GET/analytics | اقرأ تقرير تحليلات لوحة المعلومات | analytics:read | ?days=7|30|90 |
GET/ai/allowance | اقرأ بدل الذكاء الاصطناعي والاستخدام الحالي | ai:read | — |
POST/ai/plan | قم بإنشاء معاينة تغيير AI تم التحقق منها | ai:write | AiPlanRequest |
POST/ai/commit | قم بإجراء معاينة AI تم التحقق من صحتها مسبقًا | ai:write | AiCommitRequest |
05Shopربط التجارة، وإدارة المنتجات والمظهر، وتحميل الملفات المحمية، ثم نشر أو إلغاء نشر كتلة المتجر المتزامنة.10 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/shop | قراءة المنتجات والطلبات والعملاء وحالة Shop؛ قد تهيئ العملية بيانات Shop الخاصة وتحدّث حالة Stripe | shop:read | ?refresh=0|1 |
POST/shop/connect | قم بإنشاء أو متابعة تأهيل Stripe Connect | shop:write | — |
POST/shop/products | قم بإنشاء منتج متجر أو تحديثه | shop:write | ShopProductRequest |
DELETE/shop/products/{productId} | حذف منتج المتجر | shop:write | — |
PUT/shop/appearance | استبدال مظهر المتجر بالكامل | shop:write | ShopAppearanceRequest |
POST/shop/publish | نشر Shop وكتلة الصفحة المتزامنة | shop:write | — |
POST/shop/unpublish | إلغاء نشر المتجر | shop:write | — |
POST/shop/uploads/reserve | احجز تحميل ملف المنتج | shop:write | ShopFileUploadReserveRequest |
POST/shop/uploads/finalize | الانتهاء من تحميل ملف المنتج | shop:write | ShopUploadTokenRequest |
DELETE/shop/uploads | إلغاء تحميل ملف منتج محجوز | shop:write | ShopUploadTokenRequest |
06النشرة الإخباريةقم بتكوين تسليم SMTP المشفر وإدارة المشتركين الموافقين والتحكم في دورة حياة الحملة الكاملة.9 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/newsletter | قراءة المشتركين والحملات وحالة SMTP | newsletter:read | — |
PUT/newsletter/settings | قم بتحديث إعدادات SMTP المشفرة | newsletter:write | NewsletterSmtpRequest |
POST/newsletter/settings/test | أرسل اختبار التكوين | newsletter:write | EmailRecipientRequest |
POST/newsletter/subscribers | إضافة أو تحديث مشترك موافق عليه | newsletter:write | NewsletterSubscriberRequest |
DELETE/newsletter/subscribers/{subscriberId} | قم بإزالة المشترك | newsletter:write | — |
POST/newsletter/campaigns | قم بإنشاء حملة أو تحديثها | newsletter:write | NewsletterCampaignRequest |
DELETE/newsletter/campaigns/{campaignId} | حذف حملة | newsletter:write | — |
POST/newsletter/campaigns/{campaignId}/send | قم بوضع الحملة في قائمة الانتظار أو جدولتها | newsletter:write | NewsletterSendRequest |
DELETE/newsletter/campaigns/{campaignId}/send | قم بإلغاء الحملة في قائمة الانتظار | newsletter:write | — |
07الفريق والفواتيرإدارة المتعاونين والدعوات، وفحص الاشتراكات وفتح جلسات تسجيل خروج Stripe أو جلسات البوابة المصادق عليها.9 العمليات
| الطريقة والمسار | العملية | النطاق المطلوب | الإدخال وعناصر التحكم |
|---|---|---|---|
GET/team | قائمة الأعضاء والدعوات المعلقة | team:read | — |
POST/team/invitations | أنشئ رابط دعوة لمساحة العمل دون إرسال بريد إلكتروني | team:write | TeamInvitationRequest |
PATCH/team/members/{memberUid} | تحديث دور العضو | team:write | TeamRoleRequest |
DELETE/team/members/{memberUid} | قم بإزالة عضو مساحة العمل | team:write | — |
DELETE/team/invitations/{invitationId} | إلغاء الدعوة المعلقة | team:write | — |
GET/billing | اقرأ الخطة وحالة الاشتراك | billing:read | — |
POST/billing/checkout | قم بإنشاء عملية دفع لخطة Stripe | billing:write | BillingCheckoutRequest |
POST/billing/portal | أنشئ جلسة بوابة فوترة Stripe | billing:write | BillingPortalRequest |
POST/billing/promotion-code | استخدام رمز ترويجي ومواءمة استحقاقات الخطة | billing:write | PromotionCodeRedeemRequest |
قم بإنشاء رمز مميز واحد لأتمتة واحدة وبيئة واحدة.
افتح لوحة التحكم > الحساب > الرموز المميزة لواجهة برمجة التطبيقات الشخصية. قم بتسمية الرمز المميز الذي يحدد مالكه والغرض منه، واختر مساحة عمل كاملة، أو مساحة عمل للقراءة فقط، أو روابط فقط أو نطاقات موارد فردية، ثم حدد انتهاء صلاحية لمدة 30 أو 90 أو 365 يومًا - أو عدم انتهاء الصلاحية عندما تكون عملية التناوب الموثقة موجودة بالفعل.
قم بتأكيد هويتك
يعد إنشاء الرمز المميز إجراءً حساسًا للحساب ويتطلب مصادقة حديثة من Google أو كلمة مرور.
اختر النطاق الأصغر
نطاقات القراءة والكتابة منفصلة لكل مورد — على سبيل المثال theme:read, theme:write, shop:read و shop:write. يتضمن نطاق الكتابة تلقائيًا نطاق القراءة المطابق له.
انسخ السر مرة واحدة
يقوم OrbitPage بتخزين تجزئة SHA-256، وليس السر القابل للاسترداد. إذا فقدت، قم بإلغائها وإنشاء رمز مميز آخر.
قم بتخزينه خارج الكود
استخدم متغير البيئة أو مخزن CI السري. لا تضع الرمز المميز أبدًا في عنوان URL أو مستودع أو لقطة شاشة أو حزمة متصفح أو سجل إنشاء.
export ORBITPAGE_TOKEN='op_pat_...'
curl --silent --show-error --include \
--header "Authorization: Bearer $ORBITPAGE_TOKEN" \
https://orbitpage.com/api/v1/links$env:ORBITPAGE_TOKEN = 'op_pat_...'
$headers = @{ Authorization = "Bearer $env:ORBITPAGE_TOKEN" }
Invoke-RestMethod -Uri 'https://orbitpage.com/api/v1/links' -Headers $headersاقرأ المجموعة والتقط مراجعتها قبل كل تغيير.
يحتوي نص الاستجابة على الكتل المطلوبة في البيانات والمراجعة الرقمية الحالية. تظهر نفس المراجعة في X-OrbitPage-Revision وكعلامة ETag ضعيفة. احفظ أيًا من القيمتين لـ If-Match؛ لا تقم بتخمينه أو تخزينه مؤقتًا عبر عمليات تشغيل غير ذات صلة.
HTTP/2 200
etag: W/"42"
x-orbitpage-revision: 42
content-type: application/json; charset=utf-8
{
"object": "list",
"data": [
{
"id": "portfolio-main",
"type": "link",
"title": "Selected work",
"description": "Recent projects and case studies",
"url": "https://example.com/work",
"isActive": true,
"status": "live",
"availability": "available",
"clickCount": 18,
"position": 0
}
],
"revision": 42,
"workspace": {
"tenantId": "tenant_...",
"pageId": "page_...",
"username": "your-page"
}
}dataالمجموعة الكاملة للكتل المطلوبة. ترتيب المصفوفة هو ترتيب الصفحات المرئية.revisionإصدار التزامن المتفائل الذي تستخدمه كل عملية كتابة.workspaceيرتبط المستأجر والصفحة واسم المستخدم بشكل دائم بهذا الرمز المميز.ETagالقيمة الأكثر أمانًا لتمريرها مباشرة كرأس If-Match التالي.استخدم PATCH لإجراء أصغر تغيير على كتلة موجودة.
يقوم عنوان URL بتشفير المعرف الذي تم إرجاعه بواسطة GET وإرسال الحقول التي يجب تغييرها فقط. تقوم OrbitPage بدمج التصحيح في الكتلة الموجودة، وحماية حقول الهوية والتحليلات، والتحقق من صحة الصفحة الكاملة مقابل مخططها وخطتها، ثم نشرها على الفور.
curl --request PATCH \
--url https://orbitpage.com/api/v1/links/portfolio-main \
--header "Authorization: Bearer $ORBITPAGE_TOKEN" \
--header 'Content-Type: application/json' \
--header 'If-Match: W/"42"' \
--data '{
"title": "Book a consultation",
"url": "https://example.com/book",
"isActive": true
}'| مجموعة الحقول | أمثلة | السلوك |
|---|---|---|
| المحتوى | title, description, url, content, textItems | قابل للتحرير عندما يكون صالحًا لنوع الكتلة الموجود. |
| الرؤية والتوقيت | isActive, status, availability, startDate, endDate, timezone | تم التحقق من صحتها مع قواعد الجدولة والخطة. |
| المظهر والوسائط | icon, coverImage, backgroundColor, alignment, size | يتم قبوله فقط عندما تتطابق القيم مع مخطط الصفحة. |
| محمي | id, type, clickCount, ctaClicks, systemKey | تم التجاهل أو الرفض. لا يمكن تصحيح الكتل التي يديرها النظام. |
استخدم PUT فقط عندما يجب تغيير المجموعة نفسها.
يستبدل PUT المجموعة الكاملة المطلوبة. إنها عملية إضافة كتلة أو إزالة كتلة أو تغيير ترتيب الصفحات. إنه ليس اختصارًا لتحديث عنوان واحد: فحذف كتلة يؤدي إلى إزالتها من الصفحة.
const token = process.env.ORBITPAGE_TOKEN;
if (!token) throw new Error("ORBITPAGE_TOKEN is missing");
const endpoint = "https://orbitpage.com/api/v1/links";
const authorization = { Authorization: `Bearer ${token}` };
const read = await fetch(endpoint, { headers: authorization });
if (!read.ok) throw new Error(`GET failed: ${read.status} ${await read.text()}`);
const current = await read.json();
const revision = read.headers.get("etag") ?? String(current.revision);
// Preserve the full collection and change only the intended block.
const links = current.data.map((block) =>
block.id === "portfolio-main"
? { ...block, title: "Work and case studies" }
: block
);
const write = await fetch(endpoint, {
method: "PUT",
headers: {
...authorization,
"Content-Type": "application/json",
"If-Match": revision
},
body: JSON.stringify({ links })
});
if (!write.ok) throw new Error(`PUT failed: ${write.status} ${await write.text()}`);
console.log(await write.json());استخدم عقدة n8n الأصلية أو نفس العقد من عميل HTTP أو العميل الذي تم إنشاؤه أو الواجهة الخلفية أو مشغل CI.
لا يتطلب OrbitPage SDK: أي عميل HTTPS يمكنه إرسال JSON ومصادقة Bearer وطلبات GET وPOST وPUT وPATCH وDELETE القياسية متوافقة. تغطي الأنماط الموجودة أدناه الأجزاء ذات الحالة التي يجب أن يتعامل معها التكامل بشكل صريح.
عقدة n8n الأصلية
ثبّت n8n-nodes-orbitpage وأنشئ بيانات اعتماد OrbitPage API باستخدام الرمز الشخصي وBase URL. يقرأ اختبار الاتصال مساحة العمل بأمان؛ ثم تدير الإجراءات الإرشادية المسارات والأذونات وروابط العناصر وعمليات الكتابة المراعية للمراجعات من دون حفظ السر في JSON الخاص بسير العمل.
المسودة والنشر
تتطلب عمليات كتابة الملف الشخصي والسمة والصفحات والإعدادات المدعومة If-Match، وتحدّث المسودة افتراضيًا. أضف ?publish=1 للنشر الفوري المؤهل، أو راجع عدة تغييرات مؤجلة ثم استدعِ POST /publication مرة واحدة. تنشر عمليتا PATCH وPUT الخاصة بالروابط فورًا.
تحميل الوسائط المباشر
احجز أولاً، ثم ارفع البيانات إلى عنوان التخزين المُعاد وأكمل العملية. أرسل bearer token الخاص بـ OrbitPage إلى orbitpage.com فقط؛ واستخدم فقط الطريقة والترويسات المؤقتة المُعادة لطلب التخزين.
تمت مراجعة التزام الذكاء الاصطناعي
تعيد Plan معاينة متحققًا منها دون تغيير الصفحة. خزّن previewToken وراجعه، ثم طبّق ذلك الاقتراح نفسه. عيّن publish في نص commit فقط عندما تكون الأتمتة مخوّلة بنشر النتيجة.
Install community node: n8n-nodes-orbitpage
Credential: OrbitPage API
OrbitPage API Token: op_pat_...
OrbitPage Base URL: https://orbitpage.com
Connection test: GET /api/v1/workspace
First safe workflow step:
Node: OrbitPage
Resource: Workspace & Draft
Operation: Get Workspace Overview
First revision-controlled write:
Resource: Theme
Operation: Replace Entire Theme Draft
Revision Check: Use Latest Automatically (Recommended)# 1. Reserve an upload and receive uploadUrl, slot and uploadToken
POST /api/v1/media/uploads/reserve
{ "filename": "cover.jpg", "contentType": "image/jpeg", "sizeBytes": 245760 }
# 2. Upload the bytes directly using the returned URL, method and headers
# Do not forward the OrbitPage Authorization header to the storage URL.
# 3. Register the uploaded object in the workspace
POST /api/v1/media/uploads/finalize
{ "slot": "<slot>", "uploadToken": "<uploadToken>" }# 1. Generate a validated preview without changing the page
POST /api/v1/ai/plan
{ "message": "Make the primary CTA clearer" }
# 2. Review the returned operations and previewToken
# 3. Apply the exact reviewed preview; publishing remains explicit
POST /api/v1/ai/commit
{ "previewToken": "<previewToken>", "publish": false }استخدم https://orbitpage.com بوصفه Base URL، من دون /api/v1. عند نجاح الحفظ، تتم قراءة /api/v1/workspace والتحقق من الرمز وربط مساحة العمل وإذن workspace:read من دون تغيير البيانات.
يتطلب الخطأ 401 رمزًا بديلًا صالحًا، ويتطلب الخطأ 403 الإذن المفقود. عند تكرار عمليات إعادة التوجيه، تحقّق من Base URL أو الوكيل العكسي. شارك الحالة ورمز JSON مع الدعم، ولا تشارك السر أبدًا.
تعامل مع بيانات اعتماد التشغيل الآلي باعتبارها دورات حياة قصيرة ويمكن ملاحظتها.
تدعم مساحة العمل ما يصل إلى عشرة رموز شخصية نشطة لكل مستخدم. تعرض قائمة الحساب بادئة كل رمز مميز، ونطاقاته، وتواريخ الإنشاء وانتهاء الصلاحية، والاستخدام الأخير. تتم كتابة الطوابع الزمنية الأخيرة المستخدمة عمدًا مرة واحدة على الأكثر كل خمس دقائق.
name: Update OrbitPage
on: workflow_dispatch
jobs:
update:
runs-on: ubuntu-latest
env:
ORBITPAGE_TOKEN: ${{ secrets.ORBITPAGE_TOKEN }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: node scripts/update-orbitpage.mjs- قم بتسمية الرموز المميزة حسب النظام والبيئة - على سبيل المثال، "GitHub Actions · production".
- قم بالتدوير عن طريق إنشاء البديل، وتحديث المتجر السري، واختبار قراءة واحدة، ثم إلغاء الرمز القديم.
- يتم الإلغاء فورًا بعد الإفصاح المشتبه به أو تغيير الملكية أو التقاعد عن سير العمل. يسري مفعول الإلغاء عند الطلب التالي.
- لا تقم بإنشاء رمز مميز مشترك طويل الأمد. بيانات الاعتماد المنفصلة تجعل السجلات والتناوب والاستجابة للحوادث مفهومة.
فرع على حالة HTTP والتعليمات البرمجية القابلة للقراءة آليًا.
تستخدم الأخطاء JSON مع الخطأ والرمز. لا تقم بتحليل الجملة البشرية للتحكم في سير العمل. تتطلب معظم استجابات 4xx تغيير الطلب أو بيانات الاعتماد؛ فقط تعارضات المراجعة وحدود المعدل تنتمي إلى مسار إعادة المحاولة التلقائي.
INVALID_JSON · LINKS_REQUIRED · LINK_PATCH_INVALIDقم بإصلاح نص الطلب أو الحقول المرفوضة بواسطة مخطط الصفحة.PERSONAL_TOKEN_*استبدل الرمز المميز المفقود أو غير الصالح أو منتهي الصلاحية أو الملغي. لا تعيد المحاولة بنفس السر.PERSONAL_TOKEN_SCOPE_DENIED · SYSTEM_LINK_PROTECTEDاستخدم النطاق المطلوب أو توقف: الهوية الحالية غير مسموح لها بإجراء هذه العملية.LINK_NOT_FOUNDتحديث المجموعة؛ ربما تمت إزالة معرف الكتلة أو استبداله.revision_conflictنفّذ GET مرة أخرى، وأعد تطبيق التغيير المقصود على الحالة الجديدة، ثم أعد المحاولة باستخدام المراجعة الجديدة.REQUEST_TOO_LARGEاحتفظ بجسم JSON عند 768 كيلو بايت أو أقل.UNSUPPORTED_CONTENT_ENCODINGأرسل نص طلب JSON غير مضغوط.revision_requiredأضف If-Match باستخدام المراجعة أو ETag التي تم إرجاعها بواسطة أحدث GET.RATE_LIMITEDانتظر المدة المحددة في Retry-After، ثم أعد المحاولة بتأخير أُسّي وتفاوت عشوائي.تسمح الحدود الحالية بـ 120 طلبًا في الدقيقة و5000 طلب يوميًا لكل رمز. قد تنخفض الحدود أثناء الحماية من إساءة الاستخدام؛ التزم دائمًا بـ Retry-After.
التكامل الآمن يكون ضيقًا وسريًا وقابلاً للمراجعة.
أقل امتياز
استخدم للقراءة فقط ما لم يتم نشر الوظيفة. لا يمكن مطلقًا أن تتجاوز إمكانات الرمز المميز دور مساحة العمل الحالية للمالك.
من جانب الخادم فقط
اتصل بواجهة برمجة التطبيقات (API) من برنامج نصي موثوق أو واجهة خلفية أو مشغل CI. لا يمكن لحزمة المتصفح أو عميل الهاتف المحمول أو المستودع العام الاحتفاظ بسرية حاملها.
لا يكتب المكفوفين
نفّذ طلب GET مباشرة قبل الكتابة واستخدم If-Match. إذا أعاد الخطأ 409 الرمز revision_conflict، فأعد قراءة المورد وطبّق التغيير المقصود من جديد؛ ولأي رمز آخر، عالج حالة العمل الموضحة في الوثائق.
التحقق من صحة النتائج
التحقق من حالة الاستجابة ومراجعة البيانات التي تم إرجاعها. لإجراء تغييرات مهمة، افتح الصفحة العامة بعد النشر وقم بالتنبيه عند الفشل دون تسجيل الرمز المميز.
تعد واجهة Automation REST API للرمز الشخصي إحدى إمكانيات SaaS المُدارة.
يتضمن المستودع مفتوح المصدر Express API تستخدمها لوحة المعلومات المرفقة، لكن API جلسة المسؤول الداخلية ليست عقد الأتمتة نفسه ذي الإصدارات. لا ترسل رمز op_pat إلى خادم self-hosted ولا ترسل JWT لمسؤول self-hosted إلى orbitpage.com/api/v1.
استخدم هذا الدليل وعقد OpenAPI والرموز الشخصية التي تم إنشاؤها في الحساب.
استخدم لوحة المعلومات المجمعة على نفس المصدر الموثوق به. تشرح وثائق المستودع الحدود الداخلية للمساهمين والمشرفين.