پرش به مطلب اصلی

مانیفست برنامهٔ سفارشی

شناسهٔ شِما: custom-app-manifest@1 شِمای قابل‌خواندن توسط ماشین: custom-app-manifest.schema.json

توصیف مرجع یک برنامهٔ سفارشی React (بخش 6.3): همان remote در Module Federation که Platform Shell برای یک برنامهٔ دست‌نویس در یک محیط بارگذاری می‌کند. یک مانیفست به شکل یکسان اعتبارسنجی می‌شود، چه از طریق Admin Control Center ثبت شده باشد، چه با یک فراخوانی مستقیم API ارسال شده باشد، چه یک دستیار هوش مصنوعی تولیدش کرده باشد، و چه درون یک وارد کردن راه‌حل حمل شده باشد — قاعدهٔ تک‌مسیرِ اعتبارسنجی (بخش 6.7).

شکل​

فیلدنوعاجبارییادداشت‌ها
logicalNamestringبلهپیشوند ناشر در ابتدا، با snake-case کوچک (مثلاً par_sales_dashboard). به‌عنوان شناسهٔ پایدار آرتیفکت برنامه به کار می‌رود — مخاطبِ App Context Token آن.
displayNamestringبلهنام خوانا برای انسان که در صفحهٔ خانهٔ پوسته نمایش داده می‌شود.
descriptionstring | nullخیرتوصیف کوتاهی که روی کاشی برنامه نمایش داده می‌شود.
entryFileNamestringخیرفایل ورودی ظرف درون بسته (مثلاً remoteEntry.js)، برداشته‌شده از مانیفست خود بایگانی. در حالت میزبانی‌شده تهی است، که بسته‌ای ندارد.
packageHashstring | nullخیرSHA-256 شانزده‌شانزدهی حروف‌کوچکِ بایگانی‌ای که این برنامه از آن ثبت شد. در حالت میزبانی‌شده null است. هنگام ورود راه‌حل در برابر بایت‌هایی که در بسته سفر کرده‌اند وارسی می‌شود، تا آنچه ارائه می‌شود همان باشد که برون‌برد شده بود.
remoteEntryUrlstringبلهیا یک نشانی مطلق http(s) به remoteEntry.js مربوط به remote (حالت Hosted — مبدأ آن باید در فهرست مجاز پوستهٔ آن محیط باشد، بخش 6.3)، یا یک ارجاع webresource:<logicalName> (حالت Packaged، بخش 6.15) — بسته به‌عنوان منبع وب ذخیره و توسط پلتفرم سرو می‌شود، و پوسته آن را به یک نشانی سروِ پلتفرم رفع می‌کند و دست‌اول می‌شمارد.
scopestringبلهنام scope سراسری کانتینر Module Federation (برای هر remote یکتا)، منطبق با federation({ name }) آن remote.
modulestringبلهمسیر ماژول در معرض قرارگرفته که پوسته بارگذاری می‌کند (مثلاً ./App). باید با ./ آغاز شود.
requestedScopesstring[]بلهاسکوپ‌هایی که برنامه اعلام می‌کند لازم دارد؛ هنگام صدور App Context Token آن درخواست و با دسترسی‌های خودِ کاربر اشتراک گرفته می‌شوند. می‌تواند خالی باشد.
declaredEntitiesstring[]بلهجدول‌هایی که برنامه اعلام می‌کند به آن‌ها دسترسی دارد، برای بازبینی و اعتبارسنجی وابستگی. می‌تواند خالی باشد.

کجا اعتبارسنجی می‌شود​

  • ثبت — لایهٔ Application مانیفست را در برابر custom-app-manifest@1 اعتبارسنجی می‌کند و پیش از ثبت برنامه در یک محیط، الزام می‌کند که logicalName با پیشوند ناشر مالک آغاز شود.
  • وارد کردن راه‌حل — هر مانیفست جاسازی‌شده در یک بستهٔ راه‌حل، پیش از ثبت برنامه در محیط مقصد، دوباره در برابر همان شِما اعتبارسنجی می‌شود، تا بسته‌ای که دستی ویرایش شده نتواند یک remote نامعتبر را از لای درها رد کند.

یادداشت‌های امنیتی​

یک برنامهٔ سفارشی React در همان realm جاوااسکریپت پوسته اجرا می‌شود (Module Federation، نه یک iframe — بخش 6.3)، بنابراین مرز اعتماد جای دیگری اعمال می‌شود: مبدأ remoteEntryUrl باید برای آن محیط در فهرست مجاز باشد (CSP)، برنامه تنها در صورتی قابل بارگذاری است که یک راه‌حل آن را در آن محیط مستقر کرده باشد، و هر فراخوانی داده‌ای که از طریق Runtime SDK انجام می‌دهد در سمت سرور در برابر اسکوپ‌های روی App Context Token آن مجوزدهی می‌شود. اعلام یک اسکوپ در requestedScopes هرگز آن را اعطا نمی‌کند — آن اسکوپ با آنچه کاربر پیشاپیش در اختیار دارد اشتراک گرفته می‌شود.

مرتبط​

  • مرجع Runtime SDK (اینکه یک برنامهٔ سفارشی چگونه useParswareRuntime() را مصرف می‌کند).
  • بستهٔ راه‌حل — این مانیفست‌ها را زیر آرایهٔ customApps خود میان محیط‌ها حمل می‌کند.