generated: '2026-08-04' method: probed source: live DNS/TLS/HTTP probes of apis.yml + discovered garten.co hosts note: >- Baseline written by 0-working/probe-domain-security.py, then extended by hand with the additional garten.co hosts found during contract discovery (DNS + crt.sh). The script reported `hsts: null` for tv.garten.co because of how it reads the root document; a HEAD of https://tv.garten.co/ and a POST to https://tv.garten.co/mcp both return `strict-transport-security: max-age=63072000; includeSubDomains`, so HSTS is recorded true for that host. hosts: - host: garten.co https: true tls_version: TLSv1.2 cert_expires: Sep 5 19:05:32 2026 GMT hsts: false http_status: 200 note: WordPress corporate site (W3 Total Cache, Yoast) - host: www.garten.co https: true tls_version: TLSv1.2 cert_expires: Sep 5 19:05:32 2026 GMT hsts: false http_status: 200 - host: tv.garten.co https: true tls_version: TLSv1.3 cert_expires: Oct 14 21:57:47 2026 GMT hsts: true hsts_max_age: 63072000 hsts_include_subdomains: true http_status: 200 note: garten TV on the Uscreen platform (Google Frontend); the only host carrying HSTS and the only host with a discovery surface - host: api.garten.co https: true tls_version: TLSv1.2 cert_expires: Sep 5 19:05:32 2026 GMT hsts: false http_status: 200 note: Spree/Solidus commerce application; /api/v1 and /api/v2 answer HTTP 401 "You must specify an API key." - host: client.garten.co https: true tls_version: TLSv1.2 cert_expires: Sep 5 19:05:32 2026 GMT hsts: false http_status: 200 note: garten client portal — same application as api.garten.co - host: experiences.garten.co https: true cert_expires: Sep 23 03:32:12 2026 GMT hsts: false http_status: 200 - host: admin.garten.co https: true tls_version: TLSv1.2 cert_expires: Jan 23 23:59:59 2027 GMT hsts: false http_status: 200 note: internal admin tool on AWS Elastic Beanstalk; SPA catch-all returns 200 for every path domains: - domain: garten.co dnssec: false caa: [] spf: true spf_policy: '-all' spf_record: 'v=spf1 include:_u.garten.co._spf.dmarclc.com include:mail.zendesk.com include:spf.zoho.com include:transmail.net include:_spf.intacct.com -all' dmarc: true dmarc_policy: quarantine dmarc_rua: mailto:dmarc@garten.co dmarc_pct: 100 summary: strengths: - SPF published with a hard fail (-all) - DMARC published at p=quarantine with pct=100 and both rua and ruf reporting - HSTS with a two-year max-age and includeSubDomains on the garten TV host gaps: - no DNSSEC on garten.co - no CAA records, so any CA may issue for the domain - no HSTS on the corporate site, the client portal or the commerce API host, all of which still negotiate at TLS 1.2 rather than TLS 1.3 - DMARC policy is quarantine rather than reject x-evidence: fetched: '2026-08-04' tools: [dig, openssl s_client, curl]