DAT
دستاویزات

خرابی کے کوڈ

یہ DAT کی سرکاری طور پر معاونت یافتہ سروس لائبریریوں کے مشترکہ خرابی کوڈ ہیں۔

ہر کوڈ کے ساتھ اثر اور دوبارہ کوشش دو قدریں لگتی ہیں، اور بعض کے ساتھ اضافی طور پر مشتبہ کا لیبل بھی لگتا ہے۔

اثر — سروس پر پڑنے والا نقصان

یہ الرٹ لگانے کا معیار ہے۔ صرف یہی دیکھا جاتا ہے کہ "کیا اس وقت سروس رک گئی ہے؟"

اثرمطلبمثال
نازکسروس یا کوئی خاص فعل رک جاتا ہے۔ اجرا ناممکن، ہم آہنگی کی مستقل ناکامی، ابتدائیہ کی ناکامیاجرا کرنے والے سرور کے پاس استعمال کے قابل ایک بھی سرٹیفکیٹ نہیں
جزویکچھ درخواستیں یا چکر ناکام ہوتے ہیں مگر سروس چلتی رہتی ہے۔ عموماً خود بحال ہو جاتی ہےCMS کا ایک چکر ناکام۔ موجودہ سرٹیفکیٹس سے کام جاری
بے اثرایک درخواست مسترد کر کے بات ختمچھیڑ چھاڑ شدہ ٹوکن آیا۔ چھان کر نکال دینا کافی ہے

بے اثر الرٹ کا ہدف نہیں۔ اگر ایک بار غلط ان پٹ آنے پر تمام ذمہ داروں کو دیکھنا پڑے تو الرٹ بے معنی ہو جاتا ہے۔

مشتبہ — مسلسل ہو تو تحقیق

مشتبہ لیبل والے کوڈ ایک بار آنے پر معمول کے آپریشن کا حصہ ہیں۔ کلائنٹ کسی بھی وقت غلط قدر بھیج سکتا ہے، اور اسے چھان کر نکالنا ہی لائبریری کا اصل کام ہے۔

البتہ یہ خرابیاں اگر مسلسل، یا کسی خاص ماخذ سے جھنڈ کی صورت میں آئیں تو دو میں سے ایک بات ہے۔

  • کنفیگریشن کی خرابی — تعیناتی غلط ہے، یا پرانے ورژن کے کلائنٹ باقی ہیں، یا سرٹیفکیٹس میل نہیں کھاتے۔
  • ہیکنگ کی کوشش — ٹوکن یا کی میں چھیڑ چھاڑ کر کے تصدیق سے گزرنے کی کوشش، یا درست قدر ڈھونڈنے کی جستجو۔

اسی لیے ان کوڈز کے گنتی کو اشاریے کے طور پر رکھنا درست ہے۔ صرف حد سے تجاوز پر اطلاع دینا کافی ہے۔

دوبارہ کوشش

دوبارہ کوششمطلب
عارضیبیک آف کے بعد دوبارہ کوشش سے حل ہو جاتا ہے
مستقلدوبارہ کوشش ممنوع۔ کنفیگریشن یا ان پٹ درست کرنا ہوگا
حالتخرابی نہیں بلکہ ایک اشارہ ہے

ٹوکن

موصولہ ٹوکن سٹرنگ میں خود مسئلہ۔

DAT_TOKEN_MALFORMEDبے اثرمستقلshieldمشتبہ

نقطوں سے الگ ہونے والے حصے پانچ نہیں ہیں، یا expire خالص اعشاری عدد نہیں، یا cid خالص سولہ عددی نہیں، یا plain یا secure base64url نہیں، یا کوئی عددی فیلڈ صحیح عدد کی حد سے تجاوز کر گیا۔

arrow_forwardدرخواست مسترد کریں

DAT_TOKEN_EXPIREDبے اثرمستقل

expire <= now۔ عین وقت بھی میعاد ختم شمار ہوتا ہے — یعنی expire == now ہو تو پہلے ہی ختم شدہ سمجھا جاتا ہے۔

arrow_forwardٹوکن دوبارہ جاری کرنے کی ترغیب

DAT_TOKEN_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی ٹوکن خرابی۔

arrow_forwardلاگ دیکھیں

میعاد کا خاتمہ اور صیغے کی خرابی لازماً مختلف ہیں

ردعمل بالکل الٹ ہے — میعاد کا خاتمہ عمر کا معمول کا اختتام ہے سو ٹوکن تجدید کرا دینا کافی ہے، جبکہ صیغے کی خرابی کا مطلب ہے کہ ٹوکن سرے سے ہمارا جاری کردہ ہی نہیں، لہٰذا اسے مسترد کرنا ہوگا۔

