@pagopa/opex-dashboard 0.0.1 → 0.1.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.
- package/README.md +78 -1
- package/bin/index.js +1476 -0
- package/config.schema.json +174 -118
- package/package.json +18 -18
package/config.schema.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4
4
|
"description": "Configuration schema for generating operational dashboards from OpenAPI specifications",
|
|
5
5
|
"title": "OpEx Dashboard Configuration",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.1.0",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"properties": {
|
|
9
9
|
"action_groups": {
|
|
@@ -184,164 +184,220 @@
|
|
|
184
184
|
},
|
|
185
185
|
"terraform": {
|
|
186
186
|
"description": "Optional Terraform and environment-specific configuration",
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
"environments": {
|
|
190
|
-
"description": "Environment-specific configurations for dev/uat/prod",
|
|
187
|
+
"anyOf": [
|
|
188
|
+
{
|
|
191
189
|
"type": "object",
|
|
192
190
|
"properties": {
|
|
193
|
-
"
|
|
191
|
+
"backend": {
|
|
192
|
+
"description": "Azure backend configuration for Terraform state",
|
|
194
193
|
"type": "object",
|
|
195
194
|
"properties": {
|
|
196
|
-
"
|
|
197
|
-
"description": "
|
|
198
|
-
"type": "
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
},
|
|
204
|
-
"key": {
|
|
205
|
-
"description": "State file key/path",
|
|
206
|
-
"type": "string"
|
|
207
|
-
},
|
|
208
|
-
"resource_group_name": {
|
|
209
|
-
"description": "Azure resource group for backend state",
|
|
210
|
-
"type": "string"
|
|
211
|
-
},
|
|
212
|
-
"storage_account_name": {
|
|
213
|
-
"description": "Storage account for Terraform state",
|
|
214
|
-
"type": "string"
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
"required": [
|
|
218
|
-
"container_name",
|
|
219
|
-
"key",
|
|
220
|
-
"resource_group_name",
|
|
221
|
-
"storage_account_name"
|
|
222
|
-
],
|
|
223
|
-
"additionalProperties": false
|
|
195
|
+
"container_name": {
|
|
196
|
+
"description": "Blob container name for Terraform state",
|
|
197
|
+
"type": "string"
|
|
198
|
+
},
|
|
199
|
+
"key": {
|
|
200
|
+
"description": "State file key/path",
|
|
201
|
+
"type": "string"
|
|
224
202
|
},
|
|
225
|
-
"
|
|
226
|
-
"description": "
|
|
227
|
-
"type": "string"
|
|
228
|
-
"maxLength": 1
|
|
203
|
+
"resource_group_name": {
|
|
204
|
+
"description": "Azure resource group for backend state",
|
|
205
|
+
"type": "string"
|
|
229
206
|
},
|
|
230
|
-
"
|
|
231
|
-
"description": "
|
|
232
|
-
"type": "string"
|
|
233
|
-
"maxLength": 6
|
|
207
|
+
"storage_account_name": {
|
|
208
|
+
"description": "Storage account for Terraform state",
|
|
209
|
+
"type": "string"
|
|
234
210
|
}
|
|
235
211
|
},
|
|
236
212
|
"required": [
|
|
237
|
-
"
|
|
238
|
-
"
|
|
213
|
+
"container_name",
|
|
214
|
+
"key",
|
|
215
|
+
"resource_group_name",
|
|
216
|
+
"storage_account_name"
|
|
239
217
|
],
|
|
240
218
|
"additionalProperties": false
|
|
241
219
|
},
|
|
242
|
-
"
|
|
220
|
+
"env_short": {
|
|
221
|
+
"description": "Environment short name (1 char: 'd'=dev, 'u'=uat, 'p'=prod)",
|
|
222
|
+
"type": "string",
|
|
223
|
+
"maxLength": 1
|
|
224
|
+
},
|
|
225
|
+
"prefix": {
|
|
226
|
+
"description": "Project prefix (max 6 chars, e.g., 'io', 'pagopa')",
|
|
227
|
+
"type": "string",
|
|
228
|
+
"maxLength": 6
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
"required": [
|
|
232
|
+
"env_short",
|
|
233
|
+
"prefix"
|
|
234
|
+
],
|
|
235
|
+
"additionalProperties": false
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"type": "object",
|
|
239
|
+
"properties": {
|
|
240
|
+
"environments": {
|
|
241
|
+
"description": "Environment-specific configurations for dev/uat/prod",
|
|
243
242
|
"type": "object",
|
|
244
243
|
"properties": {
|
|
245
|
-
"
|
|
246
|
-
"description": "Azure backend configuration for Terraform state",
|
|
244
|
+
"dev": {
|
|
247
245
|
"type": "object",
|
|
248
246
|
"properties": {
|
|
249
|
-
"
|
|
250
|
-
"description": "
|
|
251
|
-
"type": "
|
|
247
|
+
"backend": {
|
|
248
|
+
"description": "Azure backend configuration for Terraform state",
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {
|
|
251
|
+
"container_name": {
|
|
252
|
+
"description": "Blob container name for Terraform state",
|
|
253
|
+
"type": "string"
|
|
254
|
+
},
|
|
255
|
+
"key": {
|
|
256
|
+
"description": "State file key/path",
|
|
257
|
+
"type": "string"
|
|
258
|
+
},
|
|
259
|
+
"resource_group_name": {
|
|
260
|
+
"description": "Azure resource group for backend state",
|
|
261
|
+
"type": "string"
|
|
262
|
+
},
|
|
263
|
+
"storage_account_name": {
|
|
264
|
+
"description": "Storage account for Terraform state",
|
|
265
|
+
"type": "string"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"required": [
|
|
269
|
+
"container_name",
|
|
270
|
+
"key",
|
|
271
|
+
"resource_group_name",
|
|
272
|
+
"storage_account_name"
|
|
273
|
+
],
|
|
274
|
+
"additionalProperties": false
|
|
252
275
|
},
|
|
253
|
-
"
|
|
254
|
-
"description": "
|
|
255
|
-
"type": "string"
|
|
276
|
+
"env_short": {
|
|
277
|
+
"description": "Environment short name (1 char: 'd'=dev, 'u'=uat, 'p'=prod)",
|
|
278
|
+
"type": "string",
|
|
279
|
+
"maxLength": 1
|
|
256
280
|
},
|
|
257
|
-
"
|
|
258
|
-
"description": "
|
|
259
|
-
"type": "string"
|
|
260
|
-
|
|
261
|
-
"storage_account_name": {
|
|
262
|
-
"description": "Storage account for Terraform state",
|
|
263
|
-
"type": "string"
|
|
281
|
+
"prefix": {
|
|
282
|
+
"description": "Project prefix (max 6 chars, e.g., 'io', 'pagopa')",
|
|
283
|
+
"type": "string",
|
|
284
|
+
"maxLength": 6
|
|
264
285
|
}
|
|
265
286
|
},
|
|
266
287
|
"required": [
|
|
267
|
-
"
|
|
268
|
-
"
|
|
269
|
-
"resource_group_name",
|
|
270
|
-
"storage_account_name"
|
|
288
|
+
"env_short",
|
|
289
|
+
"prefix"
|
|
271
290
|
],
|
|
272
291
|
"additionalProperties": false
|
|
273
292
|
},
|
|
274
|
-
"
|
|
275
|
-
"description": "Environment short name (1 char: 'd'=dev, 'u'=uat, 'p'=prod)",
|
|
276
|
-
"type": "string",
|
|
277
|
-
"maxLength": 1
|
|
278
|
-
},
|
|
279
|
-
"prefix": {
|
|
280
|
-
"description": "Project prefix (max 6 chars, e.g., 'io', 'pagopa')",
|
|
281
|
-
"type": "string",
|
|
282
|
-
"maxLength": 6
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
"required": [
|
|
286
|
-
"env_short",
|
|
287
|
-
"prefix"
|
|
288
|
-
],
|
|
289
|
-
"additionalProperties": false
|
|
290
|
-
},
|
|
291
|
-
"uat": {
|
|
292
|
-
"type": "object",
|
|
293
|
-
"properties": {
|
|
294
|
-
"backend": {
|
|
295
|
-
"description": "Azure backend configuration for Terraform state",
|
|
293
|
+
"prod": {
|
|
296
294
|
"type": "object",
|
|
297
295
|
"properties": {
|
|
298
|
-
"
|
|
299
|
-
"description": "
|
|
300
|
-
"type": "
|
|
296
|
+
"backend": {
|
|
297
|
+
"description": "Azure backend configuration for Terraform state",
|
|
298
|
+
"type": "object",
|
|
299
|
+
"properties": {
|
|
300
|
+
"container_name": {
|
|
301
|
+
"description": "Blob container name for Terraform state",
|
|
302
|
+
"type": "string"
|
|
303
|
+
},
|
|
304
|
+
"key": {
|
|
305
|
+
"description": "State file key/path",
|
|
306
|
+
"type": "string"
|
|
307
|
+
},
|
|
308
|
+
"resource_group_name": {
|
|
309
|
+
"description": "Azure resource group for backend state",
|
|
310
|
+
"type": "string"
|
|
311
|
+
},
|
|
312
|
+
"storage_account_name": {
|
|
313
|
+
"description": "Storage account for Terraform state",
|
|
314
|
+
"type": "string"
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
"required": [
|
|
318
|
+
"container_name",
|
|
319
|
+
"key",
|
|
320
|
+
"resource_group_name",
|
|
321
|
+
"storage_account_name"
|
|
322
|
+
],
|
|
323
|
+
"additionalProperties": false
|
|
301
324
|
},
|
|
302
|
-
"
|
|
303
|
-
"description": "
|
|
304
|
-
"type": "string"
|
|
325
|
+
"env_short": {
|
|
326
|
+
"description": "Environment short name (1 char: 'd'=dev, 'u'=uat, 'p'=prod)",
|
|
327
|
+
"type": "string",
|
|
328
|
+
"maxLength": 1
|
|
305
329
|
},
|
|
306
|
-
"
|
|
307
|
-
"description": "
|
|
308
|
-
"type": "string"
|
|
309
|
-
|
|
310
|
-
"storage_account_name": {
|
|
311
|
-
"description": "Storage account for Terraform state",
|
|
312
|
-
"type": "string"
|
|
330
|
+
"prefix": {
|
|
331
|
+
"description": "Project prefix (max 6 chars, e.g., 'io', 'pagopa')",
|
|
332
|
+
"type": "string",
|
|
333
|
+
"maxLength": 6
|
|
313
334
|
}
|
|
314
335
|
},
|
|
315
336
|
"required": [
|
|
316
|
-
"
|
|
317
|
-
"
|
|
318
|
-
"resource_group_name",
|
|
319
|
-
"storage_account_name"
|
|
337
|
+
"env_short",
|
|
338
|
+
"prefix"
|
|
320
339
|
],
|
|
321
340
|
"additionalProperties": false
|
|
322
341
|
},
|
|
323
|
-
"
|
|
324
|
-
"
|
|
325
|
-
"
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
342
|
+
"uat": {
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"backend": {
|
|
346
|
+
"description": "Azure backend configuration for Terraform state",
|
|
347
|
+
"type": "object",
|
|
348
|
+
"properties": {
|
|
349
|
+
"container_name": {
|
|
350
|
+
"description": "Blob container name for Terraform state",
|
|
351
|
+
"type": "string"
|
|
352
|
+
},
|
|
353
|
+
"key": {
|
|
354
|
+
"description": "State file key/path",
|
|
355
|
+
"type": "string"
|
|
356
|
+
},
|
|
357
|
+
"resource_group_name": {
|
|
358
|
+
"description": "Azure resource group for backend state",
|
|
359
|
+
"type": "string"
|
|
360
|
+
},
|
|
361
|
+
"storage_account_name": {
|
|
362
|
+
"description": "Storage account for Terraform state",
|
|
363
|
+
"type": "string"
|
|
364
|
+
}
|
|
365
|
+
},
|
|
366
|
+
"required": [
|
|
367
|
+
"container_name",
|
|
368
|
+
"key",
|
|
369
|
+
"resource_group_name",
|
|
370
|
+
"storage_account_name"
|
|
371
|
+
],
|
|
372
|
+
"additionalProperties": false
|
|
373
|
+
},
|
|
374
|
+
"env_short": {
|
|
375
|
+
"description": "Environment short name (1 char: 'd'=dev, 'u'=uat, 'p'=prod)",
|
|
376
|
+
"type": "string",
|
|
377
|
+
"maxLength": 1
|
|
378
|
+
},
|
|
379
|
+
"prefix": {
|
|
380
|
+
"description": "Project prefix (max 6 chars, e.g., 'io', 'pagopa')",
|
|
381
|
+
"type": "string",
|
|
382
|
+
"maxLength": 6
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"required": [
|
|
386
|
+
"env_short",
|
|
387
|
+
"prefix"
|
|
388
|
+
],
|
|
389
|
+
"additionalProperties": false
|
|
332
390
|
}
|
|
333
391
|
},
|
|
334
|
-
"required": [
|
|
335
|
-
"env_short",
|
|
336
|
-
"prefix"
|
|
337
|
-
],
|
|
338
392
|
"additionalProperties": false
|
|
339
393
|
}
|
|
340
394
|
},
|
|
395
|
+
"required": [
|
|
396
|
+
"environments"
|
|
397
|
+
],
|
|
341
398
|
"additionalProperties": false
|
|
342
399
|
}
|
|
343
|
-
|
|
344
|
-
"additionalProperties": false
|
|
400
|
+
]
|
|
345
401
|
},
|
|
346
402
|
"timespan": {
|
|
347
403
|
"description": "Time range for dashboard queries (e.g., 5m, 1h, 24h). Default: 5m",
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"url": "git+https://github.com/pagopa/dx.git",
|
|
6
6
|
"directory": "apps/opex-dashboard"
|
|
7
7
|
},
|
|
8
|
-
"version": "0.0
|
|
8
|
+
"version": "0.1.0",
|
|
9
9
|
"description": "Generate operational dashboards from OpenAPI specifications",
|
|
10
10
|
"main": "dist/index.js",
|
|
11
11
|
"bin": {
|
|
@@ -21,13 +21,6 @@
|
|
|
21
21
|
"registry": "https://registry.npmjs.org/",
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
|
-
"scripts": {
|
|
25
|
-
"format": "prettier --write .",
|
|
26
|
-
"format:check": "prettier --check .",
|
|
27
|
-
"build": "tsup && tsx scripts/generate-json-schema.ts",
|
|
28
|
-
"dev": "tsup --watch",
|
|
29
|
-
"typecheck": "tsc --noEmit"
|
|
30
|
-
},
|
|
31
24
|
"keywords": [
|
|
32
25
|
"dashboard",
|
|
33
26
|
"openapi",
|
|
@@ -44,20 +37,27 @@
|
|
|
44
37
|
"zod": "^4.1.13"
|
|
45
38
|
},
|
|
46
39
|
"devDependencies": {
|
|
47
|
-
"@
|
|
48
|
-
"@tsconfig/node22": "catalog:",
|
|
40
|
+
"@tsconfig/node22": "22.0.2",
|
|
49
41
|
"@types/js-yaml": "^4.0.9",
|
|
50
|
-
"@types/node": "
|
|
42
|
+
"@types/node": "^22.19.1",
|
|
51
43
|
"@types/tmp": "^0.2.6",
|
|
52
|
-
"@vitest/coverage-v8": "
|
|
53
|
-
"eslint": "
|
|
54
|
-
"prettier": "
|
|
55
|
-
"tsup": "
|
|
44
|
+
"@vitest/coverage-v8": "^3.2.4",
|
|
45
|
+
"eslint": "^9.39.2",
|
|
46
|
+
"prettier": "3.6.2",
|
|
47
|
+
"tsup": "^8.5.1",
|
|
56
48
|
"tsx": "^4.21.0",
|
|
57
|
-
"typescript": "
|
|
58
|
-
"vitest": "
|
|
49
|
+
"typescript": "~5.8.3",
|
|
50
|
+
"vitest": "^3.2.4",
|
|
51
|
+
"@pagopa/eslint-config": "^5.1.2"
|
|
59
52
|
},
|
|
60
53
|
"engines": {
|
|
61
54
|
"node": ">=22.0.0"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"format": "prettier --write .",
|
|
58
|
+
"format:check": "prettier --check .",
|
|
59
|
+
"build": "tsup && tsx scripts/generate-json-schema.ts",
|
|
60
|
+
"dev": "tsup --watch",
|
|
61
|
+
"typecheck": "tsc --noEmit"
|
|
62
62
|
}
|
|
63
|
-
}
|
|
63
|
+
}
|