generated from coulomb/repo-seed
165 lines
2.8 KiB
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
|