-
-
Notifications
You must be signed in to change notification settings - Fork 658
/
project-insights-schema.ts
148 lines (146 loc) · 5.43 KB
/
project-insights-schema.ts
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import type { FromSchema } from 'json-schema-to-ts';
import { projectStatsSchema } from './project-stats-schema';
import { featureTypeCountSchema } from './feature-type-count-schema';
import { doraFeaturesSchema } from './dora-features-schema';
import { projectDoraMetricsSchema } from './project-dora-metrics-schema';
export const projectInsightsSchema = {
$id: '#/components/schemas/projectInsightsSchema',
type: 'object',
additionalProperties: false,
required: ['stats', 'leadTime', 'featureTypeCounts', 'health', 'members'],
description:
'A high-level overview of a project insights. It contains information such as project statistics, overall health, types of flags, members overview, change requests overview.',
properties: {
stats: {
$ref: '#/components/schemas/projectStatsSchema',
description: 'Project statistics',
},
health: {
type: 'object',
required: [
'rating',
'activeCount',
'potentiallyStaleCount',
'staleCount',
],
properties: {
rating: {
type: 'integer',
description:
"An indicator of the [project's health](https://docs.getunleash.io/reference/technical-debt#health-rating) on a scale from 0 to 100",
example: 95,
},
activeCount: {
type: 'number',
description: 'The number of active feature toggles.',
example: 12,
},
potentiallyStaleCount: {
type: 'number',
description:
'The number of potentially stale feature toggles.',
example: 5,
},
staleCount: {
type: 'number',
description: 'The number of stale feature toggles.',
example: 10,
},
},
description: 'Health summary of the project',
},
leadTime: {
type: 'object',
$ref: '#/components/schemas/projectDoraMetricsSchema',
description: 'Lead time (DORA) metrics',
},
featureTypeCounts: {
type: 'array',
items: {
$ref: '#/components/schemas/featureTypeCountSchema',
},
description: 'The number of features of each type',
},
members: {
type: 'object',
required: ['active', 'inactive'],
properties: {
active: {
type: 'number',
description:
'The number of active project members who have used Unleash in the past 60 days',
example: 10,
},
inactive: {
type: 'number',
description:
'The number of inactive project members who have not used Unleash in the past 60 days',
example: 10,
},
totalPreviousMonth: {
type: 'number',
description:
'The number of total project members in the previous month',
example: 8,
},
},
description: 'Active/inactive users summary',
},
changeRequests: {
type: 'object',
required: [
'total',
'applied',
'rejected',
'reviewRequired',
'approved',
'scheduled',
],
properties: {
total: {
type: 'number',
description:
'The number of total change requests in this project',
example: 10,
},
applied: {
type: 'number',
description: 'The number of applied change requests',
example: 5,
},
rejected: {
type: 'number',
description: 'The number of rejected change requests',
example: 2,
},
reviewRequired: {
type: 'number',
description:
'The number of change requests awaiting the review',
example: 2,
},
approved: {
type: 'number',
description: 'The number of approved change requests',
example: 1,
},
scheduled: {
type: 'number',
description: 'The number of scheduled change requests',
example: 1,
},
},
description:
'Count of change requests in different stages of the [process](https://docs.getunleash.io/reference/change-requests#change-request-flow). Only for enterprise users.',
},
},
components: {
schemas: {
projectStatsSchema,
featureTypeCountSchema,
projectDoraMetricsSchema,
doraFeaturesSchema,
},
},
} as const;
export type ProjectInsightsSchema = FromSchema<typeof projectInsightsSchema>;