webadmin

package
v0.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2026 License: MIT Imports: 58 Imported by: 0

Documentation

Overview

Package webadmin is a web app for the mox administrator for viewing and changing the configuration, like creating/removing accounts, viewing DMARC and TLS reports, check DNS records for a domain, change the webserver configuration, etc.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DomainRecords

func DomainRecords(ctx context.Context, log mlog.Log, domain string) []string

DomainRecords is the implementation of API function Admin.DomainRecords, taking a logger.

func Handler

func Handler(cookiePath string, isForwarded bool) func(w http.ResponseWriter, r *http.Request)

Handler returns a handler for the webadmin endpoints, customized for the cookiePath.

Types

type Admin

type Admin struct {
	// contains filtered or unexported fields
}

Admin exports web API functions for the admin web interface. All its methods are exported under api/. Function calls require valid HTTP Authentication credentials of a user.

func (Admin) Account

func (Admin) Account(ctx context.Context, account string) (accountConfig config.Account, diskUsage int64)

Account returns the parsed configuration of an account.

func (Admin) AccountAdd

func (Admin) AccountAdd(ctx context.Context, accountName, address string)

AccountAdd adds existing a new account, with an initial email address, and reloads the configuration.

func (Admin) AccountLoginDisabledSave

func (Admin) AccountLoginDisabledSave(ctx context.Context, accountName string, loginDisabled string)

AccountLoginDisabledSave saves the LoginDisabled field of an account.

func (Admin) AccountRemove

func (Admin) AccountRemove(ctx context.Context, accountName string)

AccountRemove removes an existing account and reloads the configuration.

func (Admin) AccountRoutesSave

func (Admin) AccountRoutesSave(ctx context.Context, accountName string, routes []config.Route)

AccountRoutesSave saves routes for an account.

func (Admin) AccountSettingsSave

func (Admin) AccountSettingsSave(ctx context.Context, accountName string, maxOutgoingMessagesPerDay, maxFirstTimeRecipientsPerDay int, maxMsgSize int64, firstTimeSenderDelay, noCustomPassword bool)

AccountSettingsSave set new settings for an account that only an admin can set.

func (Admin) Accounts

func (Admin) Accounts(ctx context.Context) (all, disabled []string)

Accounts returns the names of all configured and all disabled accounts.

func (Admin) AddressAdd

func (Admin) AddressAdd(ctx context.Context, address, accountName string)

AddressAdd adds a new address to the account, which must already exist.

func (Admin) AddressRemove

func (Admin) AddressRemove(ctx context.Context, address string)

AddressRemove removes an existing address.

func (Admin) AliasAdd

func (Admin) AliasAdd(ctx context.Context, aliaslp string, domainName string, alias config.Alias)

func (Admin) AliasAddressesAdd

func (Admin) AliasAddressesAdd(ctx context.Context, aliaslp string, domainName string, addresses []string)

func (Admin) AliasAddressesRemove

func (Admin) AliasAddressesRemove(ctx context.Context, aliaslp string, domainName string, addresses []string)

func (Admin) AliasRemove

func (Admin) AliasRemove(ctx context.Context, aliaslp string, domainName string)

func (Admin) AliasUpdate

func (Admin) AliasUpdate(ctx context.Context, aliaslp string, domainName string, postPublic, listMembers, allowMsgFrom bool)

func (Admin) CheckDomain

func (Admin) CheckDomain(ctx context.Context, domainName string) (r CheckResult)

CheckDomain checks the configuration for the domain, such as MX, SMTP STARTTLS, SPF, DKIM, DMARC, TLSRPT, MTASTS, autoconfig, autodiscover.

func (Admin) CheckUpdatesEnabled

func (Admin) CheckUpdatesEnabled(ctx context.Context) bool

CheckUpdatesEnabled returns whether checking for updates is enabled.

func (Admin) ClientConfigsDomain

func (Admin) ClientConfigsDomain(ctx context.Context, domain string) admin.ClientConfigs

ClientConfigsDomain returns configurations for email clients, IMAP and Submission (SMTP) for the domain.

func (Admin) Config

func (Admin) Config(ctx context.Context) config.Dynamic

Config returns the dynamic config.

func (Admin) ConfigFiles

func (Admin) ConfigFiles(ctx context.Context) (staticPath, dynamicPath, static, dynamic string)

