pub struct Config {Show 33 fields
pub bind_addr: SocketAddr,
pub public_url: String,
pub instance_name: String,
pub database: PgConnectOptions,
pub database_password: Option<String>,
pub database_display: String,
pub db_max_connections: u32,
pub vault_dir: PathBuf,
pub max_upload_bytes: u64,
pub preview: PreviewLimits,
pub preview_cache_max_bytes: u64,
pub upload_chunk_bytes: u64,
pub clamd: Option<ScannerConfig>,
pub backup_passphrase: Option<String>,
pub session_ttl: Duration,
pub approval_reauth: ApprovalReauth,
pub audit_retention_days: u32,
pub retention_latest_grace_days: u32,
pub signin_max_failures: u32,
pub oidc_token_idle_days: u32,
pub metrics_token: Option<String>,
pub cookie_secure: bool,
pub log_format: LogFormat,
pub bootstrap_admin: Option<BootstrapAdmin>,
pub oidc: Option<OidcConfig>,
pub local_login: bool,
pub mattermost_error_webhook: Option<String>,
pub smtp: Option<SmtpConfig>,
pub request_digest_hours: u64,
pub mattermost: Option<MattermostConfig>,
pub assistant: Option<AssistantConfig>,
pub local_agents: LocalAgents,
pub webhooks: WebhookConfig,
}Fields§
§bind_addr: SocketAddrSocket address the HTTP server binds to.
public_url: StringExternally visible base URL without trailing slash, e.g. https://plm.example.org.
instance_name: StringName shown in the UI header and page titles.
database: PgConnectOptionsPostgreSQL connection options (contains the password – never log it).
database_password: Option<String>Password of the database connection, for tools that receive it in
their environment (PGPASSWORD of pg_dump/pg_restore).
Secret – never log it.
database_display: StringHuman readable, password-free description of the database target.
db_max_connections: u32§vault_dir: PathBufRoot directory of the file vault (and of the cached 3D previews).
max_upload_bytes: u64§preview: PreviewLimitsSize and memory limits of the 3D preview (TEAMCRAFT_PREVIEW_MAX_*).
preview_cache_max_bytes: u64Size the preview cache (<vault>/previews) is trimmed to by the
hourly housekeeping, least recently used first
(TEAMCRAFT_PREVIEW_CACHE_MAX_MB; 0 = no limit).
upload_chunk_bytes: u64Largest chunk of a chunked, resumable upload (PATCH /api/v1/uploads/{id}).
clamd: Option<ScannerConfig>Malware scan of uploads with a ClamAV daemon (TEAMCRAFT_CLAMD_ADDR,
TEAMCRAFT_CLAMD_MAX_MB); None = no scan.
backup_passphrase: Option<String>Passphrase of encrypted backups (TEAMCRAFT_BACKUP_PASSPHRASE, used by
teamcraft backup --encrypt and the restore). Secret – never log it.
session_ttl: Duration§approval_reauth: ApprovalReauthWhether review decisions in the browser need a fresh sign-in
(TEAMCRAFT_APPROVAL_REAUTH: off, release, every_decision).
audit_retention_days: u32Days the audit log is kept (TEAMCRAFT_AUDIT_RETENTION_DAYS; 0 = for
ever). Older entries are removed by the hourly housekeeping, which
records the removal as one entry.
retention_latest_grace_days: u32Days after which the old versions of files with the retention latest
are removed by the hourly housekeeping
(TEAMCRAFT_RETENTION_LATEST_GRACE_DAYS; 0 = only the CLI removes
them). Files keep every version unless someone sets latest.
signin_max_failures: u32Failed password sign-ins per username within 15 minutes before sign-in
is refused (TEAMCRAFT_SIGNIN_MAX_FAILURES; five times as many per
client address; 0 = off). See crate::auth::SignInThrottle.
oidc_token_idle_days: u32Idle lifetime in days of new API and desktop tokens of single sign-on
users (TEAMCRAFT_OIDC_TOKEN_IDLE_DAYS; 0 = off, the default): a token
without an expiry or with a longer one expires after that many days
without use, so a leaver removed only at the identity provider does
not keep a working token (issue #173).
metrics_token: Option<String>Bearer token of GET /metrics; None = the endpoint is off.
Adds the Secure attribute to cookies (required when served via HTTPS).
log_format: LogFormat§bootstrap_admin: Option<BootstrapAdmin>Initial administrator that is created when the database has no users.
oidc: Option<OidcConfig>Single sign-on via OpenID Connect (Authentik). None = disabled.
local_login: boolWhether username/password login for local accounts is offered.
mattermost_error_webhook: Option<String>Mattermost incoming webhook that receives internal server errors.
smtp: Option<SmtpConfig>E-mail notifications via SMTP. None = no e-mails.
request_digest_hours: u64Hours between two e-mail digests of the change requests waiting for
triage (per user and project group); 0 = no digests.
mattermost: Option<MattermostConfig>Notifications to Mattermost. None = disabled.
assistant: Option<AssistantConfig>The built-in assistant (Anthropic or an OpenAI-compatible API). None = disabled.
local_agents: LocalAgentsWhether users may connect their own local agents (the desktop app’s
Agent view, ACP) to TeamCraft’s tools (TEAMCRAFT_LOCAL_AGENTS).
Off leaves only the server-side assistant. See LocalAgents.
webhooks: WebhookConfigWhich targets outgoing event webhooks may reach.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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 moreimpl<T> Parallelizable for T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
impl<U, T> ToOwnedObj<U> for Twhere
U: FromObjRef<T>,
§fn to_owned_obj(&self, data: FontData<'_>) -> U
fn to_owned_obj(&self, data: FontData<'_>) -> U
T, using the provided data to resolve any offsets.