تجزیہ پہلے ساخت کو حتمی کرتا ہے، پھر قدروں کو دیکھتا ہے۔ "1.2.3" جیسی ناقص حصوں والی سٹرنگ ختم شدہ ٹوکن نہیں بلکہ سرے سے ٹوکن ہی نہیں، اس لیے وہ DAT_TOKEN_MALFORMED ہے۔

expire فیلڈ میں +100 جیسی علامت لگی ہو تو یہ بھی میعاد کا معاملہ نہیں بلکہ صیغے کی خرابی ہے۔ صرف خالص ASCII ہندسے قبول ہیں۔


سرٹیفکیٹ

سرٹیفکیٹ سٹرنگ کے صیغے کا، اور اس سرٹیفکیٹ کو اس وقت استعمال کیا جا سکتا ہے یا نہیں، اس کا مسئلہ۔

DAT_CERT_MALFORMEDنازکمستقل

نقطوں سے الگ ہونے والے حصے آٹھ نہیں ہیں، یا cid، start، duration، ttl کا تجزیہ ناکام ہوا، یا کی فیلڈ base64url نہیں، یا start + duration + ttl نے u64 کی حد پار کر لی۔

arrow_forwardسرٹیفکیٹ دوبارہ تعینات کریں

DAT_CERT_EXPIREDنازکمستقل

start + duration + ttl < now۔ مکمل طور پر ختم شدہ حالت جس میں نہ اجرا ممکن ہے نہ تصدیق۔

arrow_forwardسرٹیفکیٹ کی تجدید

DAT_CERT_NOT_YET_ISSUABLEنازکعارضی

now < start۔ اجرا کی کھڑکی ابھی کھلی نہیں۔

arrow_forwardانتظار

DAT_CERT_ISSUANCE_ENDEDنازکمستقل

now > start + duration ہے مگر ttl باقی ہے۔ اجرا نہیں ہو سکتا، صرف تصدیق ممکن ہے۔

arrow_forwardنیا سرٹیفکیٹ تعینات کریں

DAT_CERT_VERIFY_ONLYنازکمستقل

دستخطی نجی کی کے بغیر صرف عوامی کی رکھنے والا سرٹیفکیٹ۔ تصدیق ہو جاتی ہے مگر اجرا ناممکن ہے۔

arrow_forwardتعیناتی کی ترتیب دیکھیں

DAT_CERT_NOT_FOUNDبے اثرمستقلshieldمشتبہ

ٹوکن کے cid سے متعلقہ سرٹیفکیٹ ہمارے پاس نہیں۔ یا تو جعلی ٹوکن ہے یا غلط تعیناتی۔

arrow_forwardدرخواست مسترد کریں

DAT_CERT_NOT_SYNCEDجزویعارضی

وہ cid ابھی CMS سے موصول نہیں ہوا۔ نیا سرٹیفکیٹ تعینات ہونے کے فوراً بعد تھوڑی دیر کے لیے ہوتا ہے۔

arrow_forwardہم آہنگی کے بعد دوبارہ کوشش

DAT_CERT_DUPLICATE_CIDنازکمستقل

import کی جانے والی فہرست میں ایک ہی cid دو یا زیادہ بار موجود ہے۔

arrow_forwardسرور کا جواب دیکھیں

DAT_CERT_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی سرٹیفکیٹ خرابی۔

arrow_forwardلاگ دیکھیں

DAT_CERT_NOT_FOUND اور DAT_CERT_NOT_SYNCED کی ظاہری علامت ایک جیسی ہے مگر ردعمل مختلف۔ پہلا وہ cid ہے جو ہم نے کبھی جاری ہی نہیں کیا سو انتظار سے کچھ نہیں ہوتا، جبکہ دوسرا ہم آہنگی ہوتے ہی حل ہو جاتا ہے۔

DAT_CERT_NOT_FOUND ایک بار آئے تو بس چھان کر نکال دینا کافی ہے، مگر اچانک بڑھ جائے تو مطلب ہے کہ تعیناتی بگڑ گئی ہے یا جعلی ٹوکن گردش کر رہے ہیں۔


دستخط

DAT_SIG_MISMATCHبے اثرمستقلshieldمشتبہ

دستخط کی تصدیق عدم مطابقت پر ختم ہوئی۔ HMAC کی قدر مختلف ہے یا ECDSA verify نے false دیا۔

arrow_forwardسیشن بند کریں، سیکیورٹی لاگ

