التحقق من اسم متغير البيئة وفق قواعد POSIX
تحقّق من أن اسم متغير البيئة صالح للنقل قبل أن يُفشل عملية نشر: الاسم DATABASE_URL صالح، أما الاسم الذي يبدأ برقم أو يحتوي على شرطة فيُرفض مع ذكر القاعدة التي خالفها. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- DATABASE_URL
- الاسم
- DATABASE_URL
- الاصطلاح
- POSIX
تبدو أسماء متغيرات البيئة بسيطة، لكن النشر قد يفشل بسبب رقم في البداية أو شرطة أو مسافة أو محرف غير قابل للنقل. تتحقق هذه الأداة من الاسم وفق اصطلاح POSIX؛ فتسمح بحروف ASCII والأرقام والشرطة السفلية، وتشترط أن يكون المحرف الأول حرفاً أو شرطة سفلية. إذا كان الاسم صحيحاً، تعرض تأكيداً واضحاً، وإذا كان غير صحيح، تحدد القاعدة المخالفة. لذلك يمكنكم استخدامها في المحررات ونماذج الإعداد وفحوص CI ومولدات التهيئة.
الأسماء التي تقبلها الأداة
يستخدم اسم متغير البيئة القابل للنقل مجموعة محارف محدودة عمداً. يجب أن يكون المحرف الأول حرف ASCII من A إلى Z أو من a إلى z، أو شرطة سفلية. ويمكن أن تكون المحارف اللاحقة أرقاماً من 0 إلى 9 أيضاً.
لذلك تجتاز الأسماء DATABASE_URL وHOME و_INTERNAL_FLAG وAPI2_TOKEN الفحص. تتحقق الأداة من السلسلة كاملة ولا تحاول إصلاحها أو تطبيعها أو حذف المسافات منها. تمنع هذه الصرامة التنظيف الصامت من تحويل القيمة التي أدخلتموها إلى معرّف مختلف.
وتُحفظ حالة الأحرف، لذا فإن PATH وPath اسمان مختلفان. يقتصر الفحص على صياغة الاسم القابلة للنقل، ولا يحدد ما إذا كان المتغير موجوداً أو مُصدّراً أو يحمل قيمة أو يدعمه برنامج معين. عند النجاح، تعيد الاستجابة الاسم الأصلي ومؤشر الصلاحية ورسالة موجزة تؤكد الاصطلاح المطبق.
كيفية تفسير الأسماء غير الصالحة
يحصل كل نوع من الأخطاء على تفسير مناسب كي تتمكنوا من تصحيح المشكلة الفعلية. تفشل السلسلة الفارغة لأنها لا تحتوي على محرف أول. ويفشل الاسم الذي يبدأ برقم بسبب قاعدة المحرف الأول، مع أن الأرقام مسموحة في المواضع اللاحقة.
كما تُرفض الشرطة أو النقطة أو المسافة أو الحرف غير المنتمي إلى ASCII في البداية. إذا كانت البداية صحيحة وظهر محرف ممنوع لاحقاً، تحدد الرسالة ذلك المحرف وموضعه مع بدء العد من 1. ولا تخلط الأداة بين تعيين مثل NAME=value وبين اسم المتغير، إذ ترفض علامة المساواة.
استخدام الفحص في مسارات التطوير
يناسب هذا الفحص كل موضع تُقبل فيه الأسماء قبل وصول التهيئة إلى الصدفة أو بيئة العملية. يمكن لنموذج النشر التحقق من المفتاح عند إرساله وإظهار القاعدة التي تتطلب التصحيح. ويمكن لمولد التهيئة رفض المفاتيح غير الصالحة قبل إنشاء ملف dotenv أو بيان حاوية أو تعريف خدمة أو خريطة أسرار CI.
كما يمكن لأدوات التحليل وفحوص المستودع تطبيق القاعدة الحتمية نفسها على القوالب والأمثلة. لا تعني سلامة الصياغة توافق الاسم مع كل تطبيق، فقد تفرض بعض الأدوات قواعد إضافية أو تحجز بادئات معينة.
حالات الاستخدام
التحقق من إعدادات النشر
تحققوا من الأسماء قبل حفظ تهيئة قد تعجز بيئة التشغيل عن إتاحتها بصورة موثوقة.
حماية مولدات dotenv
ارفضوا المفاتيح غير الصحيحة قبل إنشاء ملف لا يظهر فشله إلا عند تشغيل التطبيق.
إضافة فحص تسمية إلى CI
تحققوا من القوالب والأسماء الموثقة بقاعدة حتمية أثناء فحوص المستودع الآلية.
الأسئلة الشائعة
ما المحارف المسموح بها؟
يُسمح بحروف ASCII والأرقام والشرطة السفلية، ويجب أن يكون المحرف الأول حرف ASCII أو شرطة سفلية.
هل يمكن أن يبدأ الاسم برقم؟
لا. تُسمح الأرقام بعد المحرف الأول فقط؛ لذلك يفشل 2FA_TOKEN بينما ينجح TOKEN_2FA.
هل يتحقق الفحص من وجود المتغير؟
لا. فهو يتحقق من الاسم المقترح فقط، ولا يقرأ البيئة ولا يفحص ما إذا كان المتغير مُصدّراً أو مسنداً.
هل الأسماء المكتوبة بأحرف صغيرة صالحة؟
نعم. تُقبل أحرف ASCII الكبيرة والصغيرة، وتُحفظ حالة الأحرف الأصلية كما أُدخلت.
هل تصحّح الأداة الاسم غير الصالح أو تقصّه؟
لا. يُفحص النص كاملًا كما كتبته، دون حذف المسافات أو إصلاح الأحرف، لأن التنظيف الصامت قد يحوّل اسمك إلى اسم آخر. وبدلًا من ذلك تخبرك رسالة الخطأ بالقاعدة التي فشلت وبموضع المخالفة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/env-var-name-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DATABASE_URL"}'const res = await fetch("https://api.kit.forhosting.com/dev/env-var-name-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DATABASE_URL"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/env-var-name-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DATABASE_URL"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/env-var-name-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DATABASE_URL"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DATABASE_URL"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/env-var-name-validate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "DATABASE_URL"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.env_var_name_validate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيفية تفسير الأسماء غير الصالحة
فعلى سبيل المثال، يفشل API-KEY بسبب الشرطة، ويفشل API KEY بسبب المسافة. تستخدم الأخطاء المعرّفة الرمز invalid_input، وبذلك تستطيع برامج API التمييز بين إدخال قابل للتصحيح وعطل داخلي من دون تحليل نصوص النقل.
استخدام الفحص في مسارات التطوير
لا تستخدم الخوارزمية الشبكة، ولا تقرأ بيئة العملية، ولا تخزن الإدخال، ولا تعتمد على الوقت أو العشوائية؛ لذلك تعطي النتيجة نفسها في المتصفح والاختبارات وواجهة API. تكلفة طلب API هي $0.002.
أسئلة تقنية
هل تُسمح الشرطة أو النقطة؟
لا. تؤدي الشرطة أو النقطة أو المسافة أو علامة المساواة أو أي محرف غير قابل للنقل إلى invalid_input.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن تشغيل الفحص الحتمي نفسه في المتصفح أيضاً.