Skip to content

Production, development and app fallback

I use https://data.gamb2le.co.uk/app for the operational dashboard. JASMIN owns normal ingestion, operational products, archives and alerts. The public dashboard at https://data-ocean.gamb2le.co.uk/app is development; it can show experiments alongside mirrored production observations.

Mobile endpoints

Endpoint Purpose
https://data.gamb2le.co.uk/mobile/v1 Normal operational API
https://data-ocean.gamb2le.co.uk/mobile/v1 Development API and candidate evidence
https://data-ocean.gamb2le.co.uk/mobile/operational/v1 Separately enabled read-only operational mirror

The operational mirror uses a separate process, production replica paths and its own cache. It must not read development forecasts or continuity products. Its manifest retains schema version 3 and adds deployment.operationalMirror: true, alongside dataRole: live-mirror. The ordinary development API does not advertise this capability. Configuration and activation belong to the infrastructure repository; this page is not proof that the mirror has been activated or that its observations are fresh.

The production apps try JASMIN first. They may use the operational mirror after a connection failure or server error, once its manifest passes their checks. They show the mirror role and observation age, keep related data and media on the same endpoint, and retry JASMIN on a later normal refresh. Authentication, certificate and schema failures are not reasons to switch hosts. Custom servers are not silently redirected to public infrastructure.

Media paths resolve beneath the endpoint that supplied the response. Browser links from operational fallback stay on the canonical JASMIN dashboard because the development browser may show experimental products.

Releases and recovery

Completed changes, tests and documentation go to main. Development and production each pin an exact tested revision. A code rollback restores the application and configuration, not observations or archives.

The presentation release uses its own Python 3.12 environment. Pillow 13 fixes the image-decoder advisories detected by the release audit and requires Python 3.11 or newer. Keep the existing processing environment separate: changing a shared checkout or environment would also change the next scheduled science job. The infrastructure presentation-release guide owns the service overrides.

I check source, product and API observation times before calling a stream current. A responsive website, successful copy or recent file modification is not enough. The infrastructure operator guide and production/development contract own service commands, mirror safeguards and promotion gates. App fallback does not transfer ingestion or archive ownership.