محافظت، انتشار تدریجی و نسخهها
چه کسی استقرارهای شما را ببیند، نسخهٔ جدید کی و برای چه سهمی از بازدیدکنندهها پروداکشن شود، و صفحهای که باز مانده بعد از استقرار نشکند.
محافظت از استقرارها#
بهطور پیشفرض هر کس آدرس یک پیشنمایش را داشته باشد آن را میبیند. در تنظیمات ← محافظت استقرار پیشنمایشها (و اگر بخواهید پروداکشن) را محافظت کنید:
| حالت | چه کسی وارد میشود |
|---|---|
off | هر کس آدرس را دارد. |
team | اعضای تیمِ صاحب پروژه، پس از ورود به داشبورد. همهٔ پلنها. |
password | هر کس رمز را بداند. پلن حرفهای. |
پس از ورود، کوکیای روی همان آدرس گذاشته میشود که ۲۴ ساعت معتبر است. «خروج همه» (یا عوض کردن رمز) همهٔ کوکیها را باطل میکند.
- لینک اشتراکی (حرفهای): لینکی با تاریخ انقضا (تا ۹۰ روز) که بدون ورود باز میشود؛ لغو آن بازدیدهای آمده از همان لینک را هم فوراً میبندد.
- توکن عبور برای خودکارسازی (آزمونها، خزندهها): در هدر
x-protection-bypassیا پارامتر پرسوجوی همنام بفرستید. فقط یک بار نشان داده میشود. - استثناها: نام دامنههایی که هرگز محافظت نمیشوند (تا ۲۰).
- درخواستهای OPTIONS: اگر روشن باشد، بدون ورود عبور میکنند تا درخواستهای پیشپرواز CORS کار کنند.
cloudhost protection set --previews team --project shop
cloudhost protection bypass --project shop
cloudhost protection link create --hours 72 --label "client review" --project shopاستقرار بدون انتشار و انتشار#
با خاموش کردن «انتشار خودکار» در تنظیمات ← پیشرفته، بیلد پروداکشن پس از موفق شدن بررسیها زنده نمیشود: نسخه در آدرس خودش (rel-<نسخه>--<نام>) منتظر میماند. از صفحهٔ استقرار «انتشار» را بزنید تا همان لحظه پروداکشن شود، یا انتشار تدریجی را شروع کنید. بازگشت فوری (rollback) مثل قبل کار میکند.
cloudhost routing set --auto-promote off --project shop
cloudhost routing --project shop # candidates waiting
cloudhost promote 42 --project shopانتشار تدریجی#
انتشار تدریجی سهمی از ترافیک پروداکشن را به نسخهٔ جدید میفرستد، مثلاً ۱۰ ← ۲۵ ← ۵۰ ← ۱۰۰ درصد. هر بازدیدکننده با یک کوکی در یک طرف میماند، و بالا بردن درصد فقط بازدیدکنندههای جدید را جابهجا میکند. گامها را دستی بروید یا با برنامه (هر چند دقیقه یک گام). در صفحهٔ انتشار، درخواستها و خطاهای هر نسخه را دقیقه به دقیقه میبینید.
cloudhost release start 42 --steps 10,25,50,100 --every 30 --error-rate 2 --project shop
cloudhost release --project shop # the share, the plan, requests and errors per version
cloudhost release set 50 --project shop
cloudhost release stop --project shopمحافظت در برابر ناهمخوانی نسخه#
وقتی نسخهٔ جدید منتشر میشود، صفحهای که از نسخهٔ قبلی باز مانده هنوز فایلها و درخواستهای همان نسخه را میخواهد. با روشن کردن این گزینه در تنظیمات ← پیشرفته، نسخههای پروداکشنِ چند ساعت اخیر (پیشفرض ۱۲، تا ۱۶۸) زنده میمانند و درخواستی که نسخهاش را نام ببرد به همان نسخه میرود.
| درخواست چطور نسخهاش را نام میبرد | |
|---|---|
?dpl=<id> | پارامتر پرسوجو، مثلاً روی آدرس فایلهای استاتیک. |
x-deployment-id: <id> | هدر درخواستهایی که کد صفحه میفرستد. |
کوکی _dpl · _dpl cookie | هر بار بارگذاری صفحه آن را به نسخهای که صفحه را داد تنظیم میکند؛ برای درخواستهای بعدیِ همان صفحه به کار میرود، نه برای بارگذاری جدید که همیشه نسخهٔ جدید را میگیرد. |
شناسهٔ استقرار در زمان بیلد و اجرا در متغیر CLOUDHOST_DEPLOYMENT_ID است. چارچوبهایی که شناسهٔ استقرار را پشتیبانی میکنند (مثلاً گزینهٔ deploymentId در Next.js) آن را خودکار برمیدارند و ?dpl= و هدر را خودشان میفرستند؛ کار دیگری لازم نیست. در کد خودتان، شناسه را به آدرس فایلها (?dpl=) یا هدر x-deployment-id درخواستهایتان اضافه کنید، یا به کوکی تکیه کنید.
cloudhost routing set --skew on --skew-hours 12 --project shopاز دستیار هوش مصنوعی#
ابزارهای MCP: get_protection، set_protection، create_protection_bypass، delete_protection_bypass، create_share_link، revoke_share_link، get_routing، set_routing، promote_version، start_release، get_release، list_releases، set_release_percent، advance_release، stop_release.