DAT_SIG_MALFORMEDبے اثرمستقلshieldمشتبہ

دستخط کا حصہ خالی ہے، یا base64url نہیں، یا ECDSA کی r‖s لمبائی منحنی سے میل نہیں کھاتی، یا DER میں تبدیلی ناکام ہوئی۔

arrow_forwardدرخواست مسترد کریں

DAT_SIG_KEY_MISSINGنازکمستقل

verify-only کی سے دستخط کی کوشش کی گئی۔ یعنی رن ٹائم پر نجی کی موجود نہیں۔

arrow_forwardاجرا سرور کی ترتیب دیکھیں

DAT_SIG_BACKENDجزویمستقل

دستخط یا تصدیق کا عمل ہی نہ چل سکا۔ غلط کی قسم، آزاد شدہ ہینڈل، یا خفیہ نگاری لائبریری کی اندرونی خرابی۔

arrow_forwardکی کی قسم اور لائبریری دیکھیں

DAT_SIG_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی دستخط کی خرابی۔

arrow_forwardلاگ دیکھیں

عدم مطابقت اور بیک اینڈ کی ناکامی کو خلط ملط نہ کریں

دونوں کوڈز کے محور بالکل الٹ ہیں۔

  • DAT_SIG_MISMATCH — آنے والا دستخط بس میل نہیں کھاتا، سو سروس پر کوئی اثر نہیں، البتہ مسلسل ہو تو مشتبہ کا معاملہ بن جاتا ہے۔
  • DAT_SIG_BACKEND — تصدیق کا عمل ہی نہ چل سکا، سو یہ ہماری طرف کا مسئلہ ہے، مشتبہ کا معاملہ نہیں۔

اگر غلط کی قسم یا لائبریری کے بگ کو "دستخط کی عدم مطابقت" کہہ کر رپورٹ کیا جائے تو درحقیقت ہمارے اپنے کوڈ کی خرابی حملے کے اشاریوں میں گھل مل جاتی ہے۔ اور اس کے برعکس اگر حقیقی جعل سازی بیک اینڈ خرابی میں شمار ہو جائے تو وہ مشتبہ اشاریوں سے سرے سے نکل جاتی ہے۔


خفیہ کاری

secure پے لوڈ کی خفیہ کاری اور کشائی کا مسئلہ۔

DAT_CRYPTO_TAG_MISMATCHبے اثرمستقلshieldمشتبہ

AES-GCM کا تصدیقی ٹیگ میل نہیں کھاتا۔ یا تو secure میں چھیڑ چھاڑ ہوئی ہے یا سرٹیفکیٹ کی مختلف ہے۔

arrow_forwardسیشن بند کریں، سیکیورٹی لاگ

DAT_CRYPTO_DATA_INVALIDبے اثرمستقلshieldمشتبہ

خفیہ متن خالی نہیں مگر IV (12 بائٹ) سے چھوٹا یا برابر ہے، یا ان پٹ نفاذ کی حد (INT_MAX وغیرہ) سے تجاوز کر گیا۔

arrow_forwardدرخواست مسترد کریں

DAT_CRYPTO_BACKENDجزویمستقل

خفیہ کاری یا کشائی کا عمل نہ چل سکا۔ GCM کی سپورٹ نہ رکھنے والا پلیٹ فارم یا سیاق کی ابتدائیہ کی ناکامی۔

arrow_forwardپلیٹ فارم سپورٹ دیکھیں

DAT_CRYPTO_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی خفیہ کاری/کشائی کی خرابی۔

arrow_forwardلاگ دیکھیں

خالی secure پے لوڈ خرابی نہیں ہے۔ خالی ان پٹ خالی آؤٹ پٹ بن جاتی ہے اور کوئی کوڈ جاری نہیں ہوتا۔

دستخط کی تصدیق چھوڑ دینے والے راستے پر GCM ٹیگ ہی واحد سالمیت کی جانچ ہے۔ اسی لیے DAT_CRYPTO_TAG_MISMATCH کو کشائی کی دیگر ناکامیوں کے ساتھ ایک ہی کوڈ میں نہیں باندھا جاتا۔


کی

DAT_KEY_INVALIDبے اثرمستقلshieldمشتبہ

اعلان کردہ الگورتھم اور کی کی لمبائی میں عدم مطابقت (HMAC 32/48/64، AES 16/32)، یا منحنی سے باہر کا نقطہ، یا d ∉ [1,n-1]، یا غیر دبی ہوئی (0x04) صورت نہ ہونا، یا نجی اور عوامی کی کا آپس میں جوڑا نہ ہونا۔

