Eric Rakestraw 77bd59cb87
All checks were successful
ci/woodpecker/push/build-image Pipeline was successful
Add policy documents and a roadmap to implement a full documentation set
2026-06-10 14:59:20 -05:00
2026-05-30 06:47:18 -05:00
2026-03-29 10:54:36 -05:00
2026-03-29 10:54:36 -05:00
2026-01-14 00:12:51 +00:00

weatherfeeder

weatherfeeder is a small daemon that polls weather observations, forecasts, and alerts from multiple upstream providers, normalizes them into a provider-independent format, and emits them to a sink.

Today, the only implemented sink is stdout, which prints JSON-encoded events.

What weatherfeeder emits

weatherfeeder emits feed events encoded as JSON. Each event includes a schema identifier and a payload. Downstream consumers should key off the schema value and decode the payload accordingly.

Canonical domain schemas emitted after normalization:

  • weather.observation.v1WeatherObservation
  • weather.forecast.v1WeatherForecastRun
  • weather.forecast_discussion.v1WeatherForecastDiscussion
  • weather.weather_story.v1WeatherStoryRun
  • weather.alert.v1WeatherAlertRun

For the complete wire contract (event envelope + payload schemas, fields, units, and compatibility rules), see:

  • API.md

Upstream providers (current MVP)

  • NWS: observations, hourly forecasts, narrative forecasts, forecast discussions, weather stories, alerts
  • Open-Meteo: observations, hourly forecasts
  • OpenWeather: observations

Versioning & compatibility

The JSON field names on canonical payload types are treated as part of the wire contract. Additive changes are preferred. Renames/removals require a schema version bump.

See API.md for details.

Description
A small daemon to poll weather observations, alerts, and forecasts from a variety of sources.
Readme BSD-3-Clause 1.3 MiB
Languages
Go 99.6%
Dockerfile 0.4%