hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

fixture.schema.json (4254B)


      1 {
      2   "type": "object",
      3   "properties": {
      4     "fixture_format_version": {
      5       "const": 1
      6     },
      7     "case_id": {
      8       "type": "string",
      9       "minLength": 1
     10     },
     11     "requirements": {
     12       "type": "array",
     13       "items": {
     14         "type": "string",
     15         "pattern": "^HYF-[A-Z]+-[0-9]{3}$"
     16       },
     17       "minItems": 1,
     18       "uniqueItems": true
     19     },
     20     "family": {
     21       "enum": [
     22         "domain",
     23         "provider",
     24         "journeys",
     25         "protocol",
     26         "security"
     27       ]
     28     },
     29     "boundary": {
     30       "enum": [
     31         "domain",
     32         "application",
     33         "provider",
     34         "transport",
     35         "harness",
     36         "process",
     37         "security",
     38         "journey"
     39       ]
     40     },
     41     "operation": {
     42       "type": "string",
     43       "minLength": 1
     44     },
     45     "purpose": {
     46       "type": "string",
     47       "minLength": 1
     48     },
     49     "implementation_status": {
     50       "const": "planned"
     51     },
     52     "required_from_step": {
     53       "type": "string",
     54       "pattern": "^S[0-9]{3}$"
     55     },
     56     "mandatory": {
     57       "const": true
     58     },
     59     "context": {
     60       "type": "object",
     61       "minProperties": 1
     62     },
     63     "given": {
     64       "type": "object",
     65       "minProperties": 1
     66     },
     67     "provider_script": {
     68       "type": "array",
     69       "items": {
     70         "type": "object",
     71         "minProperties": 1
     72       }
     73     },
     74     "then": {
     75       "type": "array",
     76       "items": {
     77         "type": "object",
     78         "properties": {
     79           "operator": {
     80             "enum": [
     81               "equals",
     82               "contains",
     83               "not_contains",
     84               "present",
     85               "absent",
     86               "max",
     87               "min",
     88               "approx"
     89             ]
     90           },
     91           "path": {
     92             "type": "string",
     93             "pattern": "^/"
     94           },
     95           "value": {},
     96           "tolerance": {
     97             "type": "number",
     98             "minimum": 0
     99           }
    100         },
    101         "required": [
    102           "operator",
    103           "path"
    104         ],
    105         "additionalProperties": false,
    106         "allOf": [
    107           {
    108             "if": {
    109               "properties": {
    110                 "operator": {
    111                   "enum": [
    112                     "equals",
    113                     "contains",
    114                     "not_contains",
    115                     "max",
    116                     "min",
    117                     "approx"
    118                   ]
    119                 }
    120               }
    121             },
    122             "then": {
    123               "required": [
    124                 "value"
    125               ]
    126             }
    127           },
    128           {
    129             "if": {
    130               "properties": {
    131                 "operator": {
    132                   "const": "approx"
    133                 }
    134               }
    135             },
    136             "then": {
    137               "required": [
    138                 "tolerance"
    139               ],
    140               "properties": {
    141                 "value": {
    142                   "type": "number"
    143                 }
    144               }
    145             }
    146           }
    147         ]
    148       },
    149       "minItems": 1
    150     },
    151     "prohibited": {
    152       "type": "array",
    153       "items": {
    154         "type": "string",
    155         "minLength": 1
    156       },
    157       "minItems": 1
    158     },
    159     "provenance": {
    160       "type": "object",
    161       "properties": {
    162         "kind": {
    163           "const": "synthetic"
    164         },
    165         "author": {
    166           "type": "string",
    167           "minLength": 1
    168         },
    169         "review_status": {
    170           "type": "string",
    171           "minLength": 1
    172         }
    173       },
    174       "required": [
    175         "kind",
    176         "author",
    177         "review_status"
    178       ],
    179       "additionalProperties": false
    180     },
    181     "assumptions": {
    182       "type": "array",
    183       "items": {
    184         "type": "string",
    185         "minLength": 1
    186       },
    187       "minItems": 1
    188     }
    189   },
    190   "required": [
    191     "fixture_format_version",
    192     "case_id",
    193     "requirements",
    194     "family",
    195     "boundary",
    196     "operation",
    197     "purpose",
    198     "implementation_status",
    199     "required_from_step",
    200     "mandatory",
    201     "context",
    202     "given",
    203     "provider_script",
    204     "then",
    205     "prohibited",
    206     "provenance",
    207     "assumptions"
    208   ],
    209   "additionalProperties": false,
    210   "$schema": "https://json-schema.org/draft/2020-12/schema",
    211   "title": "hyf_v1_jev handoff semantic fixture definition; not a public Hyf request"
    212 }