From 7bdd9b648a3305506017d0faa4e8dbb1f2f455b4 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 20 Feb 2025 15:03:36 +0100 Subject: [PATCH] refactor(settings): fix merge --- src/Settings.hs | 177 +----------------------------------------------- 1 file changed, 3 insertions(+), 174 deletions(-) diff --git a/src/Settings.hs b/src/Settings.hs index 5341e579c..a026a8134 100644 --- a/src/Settings.hs +++ b/src/Settings.hs @@ -85,180 +85,6 @@ import Utils.Lens.TH import qualified Data.Set as Set --- | Runtime settings to configure this application. These settings can be --- loaded from various sources: defaults, environment variables, config files, --- theoretically even a database. -data AppSettings = AppSettings - { appStaticDir :: FilePath - -- ^ Directory from which to serve static files. - , appWebpackEntrypoints :: FilePath - , appWellKnownDir :: FilePath - , appWellKnownLinkFile :: FilePath - , appDatabaseConf :: PostgresConf - -- ^ Configuration settings for accessing the database. - , appAutoDbMigrate :: Bool - , appLdapConf :: Maybe (PointedList LdapConf) - -- ^ Configuration settings for CSV export/import to LMS (= Learn Management System) - , appLmsConf :: LmsConf - -- ^ Configuration settings for accessing the LDAP-directory - , appAvsConf :: Maybe AvsConf - -- ^ Configuration settings for accessing AVS Server (= Ausweis Verwaltungs System) - , appAvsLicenceSynchConf :: AvsLicenceSynchConf - -- ^ Configuration settings for automatically synching driving licences with AVS - , appLprConf :: LprConf - -- ^ Configuration settings for accessing a printer queue via lpr for letter mailing - , appSmtpConf :: Maybe SmtpConf - -- ^ Configuration settings for accessing a SMTP Mailserver - , appWidgetMemcachedConf :: Maybe WidgetMemcachedConf - -- ^ Configuration settings for accessing a Memcached instance for use with `addStaticContent` - , appRoot :: ApprootScope -> Maybe Text - -- ^ Base for all generated URLs. If @Nothing@, determined - -- from the request headers. - , appHost :: HostPreference - -- ^ Host/interface the server should bind to. - , appPort :: Int - -- ^ Port to listen on - , appIpFromHeader :: Bool - -- ^ Get the IP address from the header when logging. Useful when sitting - -- behind a reverse proxy. - - , appServerSessionConfig :: ServerSessionSettings - , appServerSessionAcidFallback :: Bool - , appSessionMemcachedConf :: Maybe MemcachedConf - , appSessionTokenStart - , appSessionTokenExpiration :: Maybe NominalDiffTime - , appSessionTokenEncoding :: JwtEncoding - , appSessionTokenClockLeniencyStart, appSessionTokenClockLeniencyEnd - , appBearerTokenClockLeniencyStart, appBearerTokenClockLeniencyEnd - , appUploadTokenClockLeniencyStart, appUploadTokenClockLeniencyEnd :: Maybe NominalDiffTime - - , appMailObjectDomain :: Text - , appMailVerp :: VerpMode - , appMailRetainSent :: Maybe NominalDiffTime - , appMailEnvelopeFrom :: Text - , appMailFrom - , appMailSender - , appMailSupport :: Address - , appMailRerouteTo :: Maybe Address - , appMailUseReplyToInstead :: Bool - , appJobWorkers :: Natural - , appJobFlushInterval :: Maybe NominalDiffTime - , appJobCronInterval :: Maybe NominalDiffTime - , appJobStaleThreshold :: NominalDiffTime - , appJobMoveThreshold :: Maybe DiffTime - , appNotificationRateLimit :: NominalDiffTime - , appNotificationCollateDelay :: NominalDiffTime - , appNotificationExpiration :: NominalDiffTime - , appSessionTimeout :: NominalDiffTime - , appMaximumContentLength :: Maybe Word64 - , appBearerExpiration :: Maybe NominalDiffTime - , appBearerEncoding :: JwtEncoding - - , appHealthCheckInterval :: HealthCheck -> Maybe NominalDiffTime - , appHealthCheckDelayNotify :: Bool - , appHealthCheckHTTP :: Bool - - , appHealthCheckActiveJobExecutorsTimeout :: NominalDiffTime - , appHealthCheckActiveWidgetMemcachedTimeout :: NominalDiffTime - , appHealthCheckSMTPConnectTimeout :: NominalDiffTime - , appHealthCheckLDAPAdminsTimeout :: NominalDiffTime - , appHealthCheckHTTPReachableTimeout :: NominalDiffTime - , appHealthCheckMatchingClusterConfigTimeout :: NominalDiffTime - - , appSynchroniseLdapUsersWithin :: Maybe NominalDiffTime - , appSynchroniseLdapUsersInterval :: NominalDiffTime - , appSynchroniseLdapUsersExpire :: Maybe NominalDiffTime - - , appSynchroniseAvsUsersWithin :: Maybe NominalDiffTime - , appSynchroniseAvsUsersInterval :: NominalDiffTime - - , appLdapReTestFailover :: DiffTime - - , appSessionFilesExpire :: NominalDiffTime - , appKeepUnreferencedFiles :: NominalDiffTime - - , appPruneUnreferencedFilesWithin :: Maybe NominalDiffTime - , appPruneUnreferencedFilesInterval :: NominalDiffTime - - , appInitialLogSettings :: LogSettings - - , appTransactionLogIPRetentionTime :: NominalDiffTime - - , appReloadTemplates :: Bool - -- ^ Use the reload version of templates - , appMutableStatic :: Bool - -- ^ Assume that files in the static dir may change after compilation - , appSkipCombining :: Bool - -- ^ Perform no stylesheet/script combining - , appAuthDummyLogin :: Bool - -- ^ Indicate if auth dummy login should be enabled. - , appAllowDeprecated :: Bool - -- ^ Indicate if deprecated routes are accessible for everyone - , appEncryptErrors :: Bool - , appClearCache :: Bool - - , appUserDefaults :: UserDefaultConf - , appAuthPWHash :: PWHashConf - - , appExternalApisPingInterval - , appExternalApisPongTimeout - , appExternalApisExpiry :: NominalDiffTime - - , appCookieSettings :: RegisteredCookie -> CookieSettings - - , appMemcachedConf :: Maybe MemcachedConf - , appMemcacheAuth :: Bool - , appMemcachedLocalConf :: Maybe (ARCConf Int) - - , appUploadCacheConf :: Maybe Minio.ConnectInfo - , appUploadCacheBucket, appUploadTmpBucket :: Minio.Bucket - , appInjectFiles :: Maybe NominalDiffTime - , appRechunkFiles :: Maybe NominalDiffTime - , appCheckMissingFiles :: Maybe NominalDiffTime - , appFileUploadDBChunksize :: Int - - - , appFavouritesQuickActionsBurstsize - , appFavouritesQuickActionsAvgInverseRate :: Word64 - , appFavouritesQuickActionsTimeout :: DiffTime - , appFavouritesQuickActionsCacheTTL :: Maybe DiffTime - - , appPersistentTokenBuckets :: TokenBucketIdent -> TokenBucketConf - - , appFallbackPersonalisedSheetFilesKeysExpire :: NominalDiffTime - - , appDownloadTokenExpire :: NominalDiffTime - - , appInitialInstanceID :: Maybe (Either FilePath UUID) - , appRibbon :: Maybe Text - - , appJobMode :: JobMode - - , appStudyFeaturesRecacheRelevanceWithin :: Maybe NominalDiffTime - , appStudyFeaturesRecacheRelevanceInterval :: NominalDiffTime - - , appJobLmsQualificationsEnqueueHour :: Maybe Natural - , appJobLmsQualificationsDequeueHour :: Maybe Natural - - , appFileSourceARCConf :: Maybe (ARCConf Int) - , appFileSourcePrewarmConf :: Maybe PrewarmCacheConf - - , appBotMitigations :: Set SettingBotMitigation - - , appVolatileClusterSettingsCacheTime :: DiffTime - - , appJobMaxFlush :: Maybe Natural - - , appCommunicationAttachmentsMaxSize :: Maybe Natural - , appCommunicationGlobalCC :: Maybe UserEmail - - , appFileChunkingParams :: FastCDCParameters - - , appLegalExternal :: Set LegalExternal - - } deriving Show - - data JobMode = JobsLocal { jobsAcceptOffload :: Bool } | JobsOffload | JobsDrop @@ -667,6 +493,7 @@ data AppSettings = AppSettings -- ^ Configuration settings for CSV export/import to LMS (= Learn Management System) -- TODO, TODISCUSS: reimplement as user-auth source? , appAvsConf :: Maybe AvsConf -- ^ Configuration settings for accessing AVS Server (= Ausweis Verwaltungs System) -- TODO, TODISCUSS: reimplement as user-auth source? + , appAvsLicenceSynchConf :: Maybe AvsLicenceSynchConf , appLprConf :: LprConf -- ^ Configuration settings for accessing a printer queue via lpr for letter mailing , appSmtpConf :: Maybe SmtpConf @@ -736,6 +563,8 @@ data AppSettings = AppSettings , appSynchroniseAvsUsersWithin :: Maybe NominalDiffTime , appSynchroniseAvsUsersInterval :: NominalDiffTime + , appSynchroniseLdapUsersExpire :: Maybe NominalDiffTime + , appSessionFilesExpire :: NominalDiffTime , appKeepUnreferencedFiles :: NominalDiffTime