Skip to contents

Never copied from manifest$capabilities. v7 and v7b both advertise cell_species_list = TRUE because the server-side apps can read a cell_model that lives only on the server; S3 holds tables/ and manifest.json for those releases and nothing else. A manifest describes the SERVER's tables; this describes the bucket.

Usage

app_capabilities(
  ver,
  base = atlas_base_url(),
  sample = list(),
  timeout = 20,
  cell_tile = NULL,
  cell_model_tile = NULL
)

Arguments

ver

version label

base

atlas base URL from atlas_base_url()

sample

named list of capability -> key relative to {base}/{ver}/, overriding the defaults (including cell/cell_model directly, if a caller needs a shape other than tile={n}/data_0.parquet)

timeout

seconds per probe

cell_tile

the real first app/cell/tile={n}/ this release actually wrote, or NULL (default) to probe the never-real tile=0 placeholder

cell_model_tile

the real first serve/cell_model/tile={n}/ this release actually wrote, or NULL (default) for the tile=0 placeholder

Value

a list with capabilities (named logicals) and probed

Details

A capability is TRUE only on a 200 (or 206). Anything else — 403, 404, a redirect, a timeout — is FALSE, and the probed URL and status are returned beside it so a FALSE can be explained rather than guessed at.

cell and cell_model default to tile=0 — a placeholder that no real release ever publishes (usa05 releases, v1-v7b, start at tile=19; global05, v8+, starts at tile=436), so an unhinted call 403s on both every time and under-reports them FALSE even when the tiles genuinely exist. Pass cell_tile/cell_model_tile — the REAL first tile number a build actually wrote (there is no way to discover this from the bucket alone: anonymous ListObjectsV2 is denied, confirmed against the real bucket 2026-09-26) — whenever the caller has one, e.g. from app_bundle_build()'s own written cell/tile=*/ directory or app_bundle_cell_model_plan()$keys[1].