mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-09 01:17:06 +02:00
parent
11d5a157c4
commit
6c9ef53ea4
@ -72,6 +72,7 @@ exports[`should create default config 1`] = `
|
|||||||
"batchMetrics": false,
|
"batchMetrics": false,
|
||||||
"embedProxy": true,
|
"embedProxy": true,
|
||||||
"embedProxyFrontend": true,
|
"embedProxyFrontend": true,
|
||||||
|
"featuresExportImport": false,
|
||||||
"maintenance": false,
|
"maintenance": false,
|
||||||
"maintenanceMode": false,
|
"maintenanceMode": false,
|
||||||
"messageBanner": false,
|
"messageBanner": false,
|
||||||
@ -89,6 +90,7 @@ exports[`should create default config 1`] = `
|
|||||||
"batchMetrics": false,
|
"batchMetrics": false,
|
||||||
"embedProxy": true,
|
"embedProxy": true,
|
||||||
"embedProxyFrontend": true,
|
"embedProxyFrontend": true,
|
||||||
|
"featuresExportImport": false,
|
||||||
"maintenance": false,
|
"maintenance": false,
|
||||||
"maintenanceMode": false,
|
"maintenanceMode": false,
|
||||||
"messageBanner": false,
|
"messageBanner": false,
|
||||||
|
@ -8,6 +8,7 @@ import { OpenApiService } from '../../services/openapi-service';
|
|||||||
import ExportImportService, {
|
import ExportImportService, {
|
||||||
IExportQuery,
|
IExportQuery,
|
||||||
} from 'lib/services/export-import-service';
|
} from 'lib/services/export-import-service';
|
||||||
|
import { InvalidOperationError } from '../../error';
|
||||||
|
|
||||||
class ExportImportController extends Controller {
|
class ExportImportController extends Controller {
|
||||||
private logger: Logger;
|
private logger: Logger;
|
||||||
@ -50,10 +51,19 @@ class ExportImportController extends Controller {
|
|||||||
req: Request<unknown, unknown, IExportQuery, unknown>,
|
req: Request<unknown, unknown, IExportQuery, unknown>,
|
||||||
res: Response,
|
res: Response,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
|
this.verifyExportImportEnabled();
|
||||||
const query = req.body;
|
const query = req.body;
|
||||||
const data = await this.exportImportService.export(query);
|
const data = await this.exportImportService.export(query);
|
||||||
|
|
||||||
res.json(data);
|
res.json(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private verifyExportImportEnabled() {
|
||||||
|
if (!this.config.flagResolver.isEnabled('featuresExportImport')) {
|
||||||
|
throw new InvalidOperationError(
|
||||||
|
'Feature export/import is not enabled',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
export default ExportImportController;
|
export default ExportImportController;
|
||||||
|
@ -50,6 +50,10 @@ const flags = {
|
|||||||
process.env.UNLEASH_EXPERIMENTAL_SERVICE_ACCOUNTS,
|
process.env.UNLEASH_EXPERIMENTAL_SERVICE_ACCOUNTS,
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
|
featuresExportImport: parseEnvVarBoolean(
|
||||||
|
process.env.UNLEASH_EXPERIMENTAL_FEATURES_EXPORT_IMPORT,
|
||||||
|
false,
|
||||||
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
export const defaultExperimentalOptions: IExperimentalOptions = {
|
export const defaultExperimentalOptions: IExperimentalOptions = {
|
||||||
|
@ -41,6 +41,7 @@ process.nextTick(async () => {
|
|||||||
responseTimeWithAppName: true,
|
responseTimeWithAppName: true,
|
||||||
variantsPerEnvironment: true,
|
variantsPerEnvironment: true,
|
||||||
maintenance: false,
|
maintenance: false,
|
||||||
|
featuresExportImport: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
authentication: {
|
authentication: {
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
import { IUnleashTest, setupApp } from '../../helpers/test-helper';
|
import {
|
||||||
|
IUnleashTest,
|
||||||
|
setupAppWithCustomConfig,
|
||||||
|
} from '../../helpers/test-helper';
|
||||||
import dbInit, { ITestDb } from '../../helpers/database-init';
|
import dbInit, { ITestDb } from '../../helpers/database-init';
|
||||||
import getLogger from '../../../fixtures/no-logger';
|
import getLogger from '../../../fixtures/no-logger';
|
||||||
import { IEventStore } from 'lib/types/stores/event-store';
|
import { IEventStore } from 'lib/types/stores/event-store';
|
||||||
@ -31,7 +34,13 @@ const createToggle = async (
|
|||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
db = await dbInit('export_import_api_serial', getLogger);
|
db = await dbInit('export_import_api_serial', getLogger);
|
||||||
app = await setupApp(db.stores);
|
app = await setupAppWithCustomConfig(db.stores, {
|
||||||
|
experimental: {
|
||||||
|
flags: {
|
||||||
|
featuresExportImport: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
eventStore = db.stores.eventStore;
|
eventStore = db.stores.eventStore;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user