envguard

إعدادات وأسرار بوعي بالمحافظة والقيم

Python 3.10+pydantic-settingspytestpyproject

كود المصدر على GitHub

رخصة: MIT

الفكرة

كل تطبيق بس محتاج مربع الأسرار: ما يطبعش الأسرار في اللوجز، وما يموت بخطأ غامض لما يكون مفتاح ناقص. envguard بتجمّع الحاجات دي فوق pydantic-settings بدل ما كل مشروع يعيد كتابتها.

الأسرار

أي حقل بيتعامل كسرّ عند تحقق أي شرط: نوعه SecretStr، أو اسمه فيه دلالة (secret، password، token، api_key، dsn…)، أو مُعلَّم صراحةً بـ json_schema_extra={"secret": true}. القيمة بتتحجب تلقائيًا من repr ومن اللوجز عبر فلاتر جاهزة.

رسائل خطأ ما بتكذبش

لما تكون مفاتيح مطلوبة ناقصة، بيظهر تقرير بأسماء المتغيرات الفعلية:

Missing 2 required setting(s):
  - DATABASE_URL: Field required
  - API_SECRET: Field required

بدل أثر استدعاء pydantic خام.

CLI

envguard example --model app_settings:Settings   # يولّد .env.example
envguard check --model app_settings:Settings     # يتحقق من البيئة الحالية

مع profiles: .env ثم .env.<profile> ثم .env.<profile>.local، واللي بيتحكم فيه ENVGUARD_PROFILE.