architecture · jgwill.com

Functional review: multi-domain access and content boundaries

research@jgwill.com (J. G. Will)

A functional review of how domain selection changes the content surface in Asterion.

Domain resolution: requests are parsed from the Host header into a main domain, so asterion.jgwill.com, asterion.tushell.com, and asterion.sanctuaireagentique.com resolve to separate feed registries even though they share the same subdomain. The main-domain key is the content boundary: it selects which RSS channel and articles are reachable.

Content access: the same /feed path is therefore domain-aware. A reader subscribing to one hostname receives that hostname's feed rather than a blended stream. Article links remain canonical to the selected domain, making the domain part of the publication identity and navigation path.

Preview behavior: a ?domain= override allows a preview deployment to exercise a specific registry without changing its Host header. This is useful for testing, but it is also an explicit alternate input and should remain constrained to known registry keys rather than becoming an arbitrary content selector.

Isolation and failure modes: supported domains are isolated by exact registry lookup. Unknown domains return a valid empty RSS document with a 404, which is predictable for clients but should be monitored so misconfigured DNS or Host forwarding is visible. The current implementation does not merge domains or fall back to another publication.

Operational and security considerations: canonical links, cache keys, and reverse-proxy Host preservation must all retain the domain distinction. Cache layers should vary by hostname and query override; otherwise one domain's XML could be served to another. The override should be validated against the supported-domain list, and production deployments should decide whether preview overrides need to be disabled or authenticated.

Review outcome: the functional model is coherent and intentionally simple: hostname selects publication, publication selects content, and unsupported hosts fail closed. Recommended follow-up is to add automated coverage for each supported host, an unsupported host, ports, preview overrides, cache variation, and canonical article links.