unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
120 lines • 5.15 kB
TypeScript
import type { IUnleashConfig } from '../../types/option.js';
import type { IUnleashStores } from '../../types/stores.js';
import type VersionService from '../../services/version-service.js';
import type { GetActiveUsers } from './getActiveUsers.js';
import type { ProjectModeCount } from '../project/project-store.js';
import type { GetProductionChanges } from './getProductionChanges.js';
import type { GetLicensedUsers } from './getLicensedUsers.js';
import type { IFeatureUsageInfo } from '../../services/version-service.js';
export type TimeRange = 'allTime' | '30d' | '7d';
export interface InstanceStats {
instanceId: string;
timestamp: Date;
versionOSS: string;
versionEnterprise?: string;
users: number;
serviceAccounts: number;
apiTokens: Map<string, number>;
featureToggles: number;
archivedFeatureToggles: number;
projects: ProjectModeCount[];
contextFields: number;
roles: number;
customRootRoles: number;
customRootRolesInUse: number;
featureExports: number;
featureImports: number;
groups: number;
environments: number;
segments: number;
strategies: number;
SAMLenabled: boolean;
OIDCenabled: boolean;
passwordAuthEnabled: boolean;
SCIMenabled: boolean;
clientApps: {
range: TimeRange;
count: number;
}[];
activeUsers: Awaited<ReturnType<GetActiveUsers>>;
licensedUsers: Awaited<ReturnType<GetLicensedUsers>>;
productionChanges: Awaited<ReturnType<GetProductionChanges>>;
previousDayMetricsBucketsCount: {
enabledCount: number;
variantCount: number;
};
maxEnvironmentStrategies: number;
maxConstraints: number;
maxConstraintValues: number;
}
export type InstanceStatsSigned = Omit<InstanceStats, 'projects'> & {
projects: number;
sum: string;
};
export declare class InstanceStatsService {
private logger;
private strategyStore;
private userStore;
private featureToggleStore;
private contextFieldStore;
private projectStore;
private groupStore;
private environmentStore;
private segmentStore;
private roleStore;
private eventStore;
private apiTokenStore;
private versionService;
private settingStore;
private clientInstanceStore;
private clientMetricsStore;
private flagResolver;
private appCount?;
getActiveUsers: GetActiveUsers;
getLicencedUsers: GetLicensedUsers;
getProductionChanges: GetProductionChanges;
private featureStrategiesReadModel;
private featureStrategiesStore;
private trafficDataUsageStore;
constructor({ featureToggleStore, userStore, projectStore, environmentStore, strategyStore, contextFieldStore, groupStore, segmentStore, roleStore, settingStore, clientInstanceStore, eventStore, apiTokenStore, clientMetricsStoreV2, featureStrategiesReadModel, featureStrategiesStore, trafficDataUsageStore, }: Pick<IUnleashStores, 'featureToggleStore' | 'userStore' | 'projectStore' | 'environmentStore' | 'strategyStore' | 'contextFieldStore' | 'groupStore' | 'segmentStore' | 'roleStore' | 'settingStore' | 'clientInstanceStore' | 'eventStore' | 'apiTokenStore' | 'clientMetricsStoreV2' | 'featureStrategiesReadModel' | 'featureStrategiesStore' | 'trafficDataUsageStore'>, { getLogger, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>, versionService: VersionService, getActiveUsers: GetActiveUsers, getProductionChanges: GetProductionChanges, getLicencedUsers: GetLicensedUsers);
memory: Map<string, () => Promise<any>>;
memorize<T>(key: string, fn: () => Promise<T>): Promise<T>;
getProjectModeCount(): Promise<ProjectModeCount[]>;
getToggleCount(): Promise<number>;
getArchivedToggleCount(): Promise<number>;
hasOIDC(): Promise<boolean>;
hasSAML(): Promise<boolean>;
hasPasswordAuth(): Promise<boolean>;
hasSCIM(): Promise<boolean>;
getStats(): Promise<InstanceStats>;
getFeatureUsageInfo(): Promise<IFeatureUsageInfo>;
getHostedBy(): string;
getLicenseType(): string;
featuresExported(): Promise<number>;
featuresImported(): Promise<number>;
customStrategiesCount(): Promise<number>;
customStrategiesInUseCount(): Promise<number>;
postgresVersion(): Promise<string>;
groupCount(): Promise<number>;
roleCount(): Promise<number>;
customRolesCount(): Promise<number>;
customRolesCountInUse(): Promise<number>;
segmentCount(): Promise<number>;
contextFieldCount(): Promise<number>;
strategiesCount(): Promise<number>;
environmentCount(): Promise<number>;
countPreviousDayHourlyMetricsBuckets(): Promise<{
enabledCount: number;
variantCount: number;
}>;
countApiTokensByType(): Promise<Map<string, number>>;
getRegisteredUsers(): Promise<number>;
countServiceAccounts(): Promise<number>;
getCurrentTrafficData(): Promise<number>;
getLabeledAppCounts(): Promise<Partial<{
[key in TimeRange]: number;
}>>;
getAppCountSnapshot(range: TimeRange): number | undefined;
getSignedStats(): Promise<InstanceStatsSigned>;
}
//# sourceMappingURL=instance-stats-service.d.ts.map