Files
railiance-fabric/schemas/common.schema.yaml

165 lines
2.8 KiB
YAML

$schema: "https://json-schema.org/draft/2020-12/schema"
$id: "https://railiance.local/fabric/schemas/common.schema.yaml"
title: "Railiance Fabric Common Definitions"
type: object
$defs:
apiVersion:
type: string
const: "railiance.fabric/v1alpha1"
graphId:
type: string
pattern: "^[a-z0-9][a-z0-9.-]*[a-z0-9]$"
minLength: 3
maxLength: 160
lifecycle:
type: string
enum:
- planned
- active
- deprecated
- retired
environment:
type: string
enum:
- dev
- staging
- prod
- all
environments:
type: array
minItems: 1
uniqueItems: true
items:
$ref: "#/$defs/environment"
criticality:
type: string
enum:
- low
- medium
- high
- critical
dataClassification:
type: string
enum:
- public
- internal
- confidential
- restricted
- secret
authMethod:
type: string
enum:
- none
- oidc
- jwt
- mtls
- kubernetes_service_account
- openbao_token
- static_secret
- database_role
- sts_token
- api_key
- unknown
sourceLink:
type: object
additionalProperties: false
required:
- label
properties:
label:
type: string
minLength: 1
path:
type: string
minLength: 1
url:
type: string
format: uri
ref:
type: string
minLength: 1
anyOf:
- required: [path]
- required: [url]
- required: [ref]
metadata:
type: object
additionalProperties: false
required:
- id
- name
- owner
- repo
- domain
properties:
id:
$ref: "#/$defs/graphId"
name:
type: string
minLength: 1
owner:
type: string
minLength: 1
repo:
type: string
minLength: 1
domain:
type: string
minLength: 1
source_links:
type: array
items:
$ref: "#/$defs/sourceLink"
compatibility:
type: object
additionalProperties: false
properties:
version:
type: string
minLength: 1
requires:
type: array
items:
type: string
minLength: 1
compatible_with:
type: array
items:
$ref: "#/$defs/graphId"
breaks:
type: array
items:
type: string
minLength: 1
notes:
type: string
minLength: 1
auth:
type: object
additionalProperties: false
required:
- method
properties:
method:
$ref: "#/$defs/authMethod"
audience:
type: string
minLength: 1
scopes:
type: array
items:
type: string
minLength: 1