کلودفلر OAuth رو برای همه باز کرد
خلاصهٔ کاملتر
کلودفلر تو بلاگ رسمیاش اعلام کرده که self-managed OAuth رو برای همهٔ مشتریهاش باز کرده. تا قبل از این، OAuth شخصثالث فقط از راه چند اینتگریشن دستیآنبوردشده در دسترس بود (اگه از Wrangler یا سرویسهایی مثل PlanetScale استفاده کردی، عملاً باهاش کار کردی) و بقیهٔ توسعهدهندهها چارهای نداشتن جز API token — که هم مدیریتش سختتره و هم برای فلوهای دسترسی نیابتی (delegated) اصلاً گزینهٔ خوبی نیست.
به گفتهٔ نویسندهها، چیزی که این تغییر رو ضروری کرد رشد پلتفرم توسعهدهنده و مخصوصاً ابزارهای agentic بود که تقاضا برای دسترسی نیابتی رو بالا برد. حالا سازندهٔ یه اینتگریشن SaaS یا ابزار agentic میتونه فلوی استاندارد OAuth رو ارائه بده: کاربر دقیقاً میبینه چه اپلیکیشنی چه دسترسیای میخواد، scope محدود میده و هر وقت خواست از داشبورد پسش میگیره.
قبل از باز کردن در، کلودفلر مدل مجوزها و تجربهٔ رضایت (consent) رو پختهتر کرده: صفحهٔ consent شفافتر شد، revocation به داشبورد اضافه شد و مالکیت اپها قابلمشاهدهتر شد تا جلوی فیشینگ با OAuth گرفته بشه.
بخش فنی جذاب ماجرا ارتقای موتور زیرینـه: کلودفلر سالها از Hydra (موتور OAuth متنباز) استفاده میکرده و برای این جهش لازم بود اول به آخرین نسخهٔ 1.X و بعد به 2.X بره. مایگریشنهای اسکیمای Hydra روی جدولهای حیاتی قفل انحصاری میگرفتن، برای همین تیم مایگریشنهای SQL رو با CREATE INDEX CONCURRENTLY بازنویسی کرد و یه نسخهٔ سفارشی از Hydra ساخت که بهجای SELECT * ستونها رو صریح انتخاب کنه.
برای نسخهٔ 2.X ارتقای درجا جواب نمیداد، پس سراغ استراتژی blue-green رفتن. مشکل این بود که کل مهاجرت چند ساعت طول میکشید و در این پنجره نباید revocation کاربرها گم میشد. راهحل: عمر توکنها رو موقتاً چند ساعته کردن تا تعداد writeها کم بشه، و رویدادهای revocation رو با Cloudflare Queues تو یه صف نگه داشتن تا بعد از سوییچ روی نسخهٔ جدید replay بشن — وگرنه دسترسی اپهایی که کاربر لغو کرده بود دوباره برمیگشت.
اجرا بیدردسر نبود: بعد از کاتاور 1.X، سختگیری جدید Hydra روی refresh token باعث میشد استفادهٔ دوبارهٔ یه توکن کل زنجیرهٔ سشن رو باطل کنه — که برای کلاینتهای پرترافیک مثل Wrangler و MCP دردسر بود و با coalescing کردن درخواستهای refresh تو یه Worker جمعش کردن. بعد از کاتاور 2.X هم یه باگ تو مایگریشن، بعضی سشنهای معتبر رو خراب کرد و موج ۴۰۳ راه انداخت که با بازیابی داده جبران شد.
نتیجهٔ نهایی به گفتهٔ تیم: حدود سه ساعت زمان اجرای مایگریشن در پروداکشن، و بهبود محسوس عملکرد — P95 API از ۱۸۵ به ۱۰۱ میلیثانیه (۴۵٪ کمتر)، مصرف CPU ۳۷٪ کمتر، حافظهٔ RSS ۱۴٪ کمتر و تخصیص heap زبان Go ۴۰٪ کمتر. تو مایگریشن هم چیزی حدود ۱۳۲ میلیون رکورد آپدیت و ۱۱۴ میلیون رکورد درج شد.
نکات کلیدی:
- هر مشتری کلودفلر حالا میتونه اپ OAuth خودش رو بسازه؛ دیگه لازم نیست شریک دستیآنبوردشده باشی
- OAuth جای API token رو برای دسترسی نیابتی میگیره: consent شفاف، scope محدود، لغو دسترسی از داشبورد
- موتور OAuth کلودفلر (Hydra) با استراتژی blue-green و صف replay برای revocationها ارتقا پیدا کرد
- مایگریشنها با CREATE INDEX CONCURRENTLY بازنویسی شدن تا قفل انحصاری روی جدولهای حیاتی نیفته
- بعد از ارتقا: P95 از ۱۸۵ به ۱۰۱ میلیثانیه، CPU ۳۷٪ و heap ۴۰٪ کمتر




