{
  "schema_version": "1.2.0",
  "canonical": "https://approximated.app/guides/examples/hono--v4.json",
  "example": {
    "id": "hono--v4",
    "framework": "Hono",
    "edition": "v4",
    "edition_status": "current",
    "guide": "https://approximated.app/guides/hono-custom-domains-guide/",
    "version_url": "https://approximated.app/guides/hono-custom-domains-guide/v4/",
    "source_file": "src/guides/hono-custom-domains-guide/index.html",
    "edition_source": "src/_partials/guide-editions/hono/v4.html",
    "upstream_repository": "https://github.com/Approximated-Inc/hono-custom-domains-example",
    "upstream_exists": true,
    "published": null,
    "prepared_at": "2026-09-09",
    "publication_status": "local_draft",
    "last_reviewed": "2026-09-09",
    "review_scope": "Node 24.20.0: 27 behavior, Hono request, session/security including public cache isolation, SQLite lifecycle/race, and real loopback HTTP adapter tests passed; TypeScript 7.0.2 compilation completed; the built loopback server returned Atlas 200, Juniper 200, unknown 404, localhost control 200, and nonlocal fixture-control 404. September 9 provider-mode follow-up: 31 tests passed, including four provider-config cases and five request/UI cases. TypeScript build passed. Forced-mock built-server smoke returned expected tenant 200/200/404 and control-host restrictions. Root review removed the legacy API URL override and added the resolved live-mode label. Both regression cases initially failed; all 32 tests then passed, with dummy keys and injected transports.",
    "runtime_test_status": "passed_local",
    "upstream_revision": "18b616fefcd7fbbe7eed9f9ac527cde286dfeb27",
    "tested_versions": {
      "node": "24.20.0",
      "npm": "11.19.0",
      "hono": "4.13.7",
      "@hono/node-server": "2.1.1",
      "typescript": "7.0.2",
      "tsx": "4.23.13",
      "@types/node": "24.13.3"
    },
    "test_commands": [
      "npm ci",
      "npm test",
      "npm run build",
      "npm run seed",
      "PORT=3089 npm start",
      "npm run smoke"
    ],
    "api_contract_revision": "99f0de6b74f4a88a7c5674d86c852036f22dcd13",
    "api_paths": [
      "/api/vhosts",
      "/api/vhosts/{id}"
    ],
    "not_tested": [
      "Live Approximated API mutation",
      "Live customer DNS propagation",
      "Live TLS issuance and HTTPS routing",
      "Browser-driven form interaction",
      "Deployment or production runtime",
      "The provider-independent walkthrough snippets are illustrative; companion runtime results do not verify every guide snippet."
    ],
    "direct_resource": "https://approximated.app/guides/examples/hono--v4.json",
    "snippet_count": 10,
    "snippets": [
      {
        "id": "hono--v4--snippet-1-typescript",
        "language": "typescript",
        "sha256": "2df9094297921b4266534ecba1f30332ca918fbabbe0c011eb95a9d28c37426a"
      },
      {
        "id": "hono--v4--snippet-2-bash",
        "language": "bash",
        "sha256": "db422727aad030fd0ffa1509a34ecfb55bdfe2527939bf12f03ea937eaa5006f"
      },
      {
        "id": "hono--v4--snippet-3-sql",
        "language": "sql",
        "sha256": "7a7101d1b316ba4e1426c912de8157e8755e2321a35dc1b004dcf056826eec04"
      },
      {
        "id": "hono--v4--snippet-4-typescript",
        "language": "typescript",
        "sha256": "f19bad29586ce68cec19818f629581fda49036f5c930cd1de1a5dd2cc308a5da"
      },
      {
        "id": "hono--v4--snippet-5-bash",
        "language": "bash",
        "sha256": "b575ebf89c5d2e0ab93e02f10d21bb60d5d0f098ac4ec73b25d5fea91e568939"
      },
      {
        "id": "hono--v4--snippet-6-typescript",
        "language": "typescript",
        "sha256": "d3a02e1d68471b4e939c0d5cf0e74f218250ba2ac83ac4d4fdda464cd22a7f01"
      },
      {
        "id": "hono--v4--snippet-7-typescript",
        "language": "typescript",
        "sha256": "4b4accdd5a70fa96215120b5230cfd9ad1a1a70421cf1d2a6ce533fa0d2f8cf0"
      },
      {
        "id": "hono--v4--snippet-8-typescript",
        "language": "typescript",
        "sha256": "dbcbe527b0180d7a570b6f74f600c92b089566a6b28ed94b20a564303deae3e9"
      },
      {
        "id": "hono--v4--snippet-9-typescript",
        "language": "typescript",
        "sha256": "29826e7977a7feffc5ed4f15252f032c7f93c60cdb6f5ee1424c90ae29e158c7"
      },
      {
        "id": "hono--v4--snippet-10-bash",
        "language": "bash",
        "sha256": "a1d8f2fce1bd5129e0f4adca51466709649c7dc2b17f247b798260c57c26fc00"
      }
    ],
    "sources": [
      {
        "url": "https://hono.dev/docs/getting-started/nodejs",
        "title": "Hono Node.js guide"
      },
      {
        "url": "https://hono.dev/docs/api/hono",
        "title": "Hono application API"
      },
      {
        "url": "https://hono.dev/docs/helpers/cookie",
        "title": "Hono cookie helper"
      },
      {
        "url": "https://registry.npmjs.org/hono/4.13.7",
        "title": "Hono 4.13.7 registry metadata"
      },
      {
        "url": "https://registry.npmjs.org/@hono%2fnode-server/2.1.1",
        "title": "Hono Node server adapter 2.1.1 registry metadata"
      },
      {
        "url": "https://nodejs.org/en/download/archive/v24.20.0",
        "title": "Node.js 24.20.0 archive"
      },
      {
        "url": "https://approximated.app/openapi.yaml",
        "title": "Approximated public OpenAPI contract"
      },
      {
        "url": "https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html",
        "title": "A, AAAA, and CNAME records and apex restrictions"
      },
      {
        "url": "https://developers.cloudflare.com/dns/cname-flattening/",
        "title": "Provider-specific CNAME flattening at the apex"
      },
      {
        "url": "https://approximated.app/docs/#how-approximated-works",
        "title": "Approximated routing, certificates, and dedicated IPv4"
      },
      {
        "url": "https://approximated.app/docs/#edge-verify",
        "title": "Form bot protection with Edge Verify"
      },
      {
        "url": "https://approximated.app/docs/#edge-sequences",
        "title": "Request rules and rate limiting with Edge Sequences"
      },
      {
        "url": "https://approximated.app/docs/#dns-widget",
        "title": "DNS onboarding widget and provider-specific support"
      },
      {
        "url": "https://approximated.app/docs/#webhook-events-virtual-host-monitor-updated",
        "title": "Domain monitoring status webhooks"
      }
    ],
    "walkthrough": {
      "provider_independent": true,
      "optional_integration_anchor": "bonus-approximated",
      "code_scope": "Main walkthrough snippets illustrate adding custom domains to an existing app. They are not a complete standalone application or a copy of the companion implementation.",
      "runtime_verification_scope": "Recorded runtime versions, commands, and results apply to the companion repository implementation. They do not imply that every illustrative guide snippet was executed.",
      "domain_connection_policy": {
        "txt_challenge_required": false,
        "dns_check_in_main": "A brief recommendation to check that DNS points directly or indirectly to the app or its receiving service.",
        "automated_dns_checks": "Explained in the optional Approximated bonus, alongside HTTPS readiness."
      }
    },
    "companion_provider_mode": {
      "default": "auto",
      "api_key_environment_variable": "APPROXIMATED_API_KEY",
      "without_key": "local mock",
      "with_key": "real Approximated API at https://cloud.approximated.app",
      "explicit_mock_override": "APPROXIMATED_MODE=mock",
      "verification": {
        "date": "2026-09-09",
        "summary": "31 tests passed, including four provider-config cases and five request/UI cases. TypeScript build passed. Forced-mock built-server smoke returned expected tenant 200/200/404 and control-host restrictions. Root review removed the legacy API URL override and added the resolved live-mode label. Both regression cases initially failed; all 32 tests then passed, with dummy keys and injected transports.",
        "live_api_used": false
      }
    },
    "publication_evidence": {
      "type": "public_companion_git_tag",
      "published_at": "2026-09-09",
      "repository": "https://github.com/Approximated-Inc/hono-custom-domains-example",
      "revision": "18b616fefcd7fbbe7eed9f9ac527cde286dfeb27",
      "tag": "guide-hono4-r1",
      "tag_url": "https://github.com/Approximated-Inc/hono-custom-domains-example/tree/guide-hono4-r1",
      "anonymous_clone_verified_at": "2026-09-09",
      "scope": "Companion source publication and anonymous HTTPS clone verified. This does not establish guide deployment or live API, DNS, or HTTPS acceptance."
    }
  }
}
