دليل تشغيل مرجع الاقتباس القانوني
الهدف
هذا الدليل التشغيلي هو الدليل التشغيلي لحزمة مرجع الاقتباسات القانونية الخاصة بـ CourtListener في Decision Gate.
استخدمه من أجل:
- التحقق الحتمي غير المتصل في CI/dev.
- التحقق اليدوي من صحة الدخان المباشر ضد CourtListener.
- وضع أمان آمن للإنتاج ومعالجة الرموز.
الحزمة القياسية
- المسار القياسي:
references/openapi/courtlistener-legal-citation-v1/ - Canonical OpenAPI:
references/openapi/courtlistener-legal-citation-v1/openapi.json - إدخال كتالوج الحزمة:
references/openapi/reference_library.json
وضع عدم الاتصال الحتمي (افتراضي)
وضع عدم الاتصال هو الوضع الافتراضي وهو مطلوب لـ CI القياسي.
تشغيل مجموعة الاقتباسات القانونية غير المتصلة بالإنترنت:
dg-reason="offline-legal-citation-suite" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_projection_first_end_to_end
تحقق من استيراد / ملف تعريف العمليات الأربعة الصارمة:
dg-reason="offline-strict-import-check" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_import_strict_four_operation_profile
تحقق من عقد تغطية مجموعة البيانات:
dg-reason="offline-dataset-coverage-check" dg-owner="dg-maintainers" dg-expires=2026-05-15
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_reference_dataset_coverage_and_semantics
المخرجات المتوقعة تشمل:
legal_citation_report.jsontool_transcript.json- تشغيل تصدير/تحقق من المخرجات لكل حالة
وضع الاشتراك المباشر (يدوي)
وضع التشغيل المباشر هو يدوي عن عمد وليس جزءًا من CI لدمج الحواجز.
المتطلبات البيئية:
COURTLISTENER_LIVE=1
بيئة اختيارية:
COURTLISTENER_BASE_URL(افتراضيhttps://www.courtlistener.com/api/rest/v4)COURTLISTENER_LIVE_CASE_LIMIT(الافتراضي3)
متطلبات الاعتماد:
- Store the raw API token in DG local encrypted secrets as
secret://courtlistener/api_token(لا حاجة لتصدير الشل للعرض المباشر). - Typed runtime auth applies deterministic render metadata (
prefix: "Token ") قبل حقن رأسAuthorization. - DG secret store unlock is keyring-first. When keyring is unavailable/headless,
set
DECISION_GATE_SECRETS_PASSPHRASEbefore runningsecretscommands or دخان حي. DECISION_GATE_SECRETS_PASSPHRASEهو مادة فتح التخزين، وليس رمز مزود.
تهيئة الأسرار المشفرة المحلية وتخزين رمز CourtListener:
# If keyring is unavailable/headless:
export DECISION_GATE_SECRETS_PASSPHRASE="<strong-passphrase>"
scripts/bootstrap/dg.sh secrets init
export COURTLISTENER_API_TOKEN="<raw-api-token>"
scripts/bootstrap/dg.sh secrets put \
--tenant-id 1 \
--namespace-id 1 \
--name courtlistener/api_token \
--from-env COURTLISTENER_API_TOKEN
scripts/bootstrap/dg.sh secrets preflight \
--tenant-id 1 \
--namespace-id 1 \
--name courtlistener/api_token
تم تثبيت المعادل الثنائي: استبدل scripts/bootstrap/dg.sh بـ decision-gate في الأوامر أعلاه.
سير عمل استيراد بديل (تعيينات صريحة فقط):
scripts/bootstrap/dg.sh secrets import \
--tenant-id 1 \
--namespace-id 1 \
--env-file .env \
--map COURTLISTENER_API_TOKEN=courtlistener/api_token
تشغيل الدخان اليدوي المباشر:
dg-reason="manual-live-citation-smoke" dg-owner="operator" dg-expires=2026-05-15
scripts/bootstrap/dg.sh live courtlistener smoke --case-limit 3
تظل أوامر الاختبار المباشر متاحة عند الحاجة:
COURTLISTENER_LIVE=1 \
COURTLISTENER_LIVE_CASE_LIMIT=3 \
cargo test -p system-tests --features system-tests --test providers -- --exact legal_citation::legal_citation_live_opt_in_smoke
هذا الدخان يثبت:
- ربط رأس المصادقة لـ
Authorizationعبرsecret://courtlistener/api_token. - سلوك جسم مشفر بالشكل لـ
citationLookup. - مزيج النجاح/الفشل على مجموعة حية محدودة.
التحفة الحية:
legal_citation_live_report.json
وضع أمان الإنتاج
الإعدادات الافتراضية الموصى بها للاستخدام الشبيه بالإنتاج:
- حافظ على حظر الوصول إلى الشبكة الخاصة (الإعداد الافتراضي مغلق بشكل افتراضي).
- استخدم روابط بيانات الاعتماد الصريحة (
secret://...) وتجنب الأسرار المضمنة في المواصفات. - تقييد المضيفين من خلال سياسة أمان وقت التشغيل المكتوبة حيث يسمح النشر.
- حافظ على حدود المحاولات واحترم إشارات التراجع/حدود المعدل.
لا تقم بتخفيف إعدادات الأمان المستخدمة لقطع الغيار المحلية (allow_private_networks لاختبار localhost) في عمليات النشر في الإنتاج.
معالجة الرموز وإخفاء المعلومات
- لا تقم بتخزين الرموز أو ملفات البيئة التي تحتوي على أسرار.
- قم بتخزين الرموز في مخزن الأسرار المشفر المحلي (أو مدير الأسرار المؤسسي).
- احتفظ بقيمة توكن CourtListener خامًا (بدون بادئة
Tokenفي التخزين). - لا تقم بطباعة قيم الرموز في السجلات أو العناصر.
تفسير Runpack
لكل حالة، تأكد:
- نتيجة القرار (
passأوfail) تتطابق مع دلالات البوابة المتوقعة. runpack_verifyالتقارير ناجحة.- دلائل المراسي موجودة وحتمية للجولات المتكررة غير المتصلة بالإنترنت.
إجراء تحديث التركيب
استخدم برنامج الالتقاط لتحديث التركيبات يدويًا:
ملاحظة: COURTLISTENER_API_TOKEN أدناه مخصص فقط لبرنامج الالتقاط. ليس هو مسار بيانات الاعتماد في وقت التشغيل المستخدم في اختبارات الدخان الحية.
dg-reason="manual-fixture-refresh" dg-owner="operator" dg-expires=2026-05-15
COURTLISTENER_API_TOKEN="<raw-api-token>" \
python3 scripts/reference_packs/courtlistener_capture.py
خيار التشغيل الجاف:
dg-reason="manual-fixture-refresh-dryrun" dg-owner="operator" dg-expires=2026-05-15
COURTLISTENER_API_TOKEN="<raw-api-token>" \
python3 scripts/reference_packs/courtlistener_capture.py --dry-run
يحدث البرنامج النصي تركيبات الحزم الكانونية ويعكسها إلى:
system-tests/tests/fixtures/legal_citation/examples/agentic/legal-citation-verification/