relocate config files

This commit is contained in:
rubikscraft
2022-03-28 12:27:25 +02:00
parent 07ef1b1216
commit d7d44b0147
25 changed files with 98 additions and 98 deletions

View File

@@ -1,9 +1,9 @@
import { Module } from '@nestjs/common';
import { ServeStaticModule } from '@nestjs/serve-static';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PicsurConfigModule } from './config/config.module';
import { ServeStaticConfigService } from './config/servestatic.config.service';
import { TypeOrmConfigService } from './config/typeorm.config.service';
import { EarlyConfigModule } from './config/early/earlyconfig.module';
import { ServeStaticConfigService } from './config/early/servestatic.config.service';
import { TypeOrmConfigService } from './config/early/typeorm.config.service';
import { PicsurLoggerModule } from './logger/logger.module';
import { AuthManagerModule } from './managers/auth/auth.module';
import { DemoManagerModule } from './managers/demo/demomanager.module';
@@ -13,11 +13,11 @@ import { PicsurRoutesModule } from './routes/routes.module';
imports: [
TypeOrmModule.forRootAsync({
useExisting: TypeOrmConfigService,
imports: [PicsurConfigModule],
imports: [EarlyConfigModule],
}),
ServeStaticModule.forRootAsync({
useExisting: ServeStaticConfigService,
imports: [PicsurConfigModule],
imports: [EarlyConfigModule],
}),
PicsurLoggerModule,
AuthManagerModule,

View File

@@ -1,14 +1,14 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { HasFailed } from 'picsur-shared/dist/types';
import { PicsurConfigModule } from '../../config/config.module';
import { HostConfigService } from '../../config/host.config.service';
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
import { HostConfigService } from '../../config/early/host.config.service';
import { ImmutableRolesList, SystemRoleDefaults, UndeletableRolesList } from '../../models/dto/roles.dto';
import { ERoleBackend } from '../../models/entities/role.entity';
import { RolesService } from './roledb.service';
@Module({
imports: [PicsurConfigModule, TypeOrmModule.forFeature([ERoleBackend])],
imports: [EarlyConfigModule, TypeOrmModule.forFeature([ERoleBackend])],
providers: [RolesService],
exports: [RolesService],
})

View File

@@ -1,15 +1,14 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PicsurConfigModule } from '../../config/config.module';
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
import { ESysPreferenceBackend } from '../../models/entities/syspreference.entity';
import { SysPreferenceService } from './syspreferencedb.service';
import { SysPreferenceDefaultsService } from './syspreferencedefaults.service';
import { ConfigModule } from '@nestjs/config';
@Module({
imports: [
TypeOrmModule.forFeature([ESysPreferenceBackend]),
PicsurConfigModule,
EarlyConfigModule,
],
providers: [SysPreferenceService, SysPreferenceDefaultsService],
exports: [SysPreferenceService],

View File

@@ -4,7 +4,7 @@ import {
SysPrefValueType
} from 'picsur-shared/dist/dto/syspreferences.dto';
import { generateRandomString } from 'picsur-shared/dist/util/random';
import { EnvJwtConfigService } from '../../config/jwt.config.service';
import { EarlyJwtConfigService } from '../../config/early/earlyjwt.config.service';
// This specific service is used to store default values for system preferences
// It needs to be in a service because the values depend on the environment
@@ -13,7 +13,7 @@ import { EnvJwtConfigService } from '../../config/jwt.config.service';
export class SysPreferenceDefaultsService {
private readonly logger = new Logger('SysPreferenceDefaultsService');
constructor(private jwtConfigService: EnvJwtConfigService) {}
constructor(private jwtConfigService: EarlyJwtConfigService) {}
public readonly defaults: {
[key in SysPreference]: () => SysPrefValueType;

View File

@@ -2,8 +2,8 @@ import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { HasFailed } from 'picsur-shared/dist/types';
import { generateRandomString } from 'picsur-shared/dist/util/random';
import { AuthConfigService } from '../../config/auth.config.service';
import { PicsurConfigModule } from '../../config/config.module';
import { AuthConfigService } from '../../config/early/auth.config.service';
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
import { EUserBackend } from '../../models/entities/user.entity';
import { RolesModule } from '../roledb/roledb.module';
import { UsersService } from './userdb.service';
@@ -11,7 +11,7 @@ import { UserRolesService } from './userrolesdb.service';
@Module({
imports: [
PicsurConfigModule,
EarlyConfigModule,
RolesModule,
TypeOrmModule.forFeature([EUserBackend]),
],

View File

@@ -1,6 +1,6 @@
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EnvPrefix } from './config.static';
import { EnvPrefix } from '../config.static';
@Injectable()
export class AuthConfigService {

View File

@@ -1,8 +1,8 @@
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { AuthConfigService } from './auth.config.service';
import { EarlyJwtConfigService } from './earlyjwt.config.service';
import { HostConfigService } from './host.config.service';
import { EnvJwtConfigService } from './jwt.config.service';
import { MultipartConfigService } from './multipart.config.service';
import { ServeStaticConfigService } from './servestatic.config.service';
import { TypeOrmConfigService } from './typeorm.config.service';
@@ -15,7 +15,7 @@ import { TypeOrmConfigService } from './typeorm.config.service';
}),
],
providers: [
EnvJwtConfigService,
EarlyJwtConfigService,
TypeOrmConfigService,
ServeStaticConfigService,
HostConfigService,
@@ -24,7 +24,7 @@ import { TypeOrmConfigService } from './typeorm.config.service';
],
exports: [
ConfigModule,
EnvJwtConfigService,
EarlyJwtConfigService,
TypeOrmConfigService,
ServeStaticConfigService,
HostConfigService,
@@ -32,4 +32,4 @@ import { TypeOrmConfigService } from './typeorm.config.service';
MultipartConfigService,
],
})
export class PicsurConfigModule {}
export class EarlyConfigModule {}

View File

@@ -1,9 +1,9 @@
import { Injectable } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EnvPrefix } from './config.static';
import { EnvPrefix } from '../config.static';
@Injectable()
export class EnvJwtConfigService {
export class EarlyJwtConfigService {
constructor(private configService: ConfigService) {}
public getJwtSecret(): string | undefined {

View File

@@ -1,6 +1,6 @@
import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EnvPrefix } from './config.static';
import { EnvPrefix } from '../config.static';
@Injectable()
export class HostConfigService {

View File

@@ -1,6 +1,6 @@
import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { EnvPrefix } from './config.static';
import { EnvPrefix } from '../config.static';
@Injectable()
export class MultipartConfigService {

View File

@@ -5,7 +5,7 @@ import {
ServeStaticModuleOptionsFactory
} from '@nestjs/serve-static';
import { join } from 'path';
import { EnvPrefix, PackageRoot } from './config.static';
import { EnvPrefix, PackageRoot } from '../config.static';
@Injectable()
export class ServeStaticConfigService

View File

@@ -1,8 +1,8 @@
import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { TypeOrmModuleOptions, TypeOrmOptionsFactory } from '@nestjs/typeorm';
import { EntityList } from '../models/entities';
import { DefaultName, EnvPrefix } from './config.static';
import { EntityList } from '../../models/entities';
import { DefaultName, EnvPrefix } from '../config.static';
import { HostConfigService } from './host.config.service';
@Injectable()

View File

@@ -1,7 +1,7 @@
import { FactoryProvider, Injectable, Logger } from '@nestjs/common';
import { JwtModuleOptions, JwtOptionsFactory } from '@nestjs/jwt';
import { HasFailed } from 'picsur-shared/dist/types';
import { SysPreferenceService } from '../collections/syspreferencesdb/syspreferencedb.service';
import { SysPreferenceService } from '../../collections/syspreferencesdb/syspreferencedb.service';
@Injectable()
export class JwtConfigService implements JwtOptionsFactory {

View File

@@ -0,0 +1,44 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { SysPreferenceModule } from '../../collections/syspreferencesdb/syspreferencedb.module';
import { SysPreferenceService } from '../../collections/syspreferencesdb/syspreferencedb.service';
import { EarlyConfigModule } from '../early/earlyconfig.module';
import { EarlyJwtConfigService } from '../early/earlyjwt.config.service';
import { JwtConfigService } from './jwt.config.service';
// This module contains all configservices that depend on the syspref module
// The syspref module can only be used when connected to the database
// Since the syspref module requires the database config, we need this seperate
// Otherwise we will create a circular depedency
@Module({
imports: [SysPreferenceModule, EarlyConfigModule],
providers: [JwtConfigService],
exports: [JwtConfigService, EarlyConfigModule],
})
export class LateConfigModule implements OnModuleInit {
private readonly logger = new Logger('LateConfigModule');
constructor(
private envJwtConfigService: EarlyJwtConfigService,
private prefService: SysPreferenceService,
) {}
async onModuleInit() {
await this.ensureJwtDefaultsLoaded();
}
async ensureJwtDefaultsLoaded() {
const envSecret = this.envJwtConfigService.getJwtSecret();
const envExpiresIn = this.envJwtConfigService.getJwtExpiresIn();
if (envSecret === undefined) {
await this.prefService.getPreference('jwt_secret');
} else {
await this.prefService.setPreference('jwt_secret', envSecret);
}
if (envExpiresIn !== undefined) {
await this.prefService.setPreference('jwt_expires_in', envExpiresIn);
}
}
}

View File

@@ -1,40 +0,0 @@
import { Logger, Module, OnModuleInit } from '@nestjs/common';
import { SysPreferenceModule } from '../collections/syspreferencesdb/syspreferencedb.module';
import { SysPreferenceService } from '../collections/syspreferencesdb/syspreferencedb.service';
import { PicsurConfigModule } from './config.module';
import { EnvJwtConfigService } from './jwt.config.service';
import { JwtConfigService } from './jwt.lateconfig.service';
// This module contains all configservices that depend on the syspref module
// The syspref module can only be used when connected to the database
// Since the syspref module requires the database config, we need this seperate
// Otherwise we will create a circular depedency
@Module({
imports: [SysPreferenceModule, PicsurConfigModule],
providers: [JwtConfigService],
exports: [JwtConfigService, PicsurConfigModule],
})
export class PicsurLateConfigModule implements OnModuleInit {
private readonly logger = new Logger('PicsurLateConfigModule');
constructor(
private envJwtConfigService: EnvJwtConfigService,
private prefService: SysPreferenceService,
) {}
async onModuleInit() {
const secret = this.envJwtConfigService.getJwtSecret();
const expiresIn = this.envJwtConfigService.getJwtExpiresIn();
if (secret === undefined) {
await this.prefService.getPreference('jwt_secret');
} else {
await this.prefService.setPreference('jwt_secret', secret);
}
if (expiresIn !== undefined) {
await this.prefService.setPreference('jwt_expires_in', expiresIn);
}
}
}

View File

@@ -1,12 +1,12 @@
import { Module } from '@nestjs/common';
import { PicsurConfigModule } from '../config/config.module';
import { EarlyConfigModule } from '../config/early/earlyconfig.module';
import { MultiPartPipe } from './multipart.pipe';
import { PostFilePipe } from './postfile.pipe';
@Module({
imports: [PicsurConfigModule],
imports: [EarlyConfigModule],
providers: [MultiPartPipe, PostFilePipe],
exports: [MultiPartPipe, PostFilePipe, PicsurConfigModule],
exports: [MultiPartPipe, PostFilePipe, EarlyConfigModule],
})
export class DecoratorsModule {
}

View File

@@ -9,7 +9,7 @@ import { FastifyRequest } from 'fastify';
import { MultipartFields, MultipartFile } from 'fastify-multipart';
import { Newable } from 'picsur-shared/dist/types';
import { strictValidate } from 'picsur-shared/dist/util/validate';
import { MultipartConfigService } from '../config/multipart.config.service';
import { MultipartConfigService } from '../config/early/multipart.config.service';
import {
MultiPartFieldDto,
MultiPartFileDto

View File

@@ -7,7 +7,7 @@ import {
} from '@nestjs/common';
import { FastifyRequest } from 'fastify';
import { Multipart } from 'fastify-multipart';
import { MultipartConfigService } from '../config/multipart.config.service';
import { MultipartConfigService } from '../config/early/multipart.config.service';
@Injectable({ scope: Scope.REQUEST })
export class PostFilePipe implements PipeTransform {

View File

@@ -1,9 +1,9 @@
import { Module } from '@nestjs/common';
import { PicsurConfigModule } from '../config/config.module';
import { EarlyConfigModule } from '../config/early/earlyconfig.module';
import { PicsurLoggerService } from './logger.service';
@Module({
imports: [PicsurConfigModule],
imports: [EarlyConfigModule],
providers: [PicsurLoggerService],
exports: [PicsurLoggerService],
})

View File

@@ -1,5 +1,5 @@
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';
import { HostConfigService } from '../config/host.config.service';
import { HostConfigService } from '../config/early/host.config.service';
@Injectable({ scope: Scope.DEFAULT })
export class PicsurLoggerService extends ConsoleLogger {

View File

@@ -9,7 +9,7 @@ import { ValidateOptions } from 'picsur-shared/dist/util/validate';
import { AppModule } from './app.module';
import { UsersService } from './collections/userdb/userdb.service';
import { UserRolesService } from './collections/userdb/userrolesdb.service';
import { HostConfigService } from './config/host.config.service';
import { HostConfigService } from './config/early/host.config.service';
import { MainExceptionFilter } from './layers/httpexception/httpexception.filter';
import { SuccessInterceptor } from './layers/success/success.interceptor';
import { PicsurLoggerService } from './logger/logger.service';

View File

@@ -3,11 +3,8 @@ import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { SysPreferenceModule } from '../../collections/syspreferencesdb/syspreferencedb.module';
import { UsersModule } from '../../collections/userdb/userdb.module';
import {
JwtConfigService,
JwtSecretProvider
} from '../../config/jwt.lateconfig.service';
import { PicsurLateConfigModule } from '../../config/lateconfig.module';
import { JwtConfigService, JwtSecretProvider } from '../../config/late/jwt.config.service';
import { LateConfigModule } from '../../config/late/lateconfig.module';
import { AuthManagerService } from './auth.service';
import { GuestStrategy } from './guards/guest.strategy';
import { JwtStrategy } from './guards/jwt.strategy';
@@ -19,10 +16,10 @@ import { GuestService } from './guest.service';
UsersModule,
PassportModule,
SysPreferenceModule,
PicsurLateConfigModule,
LateConfigModule,
JwtModule.registerAsync({
useExisting: JwtConfigService,
imports: [PicsurLateConfigModule],
imports: [LateConfigModule],
}),
],
providers: [

View File

@@ -1,12 +1,12 @@
import { Logger, Module, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { ImageDBModule } from '../../collections/imagedb/imagedb.module';
import { RolesModule } from '../../collections/roledb/roledb.module';
import { PicsurConfigModule } from '../../config/config.module';
import { HostConfigService } from '../../config/host.config.service';
import { EarlyConfigModule } from '../../config/early/earlyconfig.module';
import { HostConfigService } from '../../config/early/host.config.service';
import { DemoManagerService } from './demomanager.service';
@Module({
imports: [ImageDBModule, PicsurConfigModule, RolesModule],
imports: [ImageDBModule, EarlyConfigModule, RolesModule],
providers: [DemoManagerService],
})
export class DemoManagerModule implements OnModuleInit, OnModuleDestroy {

View File

@@ -1,7 +1,7 @@
import { Controller, Get } from '@nestjs/common';
import { plainToClass } from 'class-transformer';
import { AllPermissionsResponse, InfoResponse } from 'picsur-shared/dist/dto/api/info.dto';
import { HostConfigService } from '../../../config/host.config.service';
import { HostConfigService } from '../../../config/early/host.config.service';
import { NoPermissions } from '../../../decorators/permissions.decorator';
import { PermissionsList } from '../../../models/dto/permissions.dto';

View File

@@ -1,9 +1,9 @@
import { Module } from '@nestjs/common';
import { PicsurConfigModule } from '../../../config/config.module';
import { EarlyConfigModule } from '../../../config/early/earlyconfig.module';
import { InfoController } from './info.controller';
@Module({
imports: [PicsurConfigModule],
imports: [EarlyConfigModule],
controllers: [InfoController],
})
export class InfoModule {}