1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-11-01 19:07:38 +01:00
unleash.unleash/src/lib/openapi/spec/admin-count-schema.ts

29 lines
968 B
TypeScript
Raw Normal View History

fix: add confirmation to disable password login (#3829) https://linear.app/unleash/issue/2-1071/prevent-users-from-disabling-password-authentication-when-there-are-no Improves the behavior of disabling password based login by adding some relevant information and a confirmation dialog with a warning. This felt better than trying to disable the toggle, by still allowing the end users to make the decision, except now it should be a properly informed decision with confirmation. ![image](https://github.com/Unleash/unleash/assets/14320932/2ca754d8-cfa2-4fda-984d-0c34b89750f3) - **Password based administrators**: Admin accounts that have a password set; - **Other administrators**: Other admin users that do not have a password. May be SSO, but may also be users that did not set a password yet; - **Admin service accounts**: Service accounts that have the admin root role. Depending on how you're using the SA this may not necessarily mean locking yourself out of an admin account, especially if you secured its token beforehand; - **Admin API tokens**: Similar to the above. If you secured an admin API token beforehand, you still have access to all features through the API; Each one of them link to the respective page inside Unleash (e.g. users page, service accounts page, tokens page...); If you try to disable and press "save", and only in that scenario, you are presented with the following confirmation dialog: ![image](https://github.com/Unleash/unleash/assets/14320932/5ad6d105-ad47-4d31-a1df-04737aed4e00)
2023-05-23 16:56:34 +02:00
import { FromSchema } from 'json-schema-to-ts';
export const adminCountSchema = {
$id: '#/components/schemas/adminCountSchema',
type: 'object',
additionalProperties: false,
description: 'Contains total admin counts for an Unleash instance.',
required: ['password', 'noPassword', 'service'],
properties: {
password: {
type: 'number',
description: 'Total number of admins that have a password set.',
},
noPassword: {
type: 'number',
description:
'Total number of admins that do not have a password set. May be SSO, but may also be users that did not set a password yet.',
},
service: {
type: 'number',
description:
'Total number of service accounts that have the admin root role.',
},
},
components: {},
} as const;
export type AdminCountSchema = FromSchema<typeof adminCountSchema>;