1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-08-09 13:47:13 +02:00

chore: Remove featureLinks feature flag

This commit is contained in:
Nuno Góis (aider) 2025-05-21 14:58:06 +01:00
parent e118321bfb
commit 16b22aa770
No known key found for this signature in database
GPG Key ID: 71ECC689F1091765
11 changed files with 11 additions and 43 deletions

View File

@ -27,7 +27,6 @@ import type {
IFeatureToggle,
} from '../../../../../interfaces/featureToggle.ts';
import AddIcon from '@mui/icons-material/Add';
import { useUiFlag } from 'hooks/useUiFlag';
import { Badge } from 'component/common/Badge/Badge';
import LinkIcon from '@mui/icons-material/Link';
import { UPDATE_FEATURE } from '../../../../providers/AccessProvider/permissions.ts';
@ -246,17 +245,13 @@ const FeatureOverviewMetaData: FC<FeatureOverviewMetaDataProps> = ({
const showDependentFeatures = useShowDependentFeatures(project);
const featureLinksEnabled = useUiFlag('featureLinks');
return (
<>
{featureLinksEnabled ? (
<FeatureLinks
links={feature.links || []}
project={feature.project}
feature={feature.name}
/>
) : null}
<StyledMetaDataContainer>
<div>
<StyledTitle>Flag details</StyledTitle>

View File

@ -89,7 +89,6 @@ export type UiFlags = {
addEditStrategy?: boolean;
cleanupReminder?: boolean;
registerFrontendClient?: boolean;
featureLinks?: boolean;
projectLinkTemplates?: boolean;
};

View File

@ -303,10 +303,8 @@ export default class ExportImportService
await this.importTagTypes(dto, auditUser);
await this.importTags(dto, auditUser);
await this.importContextFields(dto, auditUser);
if (this.flagResolver.isEnabled('featureLinks')) {
await this.importLinks(dto, auditUser);
}
}
async import(
dto: ImportTogglesSchema,
@ -907,7 +905,6 @@ export default class ExportImportService
segments,
tagTypes,
featureDependencies,
featureLinks,
] = await Promise.all([
this.toggleStore.getAllByNames(featureNames),
await this.featureEnvironmentStore.getAllByFeatures(
@ -924,10 +921,10 @@ export default class ExportImportService
this.segmentReadModel.getAll(),
this.tagTypeStore.getAll(),
this.dependentFeaturesReadModel.getDependencies(featureNames),
this.flagResolver.isEnabled('featureLinks')
? this.featureLinksReadModel.getLinks(...featureNames)
: Promise.resolve([]),
]);
const featureLinks = await this.featureLinksReadModel.getLinks(
...featureNames,
);
this.addSegmentsToStrategies(featureStrategies, strategySegments);
const filteredContextFields = contextFields
.filter(

View File

@ -171,7 +171,6 @@ beforeAll(async () => {
{
experimental: {
flags: {
featureLinks: true,
},
},
},

View File

@ -108,9 +108,6 @@ export default class FeatureLinkController extends Controller {
>,
res: Response,
): Promise<void> {
if (!this.flagResolver.isEnabled('featureLinks')) {
res.status(404).end();
}
const { projectId, featureName } = req.params;
await this.transactionalFeatureLinkService.transactional((service) =>
@ -132,9 +129,6 @@ export default class FeatureLinkController extends Controller {
>,
res: Response,
): Promise<void> {
if (!this.flagResolver.isEnabled('featureLinks')) {
res.status(404).end();
}
const { projectId, linkId, featureName } = req.params;
await this.transactionalFeatureLinkService.transactional((service) =>
@ -156,9 +150,6 @@ export default class FeatureLinkController extends Controller {
>,
res: Response,
): Promise<void> {
if (!this.flagResolver.isEnabled('featureLinks')) {
res.status(404).end();
}
const { projectId, linkId } = req.params;
await this.transactionalFeatureLinkService.transactional((service) =>

View File

@ -26,7 +26,6 @@ beforeAll(async () => {
{
experimental: {
flags: {
featureLinks: true,
},
},
},

View File

@ -1114,9 +1114,7 @@ export class FeatureToggleService {
this.featureCollaboratorsReadModel.getFeatureCollaborators(
featureName,
),
this.flagResolver.isEnabled('featureLinks')
? this.featureLinksReadModel.getLinks(featureName)
: Promise.resolve([]),
this.featureLinksReadModel.getLinks(featureName),
]);
if (environmentVariants) {

View File

@ -60,7 +60,6 @@ const irrelevantDate = new Date();
beforeAll(async () => {
const flags = {
featureLinks: true,
projectLinkTemplates: true,
};
const config = createTestConfig({ experimental: { flags } });

View File

@ -661,10 +661,7 @@ export function registerPrometheusMetrics(
help: 'Count most popular domains used in feature links',
labelNames: ['domain'],
query: () => {
if (flagResolver.isEnabled('featureLinks')) {
return stores.featureLinkReadModel.getTopDomains();
}
return Promise.resolve([]);
},
map: (result) =>
result.map(({ domain, count }) => ({

View File

@ -60,7 +60,6 @@ export type IFlagKey =
| 'cleanupReminder'
| 'removeInactiveApplications'
| 'registerFrontendClient'
| 'featureLinks'
| 'projectLinkTemplates'
| 'reportUnknownFlags'
| 'lastSeenBulkQuery'
@ -286,10 +285,6 @@ const flags: IFlags = {
process.env.UNLEASH_EXPERIMENTAL_REGISTER_FRONTEND_CLIENT,
false,
),
featureLinks: parseEnvVarBoolean(
process.env.UNLEASH_EXPERIMENTAL_FEATURE_LINKS,
false,
),
projectLinkTemplates: parseEnvVarBoolean(
process.env.UNLEASH_EXPERIMENTAL_PROJECT_LINK_TEMPLATES,
false,

View File

@ -54,7 +54,6 @@ process.nextTick(async () => {
cleanupReminder: true,
strictSchemaValidation: true,
registerFrontendClient: true,
featureLinks: true,
projectLinkTemplates: true,
reportUnknownFlags: true,
},