AdminJump

ADMINJUMP / DOCUMENTATION

سایت شما.
متصل، قدم‌به‌قدم.

از ساخت کلید در پنل تا مدیریت اولین مقاله.
یک راهنمای کوتاه برای شما، یک قرارداد دقیق برای توسعه‌دهنده‌تان.

راهنمای اتصال · نسخه ۱.۰Laravel API و MegaShopنسخه متنی برای توسعه‌دهنده و AI
۰۱ / شروع سریع

برای اتصال، چه چیزهایی لازم است؟

AdminJump اطلاعات را از API سایت شما دریافت می‌کند و تغییرات را به همان سایت برمی‌گرداند. اگر سایتتان API سازگار ندارد، ابتدا توسعه‌دهنده یا دستیار کدنویسی آن را آماده می‌کند.

۱دامنه عمومی با HTTPS

مثل https://example.com؛ بدون مسیر اضافه و Redirect.

۲API مطابق قرارداد ۱.۰

وضعیت احرازشده و endpointهای بخش‌هایی که نیاز دارید.

۳کلید صادرشده توسط مالک

با مجوز Owner و مجوزهای مستقل محتوا یا محصولات.

فقط می‌خواهید محیط را ببینید؟ حساب بسازید و در محیط توسعه، از داشبورد «سایت آزمایشی» را باز کنید. داده نمونه، اتصال به سایت واقعی نیست.

۰۲ / از پنل سایت تا ادمین جامپ

وقتی API آماده است، اتصال ساده است.

  1. در پنل سایت خودتان کلید بسازید.

    در بخش «اتصال به AdminJump»، یک کلید با مجوز مالکیت و بخش‌های موردنیاز بسازید. کلید فقط یک‌بار نمایش داده شود؛ آن را در جای امن نگه دارید. اگر این بخش وجود ندارد، مراحل Laravel و پرامپت‌ها را به توسعه‌دهنده بدهید.

  2. در AdminJump یک سایت اضافه کنید.

    از داشبورد، «افزودن سایت» را انتخاب کنید. برای سایت Laravel عمومی گزینه «Laravel API» و برای خود مگاشاپ گزینه «MegaShop» را بزنید.

  3. نام، آدرس و کلید را وارد کنید.

    آدرس اصلی HTTPS را بدون /admin یا /api-jump وارد کنید. کلید API را در فیلد کلید قرار دهید؛ رمز ورود پنل سایت را وارد نکنید.

  4. بررسی و اتصال را بزنید.

    اعتبار کلید، هویت ثابت سایت و مالکیت واقعی بررسی می‌شوند. پس از تأیید، از انتخابگر سایت به مقالات و محصولات دسترسی دارید؛ هر عملیات فقط با مجوز شما و API انجام می‌شود.

ساخت حساب و شروع
۰۳ / مسیر مناسب سایت شما

هر CMS، یک مسیر مشخص.

Connector فعال

Laravel API

مدل‌های موجود سایت را به قرارداد زیر وصل کنید. در status مقدار cms: laravel برگردانید. می‌توانید از مقالات شروع کنید و محصولات را بعداً اضافه کنید.

پرامپت‌های مرحله‌ای ←
Connector فعال

MegaShop

توسعه‌دهنده مگاشاپ API و صفحه مدیریت کلید را طبق همین قرارداد با cms: megashop می‌سازد. پس از نصب آن نسخه CMS، مالک از پنل کلید می‌گیرد و سایت را اضافه می‌کند.

در مگاشاپ محلی API مقاله و همگام‌سازی پیاده است؛ مدیر اصلی از تب AdminJump پروفایل کلید می‌سازد. کلید قدیمی برای ویرایش/انتشار/حذف باید نوسازی شود.
اتصال مستقیم به‌زودی

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 هنوز فعال نیست.

صفحه ساخت کلید باید در پنل همان CMS پیاده‌سازی شود؛ دکمه آماده‌ای از قبل فرض نمی‌کنیم.
۰۴ / قرارداد فنی ۱.۰

