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

مدیریت بسته‌ها

بسته (ADR-0006) مجموعه‌ای نسخه‌دار و امضاشده است که تعریف زیرگردش‌ها، مشخصات بلوک‌ها، تعریف نقش‌ها و قوانین دسترسی پیش‌فرض را با هم می‌آورد، تا فضای کاری بتواند با وارد کردن همین یک مجموعه یک حوزهٔ کاری کامل را راه بیندازد و لازم نباشد همه‌چیز را از صفر بسازد. engmanager-parity-v0، اولین بسته‌ای که Eduba می‌دهد، یک راه‌اندازی کامل برای مدیریت تغییرات مهندسی است: زیرگردش‌ها، بلوک‌ها، نقش‌هایی مثل کنترل‌کننده و تأییدکننده و قوانین دسترسی اولیه، به‌علاوهٔ دو گردش‌کار گواهی‌شده که مستقیم در طراح بارگذاری می‌شوند.

مجوز لازم

وارد کردن بسته به مجوز importPack نیاز دارد؛ پیوست و مدیریت استانداردهایی که بسته می‌آورد با attachStandard و manageStandards انجام می‌شود. مدیریت بسته کار مدیر فضای کاری است و نقش workflow_admin آن را دارد.

وارد کردن یک بسته​

وارد کردن یک راهنمای کوتاه چندمرحله‌ای دارد:

  1. بارگذاری فایل امضاشدهٔ بسته (یک فایل pack.json) و انتخاب حالت وارد کردن:
    • استفاده از نسخهٔ گواهی‌شده: فضای کاری مستقیم به تعریف‌های ناشر ارجاع می‌دهد و ارتقاها بعداً به‌صورت به‌روزرسانی بسته می‌رسند.
    • کپی اختصاصی در کتابخانهٔ سازمان: هر زیرگردشی که بسته می‌آورد به‌صورت یک تعریف متعلق به سازمان کپی می‌شود و مدیر آن را جداگانه مدیریت می‌کند.
  2. پیش‌نمایش (اجرای آزمایشی): پلتفرم امضای ناشر را بررسی می‌کند و پیش از نوشتن هر چیزی نشان می‌دهد وارد کردن چه می‌کند: قوانین دسترسی‌ای که اضافه می‌شوند، آن‌هایی که نادیده گرفته می‌شوند (از قبل هستند) یا نامعتبرند، و نقش‌هایی که بسته می‌آورد.
  3. وارد کردن پیش‌نمایش را اعمال می‌کند: defaultRules بسته به قوانین دسترسی فضای کاری اضافه می‌شود (قاعده‌های موجود هرگز رونویسی نمی‌شوند) و بسته به یک بستهٔ نصب‌شده تبدیل می‌شود که منتظر فعال‌سازی است.

تکمیل راه‌اندازی: نگاشت نقش‌ها و تعارض‌ها​

بستهٔ واردشده تا وقتی فعال نشود قابل استفاده نیست. فعال‌سازی مرحلهٔ دوم است؛ یا بلافاصله بعد از وارد کردن، یا بعداً از گزینهٔ «تکمیل راه‌اندازی» خود بسته، اگر وارد شده ولی کامل نشده باشد:

  • نگاشت نقش‌ها. هر نقشی که بسته می‌آورد (مثلاً checker و approver) باید به یک نقش یا گروه موجود در فضای کاری نگاشت شود تا قوانین مربوط به نقش و واگذاری‌های مبتنی بر نقش بسته اثر کنند. مدیری که manageUsers دارد می‌تواند همهٔ نقش‌های نگاشت‌نشده را با یک اقدام خودکار بسازد و نگاشت کند، یا هرکدام را با انتخاب‌گر جداگانه نگاشت کند. نقش الزامی تا نگاشت نشود فعال‌سازی را متوقف می‌کند؛ نقش اختیاری نگاشت‌نشده مانع فعال‌سازی نیست، اما قوانین و واگذاری‌هایش بی‌سروصدا غیرفعال می‌مانند تا نگاشت شود، و پنجره تا زمانی که این مشکل حل نشده هشدار آن را نشان می‌دهد.
  • رفع تعارض. اگر بستهٔ نصب‌شدهٔ دیگری بلوکی با همان blockTypeId از ناشر دیگر یا نسخهٔ ناسازگار داشته باشد، فعال‌سازی متوقف می‌شود تا مدیر مشخص کند نسخهٔ کدام بستهٔ نصب‌شده بماند.

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

قوانین آمده با بسته در قوانین دسترسی چطور دیده می‌شوند​

هر قاعده‌ای که defaultRules یک بسته اضافه کند علامت قفل‌شده می‌گیرد: این ردیف‌ها در جدول دسترسی‌های قوانین دسترسی با نماد قفل دیده می‌شوند و از همان‌جا قابل تغییر نیستند؛ این‌ها را بسته آورده و دستی داده نشده‌اند، پس برای تغییرشان باید بسته را به‌روز کنید یا بردارید، نه اینکه یک خانه را دستی ویرایش کنید. فضای کاری همچنان آزاد است قاعده‌های خودش را کنار قاعده‌های بسته اضافه کند، از جمله یک «ممنوع» باریک‌تر (اولویت «ممنوع» در ADR-0005).

به‌روزرسانی و برداشتن بسته‌ها​

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

طرح‌های تجاری​

وارد کردن بسته با طرح تجاری فضای کاری هم ارتباط دارد (ADR-0006 §4): فضاهای کاری طرح مقدماتی می‌توانند از کتابخانهٔ بسته‌ها وارد کنند، ولی نمی‌توانند زیرگردش سفارشی بسازند یا کپی اختصاصی بگیرند؛ طرح حرفه‌ای کتابخانهٔ کامل، زیرگردش‌های سازمان و کپی گرفتن را اضافه می‌کند؛ طرح سازمانی سقف گردش‌کار منتشرشده را برمی‌دارد و بلوک‌های SDK سفارشی را مجاز می‌کند. هر درخواست ساخت یا انتشاری که از سقف طرح بگذرد با خطای tier_limit_exceeded رد می‌شود؛ اجراهایی که در جریان‌اند، حتی بعد از تنزل طرح، همیشه تا آخر ادامه می‌دهند.

مطالب مرتبط​

اشتباهی دیدید؟ درخواست تغییر بدهید.