الفكرة
كل تطبيق بس محتاج مربع الأسرار: ما يطبعش الأسرار في اللوجز، وما يموت بخطأ غامض لما يكون مفتاح ناقص. 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.