ConfigFiles returns the paths and contents of the static and dynamic configuration files.

func (Admin) DMARCEvaluationStats

func (Admin) DMARCEvaluationStats(ctx context.Context) map[string]dmarcdb.EvaluationStat

DMARCEvaluationStats returns a map of all domains with evaluations to a count of the evaluations and whether those evaluations will cause a report to be sent.

func (Admin) DMARCEvaluationsDomain

func (Admin) DMARCEvaluationsDomain(ctx context.Context, domain string) (dns.Domain, []dmarcdb.Evaluation)

DMARCEvaluationsDomain returns all evaluations for aggregate reports for the domain, sorted from oldest to most recent.

func (Admin) DMARCRemoveEvaluations

func (Admin) DMARCRemoveEvaluations(ctx context.Context, domain string)

DMARCRemoveEvaluations removes evaluations for a domain.

func (Admin) DMARCReportID

func (Admin) DMARCReportID(ctx context.Context, domain string, reportID int64) (report dmarcdb.DomainFeedback)

DMARCReportID returns a single DMARC report.

func (Admin) DMARCReports

func (Admin) DMARCReports(ctx context.Context, start, end time.Time, domain string) (reports []dmarcdb.DomainFeedback)

DMARCReports returns DMARC reports overlapping with period start/end, for the given domain (or all domains if empty). The reports are sorted first by period end (most recent first), then by domain.

func (Admin) DMARCSummaries

func (Admin) DMARCSummaries(ctx context.Context, start, end time.Time, domain string) (domainSummaries []DMARCSummary)

DMARCSummaries returns a summary of received DMARC reports overlapping with period start/end for one or all domains (when domain is empty). The returned summaries are ordered by domain name.

func (Admin) DMARCSuppressAdd

func (Admin) DMARCSuppressAdd(ctx context.Context, reportingAddress string, until time.Time, comment string)

DMARCSuppressAdd adds a reporting address to the suppress list. Outgoing reports will be suppressed for a period.

func (Admin) DMARCSuppressExtend

func (Admin) DMARCSuppressExtend(ctx context.Context, id int64, until time.Time)

DMARCSuppressExtend updates the until field of a suppressed reporting address record.

func (Admin) DMARCSuppressList

func (Admin) DMARCSuppressList(ctx context.Context) []dmarcdb.SuppressAddress

DMARCSuppressList returns all reporting addresses on the suppress list.

func (Admin) DMARCSuppressRemove

func (Admin) DMARCSuppressRemove(ctx context.Context, id int64)

DMARCSuppressRemove removes a reporting address record from the suppress list.

func (Admin) DNSBLStatus

func (Admin) DNSBLStatus(ctx context.Context) (results map[string]map[string]string, using, monitoring []dns.Domain)

DNSBLStatus returns the IPs from which outgoing connections may be made and their current status in DNSBLs that are configured. The IPs are typically the configured listen IPs, or otherwise IPs on the machines network interfaces, with internal/private IPs removed.

The returned value maps IPs to per DNSBL statuses, where "pass" means not listed and anything else is an error string, e.g. "fail: ..." or "temperror: ...".

func (Admin) Domain

func (Admin) Domain(ctx context.Context, domain string) dns.Domain

Domain returns the dns domain for a (potentially unicode as IDNA) domain name.

func (Admin) DomainAdd

func (Admin) DomainAdd(ctx context.Context, disabled bool, domain, accountName, localpart string)

DomainAdd adds a new domain and reloads the configuration.

func (Admin) DomainClientSettingsDomainSave

func (Admin) DomainClientSettingsDomainSave(ctx context.Context, domainName, clientSettingsDomain string)

DomainClientSettingsDomainSave saves the client settings domain for a domain.

func (Admin) DomainConfig

func (Admin) DomainConfig(ctx context.Context, domain string) config.Domain

DomainConfig returns the configuration for a domain.

func (Admin) DomainDKIMAdd

func (Admin) DomainDKIMAdd(ctx context.Context, domainName, selector, algorithm, hash string, headerRelaxed, bodyRelaxed, seal bool, headers []string, lifetime time.Duration)

DomainDKIMAdd adds a DKIM selector for a domain, generating a new private key. The selector is not enabled for signing.

func (Admin) DomainDKIMRemove

