Documentation
¶
Index ¶
Constants ¶
const ( CtxKeyVersion ctxKey = "v" CtxKeyService ctxKey = "service" CtxKeyTeam ctxKey = "team" CtxKeyRepo ctxKey = "repo" CtxKeyProject ctxKey = "project" CtxKeySubsys ctxKey = "subsys" CtxKeyIsPull ctxKey = "isPull" CtxKeyRef ctxKey = "ref" CtxKeyRid ctxKey = "rid" )
Variables ¶
This section is empty.
Functions ¶
func RedactDSN ¶
RedactDSN masks the password in a URL-shaped DSN so it can be logged. A shared-Postgres auth DSN (postgres://user:secret@host/db) carries a credential; file: SQLite DSNs have none and pass through unchanged. On any parse failure it returns a safe constant rather than risk leaking the raw string.
Types ¶
type BuildIdentity ¶ added in v0.2.4
type BuildIdentity struct {
Version string
Commit string
Chassis string
BuildTimestamp string
InstallMethod string
}
BuildIdentity is the process build identity, set programmatically by app.Run at boot (NOT from flags/env — no `id` tag, so the flag loader skips it) and surfaced by the admin /healthz JSON. Kept on Config so it reaches server/admin via processor.Unit.Conf without a chassis/cli import cycle (files under chassis/cli import chassis/server).
type Config ¶
type Config struct {
// Build is set by app.Run after Load (no `id` tag ⇒ ignored by the flag
// loader); see BuildIdentity.
Build BuildIdentity
AdminAddr string `id:"admin-addr" default:":8081" desc:"The port to listen on for the admin web server (:8081)"`
AdminPass string `id:"admin-pass" default:"" desc:"Basic Auth password ()"`
AdminUser string `id:"admin-user" default:"" desc:"User for basic auth ()"`
AdminIdleTimeout int `id:"admin-idle-timeout" default:"60" desc:"Idle timeout, seconds (60)"`
AdminReadTimeout int `id:"admin-read-timeout" default:"15" desc:"Read timeout, seconds (15)"`
AdminStaticRoot string `` /* 147-byte string literal not displayed */
AdminWriteTimeout int `id:"admin-write-timeout" default:"15" desc:"Write timeout, seconds (15)"`
AdminCorsOrigins []string `` /* 325-byte string literal not displayed */
AuthMode string `id:"auth-mode" default:"both" desc:"Admin API authentication mode: {basic, signed, both} (both)"`
AuthDevEnrollSecret string `` /* 138-byte string literal not displayed */
CloudOAuthIssuer string `` /* 295-byte string literal not displayed */
CloudOAuthAudience string `` /* 144-byte string literal not displayed */
CloudChassisURL string `` /* 183-byte string literal not displayed */
ClientVersionLatest string `` /* 193-byte string literal not displayed */
ClientVersionMinimum string `` /* 211-byte string literal not displayed */
ClientVersionCritical bool `` /* 197-byte string literal not displayed */
SecretMasterKeyPath string `` /* 332-byte string literal not displayed */
DemoMode bool `` /* 322-byte string literal not displayed */
DebugBreakpoints bool `` /* 211-byte string literal not displayed */
DebugPrivate bool `` /* 266-byte string literal not displayed */
TraceMode string `` /* 129-byte string literal not displayed */
TraceStore string `` /* 252-byte string literal not displayed */
TraceDir string `` /* 136-byte string literal not displayed */
TraceAsync bool `` /* 175-byte string literal not displayed */
TraceBufferSize int `` /* 195-byte string literal not displayed */
TraceBodyCapBytes int `` /* 230-byte string literal not displayed */
TraceStreamLongPollMS int `` /* 344-byte string literal not displayed */
TraceStreamRingSize int `` /* 220-byte string literal not displayed */
CronPeriod int `id:"cron-period" default:"60" desc:"Seconds between cron ticks, seconds (60)"`
CronQueue string `` /* 250-byte string literal not displayed */
CronMaxInflight int `` /* 199-byte string literal not displayed */
CronSystemTick bool `` /* 266-byte string literal not displayed */
DbRuntimeDsn string `` /* 178-byte string literal not displayed */
DbAuthDsn string `` /* 438-byte string literal not displayed */
DbRoot string `id:"db-root-dir" default:"./chassis/data/db" desc:"What is the root directory for any local databases? (./chassis/data/db)"`
DbSchemaDir string `id:"db-schema-dir" default:"./db/schema/sqlite" desc:"What directory contains the db schema? (./db/schema/sqlite)"`
DialTimeout string `id:"dial-timeout" default:"100ms" desc:"Default rpc dial timeout (100ms)"`
DockerBuild bool `id:"docker-build" default:"true" desc:"Attempt to build Dockerfile on push? (true)"`
DockerRemote string `id:"docker-remote" default:"localhost:5001" desc:"Remote docker host (localhost.5001)"`
DockerRemoteUser string `id:"docker-remote-user" default:"admin" desc:"Remote docker user (admin)"`
DockerRemotePass string `id:"docker-remote-pass" default:"" desc:"Remote docker user ()"`
DockerTmp string `id:"docker-tmp" default:"./chassis/data/tmp/docker" desc:"Temporary space for building docker (./chassis/data/tmp/docker)"`
DockerTmpClean bool `id:"docker-tmp-clean" default:"true" desc:"Cleanup temporary tar after build? (true)"`
DockerApiVersion string `id:"docker-api-version" default:"1.39" desc:"Default Docker API version (1.39)"`
Environment string `id:"env" default:"dev" desc:"Runtime Environment: {dev, stage, prod, myenv} (dev)"` // export TXCOMP_ENV=dev-mm
EtcdEndpointAddrs []string `id:"etcd-endpoint-addrs" default:"localhost:2379" desc:"Etcd endpoint addresses Ex: :2379 (:2379)"`
Fqdn string `id:"fqdn" default:"" desc:"Set our fully qualified domain name"`
IngressConfigPath string `` /* 176-byte string literal not displayed */
RequireHostnameVerification bool `` /* 313-byte string literal not displayed */
StructuredHostSuffix string `` /* 357-byte string literal not displayed */
StructuredDNSSelf bool `` /* 436-byte string literal not displayed */
VerifyAllowPrivateAddresses bool `` /* 275-byte string literal not displayed */
IngressMissAction string `` /* 368-byte string literal not displayed */
K8sNamespace string `id:"k8s-namespace" default:"default" desc:"Kubernetes Namespace (default)"`
KubeConfig string `id:"kube-config" default:"$USER/.kube/config" desc:"What path to use for Kubernetes Config? ($USER/.kube/config)"`
KubeCheckInCluster bool `` /* 154-byte string literal not displayed */
KVStore string `` /* 206-byte string literal not displayed */
KVStoreAddrs []string `id:"kvstore-addrs" default:"./chassis/data/kv" desc:"List of KVStore addresses, if appropriate. (./chassis/data/kv)"`
KVStoreBucket string `id:"kvstore-bucket" default:"txco" desc:"KVStore bucket (boltdb only) (txco)"`
KVStorePassword string `` /* 258-byte string literal not displayed */
KVMaxValueBytes int `` /* 197-byte string literal not displayed */
KVMaxTTL int `` /* 219-byte string literal not displayed */
Logger string `id:"logger" default:"env" desc:"Set Log display type: {env, production, dev, dev-plain} (env)"`
LogLevel string `id:"log-level" default:"" desc:"Set Logging Level: {debug, info, warn, error, dpanic, panic, and fatal} (info)"`
LogOps string `id:"log-ops" default:"disabled" desc:"Log operations to {logger,disabled,dir} (disabled)"`
LogOpsDir string `id:"log-ops-dir" default:"./chassis/data/logs" desc:"Directory to log operations to (./chassis/data/logs)"`
OpPayloadMax int `id:"op-payload-max" default:"4194304" desc:"maximum message that operations can send/receive in bytes (4194304)"`
OpMetricsRegex string `` /* 149-byte string literal not displayed */
OpTimeout string `id:"op-timeout" default:"5s" desc:"Default operation timeout (5s)"`
OpTimeoutMax string `` /* 172-byte string literal not displayed */
MaxFuelPerRequest int `` /* 392-byte string literal not displayed */
OpScopeTTLMax int `` /* 317-byte string literal not displayed */
OpRepeatPenaltyMs int `` /* 210-byte string literal not displayed */
AIChatEnvFallback bool `` /* 428-byte string literal not displayed */
AIDefaultTimeout string `` /* 251-byte string literal not displayed */
DevAutoVerifyLocalHostnames bool `` /* 420-byte string literal not displayed */
AsyncRuntimeDefault string `` /* 203-byte string literal not displayed */
AsyncAckTimeout string `` /* 130-byte string literal not displayed */
ContinueAfterDefault string `` /* 229-byte string literal not displayed */
ContinuableTimeoutDefault string `` /* 228-byte string literal not displayed */
DeferredJoinSlack string `` /* 185-byte string literal not displayed */
ComputeMaxMemoryMB int `id:"compute-max-memory-mb" default:"32" desc:"Per-invocation memory cap for a sandboxed compute (op://) in MB. (32)"`
ComputeMaxWall string `` /* 155-byte string literal not displayed */
Personalities string `` /* 157-byte string literal not displayed */
Repl bool `id:"repl" default:"false" desc:"Run REPL mode"`
PromNamespace string `id:"prom-namespace" default:"txco" desc:"Set the Prometheus namespace (txco)"`
PromPeriod int `id:"prom-period" default:"5" desc:"Set the Prometheus reporting period (5)"`
PushActionTimeout int `id:"push-action-timeout" default:"300" desc:"Timeout for push actions, in seconds (300)"`
RegistryFixed []string `id:"registry-fixed" default:"" desc:"Set to use a fixed operation name registry. Prefix:Address:Port ex: *:localhost:5858 ()"`
RepoCloneSource string `` /* 143-byte string literal not displayed */
RepoStore string `id:"repostore" default:"file" desc:"Which Repo Store to use? {memory, file} (file)"`
RepoStoreFileDir string `` /* 134-byte string literal not displayed */
ContinuationStore string `` /* 126-byte string literal not displayed */
ContinuationStoreFileDir string `` /* 156-byte string literal not displayed */
ContinuationStoreS3Bucket string `` /* 140-byte string literal not displayed */
ContinuationStoreS3Prefix string `` /* 144-byte string literal not displayed */
ContinuationCallbackBaseURL string `` /* 143-byte string literal not displayed */
ContinuationSweepPeriod int `id:"continuation-sweep-period" default:"900" desc:"Seconds between continuation store sweeps; 0 disables the sweeper (900)"`
ContinuationRetention int `id:"continuation-retention" default:"604800" desc:"Seconds after a run's expiry before its docs are purged (604800 = 7d)"`
ContinuationStaleResumeAfter int `` /* 136-byte string literal not displayed */
ArtifactStore string `id:"artifact-store" default:"file" desc:"Snapshot/event artifact store backend: {file} (file)"`
ArtifactStoreFileDir string `` /* 140-byte string literal not displayed */
FileCASStore string `` /* 132-byte string literal not displayed */
FileCASStoreFileDir string `` /* 144-byte string literal not displayed */
FileCASStoreS3Bucket string `id:"filecas-store-s3-bucket" default:"" desc:"Reserved: S3-compatible filecas bucket (fleet overlay; unused in open core)"`
FileCASStoreS3Prefix string `` /* 126-byte string literal not displayed */
FileCASCacheBytes int `` /* 131-byte string literal not displayed */
FileCASMaxFileBytes int `` /* 183-byte string literal not displayed */
SnapshotBootstrapRef string `` /* 178-byte string literal not displayed */
FeedSource string `` /* 136-byte string literal not displayed */
FeedSourceFileDir string `id:"feed-source-file-dir" default:"./chassis/data/feed" desc:"Root directory for the file feed source (./chassis/data/feed)"`
FeedPollPeriod int `id:"feed-poll-period" default:"15" desc:"Seconds between control-event feed polls; applies when feed-source != nop (15)"`
FeedSink string `` /* 151-byte string literal not displayed */
FeedSinkBatchSize int `id:"feed-sink-batch-size" default:"64" desc:"Max outbox rows drained per pump tick when feed-sink != nop (64)"`
RoomRelay string `` /* 227-byte string literal not displayed */
EgressPolicy string `` /* 208-byte string literal not displayed */
EgressDenyCIDRs []string `` /* 155-byte string literal not displayed */
EgressAllowCIDRs []string `` /* 188-byte string literal not displayed */
SystemOpstacksDir string `` /* 255-byte string literal not displayed */
SystemOpstacksWatch bool `` /* 176-byte string literal not displayed */
ReadFileMaxBytes int `` /* 288-byte string literal not displayed */
ServerId string `id:"sid" default:"" desc:"Set the Server Id ()"`
LMTPListenAddrs []string `` /* 321-byte string literal not displayed */
LMTPMaxMsgBytes int `` /* 149-byte string literal not displayed */
LMTPMaxRecipients int `id:"lmtp-max-recipients" default:"50" desc:"Max RCPT TO addresses per LMTP transaction. (50)"`
LMTPReadTimeout string `id:"lmtp-read-timeout" default:"30s" desc:"Per-command read timeout for the LMTP listener. (30s)"`
LMTPDataTimeout string `id:"lmtp-data-timeout" default:"60s" desc:"DATA phase read timeout for the LMTP listener. (60s)"`
LMTPRespTimeout string `` /* 134-byte string literal not displayed */
LMTPHostname string `id:"lmtp-hostname" default:"" desc:"Greeting hostname for the LMTP server. Empty (default) uses os.Hostname(). ()"`
LMTPDefaultHosts []string `` /* 264-byte string literal not displayed */
MailMapListenAddrs []string `` /* 500-byte string literal not displayed */
MailMapReadTimeout string `id:"mailmap-read-timeout" default:"5s" desc:"Per-request read timeout for the mailmap tcp_table responder. (5s)"`
MailRelayAddr string `` /* 265-byte string literal not displayed */
MailRelayTLS string `` /* 219-byte string literal not displayed */
MailDialTimeoutMS int `` /* 174-byte string literal not displayed */
MailMaxRecipients int `` /* 232-byte string literal not displayed */
MailRateLimits string `` /* 388-byte string literal not displayed */
MailSpamThresholds string `` /* 465-byte string literal not displayed */
TCPListenAddrs []string `` /* 390-byte string literal not displayed */
TCPConnectRespTimeout string `id:"tcp-connect-resp-timeout" default:"3s" desc:"Time that backends must accept a new connection before dropping it. (3s)"`
TCPMaxIdleTimeout string `id:"tcp-max-idle-timeout" default:"5s" desc:"Max idle time between commands. May be set lower at runtime. (5s)"`
TCPRespTimeout string `id:"tcp-resp-timeout" default:"10s" desc:"Max time for us to respond to command. (10s)"`
DNSListenAddrs []string `` /* 370-byte string literal not displayed */
DNSRRLPerSec int `` /* 171-byte string literal not displayed */
DNSNameservers []string `` /* 259-byte string literal not displayed */
DNSEdgeIPs []string `` /* 211-byte string literal not displayed */
DNSMXHost string `` /* 183-byte string literal not displayed */
DNSMXPriority int `id:"dns-mx-priority" default:"10" desc:"Preference value for synthesized MX records. (10)"`
DNSSynthTTL int `id:"dns-synth-ttl" default:"60" desc:"TTL (seconds) applied to synthesized pattern records. (60)"`
DNSSPF string `` /* 244-byte string literal not displayed */
DNSDMARC string `` /* 281-byte string literal not displayed */
DNSTenantZoneManagement bool `` /* 426-byte string literal not displayed */
DNSRequireZoneVerification bool `` /* 485-byte string literal not displayed */
DNSUpdateTSIGKeyName string `` /* 385-byte string literal not displayed */
DNSUpdateTSIGSecret string `` /* 243-byte string literal not displayed */
WebTLSAddr string `` /* 422-byte string literal not displayed */
ACMEEmail string `` /* 190-byte string literal not displayed */
ACMECA string `` /* 233-byte string literal not displayed */
ACMECARootFile string `` /* 230-byte string literal not displayed */
ACMEDNSResolvers []string `` /* 318-byte string literal not displayed */
CertStorageDSN string `` /* 372-byte string literal not displayed */
CertStoragePath string `` /* 141-byte string literal not displayed */
WebAddr string `id:"web-addr" default:":8080" desc:"The port to listen on for the web server (:8080)"`
WebPass string `id:"web-pass" default:"" desc:"Basic Auth password ()"`
WebUser string `id:"web-user" default:"" desc:"User for basic auth ()"`
WebIdleTimeout int `id:"web-idle-timeout" default:"60" desc:"Idle timeout, seconds (60)"`
WebReadTimeout int `id:"web-read-timeout" default:"15" desc:"Read timeout, seconds (15)"`
WebWriteTimeout int `id:"web-write-timeout" default:"15" desc:"Write timeout, seconds (15)"`
ContinuationLongPollMS int `` /* 229-byte string literal not displayed */
WebDebug string `id:"web-debug" default:"" desc:"Debug flags: SHOW_PRIVATE_VARS, HIDE_PRIVATE_VARS"`
WebMockHeader bool `` /* 185-byte string literal not displayed */
UsageEnabled bool `` /* 216-byte string literal not displayed */
UsageSink string `` /* 304-byte string literal not displayed */
BackgroundServices string `` /* 297-byte string literal not displayed */
}
Command Line Flags / Environment variables to configure runtime environment