مزودو الخدمات المدمجين في بوابة القرار
تحميل: providers.json (14 كيلوبايت)
هذا المستند يلخص مقدمي الخدمات المدمجين. المخططات الكاملة موجودة في providers.json.
الوقت
تحقق حتمي مستمد من الطابع الزمني للتفعيل المقدم من المتصل.
عقد المزود
- الاسم: مزود الوقت
- النقل: مدمج
ملاحظات
- حتمي: لا توجد قراءات للساعة الحائطية، فقط طوابع زمنية للتفعيل.
- يدعم unix_millis وطوابع زمنية للمشغلات المنطقية.
مخطط التكوين
حقول التكوين:
allow_logical(اختياري): السماح بتوقيتات المشغلات المنطقية في المقارنات. الافتراضي: صحيح.
{
"additionalProperties": false,
"properties": {
"allow_logical": {
"default": true,
"description": "Allow logical trigger timestamps in comparisons.",
"type": "boolean"
}
},
"type": "object"
}
الفحوصات
الآن
إرجاع الطابع الزمني للمشغل كرقم JSON.
- الحتمية: تعتمد على الوقت
- المعلمات المطلوبة: لا
- المقارنات المسموح بها: equals، not_equals، greater_than، greater_than_or_equal، less_than، less_than_or_equal، in_set، exists، not_exists
- أنواع النقاط: trigger_time_unix_millis، trigger_time_logical
- أنواع المحتوى: application/json
حقول المعلمات:
لا توجد حقول.
مخطط المعلمات:
{
"additionalProperties": false,
"description": "No parameters required.",
"properties": {},
"type": "object"
}
نموذج النتيجة:
{
"type": "integer"
}
أمثلة:
وقت تفعيل العودة.
المعلمات:
{}
نتيجة:
1710000000000
بعد
ارجع صحيحًا إذا كان وقت الزناد بعد العتبة.
- الحتمية: تعتمد على الوقت
- Params required: نعم
- المقارنات المسموح بها: equals, not_equals, in_set, exists, not_exists
- أنواع النقاط: trigger_time_unix_millis، trigger_time_logical
- أنواع المحتوى: application/json
حقول المعلمات:
- timestamp (مطلوب): رقم Unix millis أو سلسلة توقيت RFC3339.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"timestamp": {
"description": "Unix millis number or RFC3339 timestamp string.",
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
},
"required": [
"timestamp"
],
"type": "object"
}
نموذج النتيجة:
{
"type": "boolean"
}
أمثلة:
وقت التفعيل بعد العتبة.
المعلمات:
{
"timestamp": 1710000000000
}
نتيجة:
true
قبل
ارجع صحيحًا إذا كان وقت الزناد قبل العتبة.
- الحتمية: تعتمد على الوقت
- Params required: نعم
- المقارنات المسموح بها: equals, not_equals, in_set, exists, not_exists
- أنواع النقاط: trigger_time_unix_millis، trigger_time_logical
- أنواع المحتوى: application/json
حقول المعلمات:
- timestamp (مطلوب): رقم Unix millis أو سلسلة توقيت RFC3339.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"timestamp": {
"description": "Unix millis number or RFC3339 timestamp string.",
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
},
"required": [
"timestamp"
],
"type": "object"
}
نموذج النتيجة:
{
"type": "boolean"
}
أمثلة:
وقت الزناد قبل العتبة.
المعلمات:
{
"timestamp": "2024-01-01T00:00:00Z"
}
نتيجة:
false
env
يقرأ متغيرات بيئة العملية مع سياسة السماح/الرفض وحدود الحجم.
عقد المزود
- الاسم: مزود البيئة
- النقل: مدمج
ملاحظات
- يُرجع قيمة فارغة عندما يكون المفتاح مفقودًا أو محجوزًا بواسطة السياسة.
- تنطبق حدود الحجم على كل من المفتاح والقيمة.
مخطط التكوين
حقول التكوين:
allowlist(اختياري): قائمة السماح الاختيارية لمفاتيح البيئة.denylist(اختياري): قائمة رفض صريحة لمفاتيح البيئة. الافتراضي: [].max_key_bytes(اختياري): الحد الأقصى من البايتات المسموح بها لمفتاح البيئة. الافتراضي: 255.max_value_bytes(اختياري): الحد الأقصى من البايتات المسموح بها لقيمة البيئة. الافتراضي: 65536.overrides(اختياري): خريطة تجاوز حتمية اختيارية لعمليات البحث في البيئة.
{
"additionalProperties": false,
"properties": {
"allowlist": {
"description": "Optional allowlist of environment keys.",
"items": {
"type": "string"
},
"type": "array"
},
"denylist": {
"default": [],
"description": "Explicit denylist of environment keys.",
"items": {
"type": "string"
},
"type": "array"
},
"max_key_bytes": {
"default": 255,
"description": "Maximum bytes allowed for an environment key.",
"minimum": 0,
"type": "integer"
},
"max_value_bytes": {
"default": 65536,
"description": "Maximum bytes allowed for an environment value.",
"minimum": 0,
"type": "integer"
},
"overrides": {
"additionalProperties": {
"type": "string"
},
"description": "Optional deterministic override map for env lookups.",
"type": "object"
}
},
"type": "object"
}
الفحوصات
الحصول على
استرجاع متغير بيئي بواسطة المفتاح.
- الحتمية: خارجية
- Params required: نعم
- المقارنات المسموح بها: equals, not_equals, contains, in_set, exists, not_exists
- أنواع المراسي: env
- أنواع المحتوى: نص عادي
حقول المعلمات:
key(مطلوب): مفتاح متغير البيئة.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"key": {
"description": "Environment variable key.",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
}
نموذج النتيجة:
{
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
أمثلة:
اقرأ DEPLOY_ENV.
المعلمات:
{
"key": "DEPLOY_ENV"
}
نتيجة:
"production"
json
يقرأ ملفات JSON أو YAML ويقيم استعلامات JSONPath ضدها.
عقد المزود
- الاسم: مزود JSON
- النقل: مدمج
ملاحظات
- الوصول إلى الملفات مقيد بالحدود الجذرية وحجم الملفات المكونة.
- يجب أن تكون مسارات الملفات نسبية بالنسبة للجذر؛ المسارات المطلقة مرفوضة.
- JSONPath اختياري؛ إذا تم حذفه، يعني الوثيقة الكاملة.
- يؤدي عدم وجود JSONPath إلى قيمة فارغة مع بيانات خطأ (jsonpath_not_found).
مخطط التكوين
حقول التكوين:
allow_yaml(اختياري): السماح بتحليل YAML لملفات .yaml/.yml. الافتراضي: true.max_bytes(اختياري): الحد الأقصى لحجم الملف بالبايت. القيمة الافتراضية: 1048576.root(مطلوب): الدليل الجذري لحل الملفات (مطلوب).root_id(مطلوب): معرف ثابت للجذر المكون (مطلوب).
{
"additionalProperties": false,
"properties": {
"allow_yaml": {
"default": true,
"description": "Allow YAML parsing for .yaml/.yml files.",
"type": "boolean"
},
"max_bytes": {
"default": 1048576,
"description": "Maximum file size in bytes.",
"minimum": 0,
"type": "integer"
},
"root": {
"description": "Root directory for file resolution (required).",
"type": "string"
},
"root_id": {
"description": "Stable identifier for the configured root (required).",
"pattern": "^[a-z0-9][a-z0-9_-]{0,63}$",
"type": "string"
}
},
"required": [
"root",
"root_id"
],
"type": "object"
}
الفحوصات
المسار
حدد القيم عبر JSONPath من ملف JSON/YAML.
- الحتمية: خارجية
- Params required: نعم
- المقارنات المسموح بها: equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, lex_greater_than, lex_greater_than_or_equal, lex_less_than, lex_less_than_or_equal, contains, in_set, deep_equals, deep_not_equals, exists, not_exists
- أنواع المراسي: file_path_rooted
- أنواع المحتوى: application/json, application/yaml
حقول المعلمات:
file(مطلوب): المسار إلى ملف JSON أو YAML.jsonpath(اختياري): محدد JSONPath اختياري.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"file": {
"description": "Path to a JSON or YAML file.",
"type": "string"
},
"jsonpath": {
"description": "Optional JSONPath selector.",
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
}
نموذج النتيجة:
{
"description": "JSONPath result value (dynamic JSON type).",
"x-decision-gate": {
"dynamic_type": true
}
}
أمثلة:
مثال 1: قراءة النسخة من config.json (مسار نسبي للجذر).
المعلمات:
{
"file": "config.json",
"jsonpath": "$.version"
}
نتيجة:
"1.2.3"
مثال 2: إرجاع الوثيقة الكاملة عند حذف jsonpath.
المعلمات:
{
"file": "config.json"
}
نتيجة:
{
"version": "1.2.3"
}
http
تقوم القضايا بتحديد طلبات HTTP GET وإرجاع رموز الحالة أو تجزئات الجسم.
عقد المزود
- الاسم: مزود HTTP
- النقل: مدمج
ملاحظات
- يتم تطبيق قوائم السماح الخاصة بالمخططات والمضيفين من خلال التكوين.
- الردود محدودة الحجم ومجزأة بشكل حتمي.
مخطط التكوين
حقول التكوين:
allow_http(اختياري): السماح بروابط http:// النصية. الافتراضي: غير مفعل.allowed_hosts(اختياري): قائمة السماح الاختيارية لأسماء المضيفين.hash_algorithm(اختياري): خوارزمية التجزئة المستخدمة لاستجابات body_hash. الافتراضي: “sha256”.max_response_bytes(اختياري): الحد الأقصى لحجم الاستجابة بالبايت. الافتراضي: 1048576.timeout_ms(اختياري): مهلة الطلب بالمللي ثانية. الافتراضي: 5000.user_agent(اختياري): سلسلة وكيل المستخدم للطلبات الصادرة. الافتراضي: “decision-gate/0.1”.
{
"additionalProperties": false,
"properties": {
"allow_http": {
"default": false,
"description": "Allow cleartext http:// URLs.",
"type": "boolean"
},
"allowed_hosts": {
"description": "Optional allowlist of hostnames.",
"items": {
"type": "string"
},
"type": "array"
},
"hash_algorithm": {
"default": "sha256",
"description": "Hash algorithm used for body_hash responses.",
"enum": [
"sha256"
],
"type": "string"
},
"max_response_bytes": {
"default": 1048576,
"description": "Maximum response size in bytes.",
"minimum": 0,
"type": "integer"
},
"timeout_ms": {
"default": 5000,
"description": "Request timeout in milliseconds.",
"minimum": 0,
"type": "integer"
},
"user_agent": {
"default": "decision-gate/0.1",
"description": "User agent string for outbound requests.",
"type": "string"
}
},
"type": "object"
}
الفحوصات
الحالة
إرجاع رمز حالة HTTP لعنوان URL.
- الحتمية: خارجية
- Params required: نعم
- المقارنات المسموح بها: equals، not_equals، greater_than، greater_than_or_equal، less_than، less_than_or_equal، in_set، exists، not_exists
- أنواع الروابط: url
- أنواع المحتوى: application/json
حقول المعلمات:
- url (مطلوب): عنوان URL للاستعلام.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"url": {
"description": "URL to query.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
نموذج النتيجة:
{
"type": "integer"
}
أمثلة:
استرجاع الحالة لنقطة نهاية الصحة.
المعلمات:
{
"url": "https://api.example.com/health"
}
نتيجة:
200
body_hash
إرجاع تجزئة لجسم الاستجابة.
- الحتمية: خارجية
- Params required: نعم
- المقارنات المسموح بها: exists, not_exists
- أنواع الروابط: url
- أنواع المحتوى: application/json
حقول المعلمات:
- url (مطلوب): عنوان URL للاستعلام.
مخطط المعلمات:
{
"additionalProperties": false,
"properties": {
"url": {
"description": "URL to query.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
نموذج النتيجة:
{
"additionalProperties": false,
"properties": {
"algorithm": {
"enum": [
"sha256"
],
"type": "string"
},
"value": {
"description": "Lowercase hex digest.",
"type": "string"
}
},
"required": [
"algorithm",
"value"
],
"type": "object"
}
أمثلة:
هاش جسم نقطة النهاية الصحية.
المعلمات:
{
"url": "https://api.example.com/health"
}
نتيجة:
{
"algorithm": "sha256",
"value": "7b4d0d3d16c8f85f67ad79b0870a2c9f1e88924c4cbb4ed4bb7f5c6a1d1b7f9a"
}