func (Admin) DomainDKIMRemove(ctx context.Context, domainName, selector string)

DomainDKIMRemove removes a DKIM selector for a domain.

func (Admin) DomainDKIMSave

func (Admin) DomainDKIMSave(ctx context.Context, domainName string, selectors map[string]config.Selector, sign []string)

DomainDKIMSave saves the settings of selectors, and which to enable for signing, for a domain. All currently configured selectors must be present, selectors cannot be added/removed with this function.

func (Admin) DomainDMARCAddressSave

func (Admin) DomainDMARCAddressSave(ctx context.Context, domainName, localpart, domain, account, mailbox string)

DomainDMARCAddressSave saves the DMARC reporting address/processing configuration for a domain. If localpart is empty, processing reports is disabled.

func (Admin) DomainDescriptionSave

func (Admin) DomainDescriptionSave(ctx context.Context, domainName, descr string)

DomainDescriptionSave saves the description for a domain.

func (Admin) DomainDisabledSave

func (Admin) DomainDisabledSave(ctx context.Context, domainName string, disabled bool)

DomainDisabledSave saves the Disabled field of a domain. A disabled domain rejects incoming/outgoing messages involving the domain and does not request new TLS certificats with ACME.

func (Admin) DomainLocalpartConfigSave

func (Admin) DomainLocalpartConfigSave(ctx context.Context, domainName string, localpartCatchallSeparators []string, localpartCaseSensitive bool)

DomainLocalpartConfigSave saves the localpart catchall and case-sensitive settings for a domain.

func (Admin) DomainLocalparts

func (Admin) DomainLocalparts(ctx context.Context, domain string) (localpartAccounts map[string]string, localpartAliases map[string]config.Alias)

DomainLocalparts returns the encoded localparts and accounts configured in domain.

func (Admin) DomainMTASTSSave

func (Admin) DomainMTASTSSave(ctx context.Context, domainName, policyID string, mode mtasts.Mode, maxAge time.Duration, mx []string)

DomainMTASTSSave saves the MTASTS policy for a domain. If policyID is empty, no MTASTS policy is served.

func (Admin) DomainRecords

func (Admin) DomainRecords(ctx context.Context, domain string) []string

DomainRecords returns lines describing DNS records that should exist for the configured domain.

func (Admin) DomainRemove

func (Admin) DomainRemove(ctx context.Context, domain string)

DomainRemove removes an existing domain and reloads the configuration.

func (Admin) DomainRoutesSave

func (Admin) DomainRoutesSave(ctx context.Context, domainName string, routes []config.Route)

DomainRoutesSave saves routes for a domain.

func (Admin) DomainTLSRPTAddressSave

func (Admin) DomainTLSRPTAddressSave(ctx context.Context, domainName, localpart, domain, account, mailbox string)

DomainTLSRPTAddressSave saves the TLS reporting address/processing configuration for a domain. If localpart is empty, processing reports is disabled.

func (Admin) Domains

func (Admin) Domains(ctx context.Context) []config.Domain

Domains returns all configured domain names.

func (Admin) HookCancel

func (Admin) HookCancel(ctx context.Context, filter queue.HookFilter) (affected int)

HookCancel prevents further delivery attempts of matching webhooks.

func (Admin) HookList

func (Admin) HookList(ctx context.Context, filter queue.HookFilter, sort queue.HookSort) []queue.Hook

HookList lists webhooks still to be delivered.

func (Admin) HookNextAttemptAdd

func (Admin) HookNextAttemptAdd(ctx context.Context, filter queue.HookFilter, minutes int) (affected int)

HookNextAttemptAdd adds a duration to the time of next delivery attempt of matching hooks from the queue.

func (Admin) HookNextAttemptSet

func (Admin) HookNextAttemptSet(ctx context.Context, filter queue.HookFilter, minutes int) (affected int)

HookNextAttemptSet sets a new time for next delivery attempt of matching hooks from the queue.

func (Admin) HookQueueSize

func (Admin) HookQueueSize(ctx context.Context) int

HookQueueSize returns the number of webhooks still to be delivered.

func (Admin) HookRetiredList

func (Admin) HookRetiredList(ctx context.Context, filter queue.HookRetiredFilter, sort queue.HookRetiredSort) []queue.HookRetired

