prop/config
Graham McIntire 081cd47bb5
NarrClient.parse_inventory/2 + fetch_inventory/1
parse_inventory walks the wgrib1-format .inv text and returns a
{var, level} -> {byte_offset, length} index, computing each record's
length from the next record's offset (or file_size for the last one).
fetch_inventory does a GET on the .inv URL plus a HEAD on the .grb URL
to learn its size, then delegates to parse_inventory.

Both stubbable via Req.Test (config/test.exs adds narr_req_options
matching the existing era5_req_options / giro_req_options pattern).
Spike fixture at test/fixtures/narr/narr-a_221_20100615_1200_000.inv
backs the parser test — verifies the ("TMP", "2 m above gnd") and
("WVVFLX", "atmos col") records line up with the real bytes.
2026-04-15 18:54:02 -05:00
..
config.exs SpaceWeather: SWPC JSON ingestion (Kp, F10.7, GOES X-ray) 2026-04-15 14:55:24 -05:00
dev.exs Switch to DynamicLifeline for ~30s orphan rescue on deploys 2026-04-14 16:35:42 -05:00
prod.exs Configure outbound SMTP email via Swoosh with TLS 2026-04-02 13:08:50 -05:00
runtime.exs ERA5: tighten stuck threshold to 8h and pause prod queues for diagnosis 2026-04-15 16:04:12 -05:00
test.exs NarrClient.parse_inventory/2 + fetch_inventory/1 2026-04-15 18:54:02 -05:00