All files / schemas/trellis/rules compiled.schema.cts

100% Statements 62/62
100% Branches 0/0
100% Functions 0/0
100% Lines 62/62

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 631x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * @license
 * Copyright 2022 Open Ag Data Alliance
 *
 * Use of this source code is governed by an MIT-style
 * license that can be found in the LICENSE file or at
 * https://opensource.org/licenses/MIT.
 */
 
import type { JSONSchema8 as Schema } from 'jsonschema8';
 
const schema: Schema = {
  $id: 'https://formats.openag.io/trellis/rules/compiled.schema.json',
  $schema: 'http://json-schema.org/draft-07/schema#',
  description: 'Represents a "compiled" bit of work to implement rules',
  allOf: [{ $ref: '../../oada/resource.schema.json' }],
  properties: {
    rule: {
      description: 'Reference to the rule this is implementing',
      $ref: '../../oada/link/v1.schema.json#/definitions/versioned',
    },
    action: {
      description: 'Name of the action invloved',
      type: 'string',
      examples: ['push audit'],
    },
    service: {
      description: 'Name of the service performing this piece of work',
      type: 'string',
    },
    schema: {
      description: 'A JSON Schema which filters inputs to this work',
      $ref: 'https://json-schema.org/draft/2019-09/schema',
    },
    path: {
      description: 'The path to an OADA list to watch for inputs',
      $ref: '../../oada.schema.json#/definitions/path',
    },
    type: {
      description: 'Content-type(s) with which this works',
      oneOf: [
        { type: 'string' },
        {
          type: 'array',
          items: { type: 'string' },
        },
      ],
    },
    on: {
      $comment: 'Where should this definiton live?',
      $ref: './configured.schema.json#/properties/on',
    },
    options: {
      description: 'Parameter values for this work',
      $comment: 'Should these live in parent rule?',
      type: 'object',
    },
  },
  required: ['rule', 'action', 'service', 'type', 'on', 'path', 'schema'],
};
 
export = schema;