arrow_forwardکی تبدیل کریں

DAT_KEY_VERIFY_ONLY_UNSUPPORTEDنازکمستقل

HMAC خاندان سے verify-only برآمد کرنے کی درخواست دی گئی۔

arrow_forwardالگورتھم تبدیل کریں

DAT_KEY_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی کی کی خرابی۔

arrow_forwardلاگ دیکھیں

دیکھنے میں ملتے جلتے مگر مختلف تین:

کوڈمطلب
DAT_KEY_VERIFY_ONLY_UNSUPPORTEDالگورتھم کی ساختی حد۔ HMAC متناسق کی ہے سو اس میں عوامی کی کا تصور ہی نہیں
DAT_SIG_KEY_MISSINGرن ٹائم حالت۔ اس وقت اس کی میں نجی کی موجود نہیں
DAT_CERT_VERIFY_ONLYتعیناتی کی صورت۔ یہ سرٹیفکیٹ صرف تصدیق کے لیے تعینات ہوا ہے

منیجر

سرٹیفکیٹ رکھنے اور اجرا و تصدیق میں استعمال کرنے والے آبجیکٹ کی حالت۔

DAT_MANAGER_NO_CERTIFICATEنازکعارضی

ایک بھی سرٹیفکیٹ موجود نہیں۔ یا تو import سے پہلے ہے یا CMS کی پہلی ہم آہنگی ناکام ہوئی ہے۔

arrow_forwardCMS کنکشن دیکھیں

DAT_MANAGER_NO_ISSUABLE_CERTIFICATEنازکمستقل

سرٹیفکیٹ تو ہیں مگر اس وقت اجرا کے لیے قابلِ استعمال کوئی نہیں۔ سبب ساتھ بھیجا جاتا ہے۔

arrow_forwardسبب (cause) دیکھ کر فیصلہ — نیچے جدول

DAT_MANAGER_DISPOSEDنازکمستقل

پہلے سے آزاد کیا جا چکا منیجر یا سرٹیفکیٹ استعمال کیا گیا۔

arrow_forwardکالنگ کوڈ درست کریں

DAT_MANAGER_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی منیجر کی خرابی۔

arrow_forwardلاگ دیکھیں

DAT_MANAGER_NO_ISSUABLE_CERTIFICATE کا سبب (cause) چار میں سے ایک ہوتا ہے۔ ہر سبب کے لیے کرنے کا کام بالکل مختلف ہے۔

سببمطلبدوبارہ کوششردعمل
DAT_CERT_NOT_YET_ISSUABLEاجرا کی کھڑکی شروع ہونے سے پہلےعارضیانتظار سے حل ہو جاتا ہے
DAT_CERT_ISSUANCE_ENDEDاجرا کی کھڑکی ختم، صرف تصدیق ممکنمستقلنیا سرٹیفکیٹ تعینات کرنا ہوگا
DAT_CERT_EXPIREDموجود تمام سرٹیفکیٹس ختم شدہمستقلسرٹیفکیٹ کی تجدید درکار ہے
DAT_CERT_VERIFY_ONLYموجود تمام سرٹیفکیٹس صرف تصدیقیمستقلتعیناتی کی ترتیب کی غلطی ہے

اگر اجرا کرنے والا سرور صرف تصدیقی سرٹیفکیٹ وصول کرنے پر ترتیب دیا جائے تو DAT_CERT_VERIFY_ONLY آتا ہے۔ انتظار سے یہ کبھی حل نہیں ہوتا سو دوبارہ کوشش کا ہدف نہیں۔


کنفیگریشن

کالر کی دی گئی قدر کا مسئلہ۔ CONFIG خاندان کے سب ایسی خرابیاں ہیں جن میں کوڈ درست کرنا پڑتا ہے، اور آپریشن کے دوران آئیں تو مطلب ہے کہ تعیناتی غلط ہے۔

DAT_CONFIG_ALG_UNSUPPORTEDنازکمستقل

نامعلوم الگورتھم نام۔ وائر نوٹیشن (ECDSA-P256، IV-AES256-GCM) سے بالکل مطابقت ضروری ہے۔

arrow_forwardالگورتھم کا نام دیکھیں

DAT_CONFIG_ARGUMENT_INVALIDنازکمستقل

لازمی آرگیومنٹ null ہے، یا مجاز حد سے باہر (منفی وقت کی قدر، interval <= 0)، یا غیر معاون قسم (متحرک قسم والی زبانوں میں payload کو عدد یا بولین دینا)، یا دستخط کے لیے دیا گیا body خالی ہے۔

