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`. Point /// ``origin`` at your own instance before enabling it — the placeholder is an [RFC 2606](https://www.rfc-editor.org/rfc/rfc2606) /// reserved domain, so an unconfigured copy can never report to someone else's server. 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. public static let origin = "https://analytics.example.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 = "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 = "site" /// The default database username. public static let username = "site" /// The default TLS posture token. public static let tls = "prefer" /// The TLS token disabling TLS. public static let tlsOff = "off" /// 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 = "SiteWebsite" } }