{
  "_id": "6ad2b9be62c1581dfb2fa1a6",
  "Package": "cs9",
  "Title": "A Framework for Real-Time Analysis and Disease Surveillance",
  "Version": "26.10.25",
  "Authors@R": "c(\nperson(\ngiven = c(\"Richard\", \"Aubrey\"),\nfamily = \"White\",\nemail = \"hello@rwhite.no\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-6747-1726\")\n),\nperson(\ngiven = \"Folkehelseinstituttet\",\nrole = \"cph\"\n)\n)",
  "Description": "A comprehensive framework for building real-time disease\nsurveillance systems. Provides R6-based infrastructure for\ndatabase-driven surveillance tasks, with support for parallel\nprocessing, data validation, and automated pipeline execution.\nDesigned for epidemiological analysis and public health\nmonitoring applications.",
  "URL": "https://niphr.github.io/cs9/, https://github.com/niphr/cs9",
  "BugReports": "https://github.com/niphr/cs9/issues",
  "Remotes": [
    "niphr/csdb"
  ],
  "License": "MIT + file LICENSE",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "Config/Needs/website": "niphr/cstemplate",
  "Config/testthat/edition": "3",
  "Config/roxygen2/version": "8.0.0",
  "Config/pak/sysreqs": "cmake git make libgit2-dev libicu-dev libuv1-dev\nunixodbc-dev libssl-dev libx11-dev",
  "Repository": "https://niphr.r-universe.dev",
  "Date/Publication": "2026-10-16 22:57:07 UTC",
  "RemoteUrl": "https://github.com/niphr/cs9",
  "RemoteRef": "HEAD",
  "RemoteSha": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-16 23:49:19 UTC",
    "User": "root"
  },
  "Author": "Richard Aubrey White [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-6747-1726>),\nFolkehelseinstituttet [cph]",
  "Maintainer": "Richard Aubrey White <hello@rwhite.no>",
  "_user": "niphr",
  "_type": "src",
  "_file": "cs9_26.10.25.tar.gz",
  "_fileid": "https://r2.ropensci.org/96b41516dff78443ab044722a27a2219e6e530b8f832a0789182d8b14cc74b73",
  "_filesize": 3778744,
  "_sha256": "96b41516dff78443ab044722a27a2219e6e530b8f832a0789182d8b14cc74b73",
  "_expires": "2027-01-24T23:56:43.000Z",
  "_created": "2026-10-16T23:49:19.000Z",
  "_published": "2026-10-16T23:56:46.055Z",
  "_buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 117249323671,
      "time": 408,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12082372393"
    },
    {
      "job": 117249323760,
      "time": 330,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12082247654"
    },
    {
      "job": 117249323762,
      "time": 256,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12082307349"
    },
    {
      "job": 117249323731,
      "time": 282,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12081947214"
    },
    {
      "job": 117248095783,
      "time": 274,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12081689135"
    },
    {
      "job": 117249323723,
      "time": 118,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "12081563207"
    },
    {
      "job": 117249323753,
      "time": 353,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "12082067249"
    },
    {
      "job": 117249323788,
      "time": 262,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "12081873396"
    },
    {
      "job": 117249323700,
      "time": 285,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "12082232480"
    }
  ],
  "_upstream": "https://github.com/niphr/cs9",
  "_commit": {
    "id": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
    "author": "Richard Aubrey White <hello@rwhite.no>",
    "committer": "Richard Aubrey White <hello@rwhite.no>",
    "message": "Empty a dead staging table with TRUNCATE, not one big ALTER or DELETE\n\nProduction holds an old-shape HLM staging table with about 25 million\nrows of a dead run. 26.10.24 would add cs9_stg_id to it with an ALTER\nthat rewrites every row in one transaction, then delete them with one\nDELETE. On PostgreSQL, a staging table with no row that must stay\n(another task, the current key, a published key, a key with\ncs9_run_publish rows) is now locked and truncated, before the ALTER and\nin run_fence(). When rows must stay, run_fence() deletes the dead rows\nin committed batches of at most 200,000. SQLite is unchanged.\n\nCodex: PASS. Version 26.10.25.\n",
    "time": 1792191427
  },
  "_maintainer": {
    "name": "Richard Aubrey White",
    "email": "hello@rwhite.no",
    "login": "raubreywhite",
    "orcid": "0000-0002-6747-1726",
    "twitter": "@raubreywhite",
    "description": "Statistician. Head of @norsyss within @folkehelseinstituttet \n",
    "uuid": 1532091
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "callr",
      "role": "Imports"
    },
    {
      "package": "csdb",
      "version": ">= 2026.10.18",
      "role": "Imports"
    },
    {
      "package": "cstime",
      "version": ">= 2023.5.3",
      "role": "Imports"
    },
    {
      "package": "csutil",
      "role": "Imports"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "filelock",
      "role": "Imports"
    },
    {
      "package": "fs",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "later",
      "role": "Imports"
    },
    {
      "package": "lubridate",
      "role": "Imports"
    },
    {
      "package": "pbmcapply",
      "role": "Imports"
    },
    {
      "package": "plnr",
      "version": ">= 2021.5.4",
      "role": "Imports"
    },
    {
      "package": "processx",
      "role": "Imports"
    },
    {
      "package": "progress",
      "role": "Imports"
    },
    {
      "package": "progressr",
      "role": "Imports"
    },
    {
      "package": "R6",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "DBI",
      "role": "Suggests"
    },
    {
      "package": "devtools",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    },
    {
      "package": "RSQLite",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "usethis",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "niphr",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2025-52",
      "n": 5
    },
    {
      "week": "2026-20",
      "n": 1
    },
    {
      "week": "2026-27",
      "n": 10
    },
    {
      "week": "2026-31",
      "n": 1
    },
    {
      "week": "2026-32",
      "n": 8
    },
    {
      "week": "2026-33",
      "n": 11
    },
    {
      "week": "2026-34",
      "n": 14
    },
    {
      "week": "2026-35",
      "n": 4
    },
    {
      "week": "2026-40",
      "n": 1
    },
    {
      "week": "2026-41",
      "n": 10
    },
    {
      "week": "2026-42",
      "n": 28
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "raubreywhite",
      "count": 266,
      "uuid": 1532091
    }
  ],
  "_userbio": {
    "uuid": 244534951,
    "type": "organization",
    "name": "Norwegian Institute of Public Health - R codebases",
    "followers": 3,
    "description": "The Norwegian Institute of Public Health is a government agency under the Ministry of Health and Care Services."
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/cs9"
  },
  "_devurl": "https://github.com/niphr/cs9",
  "_pkgdown": "https://niphr.github.io/cs9/",
  "_searchresults": 6,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/cs9.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_cranurl": false,
  "_exports": [
    "check_environment_setup",
    "config",
    "create_folder_if_doesnt_exist",
    "create_latest_folder",
    "get_config_data_hash_for_each_plan",
    "get_config_log",
    "get_config_tables_last_updated",
    "get_config_tasks_stats",
    "mandatory_db_filter",
    "path",
    "reload_db_config",
    "run_task_detached",
    "run_task_sequentially_as_callr_bg_using_load_all",
    "run_task_sequentially_as_rstudio_job_using_load_all",
    "run_today",
    "SurveillanceSystem_v9",
    "TaskJob",
    "update_config_log"
  ],
  "_help": [
    {
      "page": "check_environment_setup",
      "title": "Check Environment Setup",
      "topics": [
        "check_environment_setup"
      ]
    },
    {
      "page": "config",
      "title": "Flags/values to be used in the 'dashboards' scene",
      "topics": [
        "config"
      ]
    },
    {
      "page": "create_folder_if_doesnt_exist",
      "title": "Create Folder If It Doesn't Exist",
      "topics": [
        "create_folder_if_doesnt_exist"
      ]
    },
    {
      "page": "create_latest_folder",
      "title": "Create Latest Folder",
      "topics": [
        "create_latest_folder"
      ]
    },
    {
      "page": "get_config_data_hash_for_each_plan",
      "title": "Get Configuration Data Hash for Each Plan",
      "topics": [
        "get_config_data_hash_for_each_plan"
      ]
    },
    {
      "page": "get_config_log",
      "title": "Get Configuration Log",
      "topics": [
        "get_config_log"
      ]
    },
    {
      "page": "get_config_tables_last_updated",
      "title": "Get Configuration Tables Last Updated",
      "topics": [
        "get_config_tables_last_updated"
      ]
    },
    {
      "page": "get_config_tasks_stats",
      "title": "Get Configuration Tasks Statistics",
      "topics": [
        "get_config_tasks_stats"
      ]
    },
    {
      "page": "mandatory_db_filter",
      "title": "Filter surveillance data by standard epidemiological dimensions",
      "topics": [
        "mandatory_db_filter"
      ]
    },
    {
      "page": "path",
      "title": "Get Results Folder Path",
      "topics": [
        "path"
      ]
    },
    {
      "page": "reload_db_config",
      "title": "Reload the database configuration from the environment",
      "topics": [
        "reload_db_config"
      ]
    },
    {
      "page": "run_task_detached",
      "title": "Run a cs9 task in a detached process",
      "topics": [
        "run_task_detached"
      ]
    },
    {
      "page": "run_task_sequentially_as_callr_bg_using_load_all",
      "title": "Run a cs9 task in a background process, streaming its output live",
      "topics": [
        "run_task_sequentially_as_callr_bg_using_load_all"
      ]
    },
    {
      "page": "run_task_sequentially_as_rstudio_job_using_load_all",
      "title": "Run a Task Sequentially as an RStudio Job",
      "topics": [
        "run_task_sequentially_as_rstudio_job_using_load_all"
      ]
    },
    {
      "page": "run_today",
      "title": "The date of the task run",
      "topics": [
        "run_today"
      ]
    },
    {
      "page": "SurveillanceSystem_v9",
      "title": "A Surveillance System Object",
      "topics": [
        "SurveillanceSystem_v9"
      ]
    },
    {
      "page": "TaskJob",
      "title": "TaskJob R6 Class",
      "topics": [
        "TaskJob"
      ]
    },
    {
      "page": "update_config_log",
      "title": "Update Configuration Log",
      "topics": [
        "update_config_log"
      ]
    }
  ],
  "_pkglogo": "https://github.com/niphr/cs9/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/niphr/cs9/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "bit",
    "bit64",
    "blob",
    "cachem",
    "callr",
    "cli",
    "clipr",
    "codetools",
    "cpp11",
    "crayon",
    "credentials",
    "csdb",
    "cstime",
    "csutil",
    "curl",
    "data.table",
    "DBI",
    "dbplyr",
    "desc",
    "digest",
    "dplyr",
    "farver",
    "fastmap",
    "filelock",
    "foreach",
    "fs",
    "generics",
    "gert",
    "ggplot2",
    "gitcreds",
    "glue",
    "gtable",
    "hms",
    "httr2",
    "ini",
    "isoband",
    "iterators",
    "jsonlite",
    "labeling",
    "later",
    "lifecycle",
    "lubridate",
    "magrittr",
    "memoise",
    "odbc",
    "openssl",
    "otel",
    "pak",
    "pbmcapply",
    "pillar",
    "pkgconfig",
    "plnr",
    "prettyunits",
    "processx",
    "progress",
    "progressr",
    "ps",
    "purrr",
    "R6",
    "rappdirs",
    "RColorBrewer",
    "Rcpp",
    "rlang",
    "rprojroot",
    "RSQLite",
    "rstudioapi",
    "S7",
    "scales",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "timechange",
    "usethis",
    "utf8",
    "uuid",
    "vctrs",
    "viridisLite",
    "whisker",
    "withr",
    "yaml",
    "yyjsonr",
    "zip"
  ],
  "_vignettes": [
    {
      "source": "creating-a-task.Rmd",
      "filename": "creating-a-task.html",
      "title": "Creating a task",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Prerequisites",
        "Step 1: Initialize a surveillance system",
        "Step 2: Define database tables",
        "Step 3: Implement task functions",
        "Data selector function",
        "Action function",
        "Step 4: Configure the task",
        "Step 5: Execute the task",
        "Step 6: Monitor and debug tasks",
        "Advanced task features",
        "Parallel processing",
        "Dynamic plan generation",
        "Best practices",
        "Error handling",
        "Data validation",
        "Modular design",
        "Summary",
        "See also"
      ],
      "created": "2025-08-20 10:39:18",
      "modified": "2026-10-06 06:48:25",
      "commits": 11
    },
    {
      "source": "backends.Rmd",
      "filename": "backends.html",
      "title": "Database backends",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The two environments",
        "Which variable each backend reads",
        "What check_environment_setup() asks for",
        "Setting the variables from another package",
        "Which one to use"
      ],
      "created": "2026-08-05 10:30:54",
      "modified": "2026-10-16 05:37:42",
      "commits": 5
    },
    {
      "source": "file-layout.Rmd",
      "filename": "file-layout.html",
      "title": "File Layout",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Starting from the example package",
        "00_env_and_namespace.R",
        "01_definitions.R",
        "02_surveillance_systems.R",
        "03_tables.R",
        "04_tasks.R",
        "05_deliverables.R",
        "10_onLoad.R",
        "11_onAttach.R",
        "Task files",
        "weather_download_and_import_rawdata.R",
        "weather_clean_data.R",
        "weather_export_weather_plots.R",
        "Notes",
        "Next steps"
      ],
      "created": "2023-03-09 10:21:44",
      "modified": "2026-08-21 04:53:40",
      "commits": 16
    },
    {
      "source": "how-a-task-runs.Rmd",
      "filename": "how-a-task-runs.html",
      "title": "How a task runs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "A run in one diagram",
        "A plan is one data pull",
        "Analyses iterate within a plan",
        "Only the first and the last plan run in a fixed order",
        "A forked worker MUST NOT inherit an open connection",
        "A task reads cores when it runs",
        "A task builds its plans once per run",
        "A completeness check covers every declared partition",
        "plnr::expand_list() makes one argset per element",
        "Size a plan by its data pull"
      ],
      "created": "2026-10-06 06:48:25",
      "modified": "2026-10-15 22:50:21",
      "commits": 10
    },
    {
      "source": "installation.Rmd",
      "filename": "installation.html",
      "title": "Installation",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Start here: SQLite, with no server",
        "What SQLite does not need",
        "cs9example needs no .Renviron at all",
        "Which backend to use",
        "Installation options",
        "CRAN installation (limited functionality)",
        "Full installation (database-driven surveillance)",
        "Database setup",
        "PostgreSQL installation",
        "Option 1: Docker (recommended)",
        "Option 2: System installation",
        "Database schema setup",
        "Environment variable configuration",
        "Setting up .Renviron",
        "Variable descriptions",
        "Package behavior without database configuration",
        "Docker",
        "Apache Airflow Integration",
        "Airflow scheduling pattern",
        "Benefits of Airflow + CS9",
        "Docker Compose with Airflow",
        "Moving from CRAN to full setup",
        "Verification and troubleshooting",
        "Verify your setup",
        "Common issues",
        "Next steps"
      ],
      "created": "2023-03-07 11:18:33",
      "modified": "2026-10-16 05:37:42",
      "commits": 19
    },
    {
      "source": "cs9.Rmd",
      "filename": "cs9.html",
      "title": "Introduction to CS9",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The problem: scaling epidemiological analysis",
        "NorSySS: a decade of operation",
        "CS9 vs alternatives",
        "What is CS9?",
        "When to use CS9",
        "What CS9 does not decide for you",
        "Key concepts and definitions",
        "Surveillance system architecture",
        "Example workflow",
        "Plan-heavy or analysis-heavy tasks?",
        "Other vignettes",
        "Example",
        "Surveillance system setup",
        "Database table definition",
        "Task configuration",
        "for_each_plan",
        "plnr::expand_list",
        "for_each_analysis",
        "universal_argset",
        "upsert_at_end_of_each_plan",
        "insert_at_end_of_each_plan",
        "action_fn_name",
        "data_selector_fn_name",
        "schema",
        "data_selector_fn",
        "action_fn",
        "Run the task",
        "Common task patterns",
        "Importing data",
        "Analysis",
        "Exporting multiple sets of results",
        "Exporting combined results",
        "Deployment",
        "What the framework handles for you",
        "Getting started",
        "Next steps"
      ],
      "created": "2024-05-27 14:11:20",
      "modified": "2026-08-06 08:03:42",
      "commits": 15
    },
    {
      "source": "rebuilding-a-table-safely.Rmd",
      "filename": "rebuilding-a-table-safely.html",
      "title": "Rebuilding a table safely",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The task",
        "A run that succeeds",
        "A run that fails, and its retry",
        "The publish on PostgreSQL",
        "What you need to know when you write a task"
      ],
      "created": "2026-10-12 20:32:49",
      "modified": "2026-10-16 20:26:30",
      "commits": 6
    },
    {
      "source": "task-shapes.Rmd",
      "filename": "task-shapes.html",
      "title": "Task shapes",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Setup",
        "Per-unit rebuild",
        "Staged import",
        "Per-plan staged swap",
        "Staging as a checkpoint",
        "Fit then fill",
        "Export from a finished table",
        "Notify after export",
        "Three rules"
      ],
      "created": "2026-10-05 05:30:18",
      "modified": "2026-10-16 20:26:30",
      "commits": 6
    }
  ],
  "_score": 5.12057393120585,
  "_indexed": true,
  "_nocasepkg": "cs9",
  "_universes": [
    "niphr",
    "raubreywhite"
  ],
  "_previous": "26.10.24",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "26.10.25",
      "date": "2026-10-16T23:51:51.000Z",
      "distro": "resolute",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/b66f2a8179796a7bbbe07797619ac247f22cd0b5773a7b585cfc55a9f1639fc1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "26.10.25",
      "date": "2026-10-16T23:51:42.000Z",
      "distro": "resolute",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/14def0fb1ff14c88c120c486201351016837cc39c6d15bd4d4cc549fe76bc486",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "26.10.25",
      "date": "2026-10-16T23:51:11.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/be5cd96fbbc256ca4ddd6e3e2e8a74e9ba943c8f6799d5c270624b48f820290e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "26.10.25",
      "date": "2026-10-16T23:51:11.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/cbf48173e4534bf51acfe937b7efff710c0d09032d59a3c7aaff22f73f1c223c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "26.10.25",
      "date": "2026-10-16T23:51:36.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/59e94e6e6708e7bb62aa9dc91a52a909edfb0a82e0968315fdb57cdf92044285",
      "status": "success",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "26.10.25",
      "date": "2026-10-16T23:50:54.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/d128570bb707ee83403d1acee941cafd732f4752d2f395d99380e6702c7aba90",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "26.10.25",
      "date": "2026-10-16T23:50:36.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/7cf2d97f457afab79bd12ad286f13b07e8d1d2c8dc5e95ab4729ad7e6da4b0a3",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "26.10.25",
      "date": "2026-10-16T23:50:52.000Z",
      "commit": "8ca2914b2e4e37d33c971378f54a1cdb7b087755",
      "fileid": "https://r2.ropensci.org/bd84ad29e244c9a6e677614dbe0f994750ba40439620d67d440c0c7ff3f3ae8f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/niphr/actions/runs/38983022452"
    }
  ]
}