# PortalJS data scaling — Git LFS wiring (epic po-g9y).
#
# By default ALL user-added data is versioned with Git LFS; the bytes stream to
# Cloudflare R2 through Giftless (see .lfsconfig) and only a small pointer stays
# in git. This keeps data versioned-with-the-repo without git bloat, and lets the
# browser fetch it over HTTP range requests straight from R2 (CORS + ranges are
# configured on the bucket — see giftless/r2-cors.json).
#
# LFS routing is FORMAT-AGNOSTIC and intent-driven, NOT an extension allowlist:
# `/portaljs-add-dataset` appends a per-file
# `<path> filter=lfs diff=lfs merge=lfs -text` entry here at add-time (via
# `git lfs track <relative-path>`) for each file it routes to R2 — any format,
# including images and arbitrary binaries. So this file ships minimal below the
# fence; the skill populates the per-file entries.

# Fenced exception (storage decision, po-g9y): the bundled SAMPLE CSVs committed
# under public/data/ (a few hundred bytes each) stay INLINE so `create-portaljs`
# and `npm run dev` work offline with zero credentials for the basic CSV demos.
# Keep these as plain text in git; do NOT route them through LFS.
#
# The larger binary samples — region-metrics (Parquet, SQL-editor demo) and
# world-boundaries (PMTiles, map-preview demo) — are NOT committed here. They are
# hosted on R2 via Giftless and referenced by their data.portaljs.com URLs in
# datasets.json, so the showcase demonstrates the real serverless range-read path
# (see .lfsconfig for the per-project LFS flow that /portaljs-add-dataset wires up).
public/data/** -filter -diff -merge text
