UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

120 lines 5.15 kB
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