mirror of
https://github.com/strapi/strapi.git
synced 2025-07-13 12:02:10 +00:00

* 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>
205 lines
4.2 KiB
TypeScript
205 lines
4.2 KiB
TypeScript
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;
|
||
}
|
||
}
|