Complete bounded browser and API product behavior
This commit is contained in:
parent
619c2911d2
commit
ea55108f44
1 changed files with 2117 additions and 399 deletions
|
|
@ -48,7 +48,10 @@ data Config = Config
|
|||
, cfgThrottleBytesPerSec :: Integer
|
||||
, cfgThrottleBurstBytes :: Integer
|
||||
, cfgListCacheTtlSec :: Integer
|
||||
, cfgBrowsePageSize :: Int
|
||||
, cfgSearchMaxKeys :: Int
|
||||
, cfgSearchTimeoutMs :: Integer
|
||||
, cfgDeletePageSize :: Int
|
||||
, cfgRecoveryGraceSec :: Integer
|
||||
, cfgIdempotencyWindowSec :: Integer
|
||||
, cfgObjectRequestTimeoutSec :: Integer
|
||||
|
|
@ -112,7 +115,10 @@ loadConfig = do
|
|||
when (throttleBurst <= 0 || throttleBurst > luaExactIntegerMax) $
|
||||
fail "NUTHATCH_THROTTLE_BURST_BYTES exceeds the exact throttle range"
|
||||
listTtl <- envInteger "NUTHATCH_LIST_CACHE_TTL_SEC" 30
|
||||
browsePageSize <- fromInteger <$> envInteger "NUTHATCH_BROWSE_PAGE_SIZE" 200
|
||||
searchMax <- fromInteger <$> envInteger "NUTHATCH_SEARCH_MAX_KEYS" 500
|
||||
searchTimeoutMs <- envInteger "NUTHATCH_SEARCH_TIMEOUT_MS" 2000
|
||||
deletePageSize <- fromInteger <$> envInteger "NUTHATCH_DELETE_PAGE_SIZE" 100
|
||||
recoveryGrace <- envInteger "NUTHATCH_RECOVERY_GRACE_SEC" 90
|
||||
idempotencyWindow <- envInteger "NUTHATCH_IDEMPOTENCY_WINDOW_SEC" 86400
|
||||
objectRequestTimeout <- envInteger "NUTHATCH_OBJECT_REQUEST_TIMEOUT_SEC" 300
|
||||
|
|
@ -122,6 +128,14 @@ loadConfig = do
|
|||
fail "NUTHATCH_IDEMPOTENCY_WINDOW_SEC must be positive"
|
||||
when (objectRequestTimeout <= 0) $
|
||||
fail "NUTHATCH_OBJECT_REQUEST_TIMEOUT_SEC must be positive"
|
||||
when (browsePageSize <= 0 || browsePageSize > 1000) $
|
||||
fail "NUTHATCH_BROWSE_PAGE_SIZE must be between 1 and 1000"
|
||||
when (searchMax <= 0 || searchMax > 100000) $
|
||||
fail "NUTHATCH_SEARCH_MAX_KEYS must be between 1 and 100000"
|
||||
when (searchTimeoutMs <= 0 || searchTimeoutMs > 60000) $
|
||||
fail "NUTHATCH_SEARCH_TIMEOUT_MS must be between 1 and 60000"
|
||||
when (deletePageSize <= 0 || deletePageSize > 1000) $
|
||||
fail "NUTHATCH_DELETE_PAGE_SIZE must be between 1 and 1000"
|
||||
pure Config
|
||||
{ cfgListenHost = host
|
||||
, cfgListenPort = port
|
||||
|
|
@ -156,7 +170,10 @@ loadConfig = do
|
|||
, cfgThrottleBytesPerSec = throttleRate
|
||||
, cfgThrottleBurstBytes = throttleBurst
|
||||
, cfgListCacheTtlSec = listTtl
|
||||
, cfgBrowsePageSize = browsePageSize
|
||||
, cfgSearchMaxKeys = searchMax
|
||||
, cfgSearchTimeoutMs = searchTimeoutMs
|
||||
, cfgDeletePageSize = deletePageSize
|
||||
, cfgRecoveryGraceSec = recoveryGrace
|
||||
, cfgIdempotencyWindowSec = idempotencyWindow
|
||||
, cfgObjectRequestTimeoutSec = objectRequestTimeout
|
||||
|
|
|
|||
Loading…
Reference in a new issue