arrow_forwardکالنگ کوڈ درست کریں

DAT_CONFIG_URI_INVALIDنازکمستقل

CMS سرور کا URI معیار سے باہر ہے۔ تجزیہ ناممکن، سکیم http/https نہیں، یا اس کے ساتھ راستہ یا کوئری لگی ہوئی ہے۔

arrow_forwardURI درست کریں

DAT_CONFIG_UNKNOWNنازکمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی کنفیگریشن خرابی۔

arrow_forwardلاگ دیکھیں


اندرونی

عمل درآمد کے ماحول اور رن ٹائم کا مسئلہ۔

DAT_INTERNAL_UNAVAILABLEنازکمستقل

خفیہ نگاری بیک اینڈ یا رن ٹائم API سرے سے موجود ہی نہیں۔ crypto.subtle کی عدم موجودگی، AES-GCM کی سپورٹ نہ رکھنے والا پلیٹ فارم، یا رن ٹائم ورژن کا کم ہونا۔

arrow_forwardتعیناتی اور پلیٹ فارم دیکھیں

DAT_INTERNAL_UNKNOWNنازکمستقل

میموری مختص کرنے کی ناکامی، بے ترتیب عدد کی تخلیق کی ناکامی، لاک حاصل کرنے کی ناکامی، یا ایسی شاخ تک پہنچنا جو ناقابلِ رسائی ڈیزائن کی گئی تھی۔

arrow_forwardلاگ دیکھیں

DAT_INTERNAL_UNAVAILABLE تعیناتی کا ماحول درست کرنے سے حل ہو جاتا ہے، جبکہ DAT_INTERNAL_UNKNOWN عموماً رن ٹائم کی خرابی یا لائبریری کا بگ ہوتا ہے۔


CMS ہم آہنگی

اگر CMS ہم آہنگی استعمال نہ کی جائے تو یہ کوڈ نہیں آتے۔

DAT_CMS_UNREACHABLEجزویعارضی

DNS کی ناکامی، کنکشن سے انکار، TLS کی ناکامی، ٹائم آؤٹ۔ ٹائم آؤٹ الگ کوڈ نہیں بلکہ اسی میں شامل ہے — کیونکہ ردعمل ایک ہی ہے۔

arrow_forwardبیک آف کے بعد دوبارہ کوشش

DAT_CMS_UNAUTHORIZEDنازکمستقل401

سرور نے 401 سے جواب دیا۔ ٹوکن موجود نہیں یا غلط ہے۔

arrow_forwardٹوکن کی ترتیب دیکھیں

DAT_CMS_FORBIDDENنازکمستقل403

سرور نے 403 سے جواب دیا۔ ٹوکن درست ہے مگر اس اینڈ پوائنٹ کا اختیار نہیں۔

arrow_forwardٹوکن کا درجہ دیکھیں

DAT_CMS_ENDPOINT_NOT_FOUNDنازکمستقل404

سرور نے 404 سے جواب دیا۔ URL غلط ہے۔

arrow_forwardURL کی ترتیب دیکھیں

DAT_CMS_SERVER_ERRORجزویعارضی5xx

سرور نے 5xx سے جواب دیا۔

arrow_forwardبیک آف کے بعد دوبارہ کوشش

DAT_CMS_HTTP_STATUSنازکمستقل

اوپر شامل نہ ہونے والا غیر 2xx جواب۔

arrow_forwardسٹیٹس کوڈ دیکھیں

DAT_CMS_MALFORMEDنازکمستقل

جواب میں ورژن کی سطر نہیں، یا ورژن کی سطر خالص اعشاری عدد نہیں، یا حد سے تجاوز کر گئی۔

arrow_forwardسرور کا ورژن دیکھیں

DAT_CMS_IMPORT_FAILEDنازکمستقل

جواب تو مل گیا مگر سرٹیفکیٹ لاگو نہ ہو سکے۔ سبب cause میں شامل ہوتا ہے۔

arrow_forwardcause میں CERT_* / KEY_* دیکھیں

DAT_CMS_VERSION_RESETبے اثرحالت200

سرور نے ہم سے پرانا ورژن واپس کیا۔ یہ مکمل دوبارہ ہم آہنگی کا حکم ہے۔

arrow_forwardخودکار طور پر سنبھال لیا جاتا ہے

DAT_CMS_NOT_SYNCEDنازکعارضی

ابھی تک ایک بار بھی ہم آہنگی کامیاب نہیں ہوئی۔

arrow_forwardپہلی ہم آہنگی کا انتظار