HookRetiredList lists retired webhooks.

func (Admin) LogLevelRemove

func (Admin) LogLevelRemove(ctx context.Context, pkg string)

LogLevelRemove removes a log level for a package, which cannot be the empty string.

func (Admin) LogLevelSet

func (Admin) LogLevelSet(ctx context.Context, pkg string, levelStr string)

LogLevelSet sets a log level for a package.

func (Admin) LogLevels

func (Admin) LogLevels(ctx context.Context) map[string]string

LogLevels returns the current log levels.

func (Admin) Login

func (w Admin) Login(ctx context.Context, loginToken, password string) store.CSRFToken

Login returns a session token for the credentials, or fails with error code "user:badLogin". Call LoginPrep to get a loginToken.

func (Admin) LoginAttempts

func (Admin) LoginAttempts(ctx context.Context, accountName string, limit int) []store.LoginAttempt

func (Admin) LoginPrep

func (w Admin) LoginPrep(ctx context.Context) string

LoginPrep returns a login token, and also sets it as cookie. Both must be present in the call to Login.

func (Admin) Logout

func (w Admin) Logout(ctx context.Context)

Logout invalidates the session token.

func (Admin) LookupCid

func (Admin) LookupCid(ctx context.Context, recvID string) (cid string)

LookupCid turns an ID from a Received header into a cid as used in logging.

func (Admin) LookupIP

func (Admin) LookupIP(ctx context.Context, ip string) Reverse

LookupIP does a reverse lookup of ip.

func (Admin) LookupTLSRPTRecord

func (Admin) LookupTLSRPTRecord(ctx context.Context, domain string) (record *TLSRPTRecord, txt string, errstr string)

LookupTLSRPTRecord looks up a TLSRPT record and returns the parsed form, original txt form from DNS, and error with the TLSRPT record as a string.

func (Admin) MTASTSPolicies

func (Admin) MTASTSPolicies(ctx context.Context) (records []mtastsdb.PolicyRecord)

MTASTSPolicies returns all mtasts policies from the cache.

func (Admin) MonitorDNSBLsSave

func (Admin) MonitorDNSBLsSave(ctx context.Context, text string)

func (Admin) ParseDomain

func (Admin) ParseDomain(ctx context.Context, domain string) dns.Domain

ParseDomain parses a domain, possibly an IDNA domain.

func (Admin) QueueDrop

func (Admin) QueueDrop(ctx context.Context, filter queue.Filter) (affected int)

QueueDrop removes matching messages from the queue.

func (Admin) QueueFail

func (Admin) QueueFail(ctx context.Context, filter queue.Filter) (affected int)

QueueFail fails delivery for matching messages, causing DSNs to be sent.

func (Admin) QueueHoldRuleAdd

func (Admin) QueueHoldRuleAdd(ctx context.Context, hr queue.HoldRule) queue.HoldRule

QueueHoldRuleAdd adds a hold rule. Newly submitted and existing messages matching the hold rule will be marked "on hold".

func (Admin) QueueHoldRuleList

func (Admin) QueueHoldRuleList(ctx context.Context) []queue.HoldRule

QueueHoldRuleList lists the hold rules.

func (Admin) QueueHoldRuleRemove

func (Admin) QueueHoldRuleRemove(ctx context.Context, holdRuleID int64)

QueueHoldRuleRemove removes a hold rule. The Hold field of messages in the queue are not changed.

func (Admin) QueueHoldSet

func (Admin) QueueHoldSet(ctx context.Context, filter queue.Filter, onHold bool) (affected int)

QueueHoldSet sets the Hold field of matching messages in the queue.

func (Admin) QueueList

func (Admin) QueueList(ctx context.Context, filter queue.Filter, sort queue.Sort) []queue.Msg

QueueList returns the messages currently in the outgoing queue.

func (Admin) QueueNextAttemptAdd

func (Admin) QueueNextAttemptAdd(ctx context.Context, filter queue.Filter, minutes int) (affected int)

QueueNextAttemptAdd adds a duration to the time of next delivery attempt of matching messages from the queue.

func (Admin) QueueNextAttemptSet

func (Admin) QueueNextAttemptSet(ctx context.Context, filter queue.Filter, minutes int) (affected int)

QueueNextAttemptSet sets a new time for next delivery attempt of matching messages from the queue.

