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