mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-18 13:48:58 +02:00
Fix
This commit is contained in:
parent
7cded94ece
commit
2f06bbf598
@ -559,7 +559,11 @@ class ProjectStore implements IProjectStore {
|
|||||||
|
|
||||||
async getProjectModeCounts(): Promise<ProjectModeCount[]> {
|
async getProjectModeCounts(): Promise<ProjectModeCount[]> {
|
||||||
const result: ProjectModeCount[] = await this.db
|
const result: ProjectModeCount[] = await this.db
|
||||||
.select(`${SETTINGS_TABLE}.project_mode as mode`)
|
.select(
|
||||||
|
this.db.raw(
|
||||||
|
`COALESCE(${SETTINGS_TABLE}.project_mode, 'open') as mode`,
|
||||||
|
),
|
||||||
|
)
|
||||||
.count(`${TABLE}.id as count`)
|
.count(`${TABLE}.id as count`)
|
||||||
.from(`${TABLE}`)
|
.from(`${TABLE}`)
|
||||||
.join(
|
.join(
|
||||||
@ -567,7 +571,9 @@ class ProjectStore implements IProjectStore {
|
|||||||
`${TABLE}.id`,
|
`${TABLE}.id`,
|
||||||
`${SETTINGS_TABLE}.project`,
|
`${SETTINGS_TABLE}.project`,
|
||||||
)
|
)
|
||||||
.groupBy(`${SETTINGS_TABLE}.project_mode`);
|
.groupBy(
|
||||||
|
this.db.raw(`COALESCE(${SETTINGS_TABLE}.project_mode, 'open')`),
|
||||||
|
);
|
||||||
return result.map(this.mapProjectModeCount);
|
return result.map(this.mapProjectModeCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,9 +48,10 @@ export interface InstanceStats {
|
|||||||
activeUsers: Awaited<ReturnType<GetActiveUsers>>;
|
activeUsers: Awaited<ReturnType<GetActiveUsers>>;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface InstanceStatsSigned extends InstanceStats {
|
export type InstanceStatsSigned = Omit<InstanceStats, 'projects'> & {
|
||||||
|
projects: number;
|
||||||
sum: string;
|
sum: string;
|
||||||
}
|
};
|
||||||
|
|
||||||
export class InstanceStatsService {
|
export class InstanceStatsService {
|
||||||
private logger: Logger;
|
private logger: Logger;
|
||||||
@ -280,10 +281,13 @@ export class InstanceStatsService {
|
|||||||
|
|
||||||
async getSignedStats(): Promise<InstanceStatsSigned> {
|
async getSignedStats(): Promise<InstanceStatsSigned> {
|
||||||
const instanceStats = await this.getStats();
|
const instanceStats = await this.getStats();
|
||||||
|
const totalProjects = instanceStats.projects
|
||||||
|
.map((p) => p.count)
|
||||||
|
.reduce((a, b) => a + b, 0);
|
||||||
|
|
||||||
const sum = sha256(
|
const sum = sha256(
|
||||||
`${instanceStats.instanceId}${instanceStats.users}${instanceStats.featureToggles}${instanceStats.projects}${instanceStats.roles}${instanceStats.groups}${instanceStats.environments}${instanceStats.segments}`,
|
`${instanceStats.instanceId}${instanceStats.users}${instanceStats.featureToggles}${totalProjects}${instanceStats.roles}${instanceStats.groups}${instanceStats.environments}${instanceStats.segments}`,
|
||||||
);
|
);
|
||||||
return { ...instanceStats, sum };
|
return { ...instanceStats, sum, projects: totalProjects };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ import Controller from '../controller';
|
|||||||
import { NONE } from '../../types/permissions';
|
import { NONE } from '../../types/permissions';
|
||||||
import { UiConfigSchema } from '../../openapi/spec/ui-config-schema';
|
import { UiConfigSchema } from '../../openapi/spec/ui-config-schema';
|
||||||
import {
|
import {
|
||||||
InstanceStats,
|
|
||||||
InstanceStatsService,
|
InstanceStatsService,
|
||||||
InstanceStatsSigned,
|
InstanceStatsSigned,
|
||||||
} from '../../features/instance-stats/instance-stats-service';
|
} from '../../features/instance-stats/instance-stats-service';
|
||||||
@ -97,11 +96,7 @@ class InstanceAdminController extends Controller {
|
|||||||
featureToggles: 29,
|
featureToggles: 29,
|
||||||
groups: 3,
|
groups: 3,
|
||||||
instanceId: 'ed3861ae-78f9-4e8c-8e57-b57efc15f82b',
|
instanceId: 'ed3861ae-78f9-4e8c-8e57-b57efc15f82b',
|
||||||
projects: [
|
projects: 4,
|
||||||
{ mode: 'open', count: 5 },
|
|
||||||
{ mode: 'protected', count: 2 },
|
|
||||||
{ mode: 'private', count: 1 },
|
|
||||||
],
|
|
||||||
roles: 5,
|
roles: 5,
|
||||||
customRootRoles: 2,
|
customRootRoles: 2,
|
||||||
customRootRolesInUse: 1,
|
customRootRolesInUse: 1,
|
||||||
@ -123,7 +118,7 @@ class InstanceAdminController extends Controller {
|
|||||||
|
|
||||||
async getStatistics(
|
async getStatistics(
|
||||||
req: AuthedRequest,
|
req: AuthedRequest,
|
||||||
res: Response<InstanceStats>,
|
res: Response<InstanceStatsSigned>,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
const instanceStats = await this.instanceStatsService.getSignedStats();
|
const instanceStats = await this.instanceStatsService.getSignedStats();
|
||||||
res.json(instanceStats);
|
res.json(instanceStats);
|
||||||
|
Loading…
Reference in New Issue
Block a user