DAT_CMS_SYNC_IN_PROGRESSبے اثرحالت

پچھلی ہم آہنگی ابھی چل رہی ہے اس لیے یہ چکر چھوڑ دیا گیا۔ یہ خرابی نہیں ہے۔

DAT_CMS_NOT_SUPPORTEDنازکمستقل

CMS کی سہولت بلڈ میں شامل نہیں۔ یا تو فیچر فعال نہیں یا CURL شامل نہیں۔

arrow_forwardبلڈ آپشن دیکھیں

DAT_CMS_UNKNOWNجزویمستقل

اوپر کسی زمرے میں درجہ بند نہ ہونے والی CMS خرابی۔

arrow_forwardلاگ دیکھیں

جن کوڈز میں ہم آہنگی مستقل ناکامی قرار پاتی ہے (UNAUTHORIZED، FORBIDDEN، ENDPOINT_NOT_FOUND، MALFORMED، IMPORT_FAILED) وہ سب نازک ہیں۔ دوبارہ کوشش سے حل نہیں ہوتے جبکہ سرٹیفکیٹ مسلسل ختم ہوتے رہتے ہیں، سو نظر انداز کرنے پر سروس لازماً رک جائے گی۔

اس کے برعکس UNREACHABLE اور SERVER_ERROR جزوی ہیں۔ موجودہ سرٹیفکیٹس سے کام چلتا رہتا ہے اور اگلے چکر میں خود بحال ہو جاتے ہیں — البتہ مسلسل ناکامی بالآخر انہیں نازک میں بدل دیتی ہے۔ لہٰذا مسلسل ناکامیوں کی تعداد کی بنیاد پر الرٹ لگائیں۔

ہم آہنگی کی ناکامی استثنا کے طور پر نہیں پھینکی جاتی

پہلی ہم آہنگی ناکام ہو تب بھی منیجر درست واپس ہوتا ہے — کیونکہ دیر سے ہی سہی، ہم آہنگ ہو جانا بہتر ہے۔ اس کے بجائے ناکامی ایک قابلِ استفسار حالت کے طور پر باقی رہتی ہے۔

کلائنٹاستفسار کا طریقہ
Rustmanager.last_error().await
Gomanager.LastError()
JavaScriptmanager.lastError()
Pythonmanager.last_error()
Rubymanager.last_error
Java/Kotlinmanager.lastError
C#manager.LastError
C/C++dat_cms_manager_last_error(m)

اگر ایک بار بھی کامیابی نہ ہوئی ہو تو DAT_CMS_NOT_SYNCED، اور سب ٹھیک ہو تو خالی ہوتا ہے۔


سرور

یہ CMS سرور کے جاری کردہ کوڈ ہیں۔ کلائنٹ انہیں بناتا نہیں، صرف وصول کرتا ہے۔

DAT_AUTH_UNAUTHORIZEDبے اثرمستقلshieldمشتبہ401

Authorization ہیڈر موجود نہیں، یا ٹوکن کسی بھی درجے میں رجسٹرڈ نہیں۔

DAT_AUTH_FORBIDDENبے اثرمستقلshieldمشتبہ403

ٹوکن رجسٹرڈ تو ہے مگر وہ درجہ نہیں جو یہ اینڈ پوائنٹ مانگتا ہے۔

DAT_AUTH_DISABLEDنازکحالت

ایک بھی ٹوکن مقرر نہ ہونے کی وجہ سے توثیق سرے سے غیر فعال ہے۔ سرٹیفکیٹ اجرا کی API تک بغیر توثیق کے کھلی ہے۔ یہ جواب میں نہیں جاتا بلکہ صرف بوٹ لاگ میں درج ہوتا ہے۔

arrow_forwardفوراً ٹوکن مقرر کریں

DAT_REQ_MALFORMEDبے اثرمستقلshieldمشتبہ400

راستے یا کوئری کے پیرامیٹر سمجھ نہیں آئے، یا آرگیومنٹ مجاز حد سے باہر ہے (منفی delay، دس سال سے زیادہ وغیرہ)۔

DAT_REQ_ALG_UNSUPPORTEDبے اثرمستقل400

درخواست کے راستے میں دیا گیا الگورتھم نام معلوم نہیں۔

DAT_REQ_NOT_FOUNDبے اثرمستقلshieldمشتبہ404·405

ایسا کوئی راستہ نہیں یا میتھڈ مختلف ہے۔

DAT_REQ_TOO_LARGEبے اثرمستقلshieldمشتبہ413

درخواست کے body کا حجم حد سے تجاوز کر گیا۔

DAT_REQ_UNKNOWNبے اثرمستقل400

