generated from coulomb/repo-seed
Establish Railiance Fabric graph model
This commit is contained in:
164
schemas/common.schema.yaml
Normal file
164
schemas/common.schema.yaml
Normal file
@@ -0,0 +1,164 @@
|
||||
$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
|
||||
Reference in New Issue
Block a user