NARENDAR MADHAVAN

Data classification

RAN1 Live is a fully public, static site. Everything that ships in the build is world-readable, so data is split into three tiers and only tier 1 is ever built.

Tier 1 — Public (safe to build and publish)

Generated by the ingestion pipelines into public/data/:

All of it is already public on 3gpp.org. No person-level information is added.

Tier 2 — Device-only (never built, never uploaded)

Stored exclusively in the browser’s localStorage on the delegate’s own device:

Rules:

Tier 3 — Secret (never in the repository)

API keys, service-role keys, private keys, venue credentials. These belong in GitHub Actions secrets or a server runtime environment, never in the repo or the client bundle.

Enforcement

scripts/check-public-data.mjs runs before every build (prebuild) and again in CI before the GitHub Pages upload. It fails the build when:

To publish genuinely public data that happens to use one of those key names, rename the field rather than weakening the guard.