یک قرارداد مشترک، چند بخش مستقل.

قرارداد متنی ↗

همه مسیرها زیر https://your-site.com/api-jump هستند. کلید در هدر Bearer ارسال می‌شود. درخواست‌ها از بک‌اند AdminJump می‌آیند؛ مرورگر شما کلید سایت را دریافت نمی‌کند.

HTTP · Authorization
Authorization: Bearer YOUR_OWNER_API_KEY
Accept: application/json
Content-Type: application/json

فهرست سریع؛ همگام‌سازی در پس‌زمینه. در اتصال article_sync، مقالات یک‌بار وارد می‌شوند؛ تغییرات سایت با اعلان امضاشده دریافت می‌شوند و ذخیرهٔ ابزار در صف به سایت می‌رود. «وارد کردن» دریافت کامل مجدد را آغاز می‌کند. تاریخچه فقط پنج نسخهٔ متفاوت با متن و تصویر در فایل خصوصی نگه می‌دارد. قرارداد کامل صف و همگام‌سازی برای توسعه‌دهنده

وضعیت احرازشده

GET /api-jump/status باید کلید را واقعاً احراز کند. site_id برای سایت ثابت است؛ با تغییر دامنه عوض نمی‌شود. فقط فیلدها و مجوزهایی را اعلام کنید که واقعاً کار می‌کنند.

JSON · GET /api-jump/status
{
    "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/articlesarticles.readجست‌وجو، فیلتر و صفحه‌بندی مقالات
GET/articles/{id}articles.read / articles.updateمقاله و نسخه جاری
POST/articlesarticles.createایجاد واقعی مقاله؛ انتشار نیازمند articles.publish
PATCH/articles/{id}articles.updateویرایش اتمیک با version؛ منتشرشده نیازمند articles.publish
DELETE/articles/{id}articles.deleteحذف با version و Idempotency-Key
GET/changesarticles.readتغییرات پس از cursor؛ افزونهٔ article_sync
POST/subscriptionsOwner / articles.readثبت اعلان امضاشدهٔ تغییرات
POST/mediaarticles.create / articles.updateآپلود واقعی تصویر؛ افزونهٔ article_sync
GET/productsproducts.readفهرست محصولات با صفحه‌بندی
GET/products/{id}products.readجزئیات محصول و version
PATCH/products/{id}products.updateویرایش فقط فیلدهای پشتیبانی‌شده
صفحه‌بندی و پاسخ فهرست

q حداکثر ۲۰۰ نویسه، status یکی از draft/published/archived، page مثبت و per_page از ۱ تا ۱۰۰. AdminJump تعداد ۲۰ می‌فرستد؛ total باید پس از فیلتر محاسبه شود.

JSON · list response
{
    "success": true,
    "data": [
        {
            "id": "42",
            "title": "عنوان مقاله",
            "status": "draft",
            "version": "1"
        }
    ],
    "meta": {
        "total": 1,
        "current_page": 1,
        "per_page": 20
    }
}
ایجاد و ویرایش مقاله و محصول

شناسه resource در JSON باید رشته باشد. محتوای مقاله HTML پاک‌سازی‌شده است. محصولات فقط فیلدهای پشتیبانی‌شده، قیمت با واحد اعلام‌شده، موجودی عدد صحیح و توضیح متنی دارند.

JSON · PATCH /articles/42
{
    "title": "عنوان جدید",
    "content": "<h2>یک شروع تازه</h2><p>متن مقاله</p>",
    "status": "draft",
    "version": "7"
}
JSON · PATCH /products/24
{
    "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 اختلال.
۰۵ / نقشه پیاده‌سازی Laravel

از مدل‌های خودتان استفاده کنید.

برای شروع، فقط دو فیلد کافی است. فرم پایه عنوان و متن 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 کافی است.

شروع اتصال