Proveïdors integrats de Decision Gate
Descarregar: providers.json (14 KB)
Aquest document resumeix els proveïdors integrats. Els esquemes complets es troben a providers.json.
temps
Comprovacions deterministes derivades de la marca de temps del desencadenador subministrada pel cridant.
Contracte de proveïdor
- Nom: Proveïdor de Temps
- Transport: integrat
Notes
- Determinista: sense lectures de rellotge, només caràcters de temps d’activació.
- Suporta unix_millis i caràcters de temps de desencadenament lògics.
Esquema de configuració
Camp de configuració:
allow_logical(opcional): Permetre marques de temps de desencadenament lògic en comparacions. Per defecte: true.
{
"additionalProperties": false,
"properties": {
"allow_logical": {
"default": true,
"description": "Allow logical trigger timestamps in comparisons.",
"type": "boolean"
}
},
"type": "object"
}
Comprovacions
ara
Retorna la marca de temps del desencadenant com un número JSON.
- Determinisme: temps_dependent
- Paràmetres requerits: no
- Comparadors permesos: equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, in_set, exists, not_exists
- Tipus d’ancoratge: trigger_time_unix_millis, trigger_time_logical
- Content types: application/json
Params fields:
No camps.
Esquema de paràmetres:
{
"additionalProperties": false,
"description": "No parameters required.",
"properties": {},
"type": "object"
}
Esquema de resultats:
{
"type": "integer"
}
Exemples:
Retorn del temps de desencadenament.
Params:
{}
Resultat:
1710000000000
Retorna veritable si el temps de desencadenament és després del llindar.
Retorna veritable si el temps de desencadenament és després del llindar.
- Determinisme: temps_dependent
- Params requerits: sí
- Comparadors permesos: equals, not_equals, in_set, exists, not_exists
- Tipus d’ancoratge: trigger_time_unix_millis, trigger_time_logical
- Content types: application/json
Params fields:
- timestamp (requerit): número Unix millis o cadena de caràcters de timestamp RFC3339.
Esquema de paràmetres:
{
"additionalProperties": false,
"properties": {
"timestamp": {
"description": "Unix millis number or RFC3339 timestamp string.",
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
},
"required": [
"timestamp"
],
"type": "object"
}
Esquema de resultats:
{
"type": "boolean"
}
Exemples:
Temps d’activació després del llindar.
Params:
{
"timestamp": 1710000000000
}
Resultat:
true
abans
Retorna veritable si el temps de desencadenament és abans del llindar.
- Determinisme: temps_dependent
- Params requerits: sí
- Comparadors permesos: equals, not_equals, in_set, exists, not_exists
- Tipus d’ancoratge: trigger_time_unix_millis, trigger_time_logical
- Content types: application/json
Params fields:
- timestamp (requerit): número Unix millis o cadena de caràcters de timestamp RFC3339.
Esquema de paràmetres:
{
"additionalProperties": false,
"properties": {
"timestamp": {
"description": "Unix millis number or RFC3339 timestamp string.",
"oneOf": [
{
"type": "integer"
},
{
"type": "string"
}
]
}
},
"required": [
"timestamp"
],
"type": "object"
}
Esquema de resultats:
{
"type": "boolean"
}
Exemples:
Temps de desencadenament abans del llindar.
Params:
{
"timestamp": "2024-01-01T00:00:00Z"
}
Resultat:
false
entorn
Llegeix les variables d’entorn del procés amb política d’autorització/denegació i límits de mida.
Contracte de proveïdor
- Nom: Proveïdor d’Entorn
- Transport: integrat
Notes
- Retorna null quan una clau falta o està bloquejada per política.
- S’apliquen límits de mida tant a la clau com al valor.
Esquema de configuració
Camp de configuració:
allowlist(opcional): Llista d’acceptació opcional de claus d’entorn.denylist(opcional): Llista explícita de claus d’entorn que es deneguen. Per defecte: [].max_key_bytes(opcional): Màxim de bytes permesos per a una clau d’entorn. Per defecte: 255.max_value_bytes(opcional): Màxim de bytes permesos per a un valor d’entorn. Per defecte: 65536.overrides(opcional): Mapa d’override determinista opcional per a cerques d’entorn.
{
"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"
}
Comprovacions
obtenir
Obteniu una variable d’entorn per clau.
- Determinisme: extern
- Params requerits: sí
- Comparadors permesos: equals, not_equals, contains, in_set, exists, not_exists
- Tipus d’ancoratge: env
- Tipus de contingut: text/plain
Params fields:
key(requerit): Clau de la variable d’entorn.
Esquema de paràmetres:
{
"additionalProperties": false,
"properties": {
"key": {
"description": "Environment variable key.",
"type": "string"
}
},
"required": [
"key"
],
"type": "object"
}
Esquema de resultats:
{
"oneOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
Exemples:
Llegeix DEPLOY_ENV.
Params:
{
"key": "DEPLOY_ENV"
}
Resultat:
"production"
json
Llegeix fitxers JSON o YAML i avalua consultes JSONPath contra ells.
Contracte de proveïdor
- Nom: Proveïdor JSON
- Transport: integrat
Notes
- L’accés als fitxers està restringit pels límits de mida i arrel configurats.
- Els camins de fitxer han de ser relatius a la arrel; els camins absoluts són rebutjats.
- JSONPath és opcional; si s’omet, significa el document complet.
- La falta de JSONPath genera un valor nul amb metadades d’error (jsonpath_not_found).
Esquema de configuració
Camp de configuració:
allow_yaml(opcional): Permetre el processament de YAML per a fitxers .yaml/.yml. Per defecte: true.max_bytes(opcional): Mida màxima del fitxer en bytes. Per defecte: 1048576.root(obligatori): Directori arrel per a la resolució de fitxers (obligatori).root_id(requerit): Identificador estable per a la arrel configurada (requerit).
{
"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"
}
Comprovacions
camí
Selecciona valors mitjançant JSONPath d’un fitxer JSON/YAML.
- Determinisme: extern
- Params requerits: sí
- Comparadors permesos: 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
- Tipus d’ancoratge: file_path_rooted
- Tipus de contingut: application/json, application/yaml
Params fields:
file(requerit): Ruta a un fitxer JSON o YAML.jsonpath(opcional): Selector JSONPath opcional.
Esquema de paràmetres:
{
"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"
}
Esquema de resultats:
{
"description": "JSONPath result value (dynamic JSON type).",
"x-decision-gate": {
"dynamic_type": true
}
}
Exemples:
Exemple 1: Llegir la versió del config.json (ruta relativa a l’arrel).
Params:
{
"file": "config.json",
"jsonpath": "$.version"
}
Resultat:
"1.2.3"
Exemple 2: Retornar el document complet quan es omet jsonpath.
Params:
{
"file": "config.json"
}
Resultat:
{
"version": "1.2.3"
}
http
Emissió de sol·licituds HTTP GET limitades i retorn de codis d’estat o hashes del cos.
Contracte de proveïdor
- Nom: HTTP Provider
- Transport: integrat
Notes
- Les llistes blanques de l’esquema i l’amfitrió s’apliquen mitjançant la configuració.
- Les respostes tenen un límit de mida i es hash de manera determinista.
Esquema de configuració
Camp de configuració:
allow_http(opcional): Permetre URLs http:// en text pla. Per defecte: fals.allowed_hosts(opcional): Llista d’hostnames opcional permesa.hash_algorithm(opcional): Algorisme de hash utilitzat per a les respostes body_hash. Per defecte: “sha256”.max_response_bytes(opcional): Mida màxima de la resposta en bytes. Per defecte: 1048576.timeout_ms(opcional): Temps d’espera de la sol·licitud en mil·lisegons. Per defecte: 5000.user_agent(opcional): Cadena d’agent d’usuari per a sol·licituds sortints. Per defecte: “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"
}
Comprovacions
estat
Retorn de codi d’estat HTTP per a una URL.
- Determinisme: extern
- Params requerits: sí
- Comparadors permesos: equals, not_equals, greater_than, greater_than_or_equal, less_than, less_than_or_equal, in_set, exists, not_exists
- Tipus d’ancora: url
- Content types: application/json
Params fields:
- url (obligatori): URL a consultar.
Esquema de paràmetres:
{
"additionalProperties": false,
"properties": {
"url": {
"description": "URL to query.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
Esquema de resultats:
{
"type": "integer"
}
Exemples:
Obtenir l’estat d’un punt final de salut.
Params:
{
"url": "https://api.example.com/health"
}
Resultat:
200
body_hash
Retorna un hash del cos de la resposta.
- Determinisme: extern
- Params requerits: sí
- Comparadors permesos: exists, not_exists
- Tipus d’ancora: url
- Content types: application/json
Params fields:
- url (obligatori): URL a consultar.
Esquema de paràmetres:
{
"additionalProperties": false,
"properties": {
"url": {
"description": "URL to query.",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
Esquema de resultats:
{
"additionalProperties": false,
"properties": {
"algorithm": {
"enum": [
"sha256"
],
"type": "string"
},
"value": {
"description": "Lowercase hex digest.",
"type": "string"
}
},
"required": [
"algorithm",
"value"
],
"type": "object"
}
Exemples:
Hasheja el cos d’un endpoint de salut.
Params:
{
"url": "https://api.example.com/health"
}
Resultat:
{
"algorithm": "sha256",
"value": "7b4d0d3d16c8f85f67ad79b0870a2c9f1e88924c4cbb4ed4bb7f5c6a1d1b7f9a"
}