اوپر کسی زمرے میں درجہ بند نہ ہونے والی درخواست کی خرابی۔

DAT_STORE_UNAVAILABLEجزویعارضی503

DB کنکشن ٹوٹنا، کنکشن پول کا ختم ہونا، لاک کا تنازع، ٹائم آؤٹ۔ یہ 503 استعمال کرنے والا واحد کوڈ ہے، جس سے کلائنٹ کو معلوم ہوتا ہے کہ "یہ انتظار سے ٹھیک ہو جائے گا"۔

arrow_forwardبیک آف کے بعد دوبارہ کوشش

DAT_STORE_UNKNOWNنازکمستقل500

پڑھنے یا لکھنے کی ناکامی، ٹیبل کا نہ ہونا، سکیما کی عدم مطابقت، محفوظ شدہ سرٹیفکیٹ قطار کا خراب ہونا۔

arrow_forwardDB کی حالت دیکھیں

جواب کا لفافہ:

json
{
  "code": "DAT_REQ_ALG_UNSUPPORTED",
  "details": { "algorithm": "BOGUS-ALG" }
}

سرٹیفکیٹ بناتے اور برتتے ہوئے پیدا ہونے والی خرابیوں کے لیے سرور بھی اوپر دیے گئے مشترکہ کوڈ (DAT_CERT_*، DAT_KEY_*، DAT_CONFIG_*) ہی استعمال کرتا ہے۔

سرور سے کوڈ ملنے پر

کلائنٹ سرور کے کوڈ کو اپنے CMS کوڈ میں لپیٹ لیتا ہے، اور اصل کو cause میں محفوظ رکھتا ہے۔

موصولہHTTPکلائنٹ کا جاری کردہ کوڈ
DAT_AUTH_UNAUTHORIZED401DAT_CMS_UNAUTHORIZED
DAT_AUTH_FORBIDDEN403DAT_CMS_FORBIDDEN
DAT_REQ_NOT_FOUND404DAT_CMS_ENDPOINT_NOT_FOUND
DAT_REQ_* (دیگر)400·405·413DAT_CMS_HTTP_STATUS
DAT_STORE_UNAVAILABLE503DAT_CMS_SERVER_ERROR
DAT_STORE_UNKNOWN500DAT_CMS_SERVER_ERROR
(ورژن کی تنزلی)200DAT_CMS_VERSION_RESET

علامت سے تلاش

علامتکوڈ
لاگ ان کے فوراً بعد چلتا ہے پھر تھوڑی دیر میں مسترد ہونے لگتا ہےDAT_TOKEN_EXPIRED — ٹوکن کی عمر ختم ہو گئی۔ دوبارہ جاری کرنے سے کام چل جائے گا
صرف کسی خاص سرور پر تصدیق ناکامDAT_CERT_NOT_SYNCED — اس سرور کو ابھی نیا CID نہیں ملا
تمام سرورز پر ایک ہی ٹوکن مستردDAT_CERT_NOT_FOUND — یہ ایسا CID ہے جو ہم نے کبھی جاری نہیں کیا
اجرا کرنے والا سرور ٹوکن نہیں بنا پا رہاDAT_MANAGER_NO_ISSUABLE_CERTIFICATE + DAT_CERT_VERIFY_ONLYverify-only کے طور پر تعینات ہوا ہے
صرف بوٹ کے فوراً بعد اجرا ناکامDAT_MANAGER_NO_CERTIFICATE — پہلی ہم آہنگی سے پہلے ہے۔ تھوڑی دیر میں حل ہو جائے گا
CMS ہم آہنگی مسلسل ناکامDAT_CMS_UNAUTHORIZED — ٹوکن غلط ہے۔ دوبارہ کوشش سے بھی حل نہیں ہوگا
ایک بھی سرٹیفکیٹ نہیں آ رہاDAT_CMS_ENDPOINT_NOT_FOUND — URL میں ہجے کی غلطی ہے
صرف کسی خاص پلیٹ فارم پر ناکامیDAT_INTERNAL_UNAVAILABLE — خفیہ نگاری بیک اینڈ موجود نہیں
تصدیق کی ناکامیاں اچانک بڑھ گئیںDAT_SIG_MISMATCH — ایک واقعہ بے ضرر ہے مگر جھنڈ کی صورت میں آئے تو جعل سازی کی کوشش ہے
secure کی کشائی اچانک ناکامDAT_CRYPTO_TAG_MISMATCH — یا تو سرٹیفکیٹ میل نہیں کھاتے یا یہ چھیڑ چھاڑ کی کوشش ہے
CMS بوٹ لاگ میں انتباہDAT_AUTH_DISABLEDتوثیق بند ہے۔ اجرا کی API کھلی پڑی ہے

