diff --git a/src/lib/create-config.ts b/src/lib/create-config.ts index bea9a759ed..924b69e3dc 100644 --- a/src/lib/create-config.ts +++ b/src/lib/create-config.ts @@ -99,7 +99,7 @@ const defaultAuthentication: IAuthOption = { enableApiToken: safeBoolean(process.env.AUTH_ENABLE_API_TOKEN, true), type: authTypeFromString(process.env.AUTH_TYPE), customAuthHandler: () => {}, - createAdminUser: false, + createAdminUser: true, }; const defaultImport: IImportOption = { diff --git a/src/lib/services/index.ts b/src/lib/services/index.ts index 747f8be7d9..bd9f35aa60 100644 --- a/src/lib/services/index.ts +++ b/src/lib/services/index.ts @@ -20,6 +20,7 @@ const { AccessService } = require('./access-service'); const { ApiTokenService } = require('./api-token-service'); const UserService = require('./user-service'); const ResetTokenService = require('./reset-token-service'); +const SettingService = require('./setting-service'); export const createServices = ( stores: IUnleashStores, @@ -51,6 +52,7 @@ export const createServices = ( }); const versionService = new VersionService(stores, config); const healthService = new HealthService(stores, config); + const settingService = new SettingService(stores, config); return { accessService, @@ -71,6 +73,7 @@ export const createServices = ( userService, resetTokenService, eventService, + settingService, }; }; diff --git a/src/lib/services/setting-service.ts b/src/lib/services/setting-service.ts new file mode 100644 index 0000000000..266adc352f --- /dev/null +++ b/src/lib/services/setting-service.ts @@ -0,0 +1,28 @@ +import { IUnleashConfig } from '../types/option'; +import { IUnleashStores } from '../types/stores'; +import { Logger } from '../logger'; +import SettingStore from '../db/setting-store'; + +export default class SettingService { + private logger: Logger; + + private settingStore: SettingStore; + + constructor( + { settingStore }: Pick, + { getLogger }: Pick, + ) { + this.logger = getLogger('services/setting-service.ts'); + this.settingStore = settingStore; + } + + async get(id: string): Promise { + return this.settingStore.get(id); + } + + async insert(id: string, value: object): Promise { + return this.settingStore.insert(id, value); + } +} + +module.exports = SettingService; diff --git a/src/lib/types/services.ts b/src/lib/types/services.ts index 9c1feee27a..6f6b0ad337 100644 --- a/src/lib/types/services.ts +++ b/src/lib/types/services.ts @@ -16,6 +16,7 @@ import ResetTokenService from '../services/reset-token-service'; import FeatureTypeService from '../services/feature-type-service'; import EventService from '../services/event-service'; import HealthService from '../services/health-service'; +import SettingService from '../services/setting-service'; export interface IUnleashServices { accessService: AccessService; @@ -30,6 +31,7 @@ export interface IUnleashServices { healthService: HealthService; projectService: ProjectService; resetTokenService: ResetTokenService; + settingService: SettingService; stateService: StateService; strategyService: StrategyService; tagTypeService: TagTypeService;