@test-org-th/omd-schema 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,187 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "title": "OMD Schema - Component",
4
+ "type": "object",
5
+ "required": [
6
+ "omd_service",
7
+ "omd_component",
8
+ "jira_project",
9
+ "schema_version",
10
+ "inventory_id"
11
+ ],
12
+ "properties": {
13
+ "omd_service": {"type": "string"},
14
+ "schema_version": {"type": "string"},
15
+ "inventory_id": {
16
+ "type": "string",
17
+ "const": "980162270ee0cf69c2e3a0a0a87dd93d-e8e885e0931c2c609d3059f840c02b70"
18
+ },
19
+ "omd_component": {
20
+ "title": "Component",
21
+ "description": "Name of an individual microservice, shared library, or other platform element (e.g. lambda, batch job, etc). The value must be unique across the ecosystem.",
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "name",
26
+ "description",
27
+ "type",
28
+ "omd_compliance",
29
+ "omd_cell",
30
+ "sdm_owner_email",
31
+ "jira_team",
32
+ "omd_tier"
33
+ ],
34
+ "properties": {
35
+ "name": {
36
+ "title": "Component",
37
+ "type": "string"
38
+ },
39
+ "description": {
40
+ "title": "Component description",
41
+ "type": "string"
42
+ },
43
+ "type": {
44
+ "title": "Type",
45
+ "description": "Expresses what the implementation of the omd_component is",
46
+ "type": "string",
47
+ "enum": [
48
+ "microservice",
49
+ "platform",
50
+ "library",
51
+ "sdk",
52
+ "front-end",
53
+ "infra",
54
+ "client-app",
55
+ "dashboard",
56
+ "microservice-serverless",
57
+ "infra-library"
58
+ ]
59
+ },
60
+ "omd_compliance": {
61
+ "title": "Compliance",
62
+ "description": "Metadata associated with the omd_component which identifies if the service and its underlying components are directly associated with regulatory/compliance concerns.",
63
+ "type": "string"
64
+ },
65
+ "omd_cell": {
66
+ "title": "Cell",
67
+ "description": "Describes runtime relationships between microservices. For the time being, omd_cell should match omd_service",
68
+ "type": "string"
69
+ },
70
+ "subdivision_strategy": {
71
+ "title": "Subdivision Strategy",
72
+ "description": "A temporary tag in now.yaml describing the runtime deployment configuration of an OMD component that defines the mechanism for supporting multiple products across many regions. At deployment-time, this strategy is used to perform releases to specific subdivisions.",
73
+ "type": "string",
74
+ "enum": ["global", "market", "tenant", "tenant-market"]
75
+ },
76
+ "supported_markets": {
77
+ "title": "Supported Logical Markets",
78
+ "description": "An optional tag to indicate which logical markets the component is applicable.",
79
+ "type": "array",
80
+ "items": {
81
+ "type": "string",
82
+ "enum": ["amer", "apac", "emea", "latam"]
83
+ }
84
+ },
85
+ "deployment_strategy": {
86
+ "title": "Deployment Strategy",
87
+ "description": "This tag helps to describe the deployment of compute resources and infrastructure",
88
+ "type": "string",
89
+ "enum": ["single", "primary", "all"]
90
+ },
91
+ "sdm_owner_email": {
92
+ "title": "SDM Owner Email",
93
+ "description": "The e-mail address of the WBD SDM/Director that owns the omd_component",
94
+ "type": "string"
95
+ },
96
+ "jira_team": {
97
+ "title": "JIRA Team",
98
+ "description": "The JIRA team name, who owns this component",
99
+ "type": "string"
100
+ },
101
+ "omd_tier": {
102
+ "title": "Tier",
103
+ "description": "Helps to identify the criticality of a component that can suggest operational support needed for each component/service, metrics to collect, SLAs, SLOs, etc",
104
+ "type": "string",
105
+ "enum": [
106
+ "undefined",
107
+ "not-applicable",
108
+ "tier-1",
109
+ "tier-2",
110
+ "tier-3",
111
+ "tier-4"
112
+ ]
113
+ },
114
+ "dependencies": {
115
+ "title": "Component Dependencies",
116
+ "description": "A tag used for linking dependencies between different components with any type",
117
+ "type": "array",
118
+ "uniqueItems": true,
119
+ "items": {
120
+ "type": "object",
121
+ "additionalProperties": false,
122
+ "required": ["omd_service", "omd_component"],
123
+ "properties": {
124
+ "omd_service": {
125
+ "title": "Service Name",
126
+ "type": "string"
127
+ },
128
+ "omd_component": {
129
+ "title": "Component Name",
130
+ "type": "string"
131
+ }
132
+ }
133
+ }
134
+ },
135
+ "paths": {
136
+ "title": "Paths",
137
+ "description": "The paths, where you can find specific part(s) of the component.",
138
+ "type": "object",
139
+ "additionalProperties": false,
140
+ "properties": {
141
+ "src": {
142
+ "title": "Source code",
143
+ "type": "array"
144
+ },
145
+ "infra": {
146
+ "title": "IAC code",
147
+ "type": "array"
148
+ },
149
+ "docs": {
150
+ "title": "Documentation",
151
+ "type": "array"
152
+ }
153
+ }
154
+ }
155
+ },
156
+ "if": {
157
+ "properties": {
158
+ "type": {
159
+ "enum": ["infra", "microservice"]
160
+ }
161
+ }
162
+ },
163
+ "then": {
164
+ "required": ["subdivision_strategy", "deployment_strategy"]
165
+ }
166
+ },
167
+ "jira_project": {
168
+ "title": "Jira Project",
169
+ "description": "The JIRA project acronym and URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "required": ["name", "jira_board"],
173
+ "properties": {
174
+ "name": {
175
+ "title": "Name",
176
+ "description": "JIRA project acronym associated with the Jira board representing where work is tracked for the corresponding omd_component",
177
+ "type": "string"
178
+ },
179
+ "jira_board": {
180
+ "title": "Jira board URL",
181
+ "description": "URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
182
+ "type": "string"
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
@@ -0,0 +1,210 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "title": "OMD Schema - Component",
4
+ "type": "object",
5
+ "required": [
6
+ "omd_service",
7
+ "omd_component",
8
+ "jira_project",
9
+ "schema_version",
10
+ "inventory_id"
11
+ ],
12
+ "properties": {
13
+ "omd_service": { "type": "string" },
14
+ "schema_version": { "type": "string" },
15
+ "inventory_id": {
16
+ "type": "string",
17
+ "const": "980162270ee0cf69c2e3a0a0a87dd93d-e8e885e0931c2c609d3059f840c02b70"
18
+ },
19
+ "omd_component": {
20
+ "title": "Component",
21
+ "description": "Name of an individual microservice, shared library, or other platform element (e.g. lambda, batch job, etc). The value must be unique across the ecosystem.",
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "name",
26
+ "description",
27
+ "type",
28
+ "omd_compliance",
29
+ "omd_cell",
30
+ "sdm_owner_email",
31
+ "jira_team",
32
+ "omd_tier"
33
+ ],
34
+ "properties": {
35
+ "name": {
36
+ "title": "Component",
37
+ "type": "string"
38
+ },
39
+ "description": {
40
+ "title": "Component description",
41
+ "type": "string"
42
+ },
43
+ "type": {
44
+ "title": "Type",
45
+ "description": "Expresses what the implementation of the omd_component is",
46
+ "type": "string",
47
+ "enum": [
48
+ "microservice",
49
+ "platform",
50
+ "library",
51
+ "sdk",
52
+ "front-end",
53
+ "infra",
54
+ "client-app",
55
+ "dashboard",
56
+ "microservice-serverless",
57
+ "serverless",
58
+ "infra-library"
59
+ ]
60
+ },
61
+ "omd_compliance": {
62
+ "title": "Compliance",
63
+ "description": "Metadata associated with the omd_component which identifies if the service and its underlying components are directly associated with regulatory/compliance concerns.",
64
+ "type": "string"
65
+ },
66
+ "omd_cell": {
67
+ "title": "Cell",
68
+ "description": "Describes runtime relationships between microservices. For the time being, omd_cell should match omd_service",
69
+ "type": "string"
70
+ },
71
+ "subdivision_strategy": {
72
+ "title": "Subdivision Strategy",
73
+ "description": "A temporary tag in now.yaml describing the runtime deployment configuration of an OMD component that defines the mechanism for supporting multiple products across many regions. At deployment-time, this strategy is used to perform releases to specific subdivisions.",
74
+ "type": "string",
75
+ "enum": ["global", "market", "tenant", "tenant-market"]
76
+ },
77
+ "supported_markets": {
78
+ "title": "Supported Logical Markets",
79
+ "description": "An optional tag to indicate which logical markets the component is applicable.",
80
+ "type": "array",
81
+ "items": {
82
+ "type": "string",
83
+ "enum": ["amer", "apac", "emea", "latam"]
84
+ }
85
+ },
86
+ "deployment_strategy": {
87
+ "title": "Deployment Strategy",
88
+ "description": "This tag helps to describe the deployment of compute resources and infrastructure",
89
+ "type": "string",
90
+ "enum": ["single", "primary", "all"]
91
+ },
92
+ "sdm_owner_email": {
93
+ "title": "SDM Owner Email",
94
+ "description": "The e-mail address of the WBD SDM/Director that owns the omd_component",
95
+ "type": "string"
96
+ },
97
+ "jira_team": {
98
+ "title": "JIRA Team",
99
+ "description": "The JIRA team name, who owns this component",
100
+ "type": "string"
101
+ },
102
+ "omd_tier": {
103
+ "title": "Tier",
104
+ "description": "Helps to identify the criticality of a component that can suggest operational support needed for each component/service, metrics to collect, SLAs, SLOs, etc",
105
+ "type": "string",
106
+ "enum": [
107
+ "undefined",
108
+ "not-applicable",
109
+ "tier-1",
110
+ "tier-2",
111
+ "tier-3",
112
+ "tier-4"
113
+ ]
114
+ },
115
+ "dependencies": {
116
+ "title": "Component Dependencies",
117
+ "description": "A tag used for linking dependencies between different components with any type",
118
+ "type": "array",
119
+ "uniqueItems": true,
120
+ "items": {
121
+ "type": "object",
122
+ "additionalProperties": false,
123
+ "required": ["omd_service", "omd_component"],
124
+ "properties": {
125
+ "omd_service": {
126
+ "title": "Service Name",
127
+ "type": "string"
128
+ },
129
+ "omd_component": {
130
+ "title": "Component Name",
131
+ "type": "string"
132
+ }
133
+ }
134
+ }
135
+ },
136
+ "paths": {
137
+ "title": "Paths",
138
+ "description": "The paths, where you can find specific part(s) of the component.",
139
+ "type": "object",
140
+ "additionalProperties": false,
141
+ "properties": {
142
+ "src": {
143
+ "title": "Source code",
144
+ "type": "array"
145
+ },
146
+ "infra": {
147
+ "title": "IAC code",
148
+ "type": "array"
149
+ },
150
+ "docs": {
151
+ "title": "Documentation",
152
+ "type": "array"
153
+ }
154
+ }
155
+ }
156
+ },
157
+ "allOf": [
158
+ {
159
+ "if": {
160
+ "properties": {
161
+ "type": {
162
+ "enum": ["infra"]
163
+ }
164
+ }
165
+ },
166
+ "then": {
167
+ "required": ["paths"],
168
+ "properties": {
169
+ "paths": {
170
+ "type": "object",
171
+ "required": ["src"]
172
+ }
173
+ }
174
+ }
175
+ },
176
+ {
177
+ "if": {
178
+ "properties": {
179
+ "type": {
180
+ "enum": ["infra", "microservice"]
181
+ }
182
+ }
183
+ },
184
+ "then": {
185
+ "required": ["subdivision_strategy", "deployment_strategy"]
186
+ }
187
+ }
188
+ ]
189
+ },
190
+ "jira_project": {
191
+ "title": "Jira Project",
192
+ "description": "The JIRA project acronym and URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "required": ["name", "jira_board"],
196
+ "properties": {
197
+ "name": {
198
+ "title": "Name",
199
+ "description": "JIRA project acronym associated with the Jira board representing where work is tracked for the corresponding omd_component",
200
+ "type": "string"
201
+ },
202
+ "jira_board": {
203
+ "title": "Jira board URL",
204
+ "description": "URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
205
+ "type": "string"
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
@@ -0,0 +1,211 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "title": "OMD Schema - Component",
4
+ "type": "object",
5
+ "required": [
6
+ "omd_service",
7
+ "omd_component",
8
+ "jira_project",
9
+ "schema_version",
10
+ "inventory_id"
11
+ ],
12
+ "properties": {
13
+ "omd_service": { "type": "string" },
14
+ "schema_version": { "type": "string" },
15
+ "inventory_id": {
16
+ "type": "string",
17
+ "const": "980162270ee0cf69c2e3a0a0a87dd93d-e8e885e0931c2c609d3059f840c02b70"
18
+ },
19
+ "omd_component": {
20
+ "title": "Component",
21
+ "description": "Name of an individual microservice, shared library, or other platform element (e.g. lambda, batch job, etc). The value must be unique across the ecosystem.",
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "name",
26
+ "description",
27
+ "type",
28
+ "omd_compliance",
29
+ "omd_cell",
30
+ "sdm_owner_email",
31
+ "jira_team",
32
+ "omd_tier"
33
+ ],
34
+ "properties": {
35
+ "name": {
36
+ "title": "Component",
37
+ "type": "string",
38
+ "pattern": "^[a-z][a-z0-9_-]{0,61}[a-z0-9]$"
39
+ },
40
+ "description": {
41
+ "title": "Component description",
42
+ "type": "string"
43
+ },
44
+ "type": {
45
+ "title": "Type",
46
+ "description": "Expresses what the implementation of the omd_component is",
47
+ "type": "string",
48
+ "enum": [
49
+ "microservice",
50
+ "platform",
51
+ "library",
52
+ "sdk",
53
+ "front-end",
54
+ "infra",
55
+ "client-app",
56
+ "dashboard",
57
+ "serverless",
58
+ "infra-library"
59
+ ]
60
+ },
61
+ "omd_compliance": {
62
+ "title": "Compliance",
63
+ "description": "Metadata associated with the omd_component which identifies if the service and its underlying components are directly associated with regulatory/compliance concerns.",
64
+ "type": "string"
65
+ },
66
+ "omd_cell": {
67
+ "title": "Cell",
68
+ "description": "Describes runtime relationships between microservices. For the time being, omd_cell should match omd_service",
69
+ "type": "string",
70
+ "pattern": "^[a-z][a-z0-9_-]{0,61}[a-z0-9]$"
71
+ },
72
+ "subdivision_strategy": {
73
+ "title": "Subdivision Strategy",
74
+ "description": "A temporary tag in now.yaml describing the runtime deployment configuration of an OMD component that defines the mechanism for supporting multiple products across many regions. At deployment-time, this strategy is used to perform releases to specific subdivisions.",
75
+ "type": "string",
76
+ "enum": ["global", "market", "tenant", "tenant-market"]
77
+ },
78
+ "supported_markets": {
79
+ "title": "Supported Logical Markets",
80
+ "description": "An optional tag to indicate which logical markets the component is applicable.",
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string",
84
+ "enum": ["amer", "apac", "emea", "latam"]
85
+ }
86
+ },
87
+ "deployment_strategy": {
88
+ "title": "Deployment Strategy",
89
+ "description": "This tag helps to describe the deployment of compute resources and infrastructure",
90
+ "type": "string",
91
+ "enum": ["single", "primary", "all"]
92
+ },
93
+ "sdm_owner_email": {
94
+ "title": "SDM Owner Email",
95
+ "description": "The e-mail address of the WBD SDM/Director that owns the omd_component",
96
+ "type": "string"
97
+ },
98
+ "jira_team": {
99
+ "title": "JIRA Team",
100
+ "description": "The JIRA team name, who owns this component",
101
+ "type": "string"
102
+ },
103
+ "omd_tier": {
104
+ "title": "Tier",
105
+ "description": "Helps to identify the criticality of a component that can suggest operational support needed for each component/service, metrics to collect, SLAs, SLOs, etc",
106
+ "type": "string",
107
+ "enum": [
108
+ "undefined",
109
+ "not-applicable",
110
+ "tier-1",
111
+ "tier-2",
112
+ "tier-3",
113
+ "tier-4"
114
+ ]
115
+ },
116
+ "dependencies": {
117
+ "title": "Component Dependencies",
118
+ "description": "A tag used for linking dependencies between different components with any type",
119
+ "type": "array",
120
+ "uniqueItems": true,
121
+ "items": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "required": ["omd_service", "omd_component"],
125
+ "properties": {
126
+ "omd_service": {
127
+ "title": "Service Name",
128
+ "type": "string"
129
+ },
130
+ "omd_component": {
131
+ "title": "Component Name",
132
+ "type": "string"
133
+ }
134
+ }
135
+ }
136
+ },
137
+ "paths": {
138
+ "title": "Paths",
139
+ "description": "The paths, where you can find specific part(s) of the component.",
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "properties": {
143
+ "src": {
144
+ "title": "Source code",
145
+ "type": "array"
146
+ },
147
+ "infra": {
148
+ "title": "IAC code",
149
+ "type": "array"
150
+ },
151
+ "docs": {
152
+ "title": "Documentation",
153
+ "type": "array"
154
+ }
155
+ }
156
+ }
157
+ },
158
+ "allOf": [
159
+ {
160
+ "if": {
161
+ "properties": {
162
+ "type": {
163
+ "enum": ["infra"]
164
+ }
165
+ }
166
+ },
167
+ "then": {
168
+ "required": ["paths"],
169
+ "properties": {
170
+ "paths": {
171
+ "type": "object",
172
+ "required": ["src"]
173
+ }
174
+ }
175
+ }
176
+ },
177
+ {
178
+ "if": {
179
+ "properties": {
180
+ "type": {
181
+ "enum": ["infra", "microservice"]
182
+ }
183
+ }
184
+ },
185
+ "then": {
186
+ "required": ["subdivision_strategy", "deployment_strategy"]
187
+ }
188
+ }
189
+ ]
190
+ },
191
+ "jira_project": {
192
+ "title": "Jira Project",
193
+ "description": "The JIRA project acronym and URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
194
+ "type": "object",
195
+ "additionalProperties": false,
196
+ "required": ["name", "jira_board"],
197
+ "properties": {
198
+ "name": {
199
+ "title": "Name",
200
+ "description": "JIRA project acronym associated with the Jira board representing where work is tracked for the corresponding omd_component",
201
+ "type": "string"
202
+ },
203
+ "jira_board": {
204
+ "title": "Jira board URL",
205
+ "description": "URL associated with the Jira board representing where work is tracked for the corresponding omd_component",
206
+ "type": "string"
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }