mirror of
https://github.com/CaramelFur/Picsur.git
synced 2026-02-26 08:00:46 +01:00
Add preference for storage parameters
This commit is contained in:
@@ -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]: '',
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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('')),
|
||||
|
||||
Reference in New Issue
Block a user