وثائق المسجل

توثيق تسجيل الإثبات والأدلة المقاومة للتلاعب.

وثائق المنتجات الأخرى

بنية ملحق المسجل

Audience: Engineers implementing or operating recorder-sidecar as the خدمة تسجيل الأدلة القابلة للوصول عبر الشبكة.


جدول المحتويات

  1. نظرة عامة تنفيذية
  2. تركيب وقت التشغيل
  3. HTTP السطح والتوجيه
  4. أمان وموارد التحكم
  5. الاستقلالية وأمان إعادة المحاولة
  6. النقل ودورة الحياة
  7. تغليف الحاويات وعمليات Docker
  8. التحقق وتغطية الاختبار
  9. مرجع متقاطع ملف بملف

نظرة عامة تنفيذية

recorder-sidecar هو وقت تشغيل خدمة HTTP/JSON الخاصة بالمسجل التي تعرض مسارات التسجيل، والاستعلام، والحزم عبر مقبس Unix و/أو مستمعي TCP.

يتكون الجانبي من RecorderEngine و BundleBuilder و Verifier ونسخة واحدة من SqliteStore تحت بوابات وسيطة صريحة لهوية الترابط، والمصادقة، وهوية المؤسسة/السياسة، وإنفاذ الحدود، والتحكم في المهلة. الآن يتدفق إدخال الظرف المتغير عبر قائمة محدودة ووقت تشغيل كاتب موثوق واحد.

F:crates/recorder-sidecar/src/server.rs L42-L133 F:crates/recorder-sidecar/src/state.rs L29-L56 F:crates/recorder-sidecar-config/src/config.rs


تركيب وقت التشغيل

