1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-06 00:07:44 +01:00
unleash.unleash/frontend/src/interfaces/featureToggle.ts
Thomas Heartman e2b90ae91d
fix: add workaround for tooltip (#7649)
This PR adds the UI part of feature flag collaborators. Collaborators are hidden on windows smaller than size XL because we're not sure how to deal with them in those cases yet.
2024-07-24 09:33:29 +00:00

144 lines
2.9 KiB
TypeScript

import type { IFeatureStrategy } from './strategy';
import type { ITag } from './tags';
/**
* @deprecated use FeatureSchema from openapi
*/
export interface IFeatureFlagListItem {
type: string;
name: string;
stale?: boolean;
lastSeenAt?: string;
createdAt: string;
environments: IEnvironments[];
tags?: ITag[];
favorite?: boolean;
}
export interface IEnvironments {
name: string;
enabled: boolean;
variantCount: number;
lastSeenAt?: string | null;
type?: string;
hasStrategies?: boolean;
hasEnabledStrategies?: boolean;
yes?: number;
no?: number;
}
export type ILastSeenEnvironments = Pick<
IEnvironments,
'name' | 'enabled' | 'lastSeenAt' | 'yes' | 'no'
>;
export type Lifecycle = {
stage: 'initial' | 'pre-live' | 'live' | 'completed' | 'archived';
status?: string;
enteredStageAt: string;
};
export type Collaborator = {
id: number;
name: string;
imageUrl: string;
};
export type CollaboratorData = {
users: Collaborator[];
};
/**
* @deprecated use FeatureSchema from openapi
*/
export interface IFeatureToggle {
stale: boolean;
archived: boolean;
enabled?: boolean;
createdAt: string;
lastSeenAt?: string;
description?: string;
environments: IFeatureEnvironment[];
name: string;
favorite: boolean;
project: string;
type: string;
variants: IFeatureVariant[];
impressionData: boolean;
strategies?: IFeatureStrategy[];
dependencies: Array<IDependency>;
lifecycle?: Lifecycle;
children: Array<string>;
createdBy?: {
id: string;
name: string;
imageUrl: string;
};
collaborators?: CollaboratorData;
}
export interface IDependency {
feature: string;
enabled?: boolean;
variants?: string[];
}
export interface IFeatureEnvironment {
type: string;
name: string;
enabled: boolean;
strategies: IFeatureStrategy[];
variants?: IFeatureVariant[];
lastSeenAt?: string;
yes?: number;
no?: number;
}
export interface IFeatureEnvironmentWithCrEnabled extends IFeatureEnvironment {
crEnabled?: boolean;
}
export interface IFeatureVariant {
name: string;
stickiness: string;
weight: number;
weightType: 'fix' | 'variable';
overrides?: IOverride[];
payload?: IPayload;
}
export interface IOverride {
contextName: string;
values: string[];
}
export interface IPayload {
type: string;
value: string;
}
export interface IFeatureEnvironmentMetrics {
environment: string;
timestamp: string;
yes: number;
no: number;
}
export interface IFeatureMetrics {
version?: number;
maturity?: string;
lastHourUsage: IFeatureEnvironmentMetrics[];
seenApplications: string[];
}
export interface IFeatureMetricsRaw {
featureName: string;
appName: string;
environment: string;
timestamp: string;
yes: number;
no: number;
variants?: Record<string, number>;
}