برای اتصال، چه چیزهایی لازم است؟
AdminJump اطلاعات را از API سایت شما دریافت میکند و تغییرات را به همان سایت برمیگرداند. اگر سایتتان API سازگار ندارد، ابتدا توسعهدهنده یا دستیار کدنویسی آن را آماده میکند.
مثل https://example.com؛ بدون مسیر اضافه و Redirect.
وضعیت احرازشده و endpointهای بخشهایی که نیاز دارید.
با مجوز Owner و مجوزهای مستقل محتوا یا محصولات.
فقط میخواهید محیط را ببینید؟ حساب بسازید و در محیط توسعه، از داشبورد «سایت آزمایشی» را باز کنید. داده نمونه، اتصال به سایت واقعی نیست.
وقتی API آماده است، اتصال ساده است.
در پنل سایت خودتان کلید بسازید.
در بخش «اتصال به AdminJump»، یک کلید با مجوز مالکیت و بخشهای موردنیاز بسازید. کلید فقط یکبار نمایش داده شود؛ آن را در جای امن نگه دارید. اگر این بخش وجود ندارد، مراحل Laravel و پرامپتها را به توسعهدهنده بدهید.
در AdminJump یک سایت اضافه کنید.
از داشبورد، «افزودن سایت» را انتخاب کنید. برای سایت Laravel عمومی گزینه «Laravel API» و برای خود مگاشاپ گزینه «MegaShop» را بزنید.
نام، آدرس و کلید را وارد کنید.
آدرس اصلی HTTPS را بدون /admin یا /api-jump وارد کنید. کلید API را در فیلد کلید قرار دهید؛ رمز ورود پنل سایت را وارد نکنید.
بررسی و اتصال را بزنید.
اعتبار کلید، هویت ثابت سایت و مالکیت واقعی بررسی میشوند. پس از تأیید، از انتخابگر سایت به مقالات و محصولات دسترسی دارید؛ هر عملیات فقط با مجوز شما و API انجام میشود.
هر CMS، یک مسیر مشخص.
Laravel API
مدلهای موجود سایت را به قرارداد زیر وصل کنید. در status مقدار cms: laravel برگردانید. میتوانید از مقالات شروع کنید و محصولات را بعداً اضافه کنید.
MegaShop
توسعهدهنده مگاشاپ API و صفحه مدیریت کلید را طبق همین قرارداد با cms: megashop میسازد. پس از نصب آن نسخه CMS، مالک از پنل کلید میگیرد و سایت را اضافه میکند.
WordPress / WooCommerce
مسیر آینده، افزونهای است که نوشتهها و محصولات را به قرارداد AdminJump نگاشت کند و صفحه ساخت و لغو کلید داشته باشد. افزونه آماده برای نصب در نسخه فعلی ارائه نشده است.
نکات توسعه افزونه
از WordPress REST API، capabilityهای کاربر و مجوزهای WooCommerce استفاده کنید؛ کلید Owner صرفاً با نقش ارسالی اثبات نمیشود. Application Password بهتنهایی قرارداد AdminJump را ایجاد نمیکند. افزونه معمولاً زیر /wp-json/ مسیر میسازد؛ Connector یا rewrite امن متناسب هم لازم است. تا آمادهشدن Connector وردپرس، این اتصال در AdminJump فعال نمیشود.
FastShop
اگر نسخه شما Laravel است، همین مراحل را برای مدلهای واقعی آن اجرا کنید. با خروجی cms: laravel از مسیر عمومی Laravel API استفاده میکنید؛ Connector اختصاصی FastShop هنوز فعال نیست.
یک قرارداد مشترک، چند بخش مستقل.
قرارداد متنی ↗همه مسیرها زیر https://your-site.com/api-jump هستند. کلید در هدر Bearer ارسال میشود. درخواستها از بکاند AdminJump میآیند؛ مرورگر شما کلید سایت را دریافت نمیکند.
Authorization: Bearer YOUR_OWNER_API_KEY
Accept: application/json
Content-Type: application/json
فهرست سریع؛ همگامسازی در پسزمینه. در اتصال article_sync، مقالات یکبار وارد میشوند؛ تغییرات سایت با اعلان امضاشده دریافت میشوند و ذخیرهٔ ابزار در صف به سایت میرود. «وارد کردن» دریافت کامل مجدد را آغاز میکند. تاریخچه فقط پنج نسخهٔ متفاوت با متن و تصویر در فایل خصوصی نگه میدارد. قرارداد کامل صف و همگامسازی برای توسعهدهنده
وضعیت احرازشده
GET /api-jump/status باید کلید را واقعاً احراز کند. site_id برای سایت ثابت است؛ با تغییر دامنه عوض نمیشود. فقط فیلدها و مجوزهایی را اعلام کنید که واقعاً کار میکنند.
{
"success": true,
"data": {
"site_id": "site_your_permanent_uuid",
"cms": "laravel",
"site_name": "نام سایت شما",
"api_version": "1.0",
"authenticated": true,
"permissions": [
"site.owner",
"articles.read",
"articles.create",
"articles.update",
"articles.publish",
"products.read",
"products.update"
],
"capabilities": {
"article_fields": [
"title",
"slug",
"content",
"excerpt",
"status",
"seo_title",
"meta_description"
],
"product_fields": [
"name",
"description",
"price",
"stock",
"status"
],
"optimistic_locking": true
}
}
}
نمونه بالا، اتصال واقعی نیست. در سایت مگاشاپ مقدار cms باید megashop باشد. اگر ویرایش محصول ندارید، product_fields را [] بگذارید و products.update را حذف کنید. اگر کنترل تعارض اتمیک ندارید، optimistic_locking را false اعلام کنید.
| روش و مسیر | مجوز | کاربرد |
|---|---|---|
GET/status | احراز کلید Owner | هویت ثابت سایت، مجوزهای جاری و قابلیتها |
GET/articles | articles.read | جستوجو، فیلتر و صفحهبندی مقالات |
GET/articles/{id} | articles.read / articles.update | مقاله و نسخه جاری |
POST/articles | articles.create | ایجاد واقعی مقاله؛ انتشار نیازمند articles.publish |
PATCH/articles/{id} | articles.update | ویرایش اتمیک با version؛ منتشرشده نیازمند articles.publish |
DELETE/articles/{id} | articles.delete | حذف با version و Idempotency-Key |
GET/changes | articles.read | تغییرات پس از cursor؛ افزونهٔ article_sync |
POST/subscriptions | Owner / articles.read | ثبت اعلان امضاشدهٔ تغییرات |
POST/media | articles.create / articles.update | آپلود واقعی تصویر؛ افزونهٔ article_sync |
GET/products | products.read | فهرست محصولات با صفحهبندی |
GET/products/{id} | products.read | جزئیات محصول و version |
PATCH/products/{id} | products.update | ویرایش فقط فیلدهای پشتیبانیشده |
صفحهبندی و پاسخ فهرست
q حداکثر ۲۰۰ نویسه، status یکی از draft/published/archived، page مثبت و per_page از ۱ تا ۱۰۰. AdminJump تعداد ۲۰ میفرستد؛ total باید پس از فیلتر محاسبه شود.
{
"success": true,
"data": [
{
"id": "42",
"title": "عنوان مقاله",
"status": "draft",
"version": "1"
}
],
"meta": {
"total": 1,
"current_page": 1,
"per_page": 20
}
}
ایجاد و ویرایش مقاله و محصول
شناسه resource در JSON باید رشته باشد. محتوای مقاله HTML پاکسازیشده است. محصولات فقط فیلدهای پشتیبانیشده، قیمت با واحد اعلامشده، موجودی عدد صحیح و توضیح متنی دارند.
{
"title": "عنوان جدید",
"content": "<h2>یک شروع تازه</h2><p>متن مقاله</p>",
"status": "draft",
"version": "7"
}
{
"name": "نام محصول",
"price": 185000,
"stock": 24,
"status": "published",
"version": "3"
}
پاسخ ذخیره باید داده واقعاً ذخیرهشده و version جدید را برگرداند؛ POST مقاله با HTTP 201 و PATCH با 200. API باید فیلدهای دیگر را در PATCH حفظ کند.
امنیت، مجوز و کنترل تعارض
- کلید فقط توسط مالک احرازشده ساخته شود؛ hash، expiry، revoke و scopes مستقل داشته باشد.
- هر endpoint کلید، tenant و مجوز را دوباره بررسی کند. برای ویرایش مقاله منتشرشده، articles.publish لازم است.
- HTML در CMS هم پاکسازی شود؛ script، iframe، event handler و URL خطرناک ممنوعاند.
- version در همه مسیرهای تغییر CMS افزایش یابد؛ مقایسه و ذخیره اتمیک، و تعارض با 409 بدون تغییر انجام شود.
- در اتصال article_sync، صف با Idempotency-Key ثابت و کنترل version تلاش مجدد امن دارد؛ در Connector قدیمی retry کور نوشتن نداریم.
- 401 کلید نامعتبر؛ 403 مجوز ناکافی؛ 404 منبع ناموجود؛ 409 تعارض؛ 422 ورودی نامعتبر؛ 429 محدودیت درخواست؛ 503 اختلال.
از مدلهای خودتان استفاده کنید.
برای شروع، فقط دو فیلد کافی است. فرم پایه عنوان و متن Markdown دارد؛ در اتصال همگامشده تصویر و وضعیت نیز فعالاند و ذخیره ابتدا در صف انجام میشود. AdminJump متن را به HTML امن تبدیل میکند؛ API سایت کافی است title و content را دریافت کند. SEO، تصویر، دستهبندی و محصولات برای این شروع الزامی نیستند.
نیازی به تغییر مدلهای اصلی CMS ندارید. نسخهٔ همگامشده و تاریخچهٔ پنجتایی در فایلهای خصوصی ابزار نگهداری میشوند. یک adapter کوچک در سایتتان، مدلها و وضعیتهای موجود را به این قرارداد نگاشت میکند.
زیرساخت اتصال
جدول hash کلید، middleware احراز و مجوز، شناسه ثابت سایت و صفحه کلیدها در پنل مالک.
ماژول مقالات
controller و resource برای مدل موجود، اعتبارسنجی، sanitize، pagination و version.
ماژول محصولات
ابتدا خواندن؛ سپس فقط ویرایشهای قابل تضمین در مدل محصول و موجودی.
به prefix پیشفرض Laravel توجه کنید. اگر routes/api.php پیشفرض /api دارد، مسیر نهایی را صریحاً به /api-jump تنظیم کنید. فرمهای پنل همچنان CSRF دارند؛ فقط API ماشینی Bearer مستقل از نشست است.
دستهبندی و آپلود تصویر را نمایشی فعال نکنید. اگر فیلدی هنوز map نشده، از capabilities حذفش کنید. مقاله میتواند قبل از محصولات راهاندازی شود؛ مجوزهای بخش آمادهنشده را اعطا نکنید.
پرامپت را کپی کنید. هر مرحله را تست کنید.
این پرامپتها را در پروژه Laravel خودتان، بهترتیب به دستیار کدنویسی بدهید. نشانی قرارداد داخل هر پرامپت قرار گرفته است. اگر دستیار به localhost شما دسترسی ندارد، فایل قرارداد متنی را دانلود و همراه پرامپت به او بدهید.
اختیاریهمگامسازی سریع، صف و تاریخچهپس از مراحل پایه: تغییرات سایت در ابزار سریع و قابل بازیابیاند.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده. قرارداد: https://adminjump.seojumping.ir/docs/technical در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند. پس از مراحل پایه، بخش Article synchronization extension قرارداد را کامل پیاده کن. برای مدل مقالهٔ موجود revision و fingerprint واقعی (بدون تاریخ/counter/شناسهٔ موقت سکشن)، outbox durable و change feed با cursor افزایشی و tombstone بساز. GET /articles با after_id و meta.next_after، GET /changes با snapshot تغییر/meta.cursor/has_more، POST /subscriptions با callback origin مجاز و secret رمزنگاریشده، POST /media امن و idempotent و DELETE مقاله با scope مستقل و CAS را اضافه کن. POST/PATCH/DELETE باید Idempotency-Key UUID ثابت، hash method/path/body و نتیجهٔ ثبتشده در همان تراکنش داشته باشند. تصویر JPG/PNG/WebP حداکثر۵MB با محدودیت پیکسل و decode/reencode امن؛ status فقط قابلیتهای واقعی را اعلام کند. webhook بعد از commit در صف مستقل ارسال شود؛ HMAC-SHA256(timestamp.body)، timestamp پنجدقیقهای، event_id یکتا و identity ثابت لازماند. نسخهٔ نهایی پس از اتمام همهٔ سکشنها ثبت شود، نه حالت نصفهٔ ذخیره؛ reconcile برای تغییر query-builder و حذف گروهی بنویس. مقالهٔ Page Builder پیچیده خواندنی باقی بماند. کلیدهای قدیمی را خودکار گسترش نده. تست idempotency پس از timeout، body متفاوت409، CAS دو نویسنده، تغییر پنل، عدم ساخت نسخه برای no-op، webhook امضا/تکرار/SSRF، media و حذف بنویس و اجرا کن. article_sync=true را فقط بعد از پاسشدن این مجموعه فعال کن. دستور worker/scheduler، callback APP_URL و استثنای محدود توسعه را مستند کن؛ TLS و SSRF تولید را تضعیف نکن. AdminJump خودش فایل خصوصی نسخهها و تاریخچهٔ پنجتایی را نگه میدارد؛ CMS مرجع انتشار است.
۰۱زیرساخت و کلید API در پنلکلید محدود و قابل لغو که فقط مالک از پنل میسازد.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده. قرارداد: https://adminjump.seojumping.ir/docs/technical در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند. مرحله ۱: اتصال امن و پنل کلیدها را پیادهسازی کن. migration credential با key_hash یکتا، scopes، expires_at، revoked_at، owner/tenant FK و timestamps بساز. کلید با random_bytes(32) تولید، فقط یکبار از صفحه مالک احرازشده نمایش و SHA-256 آن در DB ذخیره شود. این کلید پرآنتروپی است؛ از رمز انسانی بهعنوان API key استفاده نکن. ایجاد و لغو کلید در پنل با Policy، current_password، CSRF و audit بدون secret باشد. صفحه «اتصال به AdminJump» نام سایت، شناسه ثابت، کلیدها، مجوزها و آخرین استفاده را نشان دهد؛ کلید حذفشده/منقضی قابل استفاده نباشد. middleware Bearer، tenant resolution، scope و rate limit برای /api-jump ایجاد کن. فقط این مسیرهای machine API stateless از CSRF مرورگر مستقلاند؛ فرم پنل را هرگز از CSRF مستثنا نکن. نام یا نقش ارسالی مشتری بهتنهایی Owner را اثبات نمیکند. Authorization را در reverse proxy عبور بده و log نکن. تست Owner-only creation، revoke، expiry، invalid key و cross-tenant isolation اجرا کن. در پایان مسیر صفحه پنل و روش دریافت کلید را مستند کن.
۰۲وضعیت احرازشده و قابلیتهاGET /api-jump/status هویت و مجوز واقعی را تأیید میکند.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده. قرارداد: https://adminjump.seojumping.ir/docs/technical در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند. مرحله ۲: GET /api-jump/status را پشت middleware مرحله ۱ پیادهسازی کن. پاسخ دقیق success/data با site_id ثابت، cms، site_name، api_version="1.0"، authenticated=true، permissions و capabilities شامل article_fields، product_fields و optimistic_locking باشد. 401 برای کلید نامعتبر/منقضی/لغوشده و 403 برای scope ناکافی بده؛ healthcheck عمومی بهعنوان اثبات مالکیت پذیرفته نشود. site.owner تنها برای credential صادرشده توسط مالک واقعی قابل اعطا است. هیچ credential در response نباشد. در این مرحله قبل از تکمیل endpointهای محتوا، scopes آنها را اعطا نکن؛ article_fields میتواند حداقل نامهای schema را اعلام کند اما عملیات فقط با scope فعال میشود، product_fields=[] باشد. اگر version اتمیک هنوز آماده نیست optimistic_locking=false باشد. با تست Feature اعتبار کلید، هویت ثابت در alias دامنه، scope و response schema را بررسی کن. یک دستور curl با placeholder key ارائه بده و توضیح بده برای اتصال واقعی باید دامنه عمومی HTTPS بدون redirect داشت.
۰۳آمادهسازی مقالات سایت Laravelمقالات خود سایت از AdminJump خوانده و واقعاً ذخیره میشوند.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده.
قرارداد: https://adminjump.seojumping.ir/docs/technical
در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند.
مرحله ۳: مدل مقاله موجود سایت را بدون ساخت جدول محتوای موازی به API وصل کن. GET /articles با q,status,page,per_page و envelope data array/meta.total/current_page/per_page؛ GET /articles/{id}؛ POST /articles؛ PATCH /articles/{id} زیر /api-jump بساز. IDها را string با حروف/عدد/underscore/hyphen <=120، status را draft/published/archived، و optionalها را مطابق capabilities map کن. only supported fields: title,slug,content,excerpt,featured_image,category,status,seo_title,meta_description. فیلد unsupported را فعال نکن؛ category اگر ID مدل است mapping واقعی یا حذف از capability لازم دارد. HTML را با allowlist قرارداد sanitize کن؛ از raw HTML یا regex-only sanitization استفاده نکن. articles.read/create/update/publish را جداگانه enforce کن؛ ویرایش یا unpublish مقاله منتشرشده نیز publish لازم دارد. pagination سمت سرور و ترتیب پایدار، tenant-scoped lookup و validation دقیق اضافه کن. version روی همه مسیرهای تغییر مقاله از جمله پنل CMS افزایش یابد؛ PATCH با conditional UPDATE/transaction اتمیک version را مقایسه و در تعارض 409 بدون تغییر بده. فقط بعد از تضمین این رفتار optimistic_locking=true گزارش کن. هیچ retry کور POST/PATCH نداشته باش. تست خواندن، ایجاد، ویرایش، scopes، stored XSS، تعارض دو نویسنده، pagination و دسترسی به مقاله سایت دیگر اجرا کن. پاسخ success شامل داده ذخیرهشده و version جدید باشد. نحوه فعالکردن scopes مقالات در پنل و تست اتصال AdminJump را مستند کن.۰۴محصولات؛ ابتدا خواندن، سپس ویرایشقیمت و موجودی فقط در واحد و مدل واقعی سایت مدیریت میشوند.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده.
قرارداد: https://adminjump.seojumping.ir/docs/technical
در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند.
مرحله ۴: محصولات ساده مدل فعلی را وصل کن. GET /api-jump/products و /products/{id} با name,sku,image,price,currency,stock,status,version و pagination/filter قرارداد بساز. units را صریح اعلام کن؛ تومان/ریال را بدون قرارداد تبدیل نکن. products.read مستقل باشد. اگر ویرایش امن هنوز آماده نیست product_fields=[] و products.update را حذف کن. سپس PATCH فقط name,description متنی,price,stock,status پشتیبانیشده را map کن و partial update انجام بده، version اتمیک و 409 داشته باشد. تغییر از پنل سایت هم version را افزایش دهد. قیمت غیرمنفی و stock integer غیرمنفی، tenant isolation، مجوز، optimistic locking و پاسخ ذخیرهشده را تست کن. محصولات متغیر و bulk را فعلاً فعال نکن. بعد از پاسشدن تستها product_fields و scope نوشتن را در status فعال کن و در پنل ساخت کلید نمایش بده.۰۵آزمون نهایی و اتصال از پنلاتصال تأییدشده روی staging، سپس ورود اطلاعات در AdminJump.+
من میخواهم سایت Laravel موجودم را به AdminJump متصل کنم. ابتدا پروژه، نسخه Laravel/PHP، مدلها، tenant boundaries، احراز هویت و پنل مدیریت موجود را بررسی کن و بدون تخریب غیرضروری واقعاً کد و تست بنویس. قرارداد عمومی را از نشانی زیر بخوان؛ اگر به آن دسترسی نداری از من بخواه محتوای فایل را بدهم. هیچ endpoint، داده یا موفقیت اتصال را شبیهسازی و واقعی گزارش نکن. اسرار را در مرورگر، پاسخ، log یا مستندات چاپ نکن. تغییرها را فقط در پروژه من انجام بده و بدون اجازه production را deploy یا داده واقعی را تغییر نده. قرارداد: https://adminjump.seojumping.ir/docs/technical در status مقدار cms برای Laravel عمومی «laravel» و برای خود MegaShop «megashop» است. prefix دقیق /api-jump است؛ نه /api/api-jump. site_id باید UUID ثابت مختص همان سایت و بدون وابستگی به دامنه باشد. قابلیت و scope فقط وقتی فعال شوند که واقعاً پیاده و تست شدهاند. مرحله ۵: کد مراحل قبلی را با قرارداد عمومی تطبیق بده. روی staging عمومی HTTPS و بدون redirect، status با کلید Owner، فهرست و CRUD مقالات، فهرست/ویرایش مجاز محصول، 401/403/409/422/429، انقضا و revoke، tenant isolation، پاکسازی HTML و pagination واقعی را تست کن. گواهی TLS را غیرفعال نکن. بدون دسترسی staging فقط تست Fake را گزارش کن و تأیید واقعی نده. audit و logs را برای نشت key/token/body بررسی کن. مسیر /api-jump را کنترل کن که Laravel prefix پیشفرض /api به آن اضافه نکرده باشد. پنل مدیریت باید ایجاد یکباره کلید، انتخاب scopes، expiry و revoke را داشته باشد. سپس به کاربر مراحل AdminJump را بده: ساخت حساب → افزودن سایت → انتخاب Laravel API یا MegaShop مطابق cms واقعی → دامنه اصلی HTTPS → کلید Owner → بررسی اتصال. در صورت موفقیت مقاله آزمایشی را با مجوز جدا و اجازه کاربر ایجاد/ویرایش کن؛ داده واقعی را بدون اجازه تغییر نده. نتیجه آزمون و محدودیتهای باقیمانده را مستند کن.
این پرامپتها ابزار راهاندازی CMS هستند؛ اتصال AI/MCP به AdminJump در نسخه فعلی فعال نیست.
اگر اتصال برقرار نشد.
کلید API معتبر نیست
کلید را دوباره از پنل مالک بگیرید. انقضا و لغو آن را بررسی کنید؛ Authorization باید از reverse proxy به برنامه برسد.
مالکیت سایت تأیید نمیشود
status باید authenticated=true و site.owner داشته باشد. پاسخ healthcheck عمومی یا کلید Editor کافی نیست.
آدرس ناامن یا ارتباط ناموفق است
HTTPS معتبر، دامنه عمومی و DNS عمومی لازم است. localhost، IP داخلی، پورت غیر443 و Redirect رد میشوند. گواهی یا DNS را اصلاح کنید؛ حفاظت SSRF را خاموش نکنید.
پاسخ با قرارداد سازگار نیست
prefix /api-jump، api_version=1.0، نوع cms متناسب، IDهای رشتهای، permissions و capabilities را با مثال فنی بررسی کنید. خروجی HTML یا صفحه ورود پاسخ API نیست.
این سایت قبلاً ثبت شده است
سایت را دوباره با مالک جدید ثبت نکنید. مالک فعلی باید شما را دعوت کند؛ انتقال مالکیت خودکار در MVP وجود ندارد.
مقاله ذخیره نمیشود یا تعارض دارد
scope ایجاد/ویرایش/انتشار و فیلدهای capabilities را بررسی کنید. در 409 نسخه جدید را در پنجره دیگر بخوانید؛ متن خود را حفظ و تغییرات را ادغام کنید.
وردپرس یا فستشاپ در انتخابگر غیرفعالاند
Connector اختصاصی هنوز آماده نیست. برای FastShop مبتنی بر Laravel میتوان API عمومی Laravel را پیاده کرد. نصب افزونه وردپرس بهتنهایی Connector فعال AdminJump ایجاد نمیکند.
آماده اتصال هستید؟
API آماده، کلید Owner و یک آدرس HTTPS کافی است.