Simone cae3a5a17d
chore(content-releases): show Banner reached limit max releases (#19276)
* chore(content-releases): add alert reached max limit pending releases

* chore(content-releases): use max pending releases number from config

* chore(content-releases): change limits string content

* chore(content-releases): unit test to check the limit banner

* chore(content-releases): fix ts error

* chore(content-releases): fix review comments

* chore(content-releases): refactor the solution to use useLicenseLimits

* chore(content-releases): fix review comments

* chore(content-releases): fix type error

* chore(content-releases): fix HeaderLayout wrong height because of subtitle empty on loading

* chore(content-releases): remove ReleaseLayout component

* chore(content-releases): remove useless translation

---------

Co-authored-by: Fernando Chavez <fernando.chavez@strapi.io>
2024-01-30 12:03:33 +01:00

205 lines
4.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { errors } from '@strapi/utils';
import type { File } from 'formidable';
export interface Logo {
name: string;
url: string;
width: number;
height: number;
ext: string;
size: number;
}
/**
* /init - Initialize the admin panel
*/
export declare namespace Init {
export interface Request {
body: {};
query: {};
}
export interface Response {
data: {
uuid: string | false;
hasAdmin: boolean;
menuLogo: string | null;
authLogo: string | null;
};
error?: errors.ApplicationError;
}
}
/**
* /project-settings - Get the project settings
*/
export declare namespace GetProjectSettings {
export interface Request {
body: {};
query: {};
}
export interface Response {
menuLogo: Logo;
authLogo: Logo;
error?: errors.ApplicationError;
}
}
/**
* /project-settings - Update the project settings
*/
export declare namespace UpdateProjectSettings {
export interface Request {
body: {
menuLogo: Logo | null;
authLogo: Logo | null;
};
query: {};
files: {
menuLogo?: File | null;
authLogo?: File | null;
};
}
export interface Response {
menuLogo: Partial<Logo>;
authLogo: Partial<Logo>;
error?: errors.ApplicationError | errors.YupValidationError;
}
}
/**
* /information - get project information
*/
export declare namespace Information {
export interface Request {
body: {};
query: {};
}
export interface Response {
data: {
currentEnvironment: string;
autoReload: boolean;
strapiVersion: string | null;
dependencies: Record<string, string>;
projectId: string | null;
nodeVersion: string;
communityEdition: boolean;
useYarn: boolean;
};
error?: errors.ApplicationError;
}
}
/**
* /telemetry-properties - get telemetry properties
*/
export declare namespace TelemetryProperties {
export interface Request {
body: {};
query: {};
}
export interface Response {
data: {
useTypescriptOnServer: boolean;
useTypescriptOnAdmin: boolean;
isHostedOnStrapiCloud: boolean;
numberOfAllContentTypes: number;
numberOfComponents: number;
numberOfDynamicZones: number;
};
error?: errors.ApplicationError;
}
}
/**
* /plugins - get plugin information
*/
export declare namespace Plugins {
interface Plugin {
name: string;
displayName: string;
description: string;
}
export interface Request {
body: {};
query: {};
}
export interface Response {
plugins: Plugin[];
error?: errors.ApplicationError;
}
}
/**
* /providers/options - Single Sign On setting options
*/
export declare namespace ProvidersOptions {
interface SSOProviderOptions {
autoRegister: boolean;
defaultRole: string | null;
ssoLockedRoles: string[] | null;
}
export interface Request {
body: SSOProviderOptions;
query: {};
}
export interface Response {
data: SSOProviderOptions;
error?: errors.ApplicationError | errors.ValidationError | errors.YupValidationError;
}
}
/**
* /license-limit-information get license limit information
*/
export interface SSOFeature {
name: 'sso';
}
export interface AuditLogsFeature {
name: 'audit-logs';
options: {
retentionDays: number | null;
};
}
export interface ReviewWorkflowsFeature {
name: 'review-workflows';
options?: { numberOfWorkflows: number | null; stagesPerWorkflow: number | null };
}
export interface ContentReleasesFeature {
name: 'cms-content-releases';
options?: {
maximumReleases: number;
};
}
/**
* TODO: this response needs refactoring because we're mixing the admin seat limit info with
* regular EE feature info.
*/
export declare namespace GetLicenseLimitInformation {
export interface Request {
body: {};
query: {};
}
export interface Response {
data: {
currentActiveUserCount: number;
enforcementUserCount: number;
features: (SSOFeature | AuditLogsFeature | ReviewWorkflowsFeature | ContentReleasesFeature)[];
isHostedOnStrapiCloud: boolean;
licenseLimitStatus: unknown;
permittedSeats: number;
shouldNotify: boolean;
shouldStopCreate: boolean;
};
error?: errors.ApplicationError;
}
}