func (Admin) QueueRequireTLSSet

func (Admin) QueueRequireTLSSet(ctx context.Context, filter queue.Filter, requireTLS *bool) (affected int)

QueueRequireTLSSet updates the requiretls field for matching messages in the queue, to be used for the next delivery.

func (Admin) QueueSize

func (Admin) QueueSize(ctx context.Context) int

QueueSize returns the number of messages currently in the outgoing queue.

func (Admin) QueueTransportSet

func (Admin) QueueTransportSet(ctx context.Context, filter queue.Filter, transport string) (affected int)

QueueTransportSet initiates delivery of a message from the queue and sets the transport to use for delivery.

func (Admin) RetiredList

func (Admin) RetiredList(ctx context.Context, filter queue.RetiredFilter, sort queue.RetiredSort) []queue.MsgRetired

RetiredList returns messages retired from the queue (delivery could have succeeded or failed).

func (Admin) RoutesSave

func (Admin) RoutesSave(ctx context.Context, routes []config.Route)

RoutesSave saves global routes.

func (Admin) SetPassword

func (Admin) SetPassword(ctx context.Context, accountName, password string)

SetPassword saves a new password for an account, invalidating the previous password. Sessions are not interrupted, and will keep working. New login attempts must use the new password. Password must be at least 8 characters.

func (Admin) TLSPublicKeys

func (Admin) TLSPublicKeys(ctx context.Context, accountOpt string) ([]store.TLSPublicKey, error)

func (Admin) TLSRPTRemoveResults

func (Admin) TLSRPTRemoveResults(ctx context.Context, isRcptDom bool, domain string, day string)

TLSRPTRemoveResults removes the TLS results for a domain for the given day. If day is empty, all results are removed.

func (Admin) TLSRPTResults

func (Admin) TLSRPTResults(ctx context.Context) []tlsrptdb.TLSResult

TLSRPTResults returns all TLSRPT results in the database.

func (Admin) TLSRPTResultsDomain

func (Admin) TLSRPTResultsDomain(ctx context.Context, isRcptDom bool, policyDomain string) (dns.Domain, []tlsrptdb.TLSResult)

TLSRPTResultsPolicyDomain returns the TLS results for a domain.

func (Admin) TLSRPTSummaries

func (Admin) TLSRPTSummaries(ctx context.Context, start, end time.Time, policyDomain string) (domainSummaries []TLSRPTSummary)

TLSRPTSummaries returns a summary of received TLS reports overlapping with period start/end for one or all domains (when domain is empty). The returned summaries are ordered by domain name.

func (Admin) TLSRPTSuppressAdd

func (Admin) TLSRPTSuppressAdd(ctx context.Context, reportingAddress string, until time.Time, comment string)

TLSRPTSuppressAdd adds a reporting address to the suppress list. Outgoing reports will be suppressed for a period.

func (Admin) TLSRPTSuppressExtend

func (Admin) TLSRPTSuppressExtend(ctx context.Context, id int64, until time.Time)

TLSRPTSuppressExtend updates the until field of a suppressed reporting address record.

func (Admin) TLSRPTSuppressList

func (Admin) TLSRPTSuppressList(ctx context.Context) []tlsrptdb.SuppressAddress

TLSRPTSuppressList returns all reporting addresses on the suppress list.

func (Admin) TLSRPTSuppressRemove

func (Admin) TLSRPTSuppressRemove(ctx context.Context, id int64)

TLSRPTSuppressRemove removes a reporting address record from the suppress list.

func (Admin) TLSReportID

func (Admin) TLSReportID(ctx context.Context, domain string, reportID int64) tlsrptdb.Record

TLSReportID returns a single TLS report.

func (Admin) TLSReports

func (Admin) TLSReports(ctx context.Context, start, end time.Time, policyDomain string) (reports []tlsrptdb.Record)

TLSReports returns TLS reports overlapping with period start/end, for the given policy domain (or all domains if empty). The reports are sorted first by period end (most recent first), then by policy domain.

func (Admin) Transports

func (Admin) Transports(ctx context.Context) map[string]config.Transport

Transports returns the configured transports, for sending email.

func (Admin) Version

func (w Admin) Version(ctx context.Context) (version, goos, goarch string)

Version returns the version, goos and goarch.

