Skip to content

Environment Variables

Environment variables are set by Terraform
HashiCorp Terraform — provisions all platform infrastructure through five modules in `terraform/`.
modules at deploy time. Override behavior via Terraform variables or reprocess job parameters where noted.

VariableSourceDescription
LOOKBACK_HOURS

lookback_hours (default 1)

UTC rolling window for sync (1–168)
DATA_LAKE_BUCKETingest module

Private data lake
Private S3 bucket holding raw RINEX under `raw/rinexhourly/` and processed TEC output under `processed/tec/`.
bucket name

SOURCE_BUCKET

source_bucket (default geonet-open-data)

GeoNet
GeoNet open data — public S3 bucket `geonet-open-data` with GNSS RINEX hourly files under `gnss/rinexhourly/`. Not owned by this stack; no push notification when new files arrive.
public bucket

SOURCE_PREFIX

source_prefix (default gnss/rinexhourly/)

Source prefix in public bucket
VariableDefaultDescription
PROCESSOR_MODElambdaExecution mode
SOURCE_BUCKETdata lake bucket

Bucket for raw RINEX
Receiver Independent Exchange Format — standard GNSS observation file format synced from GeoNet and calibrated by the processor.
input

SOURCE_PREFIXraw/rinexhourly/Raw input prefix
DESTINATION_BUCKETdata lake bucketBucket for processed output
DESTINATION_PREFIXprocessed/tec/Processed output prefix
NAV_DAY_OFFSET1Default nav file day offset (overridable per reprocess message)
NUMBA_CACHE_DIR/tmp/numba-cacheNumba JIT cache directory
SAVE_PARQUETtrue

Write Parquet
Columnar file format — primary processed output for efficient Query API range scans; JSON is a fallback when `pyarrow` is unavailable.
output

SAVE_CSVtrueWrite CSV output
SAVE_JSONtrueWrite JSON output
SAVE_STATIC_PLOTSfalseGenerate PNG plots
SAVE_INTERACTIVE_PLOTSfalseGenerate HTML plots
JOBS_TABLE_NAMEDynamoDB table name

Jobs table
DynamoDB table keyed by `job_id` — stores reprocess job metadata, parameters, status, and output references.
for reprocess status updates

Per-job overrides (NAV_DAY_OFFSET, SAVE_*) are passed via reprocess SQS
Amazon Simple Queue Service — buffers ingest and reprocess messages between S3/API and the processor Lambda.
messages. See SQS Message Schemas.

VariableDefaultDescription
DATA_LAKE_BUCKETdata lake bucketBucket for processed output reads
QUERY_MAX_ROWS2000Row cap before response serialization
QUERY_READ_WORKERS8Parallel S3 read workers per request
CORS_ALLOW_ORIGINAmplify hostname

Browser CORS origin (set via amplify_domain)

VariableDescription
REPROCESS_QUEUE_URL

Reprocess_Queue
SQS standard queue — buffers reprocessing job messages from the Reprocess API with lower concurrency than ingest.
URL

JOBS_TABLE_NAMEDynamoDB Jobs table name
DATA_LAKE_BUCKETData lake bucket for raw key lookup
CORS_ALLOW_ORIGINBrowser CORS origin

Processor concurrency, timeouts, and alarm thresholds are Terraform variables — not Lambda environment variables:

Terraform variableDefaultEffect
processor_maximum_concurrency15Ingest queue ESM concurrency
reprocess_maximum_concurrency2Reprocess queue ESM concurrency
processor_timeout_seconds900

Lambda
AWS Lambda — serverless compute for ingest-sync, query-api, reprocess-api, and the processor container image.
timeout

processor_memory_mb2048Lambda memory

See Terraform Variables.