{
  "schemaVersion": "1.1",
  "target": {
    "id": "target_dev.lsst.fink-portal.org",
    "hostname": "dev.lsst.fink-portal.org",
    "unicodeHostname": "dev.lsst.fink-portal.org",
    "canonicalUrl": "https://dev.lsst.fink-portal.org/"
  },
  "rollups": [
    {
      "window": "24h",
      "since": "2026-10-28T04:06:29.382Z",
      "observations": 1,
      "counts": {
        "up": 1,
        "reachable_restricted": 0,
        "degraded": 0,
        "down": 0,
        "inconclusive": 0
      },
      "availability": 1
    },
    {
      "window": "7d",
      "since": "2026-10-22T04:06:29.382Z",
      "observations": 1,
      "counts": {
        "up": 1,
        "reachable_restricted": 0,
        "degraded": 0,
        "down": 0,
        "inconclusive": 0
      },
      "availability": 1
    },
    {
      "window": "30d",
      "since": "2026-09-29T04:06:29.382Z",
      "observations": 1,
      "counts": {
        "up": 1,
        "reachable_restricted": 0,
        "degraded": 0,
        "down": 0,
        "inconclusive": 0
      },
      "availability": 1
    }
  ],
  "checks": [
    {
      "checkId": "chk_0mvsrxpcq69cda1ceac",
      "observedAt": "2026-10-28T23:57:17.594Z",
      "consensus": {
        "regionsConfigured": 1,
        "regionsReporting": 1,
        "unavailableRegions": [],
        "counts": {
          "up": 1,
          "reachable_restricted": 0,
          "degraded": 0,
          "down": 0,
          "inconclusive": 0
        },
        "regions": [
          {
            "region": "eu-central",
            "classification": "up",
            "reason": "http_success",
            "httpStatus": 200,
            "durationMs": 270
          }
        ],
        "classification": "up",
        "reachability": "reachable",
        "reason": "single_region",
        "summary": "dev.lsst.fink-portal.org is up: it answered our probe normally (HTTP 200)."
      },
      "regions": [
        {
          "id": "obs_0mvsrxpcq218fea8557",
          "observedAt": "2026-10-28T23:57:17.594Z",
          "vantage": {
            "region": "eu-central",
            "scope": "single-server-probe"
          },
          "reachability": "reachable",
          "classification": "up",
          "reason": "http_success",
          "summary": "dev.lsst.fink-portal.org is up: it answered our probe normally (HTTP 200).",
          "dns": {
            "resolved": true,
            "durationMs": 176,
            "addresses": [
              "157.136.253.139"
            ],
            "error": null
          },
          "tls": {
            "attempted": true,
            "valid": true,
            "protocol": "TLSv1.3",
            "issuer": "Let's Encrypt / YR1",
            "validTo": "2026-12-07T06:56:38.000Z",
            "daysRemaining": 39,
            "error": null
          },
          "http": {
            "method": "GET",
            "status": 200,
            "durationMs": 270,
            "redirectCount": 0,
            "finalUrl": "https://dev.lsst.fink-portal.org/",
            "access": "normal",
            "httpVersion": "1.1",
            "hops": [
              {
                "url": "https://dev.lsst.fink-portal.org/",
                "status": 200,
                "durationMs": 270,
                "location": null
              }
            ],
            "error": null
          },
          "headers": {
            "response": {
              "connection": "close",
              "content-encoding": "br",
              "content-length": "5158",
              "content-type": "text/html; charset=utf-8",
              "date": "Wed, 28 Oct 2026 23:57:18 GMT",
              "set-cookie": "route=[redacted]; Path=/; HttpOnly",
              "strict-transport-security": "max-age=31536000; includeSubDomains",
              "vary": "Accept-Encoding",
              "x-geo-backend": "france",
              "x-geo-debug": "FR|48.97420|8.18510"
            },
            "findings": [
              {
                "id": "hsts",
                "header": "Strict-Transport-Security",
                "present": true,
                "value": "max-age=31536000; includeSubDomains",
                "severity": "good",
                "summary": "Browsers will insist on HTTPS for 365 days, including subdomains."
              },
              {
                "id": "csp",
                "header": "Content-Security-Policy",
                "present": false,
                "value": null,
                "severity": "warning",
                "summary": "Missing. A CSP limits which scripts can run and is a strong defence against cross-site scripting."
              },
              {
                "id": "xcto",
                "header": "X-Content-Type-Options",
                "present": false,
                "value": null,
                "severity": "warning",
                "summary": "Missing or not \"nosniff\". Browsers may MIME-sniff responses."
              },
              {
                "id": "framing",
                "header": "X-Frame-Options",
                "present": false,
                "value": null,
                "severity": "info",
                "summary": "No X-Frame-Options or CSP frame-ancestors: other sites may embed this page in a frame (clickjacking risk)."
              },
              {
                "id": "referrer",
                "header": "Referrer-Policy",
                "present": false,
                "value": null,
                "severity": "info",
                "summary": "Not set; browsers default to strict-origin-when-cross-origin, which is reasonable."
              },
              {
                "id": "permissions",
                "header": "Permissions-Policy",
                "present": false,
                "value": null,
                "severity": "info",
                "summary": "Not set; browser features follow defaults. Optional hardening."
              },
              {
                "id": "cache",
                "header": "Cache-Control",
                "present": false,
                "value": null,
                "severity": "info",
                "summary": "Not set; caches will use heuristics based on Last-Modified/Expires."
              },
              {
                "id": "validators",
                "header": "ETag",
                "present": false,
                "value": null,
                "severity": "info",
                "summary": "No ETag or Last-Modified: browsers cannot cheaply revalidate cached copies."
              },
              {
                "id": "vary",
                "header": "Vary",
                "present": true,
                "value": "Accept-Encoding",
                "severity": "info",
                "summary": "Caches store separate variants per: Accept-Encoding."
              },
              {
                "id": "compression",
                "header": "Content-Encoding",
                "present": true,
                "value": "br",
                "severity": "good",
                "summary": "Response is compressed (br)."
              },
              {
                "id": "server",
                "header": "Server",
                "present": false,
                "value": null,
                "severity": "good",
                "summary": "No software version numbers disclosed."
              },
              {
                "id": "cookies",
                "header": "Set-Cookie",
                "present": true,
                "value": "1 cookie(s)",
                "severity": "info",
                "summary": "1 of 1 cookie(s) lack Secure, HttpOnly or SameSite. (Some cookies legitimately need JavaScript access.)"
              }
            ]
          }
        }
      ]
    }
  ],
  "links": {
    "self": "https://headerlens.usefulweb.site/api/v1/status/dev.lsst.fink-portal.org/history?limit=20",
    "human": "https://headerlens.usefulweb.site/status/dev.lsst.fink-portal.org",
    "next": null
  }
}