pub enum ServerConfigError {
Show 86 variants
BindAddress(AddrParseError),
RootDir(Error),
InvalidServerRole,
InvalidServerFrontend,
MissingServerFrontends,
InvalidObjectStorageAdapter,
InvalidAuthProvider,
MissingS3Bucket,
InvalidS3AllowHttp,
InvalidS3VirtualHostedStyleRequest,
S3CredentialSourceConflict {
env: &'static str,
file_env: &'static str,
},
S3CredentialFile {
name: &'static str,
source: Error,
},
S3CredentialTooLarge {
name: &'static str,
observed_bytes: u64,
maximum_bytes: u64,
},
S3CredentialLengthMismatch {
name: &'static str,
expected_bytes: u64,
observed_bytes: u64,
},
S3CredentialUtf8 {
name: &'static str,
},
ChunkSize(ParseIntError),
MaxRequestBodyBytes(ParseIntError),
ZeroMaxRequestBodyBytes,
MaxShardFiles(ParseIntError),
ZeroMaxShardFiles,
MaxShardXorbs(ParseIntError),
ZeroMaxShardXorbs,
MaxShardReconstructionTerms(ParseIntError),
ZeroMaxShardReconstructionTerms,
MaxShardXorbChunks(ParseIntError),
ZeroMaxShardXorbChunks,
ZeroChunkSize,
UploadMaxInFlightChunks(ParseIntError),
ZeroUploadMaxInFlightChunks,
TransferMaxInFlightChunks(ParseIntError),
ZeroTransferMaxInFlightChunks,
InvalidReconstructionCacheAdapter,
ReconstructionCacheTtl(ParseIntError),
ZeroReconstructionCacheTtlSeconds,
ReconstructionCacheMemoryMaxEntries(ParseIntError),
ZeroReconstructionCacheMemoryMaxEntries,
OciUploadSessionTtl(ParseIntError),
ZeroOciUploadSessionTtlSeconds,
OciUploadMaxActiveSessions(ParseIntError),
ZeroOciUploadMaxActiveSessions,
OciRegistryTokenTtl(ParseIntError),
ZeroOciRegistryTokenTtlSeconds,
OciRegistryTokenMaxInFlightRequests(ParseIntError),
ZeroOciRegistryTokenMaxInFlightRequests,
EmptyReconstructionCacheRedisUrl,
MissingReconstructionCacheRedisUrl,
RedisTlsMaterial {
name: &'static str,
source: Error,
},
RedisTlsMaterialTooLarge {
name: &'static str,
observed_bytes: u64,
maximum_bytes: u64,
},
IncompleteRedisTlsClientIdentity,
EmptyIndexPostgresUrl,
TokenSigningKey(Error),
TokenSigningKeyTooLarge {
observed_bytes: u64,
maximum_bytes: u64,
},
TokenSigningKeyLengthMismatch {
expected_bytes: u64,
observed_bytes: u64,
},
ProviderTokenTtl,
EmptyTokenSigningKey,
MetricsToken(Error),
EmptyMetricsToken,
MetricsTokenTooLarge {
observed_bytes: u64,
maximum_bytes: u64,
},
MetricsTokenLengthMismatch {
expected_bytes: u64,
observed_bytes: u64,
},
MissingTokenSigningKeyForServedRoutes,
EmptyProviderApiKey,
ProviderApiKey(Error),
ProviderApiKeyTooLarge {
observed_bytes: u64,
maximum_bytes: u64,
},
ProviderApiKeyLengthMismatch {
expected_bytes: u64,
observed_bytes: u64,
},
EmptyProviderTokenIssuer,
ZeroProviderTokenTtl,
IncompleteProviderTokenConfig,
ProviderTokensRequireSigningKey,
ChunkSizeTooLarge,
InvalidPublicBaseUrl(String),
ConfigFileError(String),
MissingOidcIssuer,
MissingJwksUrl,
HubRequiresAuth,
PassthroughProviderRequiresLoopbackBind {
bind_addr: SocketAddr,
},
SecretSourceConflict {
env: &'static str,
file_env: &'static str,
},
MissingEd25519Key,
ConflictingEd25519Keys,
Ed25519PrivateKey(Error),
Ed25519PublicKey(Error),
Ed25519PrivateKeyTooLarge {
observed_bytes: u64,
maximum_bytes: u64,
},
Ed25519PublicKeyTooLarge {
observed_bytes: u64,
maximum_bytes: u64,
},
Ed25519PrivateKeyLengthMismatch {
expected_bytes: u64,
observed_bytes: u64,
},
Ed25519PublicKeyLengthMismatch {
expected_bytes: u64,
observed_bytes: u64,
},
EmptyEd25519PrivateKey,
EmptyEd25519PublicKey,
}Expand description
Server configuration loading failure.
Variants§
BindAddress(AddrParseError)
The bind address could not be parsed.
RootDir(Error)
The local deployment root contained an invalid filesystem component.
InvalidServerRole
The server role token was invalid.
InvalidServerFrontend
The server frontend token was invalid.
MissingServerFrontends
The configured server frontend set was empty.
InvalidObjectStorageAdapter
The object-storage adapter token was invalid.
InvalidAuthProvider
The auth provider token was invalid.
MissingS3Bucket
S3 object storage was selected without a bucket.
InvalidS3AllowHttp
S3 object storage was selected with an invalid allow-http flag.
InvalidS3VirtualHostedStyleRequest
S3 object storage was selected with an invalid virtual-hosted-style flag.
S3CredentialSourceConflict
An S3 credential was provided through both direct env and file indirection.
Fields
S3CredentialFile
An S3 credential file could not be read.
Fields
S3CredentialTooLarge
An S3 credential file exceeded the bounded parser ceiling.
Fields
S3CredentialLengthMismatch
An S3 credential file changed after validation and was rejected.
Fields
S3CredentialUtf8
An S3 credential file was not valid UTF-8.
ChunkSize(ParseIntError)
The chunk size could not be parsed.
MaxRequestBodyBytes(ParseIntError)
The maximum request body size could not be parsed.
ZeroMaxRequestBodyBytes
The maximum request body size was zero.
MaxShardFiles(ParseIntError)
The maximum shard file section count could not be parsed.
ZeroMaxShardFiles
The maximum shard file section count was zero.
MaxShardXorbs(ParseIntError)
The maximum shard xorb section count could not be parsed.
ZeroMaxShardXorbs
The maximum shard xorb section count was zero.
MaxShardReconstructionTerms(ParseIntError)
The maximum shard reconstruction term count could not be parsed.
ZeroMaxShardReconstructionTerms
The maximum shard reconstruction term count was zero.
MaxShardXorbChunks(ParseIntError)
The maximum shard xorb chunk record count could not be parsed.
ZeroMaxShardXorbChunks
The maximum shard xorb chunk record count was zero.
ZeroChunkSize
The chunk size was zero.
UploadMaxInFlightChunks(ParseIntError)
The per-upload chunk processing window could not be parsed.
ZeroUploadMaxInFlightChunks
The per-upload chunk processing window was zero.
TransferMaxInFlightChunks(ParseIntError)
The transfer concurrency budget could not be parsed.
ZeroTransferMaxInFlightChunks
The transfer concurrency budget was zero.
InvalidReconstructionCacheAdapter
The reconstruction-cache adapter token was invalid.
ReconstructionCacheTtl(ParseIntError)
The reconstruction-cache TTL could not be parsed.
ZeroReconstructionCacheTtlSeconds
The reconstruction-cache TTL was zero.
ReconstructionCacheMemoryMaxEntries(ParseIntError)
The in-memory reconstruction-cache capacity could not be parsed.
ZeroReconstructionCacheMemoryMaxEntries
The in-memory reconstruction-cache capacity was zero.
OciUploadSessionTtl(ParseIntError)
The OCI upload-session TTL could not be parsed.
ZeroOciUploadSessionTtlSeconds
The OCI upload-session TTL was zero.
OciUploadMaxActiveSessions(ParseIntError)
The OCI upload live-session ceiling could not be parsed.
ZeroOciUploadMaxActiveSessions
The OCI upload live-session ceiling was zero.
OciRegistryTokenTtl(ParseIntError)
The OCI registry token TTL could not be parsed.
ZeroOciRegistryTokenTtlSeconds
The OCI registry token TTL was zero.
OciRegistryTokenMaxInFlightRequests(ParseIntError)
The OCI registry token in-flight request ceiling could not be parsed.
ZeroOciRegistryTokenMaxInFlightRequests
The OCI registry token in-flight request ceiling was zero.
EmptyReconstructionCacheRedisUrl
The Redis reconstruction-cache URL was empty.
MissingReconstructionCacheRedisUrl
Redis reconstruction-cache configuration was incomplete.
RedisTlsMaterial
A Redis TLS certificate, CA, or private key file could not be read.
Fields
RedisTlsMaterialTooLarge
Redis TLS material exceeded the bounded parser ceiling.
Fields
IncompleteRedisTlsClientIdentity
Redis mTLS needs both halves of a client identity.
EmptyIndexPostgresUrl
The Postgres metadata URL was empty.
TokenSigningKey(Error)
The token signing key file could not be read.
TokenSigningKeyTooLarge
The token signing key exceeded the bounded parser ceiling.
Fields
TokenSigningKeyLengthMismatch
The token signing key changed after validation and was rejected.
Fields
ProviderTokenTtl
The provider token TTL could not be parsed.
EmptyTokenSigningKey
The token signing key was empty.
MetricsToken(Error)
The metrics token file could not be read.
EmptyMetricsToken
The metrics bearer token was empty.
MetricsTokenTooLarge
The metrics bearer token exceeded the bounded parser ceiling.
Fields
MetricsTokenLengthMismatch
The metrics bearer token changed after validation and was rejected.
Fields
MissingTokenSigningKeyForServedRoutes
The selected role uses the local HMAC provider and would expose CAS routes without bearer-token verification.
EmptyProviderApiKey
The provider bootstrap key was empty.
ProviderApiKey(Error)
The provider bootstrap key file could not be read.
ProviderApiKeyTooLarge
The provider bootstrap key exceeded the bounded parser ceiling.
Fields
ProviderApiKeyLengthMismatch
The provider bootstrap key changed after validation and was rejected.
Fields
EmptyProviderTokenIssuer
The provider token issuer was empty.
ZeroProviderTokenTtl
The provider token TTL was zero.
IncompleteProviderTokenConfig
Provider token issuance was only partially configured.
ProviderTokensRequireSigningKey
Provider token issuance needs the CAS signing key.
ChunkSizeTooLarge
The chunk size exceeds the maximum allowed value.
InvalidPublicBaseUrl(String)
The public base URL is not a valid URL.
ConfigFileError(String)
A configuration file could not be loaded.
MissingOidcIssuer
OIDC auth provider requires an issuer URL.
MissingJwksUrl
JWKS auth provider requires a JWKS URL.
HubRequiresAuth
Hub frontend requires an auth provider to be configured.
PassthroughProviderRequiresLoopbackBind
Passthrough auth provider requires a loopback bind address.
Fields
bind_addr: SocketAddrThe rejected bind address.
SecretSourceConflict
A secret was provided through both direct env and file indirection.
Fields
MissingEd25519Key
Ed25519 auth provider requires a key.
ConflictingEd25519Keys
Ed25519 signing and verification-only modes were configured together.
Ed25519PrivateKey(Error)
The Ed25519 private key file could not be read.
Ed25519PublicKey(Error)
The Ed25519 public key file could not be read.
Ed25519PrivateKeyTooLarge
The Ed25519 private key exceeded the bounded parser ceiling.
Fields
Ed25519PublicKeyTooLarge
The Ed25519 public key exceeded the bounded parser ceiling.
Fields
Ed25519PrivateKeyLengthMismatch
The Ed25519 private key changed after validation and was rejected.
Fields
Ed25519PublicKeyLengthMismatch
The Ed25519 public key changed after validation and was rejected.
Fields
EmptyEd25519PrivateKey
The Ed25519 private key was empty.
EmptyEd25519PublicKey
The Ed25519 public key was empty.
Trait Implementations§
Source§impl Debug for ServerConfigError
impl Debug for ServerConfigError
Source§impl Display for ServerConfigError
impl Display for ServerConfigError
Source§impl Error for ServerConfigError
impl Error for ServerConfigError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<AddrParseError> for ServerConfigError
impl From<AddrParseError> for ServerConfigError
Source§fn from(source: AddrParseError) -> Self
fn from(source: AddrParseError) -> Self
Source§impl From<ParseIntError> for ServerConfigError
impl From<ParseIntError> for ServerConfigError
Source§fn from(source: ParseIntError) -> Self
fn from(source: ParseIntError) -> Self
Source§impl From<ServerConfigError> for ServerError
impl From<ServerConfigError> for ServerError
Source§fn from(source: ServerConfigError) -> Self
fn from(source: ServerConfigError) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for ServerConfigError
impl !UnwindSafe for ServerConfigError
impl Freeze for ServerConfigError
impl Send for ServerConfigError
impl Sync for ServerConfigError
impl Unpin for ServerConfigError
impl UnsafeUnpin for ServerConfigError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
Source§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
Source§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
Source§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
Source§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
Source§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
Source§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.