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 = "site" /// The default database username. public static let username = "site" /// 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 = "SiteWebsite" } /// 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 = "" } }