ضمیمہ

کوڈ کا صیغہ

DAT_<شعبہ>_<سبب>
  • ایک ہی سبب مختلف شعبوں میں پیدا ہو تو سبب کا نام ایک ہی رہتا ہے۔ DAT_TOKEN_MALFORMED اور DAT_CERT_MALFORMED میں صرف ہدف مختلف ہے، مطلب ایک ہی ہے۔
  • _UNKNOWN ہر شعبے کے لیے صرف فال بیک ہے۔ "نامعلوم الگورتھم" جیسے کسی اور مفہوم میں استعمال نہیں ہوتا (وہ _UNSUPPORTED ہے)۔
  • کوڈ کی سٹرنگ ایک عوامی معاہدہ ہے۔ پیغام آزادانہ بدلا جا سکتا ہے مگر کوڈ نہیں بدلا جاتا۔
زمرہکوڈ کا سابقہ
ٹوکنDAT_TOKEN_
سرٹیفکیٹDAT_CERT_
دستخطDAT_SIG_
خفیہ کاریDAT_CRYPTO_
کیDAT_KEY_
منیجرDAT_MANAGER_
کنفیگریشنDAT_CONFIG_
اندرونیDAT_INTERNAL_
CMS ہم آہنگیDAT_CMS_
سرورDAT_AUTH_ · DAT_REQ_ · DAT_STORE_

کلائنٹ کے لحاظ سے رسائی کا طریقہ

کلائنٹخرابی کی قسمکوڈدوبارہ کوشش کا زمرہسیکیورٹی ایونٹ
RustDatError enumerr.code()err.retry()err.security_event()
Go*dat.Errorerr.Codedat.Retry(err)dat.SecurityEvent(err)
JavaScriptDatError extends Errore.codee.retrye.securityEvent
PythonDatError(ValueError, RuntimeError)e.codee.retrye.security_event
RubySaro::Dat::Errore.codee.retrye.security_event?
Java/KotlinDatExceptione.codee.retrye.securityEvent
C#DatExceptione.Codee.Retrye.SecurityEvent
C/C++dat_error_tdat_error_code(e)dat_error_retry(e)dat_error_is_security_event(e)
CMS سرورJSON لفافہcode فیلڈ

سیکیورٹی ایونٹ صرف ان دو حالتوں میں true دیتا ہے جہاں جعل سازی یا چھیڑ چھاڑ یقینی ہو (DAT_SIG_MISMATCH، DAT_CRYPTO_TAG_MISMATCH)۔ اس دستاویز کا مشتبہ لیبل اس سے وسیع تر دائرہ رکھتا ہے (چھیڑ چھاڑ شدہ ٹوکن، کی اور درخواستیں تک)، اور فی الحال یہ محض دستاویزی درجہ بندی ہے، کلائنٹ API میں ظاہر نہیں ہوتا۔

اثر کا درجہ بھی اسی طرح دستاویزی درجہ بندی ہے۔ کیونکہ ایک ہی کوڈ کہاں پیدا ہوا اس کے لحاظ سے نقصان بدل جاتا ہے — مثلاً DAT_KEY_INVALID آنے والے ٹوکن کو چھاننے کے وقت بے اثر ہے، مگر CMS ہم آہنگی کے دوران سرٹیفکیٹ پڑھتے ہوئے پیدا ہو تو پوری ہم آہنگی ناکام کر دیتا ہے۔

ذیلی اسباب ضائع نہیں ہوتے۔ DAT_MANAGER_NO_ISSUABLE_CERTIFICATE اور DAT_CMS_IMPORT_FAILED ہر زبان کی استثنا زنجیر (cause / __cause__ / InnerException / Unwrap()) کے ذریعے سبب پہنچاتے ہیں۔

C/C++ عددی قدریں بھی برقرار رکھتی ہے

dat_error_t کی پرانی عددی قدریں ABI مطابقت کے لیے جوں کی توں رکھی گئی ہیں، مگر متنی کوڈ ہی اصل ہے۔ لائبریری اب پرانی قدریں واپس نہیں کرتی، اس لیے err == DAT_ERROR_INVALID_DAT جیسا موازنہ درست نہیں رہا۔ dat_error_code(e) سے موازنہ کریں۔

C میں استثنا زنجیر نہیں ہوتی، سو سبب الگ سے dat_manager_issuable_cause() کے ذریعے دیکھا جاتا ہے۔