func (Admin) WebserverConfig

func (Admin) WebserverConfig(ctx context.Context) (conf WebserverConfig)

WebserverConfig returns the current webserver config

func (Admin) WebserverConfigSave

func (Admin) WebserverConfigSave(ctx context.Context, oldConf, newConf WebserverConfig) (savedConf WebserverConfig)

WebserverConfigSave saves a new webserver config. If oldConf is not equal to the current config, an error is returned.

type AutoconfCheckResult

type AutoconfCheckResult struct {
	ClientSettingsDomainIPs []string
	IPs                     []string
	Result
}

type AutodiscoverCheckResult

type AutodiscoverCheckResult struct {
	Records []AutodiscoverSRV
	Result
}

type AutodiscoverSRV

type AutodiscoverSRV struct {
	net.SRV
	IPs []string
}

type CheckResult

CheckResult is the analysis of a domain, its actual configuration (DNS, TLS, connectivity) and the mox configuration. It includes configuration instructions (e.g. DNS records), and warnings and errors encountered.

type DANECheckResult

type DANECheckResult struct {
	Result
}

type DKIMCheckResult

type DKIMCheckResult struct {
	Records []DKIMRecord
	Result
}

type DKIMRecord

type DKIMRecord struct {
	Selector string
	TXT      string
	Record   *dkim.Record
}

type DMARCCheckResult

type DMARCCheckResult struct {
	Domain string
	TXT    string
	Record *DMARCRecord
	Result
}

type DMARCRecord

type DMARCRecord struct {
	dmarc.Record
}

type DMARCSummary

type DMARCSummary struct {
	Domain                string
	Total                 int
	DispositionNone       int
	DispositionQuarantine int
	DispositionReject     int
	DKIMFail              int
	SPFFail               int
	PolicyOverrides       map[dmarcrpt.PolicyOverride]int
}

DMARCSummary presents DMARC aggregate reporting statistics for a single domain over a period.

type DNSSECResult

type DNSSECResult struct {
	Result
}

type IPRevCheckResult

type IPRevCheckResult struct {
	Hostname dns.Domain          // This hostname, IPs must resolve back to this.
	IPNames  map[string][]string // IP to names.
	Result
}

type MTASTSCheckResult

type MTASTSCheckResult struct {
	TXT        string
	Record     *MTASTSRecord
	PolicyText string
	Policy     *mtasts.Policy
	Result
}

type MTASTSRecord

type MTASTSRecord struct {
	mtasts.Record
}

type MX

type MX struct {
	Host string
	Pref int
	IPs  []string
}

type MXCheckResult

type MXCheckResult struct {
	Records []MX
	Result
}

type Result

type Result struct {
	Errors       []string
	Warnings     []string
	Instructions []string
}

type Reverse

type Reverse struct {
	Hostnames []string
}

Reverse is the result of a reverse lookup.

type SPFCheckResult

type SPFCheckResult struct {
	DomainTXT    string
	DomainRecord *SPFRecord
	HostTXT      string
	HostRecord   *SPFRecord
	Result
}

type SPFRecord

type SPFRecord struct {
	spf.Record
}

type SRVConfCheckResult

type SRVConfCheckResult struct {
	SRVs map[string][]net.SRV // Service (e.g. "_imaps") to records.
	Result
}

type TLSCheckResult

type TLSCheckResult struct {
	Result
}

type TLSRPTCheckResult

type TLSRPTCheckResult struct {
	TXT    string
	Record *TLSRPTRecord
	Result
}

type TLSRPTRecord

type TLSRPTRecord struct {
	tlsrpt.Record
}

type TLSRPTSummary

type TLSRPTSummary struct {
	PolicyDomain     dns.Domain
	Success          int64
	Failure          int64
	ResultTypeCounts map[tlsrpt.ResultType]int64
}

TLSRPTSummary presents TLS reporting statistics for a single domain over a period.

type WebserverConfig

type WebserverConfig struct {
	WebDNSDomainRedirects [][2]dns.Domain // From server to frontend.
	WebDomainRedirects    [][2]string     // From frontend to server, it's not convenient to create dns.Domain in the frontend.
	WebHandlers           []config.WebHandler
}

WebserverConfig is the combination of WebDomainRedirects and WebHandlers from the domains.conf configuration file.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL