توليد عقد المسجل وهندسة الإسقاط
نظرة عامة تنفيذية
recorder-contract هو المولد/المتحقق الحتمي القياسي لقطع أثر عرض المسجل. يقوم بإصدار مخرجات المخطط/العقد/المثال/المصطلحات/أداة التلميح تحت Docs/generated/recorder/، بما في ذلك الآن قطع أثر عرض SDK تحت Docs/generated/recorder/sdk/، ويطبق فحوصات انحراف مغلقة عند الفشل.
توليد التلميحات أصبح الآن بيانات وصفية عالمية المستوى مع:
- بيان أدوات التلميحات المتوافقة مع الإصدارات السابقة (
tooltips.json), - كتالوج المصطلحات الغني (
tooltips.catalog.json), - pointer/token bindings for code blocks and JSON examples
روابط المؤشر/التوكن لكتل الشيفرة وأمثلة JSON (
tooltips.annotations.json), - مصطلحات القاموس (
glossary.md) التي تم إنشاؤها من نفس مصدر المصطلح.
سلطة الأثر
كود مولد موثوق:
crates/recorder-contract/src/lib.rscrates/recorder-contract/src/contract_generation.rscrates/recorder-contract/src/contract_generation_artifacts.rscrates/recorder-contract/src/contract_generation_schema.rscrates/recorder-contract/src/contract_generation_samples.rscrates/recorder-contract/src/contract_generation_sdk_types.rscrates/recorder-contract/src/contract_generation_sdk_sidecar.rscrates/recorder-contract/src/contract_generation_sdk_vectors.rscrates/recorder-contract/src/sidecar_api.rscrates/recorder-contract/src/sidecar_api/openapi.rscrates/recorder-contract/src/sidecar_api/artifacts.rscrates/recorder-contract/src/sidecar_api/specs/mod.rscrates/recorder-contract/src/tooltips.rscrates/recorder-contract/src/tooltips_base_terms.rscrates/recorder-contract/src/tooltips_builders.rs
جذر مولد موثوق:
Docs/generated/recorder/
سلطة بيان الآلة:
index.json يتضمن إصدار العقد بالإضافة إلى بيانات التعريف الخاصة بـ SHA-256 لكل عنصر. عندما تكون عناصر واجهة برمجة التطبيقات الجانبية موجودة، يتم تطبيق بوابات التوافق من العناصر المولدة عبر scripts/ci/sidecar_contract_gates.py.
أوضاع المولدات
recorder-contract يدعم وضعين حتميين:
GenerateMode::Generate- يعيد توليد العناصر ويعيد كتابة جذر الإخراج.
- يزيل الملفات غير المتوقعة القديمة تحت جذر الإخراج.
- Fails closed if output-root traversal encounters symlinks, hard-linked ملفات الأثر، أو أنواع إدخالات نظام الملفات غير المدعومة.
GenerateMode::Check- يفشل النظام عند فقدان الملفات، انحراف البايت، أو وجود ملفات غير متوقعة.
- Fails closed if expected paths resolve through symlinked roots/components, ملفات غير منتظمة، أو ملفات أثرية مرتبطة بشكل صلب.
تكامل واجهة سطر الأوامر:
توليد عقد المسجلفحص عقد المسجل
نموذج الحتمية
تشمل عناصر التحكم في الحتمية:
- ترتيب مستقر للأصول عبر الخرائط/المجموعات المرتبة،
- ترميز JSON القياسي عبر JCS،
- تجزئة SHA-256 الصريحة لمدخلات البيان،
- مقارنة بايت وضع التحقق ضد الملفات الملتزمة.
إسقاط المخطط الواعي بالقيود
توليد المخطط هو على مرحلتين:
- استنتاج الشكل الهيكلي من عينات حتمية.
- تطبيق قيود المجال الموثوقة من خلال تراكب JSON-pointer.
تشمل تراكبات القيود:
- سياسات شكل نص UUID صارمة لجميع حقول الهوية،
- قيود السلسلة المعادية والطول الأقصى لحقول المعرف/النص،
- سياسة تعبير منتظم صارمة لنوع الحدث وحدود الطول،
- سياسة تعبير منتظم صارمة لـ
key_id(^[0-9a-f]{64}$)، - قيود مصفوفة بايت ذات طول ثابت لحقول التجزئة / التوقيع،
- تمثيلات صريحة قابلة للاحتواء للحقول الاختيارية،
- full
BundleSelectoralgebra projection (BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter, recursive إسقاط الجبر الكامل لـBundleSelector(BySegment,BySegments,ByTrace,ByTimeRange,ByEnvelopeIds,ByFilter,Compositeالتكراري) عبر المخطط$defs.
تفشل الإسقاطات المغلقة إذا كانت مسارات المؤشر المتوقعة مفقودة أثناء تطبيق القيود.
مجموعة العناصر المنتجة
الملفات الصادرة الحالية v1:
index.jsonschemas/envelope.schema.jsonschemas/segment.schema.jsonschemas/bundle.schema.jsoncontracts/adapter.jsoncontracts/provider.jsoncontracts/integrations/decision_gate.mapping.jsoncontracts/integrations/otel.mapping.json- glossary.md
tooltips.json- tooltips.catalog.json
- tooltips.annotations.json
examples/envelope.jsonexamples/segment.jsonexamples/bundle.jsonapis/sidecar.openapi.jsonapis/sidecar.errors.jsonapis/sidecar.enums.jsonapis/sidecar.examples.jsonapis/sidecar.compat.jsonconfig/sidecar.schema.jsonconfig/sidecar.compat.jsonconfig/sidecar.example.tomlconfig/sidecar.mdsdk/types.jsonsdk/methods.jsonsdk/test_vectors.jsonsdk/manifest.json
التوافق والتحقق
اختبارات وحدة recorder-contract تتحقق من:
- حتمية التوليد المتكرر،
- اتساق تجزئة البيان/بايت الملف،
- أمثلة مولدة تتحقق من صحة المخططات المولدة،
- يتضمن كتالوج التلميحات جميع أسماء طرق عقود الموصل/المزود،
- تغطية المصطلحات الأساسية المطلوبة على مستوى عالمي،
- مؤشرات كتالوج التلميحات تحل ضد العناصر الناتجة عن JSON،
- روابط توضيح التلميحات تشير فقط إلى مفاتيح المصطلحات المعرفة،
- schema/runtime invariance for
key_id, hostile text fields, and identifier عدم تغير المخطط/وقت التشغيل لـkey_id، حقول النص العدائية، وقيود الطول الأقصى للمعرف. - إصدار عنصر sidecar وإدراج البيان.
- تناسق سجل أخطاء sidecar وقاعدة التوافق.
- تناسق عقد عدم التكرار لواجهة OpenAPI/compat في sidecar.
- اتساق تكوين الأداة الجانبية (رابط المخطط/التوافق/المثال/المستندات).
- sidecar OpenAPI component typing strength for
BundleandVerificationVerdict(عقود كائنات غير فضفاضة وصديقة للمولد). - إصدار مكونات SDK وإدراج البيان (
types/methods/test_vectors/manifest). - يتطلب إعلان البرنامج النصي لبيان SDK وتناسق سجل اللغة المستهدفة.
- SDK type projection hardening (field-level constraints + OpenAPI component bindings) and SDK method projection hardening (request/response schema refs, error/enum contract linkage, auth/idempotency metadata) for موارد المحول/المزود/الجانب.
- تغطية طرق SDK / متجهات الاختبار لواجهات المستخدم الأساسية لمحول / مزود / جانب السيارة.
- Integration mapping contract drift checks for Decision Gate and OTel تم إنشاء العناصر الناتجة مقابل ثوابت وقت تشغيل المحول.
- Sidecar media-type contract drift checks ensuring runtime policy-derived request media allowlists are projected consistently in OpenAPI and قطع التوافق.
recorder-contract اختبارات سلامة المسار المخصصة تتحقق من:
- وضع التوليد يرفض جذور المخرجات المرتبطة بالرموز.
- وضع التوليد يرفض المسارات الفرعية المرتبطة بالرموز تحت جذر الإخراج،
- وضع التوليد يرفض ملفات الأثر المتوقعة المرتبطة بشكل صارم،
- تحقق من وضع التقارير عن انحراف البايت للقطع المعدلة،
- وضع التحقق يرفض ملفات الأثر المتوقعة المرتبطة بشكل صارم،
- وضع التحقق يرفض ملفات الأرتيفكت المتوقعة المرتبطة بالرموز.
التنسيق والتكامل المستمر
نقطة دخول تنسيق الأوامر الواحدة:
scripts/ci/generate_all.sh
السلوك:
generate: regenerate contract artifacts + regenerate Python SDK contract constants (sdk/python/generate.sh) + run sidecar contract gates + تجديد وثائق تغطية الاختبار.check: run contract drift check + Python SDK drift/unit/system gates (sdk/python/check.sh,sdk/python/test.sh) + sidecar contract gates + docs drift check (fail closed).- Optional perf matrix mode: if
RECORDER_PERF_MATRIX=1(or legacyRECORDER_SIDECAR_PERF_GATE=1), execute debug/test + release perf suites viascripts/ci/perf_matrix.pyand enforce release gate policy viascripts/ci/perf_gate.pyمقابل عقود الخط الأساسي الملتزم بها.
تعمل سير العمل في CI على تنفيذ ذلك في بوابات الجودة المطلوبة.
حدود تسليم الإسقاط
سياسة نقل موقع الويب/i18n وملكية المصطلحات:
Docs/roadmap/recorder_generated_contract_sync_and_glossary_policy.md
هذا يحدد متطلبات وجود الملف، والتحقق من التجزئة، واستقرار المسار، وملكية المصطلحات/الأدلة من مصدر واحد.