The template's new `site.origin` key arrived empty, as bootstrap fills it in. Pointing it at the origin robots.txt and sitemap.xml already carry turns on the canonical and hreflang links, and the HTTPS redirect the production compose already trusts the forwarded proto for.
67 lines
3.8 KiB
Swift
67 lines
3.8 KiB
Swift
extension String {
|
|
/// A namespace for the analytics default configuration values.
|
|
///
|
|
/// Analytics ships **off**: ``websiteID`` is empty, so the pages embed no tracker until a deployment sets `analytics.websiteID`. Until
|
|
/// then ``origin`` is inert — it names the platform's shared instance, which a site reporting to another one repoints before enabling
|
|
/// analytics.
|
|
public enum Analytics {
|
|
/// The origin the analytics scripts are loaded from and their beacons are sent to (scheme and host, no trailing slash).
|
|
///
|
|
/// Single-sourced here: both ``scriptURL`` and the session recorder script the pages embed in recorder mode derive from this
|
|
/// constant. It is deliberately not a configuration key — the `Content-Security-Policy` must allow the same origin, and a value that
|
|
/// can drift at runtime would silently break the tracker it is supposed to permit. Defaults to the platform's shared Umami instance.
|
|
public static let origin = "https://analytics.rock-n-code.com"
|
|
/// The URL the analytics tracker script is loaded from.
|
|
public static let scriptURL = "\(origin)/script"
|
|
/// The default analytics website identifier the tracker reports as: empty, which omits the tracker entirely.
|
|
public static let websiteID = ""
|
|
/// The default comma-delimited domains the tracker reports from: empty, which reports from every host.
|
|
///
|
|
/// Once set, keep it paired with the host the pages are served at — a deployment that serves from another host without matching
|
|
/// `analytics.domains` reports from a host it no longer serves, so analytics silently records nothing.
|
|
public static let domains = ""
|
|
}
|
|
/// A namespace for the persistence's default configuration values and recognized tokens.
|
|
public enum Database {
|
|
/// The default persistence driver: in-memory SQLite, which needs no external infrastructure.
|
|
public static let driver = driverInMemory
|
|
/// The driver token selecting the in-memory SQLite backend.
|
|
public static let driverInMemory = "inMemory"
|
|
/// The driver token selecting the PostgreSQL backend.
|
|
public static let driverPostgres = "postgres"
|
|
/// The default PostgreSQL host.
|
|
public static let host = "localhost"
|
|
/// The default database name.
|
|
public static let name = "ccn"
|
|
/// The default database username.
|
|
public static let username = "ccn"
|
|
/// The default TLS posture token.
|
|
public static let tls = tlsPrefer
|
|
/// The TLS token disabling TLS.
|
|
public static let tlsOff = "off"
|
|
/// The TLS token upgrading to TLS only when the server offers it.
|
|
public static let tlsPrefer = "prefer"
|
|
/// The TLS token requiring TLS.
|
|
public static let tlsRequire = "require"
|
|
}
|
|
/// A namespace for well-known path string constants.
|
|
public enum Path {
|
|
/// The directory, relative to the working directory, that the website's static files are served from.
|
|
public static let staticResources = "Resources/Static"
|
|
}
|
|
/// A namespace for the server string constants.
|
|
public enum Server {
|
|
/// The website server's name.
|
|
public static let name = "CCNWebsite"
|
|
}
|
|
/// A namespace for the site string constants.
|
|
public enum Site {
|
|
/// The default public origin the site is served at (scheme and host, no trailing slash).
|
|
///
|
|
/// Bootstrap writes the canonical URL it prompts for here, leaving it empty for the placeholder. An empty or non-HTTPS origin disables
|
|
/// the HTTPS redirect, which `https.trustForwardedProto` must enable besides — a `301` is cached for a long time, so it is never issued
|
|
/// at a host nobody named.
|
|
public static let origin = "https://ccn.rock-n-co.de"
|
|
}
|
|
}
|