-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproject.schema.yaml
More file actions
117 lines (113 loc) · 3.66 KB
/
Copy pathproject.schema.yaml
File metadata and controls
117 lines (113 loc) · 3.66 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
---
type: object
title: "Project Definition Schema"
description: "Defines the structure for the project's main descriptor and configuration file (project.yaml)."
required:
- project
- compiler_settings
properties:
project:
type: object
description: "General metadata about the repository."
required:
- name
- description
- license
- owner
- main_branch
properties:
name:
type: string
description: "The human-readable name of the repository."
description:
type: string
description: "A one-sentence summary of the repository's purpose."
version:
type: [string, "null"]
description: "The semantic version of the repository's codebase."
pattern: "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$"
license:
type: string
description: "The SPDX identifier for the repository's license (e.g., 'MIT', 'CC-BY-NC-SA-4.0')."
main_branch:
type: string
description: "The prefix used for release branches and tags (e.g., 'main' or 'schemas')."
owner:
type: string
description: "The team or individual responsible for the repository."
maintenance:
type: object
description: "Defines the maintenance status and support window for this version of the repository."
properties:
status:
type: string
description: "The current maintenance status."
enum: ["active", "maintenance-only", "deprecated", "end-of-life"]
supported_until:
type: string
description: "The date (YYYY-MM-DD) until which this version receives support or updates."
format: date
contacts:
type: array
description: "Points of contact for support or questions."
items:
type: object
required:
- type
- value
properties:
type:
type: string
enum: ["email", "slack", "msteams"]
value:
type: string
links:
type: array
description: "Important URLs related to the repository."
items:
type: object
required: ["name", "url"]
properties:
name:
type: string
url:
type: string
compiler_settings:
type: object
description: "Configuration for the build and release tools."
required:
- meta_schemas_dir
- source_dir
- meta_schema_file
- vault_key_name
properties:
meta_schemas_dir:
type: string
source_dir:
type: string
meta_schema_file:
type: string
vault_key_name:
type: string
release:
type: object
description: "Contains the cryptographic proof for a given release version. This block is populated by the CI/CD pipeline."
properties:
version:
type: string
description: "The semantic version of this release."
timestamp:
type: string
format: date-time
description: "The exact timestamp when this release was built and signed."
repository_tree_hash:
type: string
description: "The Git tree hash of the entire repository at the moment of release, proving the integrity of the full codebase."
sign:
type: string
description: "A cryptographic signature from Vault for the 'release' block content."
required:
- version
- timestamp
- repository_tree_hash
- sign