{
  "_id": "6a197050acfb0bcc41ded1d4",
  "Package": "abba",
  "Title": "Batch Execution of R Programs on 'Kubernetes', 'SLURM', and\n'Posit Workbench'",
  "Version": "0.2.0",
  "Authors@R": "c(\nperson(given = \"Eli\",\nfamily = \"Miller\",\nrole = \"aut\",\nemail = \"Eli.Miller@AtorusResearch.com\",\ncomment = c(ORCID = \"0000-0002-2127-9456\")),\nperson(given = \"Mike\",\nfamily = \"Stackhouse\",\nrole = c(\"aut\", \"cre\"),\nemail = \"mike.stackhouse@atorusresearch.com\",\ncomment = c(ORCID = \"0000-0001-6030-723X\")),\nperson(given = \"Ross\",\nfamily = \"Didenko\",\nrole = c(\"aut\"),\nemail = \"Rostyslav.Didenko@atorusresearch.com\"),\nperson(given = \"Yevhenii\",\nfamily = \"Boiko\",\nrole = c(\"aut\"),\nemail = \"Yevhenii.Boiko@atorusresearch.com\"),\nperson(\"Atorus Research, Inc.\", role = \"cph\")\n)",
  "Description": "Submit and monitor batch execution of R programs across\ndistributed computing backends including 'Kubernetes', 'SLURM',\nand 'Posit Workbench'. Provides end-user job submission\nfunctions, cluster interface functions using 'kubectl' and\n'SLURM' commands, and a 'plumber' API template for secure\nidentity segregation. Supports parallel and sequential batch\nexecution, file-based caching to skip unchanged programs, and\n'logrx' integration for execution logging.",
  "License": "Apache License (>= 2)",
  "URL": "https://atorus-research.github.io/abba/,\nhttps://github.com/atorus-research/abba",
  "BugReports": "https://github.com/atorus-research/abba/issues",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "SystemRequirements": "kubectl (optional, for Kubernetes backend), SLURM\n(optional, sbatch/scontrol/sacct/squeue for SLURM backend),\nPosit Workbench (optional, for Workbench backend)",
  "Config/pak/sysreqs": "libicu-dev libssl-dev",
  "Repository": "https://atorus-research.r-universe.dev",
  "Date/Publication": "2026-04-23 14:11:49 UTC",
  "RemoteUrl": "https://github.com/atorus-research/abba",
  "RemoteRef": "HEAD",
  "RemoteSha": "91a090be04757e27497fc63ae2447a4b687e4260",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-29 09:09:38 UTC",
    "User": "root"
  },
  "Author": "Eli Miller [aut] (ORCID: <https://orcid.org/0000-0002-2127-9456>),\nMike Stackhouse [aut, cre] (ORCID:\n<https://orcid.org/0000-0001-6030-723X>),\nRoss Didenko [aut],\nYevhenii Boiko [aut],\nAtorus Research, Inc. [cph]",
  "Maintainer": "Mike Stackhouse <mike.stackhouse@atorusresearch.com>",
  "MD5sum": "89aa29e5aa827a3c9ac2167d05770574",
  "_user": "atorus-research",
  "_type": "src",
  "_file": "abba_0.2.0.tar.gz",
  "_fileid": "54245d63a48aea2aa05757b63a80c24934ce24abc64a4ef5d5adbb42459f2e4a",
  "_filesize": 1180490,
  "_sha256": "54245d63a48aea2aa05757b63a80c24934ce24abc64a4ef5d5adbb42459f2e4a",
  "_created": "2026-05-29T09:09:38.000Z",
  "_published": "2026-05-29T10:54:08.602Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 78471699627,
      "time": 138,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7287208176"
    },
    {
      "job": 78471699586,
      "time": 135,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287207362"
    },
    {
      "job": 78471699592,
      "time": 84,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7289000614"
    },
    {
      "job": 78471699595,
      "time": 93,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7289003151"
    },
    {
      "job": 78471247883,
      "time": 184,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7287165481"
    },
    {
      "job": 78471699584,
      "time": 113,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7287200868"
    },
    {
      "job": 78471699608,
      "time": 93,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7287194924"
    },
    {
      "job": 78471699652,
      "time": 85,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7287192781"
    },
    {
      "job": 78471699611,
      "time": 83,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7287191869"
    }
  ],
  "_buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/atorus-research/abba",
  "_commit": {
    "id": "91a090be04757e27497fc63ae2447a4b687e4260",
    "author": "mike.stackhouse <Mike.Stackhouse@atorusresearch.com>",
    "committer": "mike.stackhouse <Mike.Stackhouse@atorusresearch.com>",
    "message": "CRAN comments\n",
    "time": 1776953509
  },
  "_maintainer": {
    "name": "Mike Stackhouse",
    "email": "mike.stackhouse@atorusresearch.com",
    "login": "mstackhouse",
    "twitter": "@mike_at_atorus",
    "description": "Chief Innovation Officer at Atorus Research. MIDS graduate from UC Berkeley. Mike works with Python, R, and Go.",
    "uuid": 31387567,
    "orcid": "0000-0001-6030-723X"
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "yaml",
      "role": "Imports"
    },
    {
      "package": "uuid",
      "role": "Imports"
    },
    {
      "package": "stringr",
      "role": "Imports"
    },
    {
      "package": "httr2",
      "role": "Imports"
    },
    {
      "package": "magrittr",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "rstudioapi",
      "role": "Imports"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "tidyr",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "mockery",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "logrx",
      "role": "Suggests"
    }
  ],
  "_owner": "atorus-research",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-16",
      "n": 6
    },
    {
      "week": "2026-17",
      "n": 1
    }
  ],
  "_tags": [],
  "_stars": 2,
  "_contributors": [
    {
      "user": "mstackhouse",
      "count": 48,
      "uuid": 31387567
    }
  ],
  "_userbio": {
    "uuid": 64594907,
    "type": "organization",
    "name": "Atorus Research"
  },
  "_downloads": {
    "count": 518,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/abba"
  },
  "_devurl": "https://github.com/atorus-research/abba",
  "_pkgdown": "https://atorus-research.github.io/abba/",
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/abba.html",
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/atorus-research/abba",
  "_realowner": "atorus-research",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2026-04-28"
    }
  ],
  "_exports": [
    "%>%",
    "abba_get_batch_log",
    "abba_get_batch_status",
    "abba_get_job_log",
    "abba_get_job_status",
    "abba_get_k8s_batch_log_local",
    "abba_get_k8s_batch_status_local",
    "abba_get_k8s_job_log_local",
    "abba_get_k8s_job_status_local",
    "abba_rslauncher_get_job_status_local",
    "abba_rslauncher_get_job_succeeded_local",
    "abba_rslauncher_submit_job_local",
    "abba_rslauncher_submit_logrx_job_local",
    "abba_rslauncher_watch_job_local",
    "abba_slurm_get_job_log",
    "abba_slurm_get_job_status",
    "abba_slurm_get_job_succeeded",
    "abba_slurm_submit_job",
    "abba_slurm_watch_job",
    "abba_submit_and_get_log",
    "abba_submit_batch",
    "abba_submit_batch_and_get_results",
    "abba_submit_job",
    "abba_submit_k8s_job_and_poll_local",
    "abba_submit_k8s_job_local",
    "abba_wait_for_batch_log",
    "abba_wait_for_job_log",
    "abba_watch_k8s_batch_local",
    "abba_watch_k8s_job_local",
    "calculate_run_group",
    "create_batch_api",
    "create_batch_job",
    "submit_k8s_yaml"
  ],
  "_help": [
    {
      "page": "abba_get_batch_log",
      "title": "Send GET request to get logs of all jobs in a batch",
      "topics": [
        "abba_get_batch_log"
      ]
    },
    {
      "page": "abba_get_batch_status",
      "title": "Send GET request to get batch job statuses",
      "topics": [
        "abba_get_batch_status"
      ]
    },
    {
      "page": "abba_get_job_log",
      "title": "Send GET request to get logs of specified Jobs",
      "topics": [
        "abba_get_job_log"
      ]
    },
    {
      "page": "abba_get_job_status",
      "title": "Send GET request to get job status",
      "topics": [
        "abba_get_job_status"
      ]
    },
    {
      "page": "abba_get_k8s_batch_log_local",
      "title": "Return list of logs for jobs that are marked with a given batch ID",
      "topics": [
        "abba_get_k8s_batch_log_local"
      ]
    },
    {
      "page": "abba_get_k8s_batch_status_local",
      "title": "Get status of all jobs in a batch",
      "topics": [
        "abba_get_k8s_batch_status_local"
      ]
    },
    {
      "page": "abba_get_k8s_job_log_local",
      "title": "Get log for every job specified in an input vector/list",
      "topics": [
        "abba_get_k8s_job_log_local"
      ]
    },
    {
      "page": "abba_get_k8s_job_status_local",
      "title": "Get status of all pods that belong to a job",
      "topics": [
        "abba_get_k8s_job_status_local"
      ]
    },
    {
      "page": "abba_rslauncher_get_job_status_local",
      "title": "Get Workbench job status for a given vector/list of job IDs",
      "topics": [
        "abba_rslauncher_get_job_status_local"
      ]
    },
    {
      "page": "abba_rslauncher_get_job_succeeded_local",
      "title": "Check whether Workbench jobs have been fully executed.",
      "topics": [
        "abba_rslauncher_get_job_succeeded_local"
      ]
    },
    {
      "page": "abba_rslauncher_submit_job_local",
      "title": "Create a job for executing an R program",
      "topics": [
        "abba_rslauncher_submit_job_local"
      ]
    },
    {
      "page": "abba_rslauncher_submit_logrx_job_local",
      "title": "Execute programs via logrx",
      "topics": [
        "abba_rslauncher_submit_logrx_job_local"
      ]
    },
    {
      "page": "abba_rslauncher_watch_job_local",
      "title": "Periodically poll Workbench jobs for status and return their IDs when all job statuses arrive at 'Finished' state",
      "topics": [
        "abba_rslauncher_watch_job_local"
      ]
    },
    {
      "page": "abba_slurm_get_job_log",
      "title": "Return job log for each submitted job ID",
      "topics": [
        "abba_slurm_get_job_log"
      ]
    },
    {
      "page": "abba_slurm_get_job_status",
      "title": "Return descriptive job status for slurm jobs",
      "topics": [
        "abba_slurm_get_job_status"
      ]
    },
    {
      "page": "abba_slurm_get_job_succeeded",
      "title": "Check whether SLURM jobs have been fully executed.",
      "topics": [
        "abba_slurm_get_job_succeeded"
      ]
    },
    {
      "page": "abba_slurm_submit_job",
      "title": "Submit R program as a SLURM job",
      "topics": [
        "abba_slurm_submit_job"
      ]
    },
    {
      "page": "abba_slurm_watch_job",
      "title": "Watch SLURM job, periodically polling its execution status.",
      "topics": [
        "abba_slurm_watch_job"
      ]
    },
    {
      "page": "abba_submit_and_get_log",
      "title": "Send job and poll for status. This function sends multiple requests so it won't time out on heavy jobs",
      "topics": [
        "abba_submit_and_get_log"
      ]
    },
    {
      "page": "abba_submit_batch",
      "title": "Submit programs for execution in order defined by structure of input list. Programs inside sublists will be executed in parallel, and sublists themselves would be submitted sequentially.",
      "topics": [
        "abba_submit_batch"
      ]
    },
    {
      "page": "abba_submit_batch_and_get_results",
      "title": "Submit programs for execution in order defined by structure of input list.",
      "topics": [
        "abba_submit_batch_and_get_results"
      ]
    },
    {
      "page": "abba_submit_job",
      "title": "Send POST request to submit-job endpoint",
      "topics": [
        "abba_submit_job"
      ]
    },
    {
      "page": "abba_submit_k8s_job_and_poll_local",
      "title": "Submit a job profile for execution on a Kubernetes cluster and poll for completion",
      "topics": [
        "abba_submit_k8s_job_and_poll_local"
      ]
    },
    {
      "page": "abba_submit_k8s_job_local",
      "title": "Submit an R program for execution on a Kubernetes cluster",
      "topics": [
        "abba_submit_k8s_job_local"
      ]
    },
    {
      "page": "abba_wait_for_batch_log",
      "title": "Monitor batch status and retrieve its log when the all jobs in batch finish running",
      "topics": [
        "abba_wait_for_batch_log"
      ]
    },
    {
      "page": "abba_wait_for_job_log",
      "title": "Monitor job status and retrieve its log when the job finishes running",
      "topics": [
        "abba_wait_for_job_log"
      ]
    },
    {
      "page": "abba_watch_k8s_batch_local",
      "title": "Watch a K8S batch that has been submitted to Workbench, periodically polling it's execution status.",
      "topics": [
        "abba_watch_k8s_batch_local"
      ]
    },
    {
      "page": "abba_watch_k8s_job_local",
      "title": "Watch a K8S job that has been submitted to Workbench, periodically polling it's execution status.",
      "topics": [
        "abba_watch_k8s_job_local"
      ]
    },
    {
      "page": "calculate_run_group",
      "title": "Calculate run_group variable using inputs and outputs of programs supplied by user",
      "topics": [
        "calculate_run_group"
      ]
    },
    {
      "page": "create_batch",
      "title": "Create a Batch API or Job file template",
      "topics": [
        "create_batch_api",
        "create_batch_job"
      ]
    },
    {
      "page": "submit_k8s_yaml",
      "title": "Submit a job profile for execution on a Kubernetes cluster",
      "topics": [
        "submit_k8s_yaml"
      ]
    }
  ],
  "_readme": "https://github.com/atorus-research/abba/raw/HEAD/README.md",
  "_rundeps": [
    "askpass",
    "cli",
    "cpp11",
    "curl",
    "digest",
    "dplyr",
    "generics",
    "glue",
    "httr2",
    "lifecycle",
    "magrittr",
    "openssl",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rappdirs",
    "rlang",
    "rstudioapi",
    "stringi",
    "stringr",
    "sys",
    "tibble",
    "tidyr",
    "tidyselect",
    "utf8",
    "uuid",
    "vctrs",
    "withr",
    "yaml"
  ],
  "_vignettes": [
    {
      "source": "abba_options.Rmd",
      "filename": "abba_options.html",
      "title": "abba Options",
      "engine": "knitr::rmarkdown",
      "headings": [],
      "created": "2024-03-12 13:07:19",
      "modified": "2026-04-14 19:00:32",
      "commits": 3
    },
    {
      "source": "k8s_api_setup.Rmd",
      "filename": "k8s_api_setup.html",
      "title": "Kubernetes API Setup",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Introduction",
        "{abba} Design",
        "Prerequisites",
        "Create the API",
        "Deploy the API",
        "Connect Setup",
        "API Access",
        "API Runtime",
        "Test it Out",
        "Troubleshooting"
      ],
      "created": "2024-03-12 13:07:19",
      "modified": "2026-04-23 14:11:49",
      "commits": 3
    },
    {
      "source": "k8s_batch_job.Rmd",
      "filename": "k8s_batch_job.html",
      "title": "Kubernetes Batch Jobs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "End User Facing Functions",
        "Create a Scheduled Batch File",
        "Deployment Prep",
        "Deploy a Batch File to Connect",
        "Schedule Your Cron Job"
      ],
      "created": "2024-03-12 13:07:19",
      "modified": "2026-04-23 14:11:49",
      "commits": 3
    },
    {
      "source": "k8s_job_submission.Rmd",
      "filename": "k8s_job_submission.html",
      "title": "Kubernetes Job Submission",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Submit a Job",
        "Get Job Status",
        "Get the Log Content",
        "Interacting with Kubernetes"
      ],
      "created": "2024-03-12 13:07:19",
      "modified": "2026-04-14 19:07:36",
      "commits": 2
    },
    {
      "source": "slurm_job_submission.Rmd",
      "filename": "slurm_job_submission.html",
      "title": "SLURM Job Submission",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Submit a Job",
        "Get Job Status",
        "Get the Log Content",
        "Submit a batch of jobs to SLURM cluster"
      ],
      "created": "2024-07-19 10:23:32",
      "modified": "2026-04-23 14:11:49",
      "commits": 3
    },
    {
      "source": "workbench_batch_job.Rmd",
      "filename": "workbench_batch_job.html",
      "title": "Workbench Batch Jobs",
      "engine": "knitr::rmarkdown",
      "headings": [
        "End User Facing Functions",
        "Create a batch list from dataset"
      ],
      "created": "2024-04-03 18:45:43",
      "modified": "2026-04-23 14:11:49",
      "commits": 2
    },
    {
      "source": "workbench_job_submission.Rmd",
      "filename": "workbench_job_submission.html",
      "title": "Workbench Job Submission",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Submit a Job",
        "Get Job Status",
        "Get the Log Content"
      ],
      "created": "2024-04-03 18:45:43",
      "modified": "2026-04-23 14:11:49",
      "commits": 2
    }
  ],
  "_score": 5.146128035678238,
  "_indexed": true,
  "_nocasepkg": "abba",
  "_universes": [
    "atorus-research",
    "mstackhouse"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-29T09:11:55.000Z",
      "distro": "noble",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "6755eb4728cc14ddb5aad2fd22ed6f4ca165228abb7b8c36ea97c68f6ef16c0e",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "0.2.0",
      "date": "2026-05-29T09:11:53.000Z",
      "distro": "noble",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "f6f99886b7e6668abeec49b98fbb4fd75bc5e32344dff8d2400514c4ecc2d035",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-29T10:53:29.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "6182e35ae83b0465e9dc9e4f568bbd5bbcff3213194276fc54afb561d0ca8657",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "0.2.0",
      "date": "2026-05-29T10:53:38.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "6ca5a03f986630f778f0b53a0e21175f003b13786beec008ae6511e8192c4c2f",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.0",
      "date": "2026-05-29T09:11:48.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "0274db92fd4e10e57e71685523d8e76119b4c69eafe6c7ba69206244e725db6d",
      "status": "success",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-29T09:10:59.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "794a2e19eba4104fe641f029c3f2c97aa30cafa71d01e40620a70d83d50cf6f1",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-29T09:10:51.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "948867de7dccd52da03cf6fd76576ece6cd60725f87d4139a9cde20cd6792a01",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "0.2.0",
      "date": "2026-05-29T09:10:48.000Z",
      "commit": "91a090be04757e27497fc63ae2447a4b687e4260",
      "fileid": "a3b3db0e053e422ea78652a769c8c2b6c54f99e50cb8a72467a31adf0ae288af",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/atorus-research/actions/runs/26628533502"
    }
  ]
}