تدفق بدء التشغيل:

  1. Load and validate TOML config (config_version, api.major_version, تحميل والتحقق من صحة إعدادات TOML (config_version, api.major_version, recorder, transport, security, signer, و limits).
  2. قم بتهيئة التتبع وفتح SqliteStore.
  3. بناء مكونات وقت تشغيل المسجل.
  4. تهيئة بوابة الإدخال المحدودة + مهمة وقت تشغيل كاتب مخصصة.
  5. بناء جهاز توجيه axum مع مجموعة من البرمجيات الوسيطة.
  6. ربط مستمعي النقل المكونين وتقديم الخدمة حتى الإلغاء.

F:crates/recorder-sidecar-config/src/config.rs F:crates/recorder-sidecar-config/src/validation.rs F:crates/recorder-sidecar/src/server.rs L43-L247 F:crates/recorder-sidecar/src/ingest.rs


HTTP السطح والتوجيه

الموجه الحالي يعرض:

  • الاستعلامات: GET /health, GET /startup, GET /ready
  • مراقبة القطاعات: GET /v1/segments, GET /v1/segments/active
  • Envelope ingest: POST /v1/envelopes, استلام الظرف: POST /v1/envelopes, POST /v1/envelopes/with-attachments
  • الاستعلام: POST /v1/query/envelopes
  • Bundle workflows: POST /v1/bundles/build, POST /v1/bundles/verify, تجميع سير العمل: POST /v1/bundles/build, POST /v1/bundles/verify, POST /v1/bundles/inspect
  • توافق الاستيعاب: POST /v1/ingest/otel (تصدير OTel JSON v1)
  • فحص وقت التشغيل: GET /v1/config

F:crates/recorder-sidecar/src/server.rs L135-L160 F:crates/recorder-sidecar/src/handlers/otel.rs

ملاحظات عقد مراقبة الشريحة:

  • GET /v1/segments/active now returns the same paginated list shape as GET /v1/segments (ليس موردًا فرديًا)، مصفاة إلى status=open.
  • Segment response objects now include stream identity (stream_key.tenant_id, stream_key.recorder_id) to make per-stream roll حدد صراحة عند حدود API.

F:crates/recorder-sidecar/src/handlers/segment.rs

تسليط الضوء على عقد الطلب المتغير:

  • Idempotency-Key مطلوب لنقاط النهاية المتغيرة.
  • تتطلب مسارات الظرف tenant_id و recorder_id في أجسام الطلبات.
  • recorder_id يجب أن يتطابق مع هوية مسجل الجانب المكونة.
  • In enterprise-enabled modes, mutating envelope routes require تجميع رأس/جسم x-tenant-id.

سلوك الصحة:

  • GET /health هو اختبار خفة للحياة يعيد بيانات وصفية عن العملية.
  • GET /startup is a startup-completion probe returning startup metadata, GET /startup هو استعلام للتحقق من بدء التشغيل يعيد بيانات التعريف الخاصة بالبدء، بما في ذلك startup_verification_depth المكونة.
  • GET /ready returns readiness state with dependency-aware fail-closed semantics:
    • 503 مع السبب=storage_unavailable عندما يفشل الوصول إلى المتجر.
    • Optional 503 with reason=request_capacity_exhausted when probes.ready_fail_on_admission_saturation=true and admission/execution اختياري 503 مع reason=request_capacity_exhausted عندما probes.ready_fail_on_admission_saturation=true وتكون إشارات القبول/التنفيذ مستنفدة.
    • Optional 503 with reason=enterprise_control_unavailable when probes.readiness_mode=storage_and_enterprise, enterprise mode is enabled, اختياري 503 مع reason=enterprise_control_unavailable عندما يكون probes.readiness_mode=storage_and_enterprise مفعلًا، وضع المؤسسة مفعل، وتف checks جاهزية control-plane تفشل.
    • 200 مع ready=true في حالة مستقرة.

F:crates/recorder-sidecar/src/handlers/health.rs L42-L94


أمان وموارد التحكم

بوابة التكوين

تحقق التكوين يكون مغلقًا عند الفشل ويفرض:

  • تخطيط صارم وإصدار API
  • معرف المسجل وصلاحية الإغلاق التلقائي،
  • قيود نقل المضيف/المنفذ،
  • non-loopback transport requires security.mode=token and keeps يتطلب النقل غير الدائري security.mode=token ويحتفظ بـ require_token_for_non_loopback=true (فشل مغلق)،
  • token file hardening (security.token_file cannot be a symlink, must be a تقوية ملف الرمز (security.token_file لا يمكن أن يكون رابطًا رمزيًا، يجب أن يكون ملفًا عاديًا، وعلى أنظمة Unix يجب ألا يمنح أذونات للمجموعة/الآخرين)،
  • Secret token paths are opened with descriptor-bound hardening (O_NOFOLLOW on Unix, FILE_FLAG_OPEN_REPARSE_POINT on Windows) and تم التحقق من المقابض المفتوحة لإغلاق سباقات التحقق/الاستخدام،
  • bounded hostile file reads (sidecar config <= 1 MiB, token/control-plane ملفات التوكن <= 4096 بايت، ملف مفتاح الموقّع <= 65536 بايت،
  • قابلية تحليل مفتاح الموقّع،
  • حدود الأرقام لطلب/رأس/التماثل والتحقق من السقف الصلب،
  • probe config fail-closed semantics: probes.enterprise_health_path must be absolute/safe and probes.readiness_mode=storage_and_enterprise requires enterprise mode not معطل.

F:crates/recorder-sidecar-config/src/config.rs F:crates/recorder-sidecar-config/src/validation.rs

مكدس البرمجيات الوسيطة

أوامر و تحكمات الوسيط:

  1. حد حجم جسم الطلب (max_request_body_bytes).
  2. طبقة تتبع.
  3. Correlation middleware (server correlation IDs, sanitized client وسيط الترابط (معرفات الترابط على الخادم، x-correlation-id المنقحة، التوافق مع x-request-id القديم).
  4. Auth middleware (Bearer token mode with constant-time compare and RFC 6750 وسيط المصادقة (Bearer token mode مع مقارنة زمن ثابت وبيانات تحدي RFC 6750 في استجابات 401).
  5. Enterprise identity middleware (x-tenant-id, x-principal-id, x-authn-method, optional x-namespace-id, optional writer lease assertion) وسيط هوية المؤسسات (x-tenant-id, x-principal-id, x-authn-method, x-namespace-id الاختياري، تأكيد عقد الإيجار الاختياري للكتابة) لوضعيات المؤسسات الممكّنة.
  6. Enterprise policy middleware (control-plane ingress checks for protected routes plus sidecar boundary hook emission at admission and result وسيط سياسة المؤسسة (تحقق من إدخال خطة التحكم للطرق المحمية بالإضافة إلى إصدار خطاف حدود الحاوية في مراحل admission و result).
  7. Bounds middleware (header bytes, content negotiation, content-length checks, وسيط الحدود (بايتات الرأس، تفاوض المحتوى، فحوصات طول المحتوى، قائمة القبول المحدودة، التزام نشط محدود، مهلة الطلب).

سلوك أولوية الاستقصاء:

  • /health, /startup, and /ready are exempted from auth, enterprise policy, and bounds gating so liveness/startup/readiness state remains observable under /health و /startup و /ready معفاة من المصادقة، سياسة المؤسسة، وحدود التحكم، بحيث تظل حالة النشاط/البدء/الجاهزية قابلة للرصد تحت الضغط أو فشل السياسات.

F:crates/recorder-sidecar/src/server.rs L155-L160 F:crates/recorder-sidecar/src/middleware/request_id.rs L15-L30 F:crates/recorder-sidecar/src/middleware/auth.rs L21-L84 F:crates/recorder-sidecar/src/control_plane_bridge.rs F:crates/recorder-sidecar/src/middleware/enterprise.rs F:crates/recorder-sidecar/src/middleware/bounds.rs L21-L172 F:crates/recorder-sidecar-config/src/media_types.rs

سياسة نوع الوسائط الصارمة المصدر:

  • request-body routes use a centralized allowlist from recorder-sidecar-config::sidecar_request_media_type_policies
  • Content-Type parsing is strict fail-closed (application/json with اختياري charset=utf-8 فقط)،
  • Accept تحليل صارم يغلق الفشل (application/json أو */* فقط)،
  • generated sidecar OpenAPI/compat artifacts and CI gates consume the same سياسة نوع الوسائط المصدر لمنع انحراف وقت التشغيل/العقد.

ضوابط حدود المؤسسة

عند تمكين enterprise.mode، يضيف الجانب الجانبي تنفيذًا صريحًا لحدود التحكم مع الحفاظ على دلالات المسجل/الأدلة:

  • crates/recorder-sidecar/src/control_plane_bridge.rs is a boundary adapter only. It translates sidecar ingress identities/operations into control-plane قبول المكالمات والتوصيلات؛ لا يقوم بتنفيذ أو تعديل رياضيات أدلة المسجل.

  • Enterprise config is fail-closed: enabled mode requires token security mode, تكوين المؤسسة هو فشل مغلق: يتطلب وضع التمكين وضع أمان الرمز، وتكوين عنوان URL/الرمز الخاص بالطائرة التحكم، وفحوصات ملف الرمز المقوى.

  • Enterprise policy gate calls مكالمات بوابة سياسة المؤسسة POST /v1/enterprise/ingress/check قبل عمليات السايدكار المحمية.

  • Sidecar ingress operation vocabulary exported to enterprise control-plane is restricted to active v1 routes: recorder.record_envelope, recorder.record_envelope_with_attachments, recorder.ingest_otel, recorder.query_envelopes, recorder.build_bundle, recorder.verify_bundle, and recorder.inspect_bundle. تمت إزالة مسارات القطاعات المتغيرة ولا تُدرج في هذه المفردات.

  • Managed-cloud mode enforces writer-lease assertion for mutating operations يفرض وضع السحابة المُدارة تأكيد استئجار الكتاب للعمليات المتغيرة عندما require_writer_lease_header=true.

  • Sidecar emits deterministic enterprise boundary hooks to POST /v1/enterprise/sidecar/hooks at:

    • القبول (السماح/الرفض/خطأ قبل تنفيذ المعالج)،
    • نتيجة (السماح/الرفض/خطأ بعد حالة استجابة المعالج).
  • Hook emission is fail-closed for successful protected operations: if enterprise hook export fails, the sidecar returns an error instead of silently accepting انبعاث الخطاف مغلق في حالة الفشل للعمليات المحمية الناجحة: إذا فشل تصدير الخطاف المؤسسي، فإن الجانب الجانبي يعيد خطأ بدلاً من قبول مسار نجاح غير مدقق بصمت.

  • Enterprise readiness dependency checks use probes.enterprise_health_path (default /health) against the configured enterprise control-plane base URL when تستخدم فحوصات اعتماد جاهزية المؤسسة probes.enterprise_health_path (افتراضي /health) مقابل عنوان URL الأساسي لواجهة التحكم في المؤسسة المكونة عند probes.readiness_mode=storage_and_enterprise.

F:crates/recorder-sidecar-config/src/validation.rs F:crates/recorder-sidecar/src/control_plane_bridge.rs F:crates/recorder-sidecar/src/middleware/enterprise.rs

عقد الخطأ

تُعاد الأخطاء كـ RFC 9457 تفاصيل المشكلة (application/problem+json) مع رموز خطأ مستقرة، وبيانات إعادة المحاولة، وحقول ارتباط الخادم/العميل.

تفاصيل وضع الأمان:

  • malformed JSON rejections are normalized to typed bad_request problem details يتم تطبيع رفضات JSON غير الصحيحة إلى تفاصيل مشكلة من نوع bad_request بدلاً من تسرب إخفاقات إطار العمل / مستخرج النص العادي،
  • server-side (5xx) responses suppress internal detail fields to avoid leaking storage/runtime internals while preserving diagnostics in service استجابات جانب الخادم (5xx) تخفي حقول detail الداخلية لتجنب تسرب تفاصيل التخزين/التشغيل مع الحفاظ على التشخيصات في سجلات الخدمة،
  • 401 unauthorized responses include RFC 6750 WWW-Authenticate challenges.

F:crates/recorder-sidecar/src/error.rs L13-L229 F:crates/recorder-sidecar/src/extract.rs


التماثل وأمان إعادة المحاولة

POST /v1/envelopes و POST /v1/envelopes/with-attachments الآن ترسل أوامر موحدة إلى قائمة انتظار محدودة في الذاكرة (IngestGateway) ويتم معالجتها بواسطة وقت تشغيل مخصص لكاتب واحد (IngestWriterRuntime).

تستمر ملكية الكتاب للثبات في idempotency_entries، مع نطاق محدد بواسطة: (stream_tenant_id, stream_recorder_id, endpoint, idempotency_key) بالإضافة إلى هاش الطلب القياسي.

سلوك كاتب المسار الساخن:

  • تقوم معالجات التحويل بإضافة أوامر موحدة فقط،
  • writer-native sealing computes deterministic attachment refs, content hash, سلسلة التجزئة، تسلسل التدفق، والإيصالات،
  • one SQLite transaction per micro-batch persists envelopes, projection rows, إدخالات التماثل، حالة التدفق، وانتقالات القطاعات بشكل ذري.
  • stream state load/create is performed once per stream per transaction so segment roll paths cannot open orphan zero-envelope segments before stream استمرارية المؤشر؛ هذا يحافظ على ثبات إعادة التشغيل للجزء المفتوح الواحد.

السلوك:

  • نفس المفتاح + نفس الهاش: إعادة تشغيل الإيصال الدائم السابق (idempotency_outcome=replayed),
  • نفس المفتاح + تجزئة مختلفة: 409 idempotency_conflict,
  • تشبع الطابور: فشل سريع 429 too_many_requests,
  • فشل التخزين: فشل مغلق idempotency_unavailable / storage_unavailable.

تكون مدة الاحتفاظ محدودة بـ ingest.idempotency_ttl_seconds و ingest.idempotency_max_entries_per_stream. يتم تطبيق تنظيف احتفاظ الكتاب في مرحلتين داخل نفس المعاملة:

  1. تنظيف انتهاء الصلاحية بواسطة expires_at_unix،
  2. overflow cleanup by ordered offset delete over created_at_unix DESC. This path relies on SQLite stream-scope ordering index idx_idempotency_stream_created(stream_tenant_id, stream_recorder_id, created_at_unix DESC) لتجنب ارتفاعات تأخير القص الناتجة عن عمق التاريخ.

F:crates/recorder-sidecar/src/ingest.rs F:crates/recorder-sidecar/src/handlers/envelope.rs

مسار توافق استيعاب OTel:

  • POST /v1/ingest/otel ingests OTel JSON export payloads through recorder-otel-adapter with deterministic mapping and strict-fail record التحقق.
  • Route behavior is additive under /v1, requires Idempotency-Key, and يعيد استخدام ضوابط المصادقة/المؤسسة/الحدود/الوقت/التوافق.
  • تتضمن استجابة وقت التشغيل إصدار التعيين وعدد الإدخالات الحتمية.

F:crates/recorder-otel-adapter/src/adapter.rs


النقل ودورة الحياة

وسائل النقل:

  • مقبس نطاق يونكس،
  • مستمع TCP،
  • كلاهما في نفس الوقت.

دورة حياة وقت التشغيل:

  • تنظيف مقبس Unix القديم قبل الربط (فشل مغلق تم التحقق من نوع المقبس)،
  • رمز إلغاء مدفوع بالإشارة،
  • إيقاف تشغيل سلس لكل مستمع مع فرض مهلة shutdown_drain_seconds
  • إزالة مقبس Unix في مسار الإيقاف.

F:crates/recorder-sidecar/src/server.rs L163-L262 F:crates/recorder-sidecar/src/shutdown.rs L8-L34

سطح الأمر التشغيلي في ثنائي:

  • بدء الخدمة العادية مع --config / RECORDER_SIDECAR_CONFIG,
  • healthcheck أمر يدعم أوضاع استكشاف TCP URL و Unix-socket.

F:crates/recorder-sidecar/src/main.rs L18-L175


تغليف الحاويات وعمليات Docker

المستودع الآن يرسل ملف تعريف حاوية جانبية من الطرف الأول تحت docker/sidecar/:

  • Dockerfile: بناء متعدد المراحل بلغة Rust لصورة تشغيل غير جذرية بدون توزيعة.
  • docker-compose.yml: local operator profile with explicit UID/GID mapping, bind-mounted config/data/run paths, tmpfs-backed token target path, Docker مسار المصدر السري، فحص الصحة، وتعيين المنفذ المحدود.
  • config/sidecar.toml: container-oriented baseline config with token-mode config/sidecar.toml: تكوين أساسي موجه للحاويات يتطلب مصادقة بنمط الرمز لوسائل النقل غير المتكررة.
  • .env.example: canonical environment variable contract for image/tag/paths ورسم خرائط مصدر UID/GID + token-secret.

عقد المشغل:

  • supply token material through a Docker secret source file (RECORDER_SIDECAR_TOKEN_SECRET_FILE),
  • bootstrap writes token material to /work/secrets/token in tmpfs with أذونات خاصة بالمالك فقط (0600 على Unix) قبل بدء تشغيل sidecar،
  • run non-root with host UID/GID mapping so strict token checks remain readable تشغيل غير الجذر مع تعيين UID/GID للمضيف بحيث تظل فحوصات الرموز الصارمة قابلة للقراءة مع تجنب تنفيذ الجذر،
  • treat docker/sidecar/secrets/token as secret material and keep it out of نظام التحكم في الإصدارات.

F:docker/sidecar/Dockerfile F:docker/sidecar/docker-compose.yml F:docker/sidecar/config/sidecar.toml F:docker/sidecar/README.md


التحقق وتغطية الاختبار

تتضمن مجموعة التحقق الحالية للسيارة الجانبية:

  • config fail-closed validation assertions (port, header hard cap, تأكيدات التحقق من الفشل المغلق في التكوين (المنفذ، الحد الأقصى للرأس، حدود الإغلاق التلقائي)،
  • سلوك واجهة برمجة التطبيقات للحدود الخاصة بطول المحتوى،
  • سلوك تطهير معرف الارتباط،
  • فحوصات حتمية تجزئة طلبات الإيديمبوتنسي القياسية.
  • generated error-registry compatibility assertions (Docs/generated/recorder/apis/sidecar.errors.json مقابل خط الأساس في وقت التشغيل).
  • restart-boundary idempotency replay/conflict integration checks over real إعادة تشغيل حدود التكرار/التكامل للتحقق من الصراعات على الجانب الحقيقي subprocess + استمرارية SQLite.
  • parallel rolled-load restart correctness test coverage asserting exactly one استمرار الجزء المفتوح وإعادة التشغيل الناجحة بعد التحميل.
  • contract hardening checks for RFC 9457 payload shape, RFC 6750 auth challenge فحوصات تعزيز العقد لشكل الحمولة RFC 9457، ورؤوس تحدي المصادقة RFC 6750، وانتشار رؤوس الترابط.
  • strict media-type matrix checks for content-type/accept fail-closed behavior مع رموز الأخطاء الثابتة unsupported_media_type و not_acceptable.
  • probe hardening checks for unauthenticated probe routes and startup probe فحص تقوية المسارات غير المعتمدة لفحص البروبي والاستجابة لعقد بدء التشغيل.
  • readiness hardening checks for admission saturation fail-closed behavior and فحوصات تعزيز الجاهزية لسلوك الفشل المغلق عند تشبع القبول وانتقالات وضع الاعتماد على مستوى التحكم المؤسسي.
  • enterprise outage mutation checks proving write paths fail closed with service-unavailable عندما تكون اعتماديات دخول التحكم في الطائرة معطلة.
  • generated sidecar contract compatibility gates (openapi/errors/enums/examples/compat) تم فرض بوابات التوافق لعقد الجانب المولد (openapi/errors/enums/examples/compat) في تنسيق generate/check.
  • profile-matrix perf orchestration (RECORDER_PERF_MATRIX=1) that executes debug/test and release regression lanes, emits target/perf-matrix/latest.json, and applies release-gated threshold + regression policy using committed baseline contracts (system-tests/perf_baselines/*.json); capacity lane execution is optional (--include-capacity) ومخصصة للوظائف الليلية/ما قبل الإصدار المثبتة.
  • sidecar perf architecture split:
    • regression lane artifact: target/sidecar-perf/latest.json (lane=regression، إشارة مضادة للتراجع بعبء عمل ثابت)،
    • capacity lane artifact: target/sidecar-capacity/latest.json (lane=capacity, saturation sweep with max_sustainable_rps and knee المقاييس).
  • system-test sidecar suites for end-to-end HTTP record/query/build/verify and استمرارية إعادة التشغيل غير المتغيرة.
  • system-test Docker suite validating Dockerfile/Compose/config hardening plus Docker Compose build/up/down with containerized startup/readiness probes plus سجل/استعلام سير العمل.
  • system-test sidecar perf suite for write/read latency, throughput, memory growth, and overload-429 report fields used by the perf gate; throughput and latency lanes now use a persistent keep-alive HTTP client pool for production-representative write-path measurements. As of 2026-02-16, memory reporting distinguishes hot-path/high-water RSS growth from quiesced retained RSS growth and emits reclaim ratio context. As of the same date, durability characterization records live wal_size_bytes, post-stop wal_size_post_stop_bytes, and coupled wal_checkpoint_noop state per case, and emits an explicit comparability signal (durability_wal_ratio_vs_1000_comparable) قبل تفسير نسب WAL.
  • ignored informational retained-memory attribution lane (sidecar_perf_rss_retained_memory_attribution_characterization) emitting target/sidecar-perf/rss_attribution_latest.json with fixed-volume sequential/parallel quiesce-window checkpoints and smaps_rollup class دلتا (Rss, Anonymous, Private_Dirty, Shared_Clean, Shared_Dirty).
  • ignored informational ingest-tuning characterization lane (sidecar_perf_rss_ingest_tuning_characterization) emitting target/sidecar-perf/rss_ingest_tuning_latest.json with ingest queue/batch matrix sweeps (queue_capacity, batch_max_commands, batch_max_bytes) across sequential and parallel workers, including data-derived decision fields لتصنيف الآليات وتوصية التخفيف.
  • ingest batching byte-estimation path now avoids per-command Vec<u8> allocation churn in writer_command_estimated_bytes by counting serialized بايتات JSON عبر serde_json::to_writer ضد حوض عد.
  • system-test sidecar capacity suite for release-only concurrency sweep points (32..512), deterministic correctness sampling, and pinned-runner max_sustainable_rps/مقياس انبعاثات الركبة.

F:crates/recorder-sidecar-config/src/config/tests.rs F:crates/recorder-sidecar/tests/unit/middleware/bounds/tests.rs F:crates/recorder-sidecar/src/idempotency.rs F:crates/recorder-sidecar/tests/error_registry_contract.rs F:crates/recorder-sidecar/tests/idempotency_restart.rs F:crates/recorder-sidecar/tests/http_contract_hardening.rs F:crates/recorder-sidecar/tests/enterprise_control_plane_e2e.rs F:scripts/ci/sidecar_contract_gates.py F:scripts/ci/perf_matrix.py F:scripts/ci/perf_gate.py F:scripts/ci/perf_threshold_policy.py F:scripts/ci/generate_all.sh F:system-tests/tests/suites/sidecar.rs F:system-tests/tests/suites/sidecar_enterprise.rs F:system-tests/tests/suites/sidecar_docker.rs F:system-tests/tests/suites/sidecar_perf.rs F:system-tests/tests/suites/sidecar_capacity.rs F:system-tests/tests/helpers/perf_sidecar.rs


مرجع متقاطع لكل ملف

المنطقةالملفالملاحظات
حدود الصندوقcrates/recorder-sidecar/src/lib.rsنقاط دخول الصندوق العامة وتركيب الوحدات.
وقت التشغيل الثنائيcrates/recorder-sidecar/src/main.rsسطر الأوامر، بدء الخدمة، وسلوك فحص الصحة.
ثنائي تمهيد الحاويةcrates/recorder-sidecar/src/bin/docker_bootstrap.rsإدخال مصدر الرمز المغلق وفشل التحقق من وجود الرمز قبل بدء تشغيل الحاوية.
التكوين + التحققcrates/recorder-sidecar-config/src/config.rs, crates/recorder-sidecar-config/src/validation.rs, crates/recorder-sidecar-config/src/schema.rs, crates/recorder-sidecar-config/src/compat.rsنموذج تكوين الحاوية القياسي، تحقق من بدء التشغيل المغلق، وقطع عرض التكوين الحتمي.
سياسة نوع الوسائطcrates/recorder-sidecar-config/src/media_types.rsسياسة نوع الوسائط الصارمة المشتركة لسلوك محلل وقت التشغيل وقطع العقد الناتجة عن الحاوية.
تمهيد الخادمcrates/recorder-sidecar/src/server.rsتوصيل التخزين/وقت التشغيل، بناء الموجه، دورة حياة النقل.
الحالة المشتركةcrates/recorder-sidecar/src/state.rsمقبضات وقت التشغيل وبوابات التزامن.
سطح الخطأcrates/recorder-sidecar/src/error.rsنموذج خطأ API المنظم.
مستخلصات JSONcrates/recorder-sidecar/src/extract.rsتطبيع حدود JSON الصارمة لفشل التحليل المطبوع.
خط الأساس لعقد وقت التشغيلcrates/recorder-sidecar/src/contract.rsإصدار API المصدر وثوابت سجل الأخطاء المستخدمة في اختبارات العقد.
إدخال كاتب واحدcrates/recorder-sidecar/src/ingest.rsقبول قائمة محدودة، توليد إيصالات دائمة، تسلسل نطاق التدفق، وحالة عدم التكرار المستمرة.
بوابة سياسة المؤسسةcrates/recorder-sidecar/src/control_plane_bridge.rsمحول حدود المؤسسة فقط: فحوصات دخول مستوى التحكم وإصدار خطاف الحاوية.
وسيط المصادقةcrates/recorder-sidecar/src/middleware/auth.rsفحوصات رمز الحامل مع مقارنة زمن ثابت.
وسيط المؤسسةcrates/recorder-sidecar/src/middleware/enterprise.rsاستخراج هوية المؤسسة وفرض الحدود/تسلسل الخطافات.
وسيط الحدودcrates/recorder-sidecar/src/middleware/bounds.rsضوابط الرأس/المحتوى/قائمة الانتظار/التزامن/الوقت المستغرق.
معالج إدخال OTelcrates/recorder-sidecar/src/handlers/otel.rsمسار إدخال JSON OTel، اقتران عدم التكرار، واستدعاء المحول.
محول OTelcrates/recorder-otel-adapter/src/adapter.rsتنفيذ خريطة/حذف/حدود OTel الحتمي المستخدم من قبل الحاوية وعمليات إدخال سطر الأوامر.
تعبئة Dockerdocker/sidecar/Dockerfile, docker/sidecar/docker-compose.yml, docker/sidecar/config/sidecar.toml, docker/sidecar/.env.example, docker/sidecar/README.mdملف تعريف بناء/وقت تشغيل الحاوية من الطرف الأول ودليل استخدام المشغل، بما في ذلك تدفق تمهيد الرمز السري + tmpfs.
وحدات اختبار وحدة الحاويةcrates/recorder-sidecar-config/src/config/tests.rs, crates/recorder-sidecar/src/idempotency.rs, crates/recorder-sidecar/tests/unit/middleware/bounds/tests.rsتم استخراج اختبارات الوحدة من ملفات المصدر الإنتاجية لتنظيم الملفات بشكل أنظف.
اختبارات نظام Docker للحاويةsystem-tests/tests/suites/sidecar_docker.rsتعزيز Dockerfile/Compose والتحقق من صحة سير العمل للحاوية المعبأة.
معالجات الاستطلاعcrates/recorder-sidecar/src/handlers/health.rsسلوك الحضور/البدء/الجاهزية، بما في ذلك التشبع ووضع جاهزية الاعتماد المؤسسي.
اختبارات التوافق للعقدcrates/recorder-sidecar/tests/error_registry_contract.rs, crates/recorder-sidecar/tests/idempotency_restart.rs, crates/recorder-sidecar/tests/http_contract_hardening.rsفحوصات السجل، عدم التكرار عند إعادة التشغيل، وتعزيز حدود HTTP.
اختبارات تكامل المؤسسةcrates/recorder-sidecar/tests/enterprise_control_plane_e2e.rsفحوصات نهاية إلى نهاية لحدود قبول/نتائج المؤسسة بما في ذلك سلوك التحول المغلق عند انقطاع مستوى التحكم.
بوابات CI للعقدscripts/ci/sidecar_contract_gates.py, scripts/ci/perf_matrix.py, scripts/ci/perf_gate.py, scripts/ci/perf_threshold_policy.py, scripts/ci/generate_all.shبوابات العقد v1 قبل كسر الإصدار بالإضافة إلى تنسيق أداء مصفوفة الملف الشخصي وإدارة عتبة مكافحة التلاعب.
اختبارات نظام الحاويةsystem-tests/tests/suites/sidecar.rs, system-tests/tests/suites/sidecar_enterprise.rs, system-tests/tests/suites/sidecar_perf.rs, system-tests/tests/suites/sidecar_capacity.rsتغطية دورة حياة HTTP من النهاية إلى النهاية، مسارات اعتماد مستوى التحكم المغلق للمؤسسة، وتوليد تقارير أداء الانقسام/السعة لـ SLO وعتبة التشبع.
توافق الأمانDocs/security/threat_model.mdرسم خرائط التهديدات الموثوقة والمخاطر المتبقية.