Add preference for storage parameters

This commit is contained in:
rubikscraft
2023-01-01 14:28:46 +01:00
committed by Caramel
parent 3a265c62c1
commit 838db4a8f5
3 changed files with 62 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import { SysPreference } from 'picsur-shared/dist/dto/sys-preferences.enum';
import { UsrPreference } from 'picsur-shared/dist/dto/usr-preferences.enum';
import { generateRandomString } from 'picsur-shared/dist/util/random';
import { EarlyJwtConfigService } from '../../config/early/early-jwt.config.service';
import { FileStorageConfigService } from '../../config/early/filestorage.config.service';
// This specific service holds the default values for system and user preferences
// It needs to be in a service because the values depend on the environment
@@ -13,7 +14,7 @@ import { EarlyJwtConfigService } from '../../config/early/early-jwt.config.servi
export class PreferenceDefaultsService {
private readonly logger = new Logger(PreferenceDefaultsService.name);
constructor(private readonly jwtConfigService: EarlyJwtConfigService) {}
constructor(private readonly jwtConfigService: EarlyJwtConfigService,private readonly fsConfigService: FileStorageConfigService) {}
private readonly usrDefaults: {
[key in UsrPreference]: (() => PrefValueType) | PrefValueType;
@@ -47,6 +48,14 @@ export class PreferenceDefaultsService {
[SysPreference.ConversionTimeLimit]: '15s',
[SysPreference.ConversionMemoryLimit]: 512,
[SysPreference.FSLocalPath]: () => this.fsConfigService.getLocalPath(),
[SysPreference.FSS3Endpoint]: () => this.fsConfigService.getS3Endpoint() ?? '',
[SysPreference.FSS3Bucket]: () => this.fsConfigService.getS3Bucket(),
[SysPreference.FSS3Region]: () => this.fsConfigService.getS3Region(),
[SysPreference.FSS3AccessKey]: () => this.fsConfigService.getS3AccessKey(),
[SysPreference.FSS3SecretKey]: () => this.fsConfigService.getS3SecretKey(),
[SysPreference.EnableTracking]: false,
[SysPreference.TrackingUrl]: '',
[SysPreference.TrackingId]: '',

View File

@@ -57,6 +57,37 @@ export const SysPreferenceUI: {
category: 'Authentication',
},
[SysPreference.FSLocalPath]: {
name: 'FS Local - Path',
helpText: 'Storage location of the local storage provider.',
category: 'File Storage',
},
[SysPreference.FSS3Endpoint]: {
name: 'FS S3 - Endpoint',
helpText: 'Custom endpoint of the S3 storage provider.',
category: 'File Storage',
},
[SysPreference.FSS3Bucket]: {
name: 'FS S3 - Bucket',
helpText: 'Bucket of the S3 storage provider.',
category: 'File Storage',
},
[SysPreference.FSS3Region]: {
name: 'FS S3 - Region',
helpText: 'Region of the S3 storage provider.',
category: 'File Storage',
},
[SysPreference.FSS3AccessKey]: {
name: 'FS S3 - Access Key',
helpText: 'Access key of the S3 storage provider.',
category: 'File Storage',
},
[SysPreference.FSS3SecretKey]: {
name: 'FS S3 - Secret Key',
helpText: 'Secret key of the S3 storage provider.',
category: 'File Storage',
},
[SysPreference.EnableTracking]: {
name: 'Enable Ackee Web Tracking',
helpText:

View File

@@ -19,6 +19,13 @@ export enum SysPreference {
ConversionTimeLimit = 'conversion_time_limit',
ConversionMemoryLimit = 'conversion_memory_limit',
FSLocalPath = 'fs_local_path',
FSS3Endpoint = 'fs_s3_endpoint',
FSS3Bucket = 'fs_s3_bucket',
FSS3Region = 'fs_s3_region',
FSS3AccessKey = 'fs_s3_access_key',
FSS3SecretKey = 'fs_s3_secret_key',
EnableTracking = 'enable_tracking',
TrackingUrl = 'tracking_url',
TrackingId = 'tracking_id',
@@ -45,6 +52,13 @@ export const SysPreferenceValueTypes: {
[SysPreference.ConversionTimeLimit]: 'string',
[SysPreference.ConversionMemoryLimit]: 'number',
[SysPreference.FSLocalPath]: 'string',
[SysPreference.FSS3Endpoint]: 'string',
[SysPreference.FSS3Bucket]: 'string',
[SysPreference.FSS3Region]: 'string',
[SysPreference.FSS3AccessKey]: 'string',
[SysPreference.FSS3SecretKey]: 'string',
[SysPreference.EnableTracking]: 'boolean',
[SysPreference.TrackingUrl]: 'string',
[SysPreference.TrackingId]: 'string',
@@ -67,6 +81,13 @@ export const SysPreferenceValidators: {
[SysPreference.ConversionTimeLimit]: IsValidMS(),
[SysPreference.ConversionMemoryLimit]: IsPosInt(),
[SysPreference.FSLocalPath]: z.string(),
[SysPreference.FSS3Endpoint]: z.string().regex(URLRegex).or(z.literal('')),
[SysPreference.FSS3Bucket]: z.string(),
[SysPreference.FSS3Region]: z.string(),
[SysPreference.FSS3AccessKey]: z.string(),
[SysPreference.FSS3SecretKey]: z.string(),
[SysPreference.EnableTracking]: z.boolean(),
[SysPreference.TrackingUrl]: z.string().regex(URLRegex).or(z.literal('')),
[SysPreference.TrackingId]: IsEntityID().or(z.literal('')),