mirror of
https://github.com/Unleash/unleash.git
synced 2025-04-10 01:16:39 +02:00
fix: Add admin api for context-field definitions
This commit is contained in:
parent
c86c035c6c
commit
c9c26e249c
@ -27,6 +27,7 @@ function defaultOptions() {
|
||||
importFile: undefined,
|
||||
dropBeforeImport: false,
|
||||
getLogger: defaultLogProvider,
|
||||
customContextFields: [],
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,9 @@
|
||||
},
|
||||
"state": {
|
||||
"uri": "/api/admin/state"
|
||||
},
|
||||
"context": {
|
||||
"uri": "/api/admin/context"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
27
lib/routes/admin-api/context.js
Normal file
27
lib/routes/admin-api/context.js
Normal file
@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
const Controller = require('../controller');
|
||||
|
||||
const builtInContextFields = [
|
||||
{ name: 'environment' },
|
||||
{ name: 'userId' },
|
||||
{ name: 'appName' },
|
||||
];
|
||||
|
||||
class ContextController extends Controller {
|
||||
constructor(config) {
|
||||
super(config);
|
||||
this.contextFields = builtInContextFields.concat(
|
||||
config.customContextFields
|
||||
);
|
||||
this.get('/', this.getContextFields);
|
||||
}
|
||||
|
||||
getContextFields(req, res) {
|
||||
res.status(200)
|
||||
.json(this.contextFields)
|
||||
.end();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ContextController;
|
42
lib/routes/admin-api/context.test.js
Normal file
42
lib/routes/admin-api/context.test.js
Normal file
@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
const test = require('ava');
|
||||
const store = require('./../../../test/fixtures/store');
|
||||
const getLogger = require('../../../test/fixtures/no-logger');
|
||||
const supertest = require('supertest');
|
||||
const getApp = require('../../app');
|
||||
|
||||
const { EventEmitter } = require('events');
|
||||
const eventBus = new EventEmitter();
|
||||
|
||||
function getSetup() {
|
||||
const base = `/random${Math.round(Math.random() * 1000)}`;
|
||||
const stores = store.createStores();
|
||||
const app = getApp({
|
||||
baseUriPath: base,
|
||||
stores,
|
||||
eventBus,
|
||||
extendedPermissions: false,
|
||||
customContextFields: [{ name: 'tenantId' }],
|
||||
getLogger,
|
||||
});
|
||||
|
||||
return {
|
||||
base,
|
||||
request: supertest(app),
|
||||
};
|
||||
}
|
||||
|
||||
test('should get context definition', t => {
|
||||
t.plan(2);
|
||||
const { request, base } = getSetup();
|
||||
return request
|
||||
.get(`${base}/api/admin/context`)
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(200)
|
||||
.expect(res => {
|
||||
t.true(res.body.length === 4);
|
||||
const envField = res.body.find(c => c.name === 'environment');
|
||||
t.true(envField.name === 'environment');
|
||||
});
|
||||
});
|
@ -8,6 +8,7 @@ const StrategyController = require('./strategy');
|
||||
const MetricsController = require('./metrics');
|
||||
const UserController = require('./user');
|
||||
const ConfigController = require('./config');
|
||||
const ContextController = require('./context');
|
||||
const StateController = require('./state');
|
||||
const apiDef = require('./api-def.json');
|
||||
|
||||
@ -23,6 +24,7 @@ class AdminApi extends Controller {
|
||||
this.app.use('/metrics', new MetricsController(config).router);
|
||||
this.app.use('/user', new UserController(config).router);
|
||||
this.app.use('/ui-config', new ConfigController(config).router);
|
||||
this.app.use('/context', new ContextController(config).router);
|
||||
this.app.use('/state', new StateController(config).router);
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,9 @@ class RegisterController extends Controller {
|
||||
await this.clientApplicationsStore.upsert(clientRegistration);
|
||||
await this.clientInstanceStore.insert(clientRegistration);
|
||||
this.logger.info(
|
||||
`New client registered with appName=${clientRegistration.appName} and instanceId=${clientRegistration.instanceId}`
|
||||
`New client registered with appName=${
|
||||
clientRegistration.appName
|
||||
} and instanceId=${clientRegistration.instanceId}`
|
||||
);
|
||||
return res.status(202).end();
|
||||
} catch (err) {
|
||||
|
Loading…
Reference in New Issue
Block a user