ما ابزار خط فرمان جدیدی به اسم privacy-client یا pvcli را متن‌باز کردیم — تحت مجوز Apache-2.0 — تا کار با پروتکل‌های حفظ حریم خصوصی مثل Oblivious HTTP (OHTTP) را برای تیم‌های DevOps / SRE ساده‌تر کند. 🛠️🔒

pvcli این امکان را می‌دهد که با یک خط دستور کل جریان یک درخواست Oblivious HTTP شامل relay، gateway و origin را اجرا کنید. اگر با جزئیات OHTTP آشنایی ندارید نگران نباشید — در ادامه همه‌چیز را توضیح می‌دهیم. 😊

pvcli --ohttp 
 --first-hop https://relay-cloudflare.ohttp.info 
 --proxy https://gateway.ohttp.info 
 -X POST 
 --header "content-type: application/json" 
 --data '{"test":1}' 
 https://target.ohttp.info/anything

چرا ابزار اینقدر لازم بود؟ اشکال‌زدایی پروتکل‌های محافظت از حریم خصوصی معمولاً پیچیده است: چندین مرحله بین چند طرف مختلف وجود دارد، encoding باینری HTTP مطرح است، و مشخصات در چندین draft RFC پخش شده‌اند. وقتی این‌ها را کنار نیازهای ویژه مشتریان و پیکربندی‌های سفارشی قرار می‌دهید، ایجاد و حل مشکل در محیط تولید می‌تواند زمان‌بر و دست‌وپاگیر شود. 🐛🧭

ما این تجربه را از عملیاتی کردن پروتکل‌هایی مانند Oblivious HTTP در مقیاس صدها هزار تا میلیون‌ها درخواست در ثانیه به‌دست آوردیم. با گسترش محصولات تیم Privacy مثل Privacy Proxy و Privacy Gateway — که خدماتی مثل Apple Private Relay، Microsoft Edge Secure Network VPN و Flo Health’s Anonymous Mode را پشتیبانی می‌کنند — پیچیدگی و نیاز به ابزارهای قابل‌اعتماد برای توسعه و پاسخ به حادثه قابل توجه افزایش پیدا کرد.

به‌طور خلاصه، جریان OHTTP شامل حداقل سه نقش مهم است: کلاینت، relay (که نقش hop شبکه‌ای و جداسازی آدرس را دارد)، و gateway (که payload را پردازش/رمزگشایی می‌کند و درخواست را به origin می‌فرستد). کلاینت payload را به شکلی رمزنگاری‌شده می‌سازد که فقط gateway بتواند آن را بفهمد، و relay بین کلاینت و gateway قرار می‌گیرد تا رابطه شبکه‌ای را مبهم کند. این معماری ساده به‌نظر می‌رسد اما در عمل جزئیات پیاده‌سازی، encoding و هماهنگی بین بخش‌ها باعث بروز خطاهای سخت قابل‌ردیابی می‌شود.

pvcli برای حل همین مشکلات طراحی شده: یک ابزار CLI جمع‌وجور که می‌تواند درخواست‌های OHTTP را بسازد، ارسال کند و نتایج را در قالبی قابل‌فهم برای مهندسان DevOps/SRE نشان دهد. با pvcli می‌توانید به‌سرعت یک سناریوی end-to-end را بازتولید کنید، هدرها و payloadها را دست‌کاری کنید، و به‌سرعت بفهمید که مشکل در کدام بخش (relay / gateway / origin) رخ می‌دهد — بدون نیاز به استقرار پیچیده یا تغییر در محیط production. ⚙️📡

این ابزار برای کار در محیط‌های توسعه، تست‌های CI/CD و پاسخ‌گویی به حادثه مناسب است؛ مخصوصاً وقتی لازم است یک مشکل را روی ترافیک رمزنگاری‌شده و باینری بازتولید کنید. همچنین pvcli برای تیم‌هایی که مشتریان با نیازهای خاص دارند مفید است، چرا که می‌تواند سریع مسائل مربوط به پیکربندی‌ها، سازگاری‌های پروتکلی و edge-cases را روشن کند.

pvcli هم‌اکنون متن‌باز و آماده مشارکت است — pull requests و issueها پذیرفته می‌شود. اگر قصد دارید ابزار را در اسکریپت‌ها یا pipelineهای خود استفاده کنید، CLI بودن آن باعث می‌شود ادغام ساده باشد و برای اتوماسیون مناسب باشد. 🚀

خوشحال می‌شویم بازخورد شما را بشنویم و ببینیم ابزار چگونه برای تیم SRE/DevOps شما مفید واقع می‌شود. اگر خواستید می‌توانم چند سناریوی دقیق‌تر برای تست و عیب‌یابی با pvcli پیشنهاد دهم. 💬