1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00
unleash.unleash/src/lib/openapi/spec/instance-admin-stats-schema.ts
Tymoteusz Czech 0d5f33f8ba
Feat/instance health (#4586)
Hackathon

---------

Co-authored-by: chriswk <chriswk@getunleash.io>
2023-08-30 12:51:46 +00:00

181 lines
6.0 KiB
TypeScript

import { FromSchema } from 'json-schema-to-ts';
export const instanceAdminStatsSchema = {
$id: '#/components/schemas/instanceAdminStatsSchema',
type: 'object',
additionalProperties: false,
description:
'Information about an instance and statistics about usage of various features of Unleash',
required: ['instanceId'],
properties: {
instanceId: {
type: 'string',
description:
'A unique identifier for this instance. Generated by the database migration scripts at first run. Typically a UUID.',
example: 'ed3861ae-78f9-4e8c-8e57-b57efc15f82b',
},
timestamp: {
type: 'string',
format: 'date-time',
nullable: true,
description: 'When these statistics were produced',
example: '2023-06-12T12:25:06Z',
},
versionOSS: {
type: 'string',
description:
'The version of Unleash OSS that is bundled in this instance',
example: '5.1.7',
},
versionEnterprise: {
type: 'string',
description:
'The version of Unleash Enterprise that is bundled in this instance',
example: '5.1.7',
},
users: {
type: 'number',
description: 'The number of users this instance has',
example: 8,
minimum: 0,
},
activeUsers: {
type: 'object',
description:
'The number of active users in the last 7, 30 and 90 days',
properties: {
last7: {
type: 'number',
description:
'The number of active users in the last 7 days',
example: 5,
minimum: 0,
},
last30: {
type: 'number',
description:
'The number of active users in the last 30 days',
example: 10,
minimum: 0,
},
last90: {
type: 'number',
description:
'The number of active users in the last 90 days',
example: 15,
minimum: 0,
},
},
},
featureToggles: {
type: 'number',
description: 'The number of feature-toggles this instance has',
example: 47,
minimum: 0,
},
projects: {
type: 'number',
description: 'The number of projects defined in this instance.',
example: 3,
minimum: 0,
},
contextFields: {
type: 'number',
description:
'The number of context fields defined in this instance.',
example: 7,
minimum: 0,
},
roles: {
type: 'number',
description: 'The number of roles defined in this instance',
example: 5,
minimum: 0,
},
groups: {
type: 'number',
description: 'The number of groups defined in this instance',
example: 12,
minimum: 0,
},
environments: {
type: 'number',
description: 'The number of environments defined in this instance',
example: 3,
minimum: 0,
},
segments: {
type: 'number',
description: 'The number of segments defined in this instance',
example: 19,
minimum: 0,
},
strategies: {
type: 'number',
description: 'The number of strategies defined in this instance',
example: 8,
minimum: 0,
},
SAMLenabled: {
type: 'boolean',
description:
'Whether or not SAML authentication is enabled for this instance',
example: false,
},
OIDCenabled: {
type: 'boolean',
description:
'Whether or not OIDC authentication is enabled for this instance',
example: true,
},
clientApps: {
type: 'array',
description:
'A count of connected applications in the last week, last month and all time since last restart',
items: {
type: 'object',
description:
'An entry describing how many client applications has been observed over the defined range',
properties: {
range: {
type: 'string',
description: 'A description of a time range',
enum: ['allTime', '30d', '7d'],
example: '30d',
},
count: {
type: 'number',
description:
'The number of client applications that have been observed in this period',
example: 1,
},
},
},
},
featureExports: {
type: 'number',
description: 'The number of export operations on this instance',
example: 0,
minimum: 0,
},
featureImports: {
type: 'number',
description: 'The number of import operations on this instance',
example: 0,
minimum: 0,
},
sum: {
type: 'string',
description:
'A SHA-256 checksum of the instance statistics to be used to verify that the data in this object has not been tampered with',
example:
'b023323477abb1eb145bebf3cdb30a1c2063e3edc1f7ae474ed8ed6c80de9a3b',
},
},
components: {},
} as const;
export type InstanceAdminStatsSchema = FromSchema<
typeof instanceAdminStatsSchema
>;