Files
magnus919_agent-skills/raleigh/references/civic-content-reference.md
T
Magnus HedemarkandGitHub 22f1d52456 fix(raleigh): keep WAF outages blocking (#424)
Keep Cloudflare WAF challenges distinct while preserving a blocking canary signal for unavailable civic adapters.
2026-08-29 13:12:42 -04:00

1.8 KiB

RaleighNC.gov Civic Content Reference

RaleighNC.gov exposes public content through a Drupal JSON:API and an RSS feed.

JSON:API

https://raleighnc.gov/jsonapi

The CLI uses an explicit allowlist of public content resource types:

  • node--news
  • node--event and node--event_series
  • node--project
  • node--place
  • node--service and node--service_core
  • node--directory_entry
  • node--organizational_unit
  • node--alert, node--alert_update, and node--status_alert

Administrative resources, users, webform submissions, and configuration entities are denied.

Example Endpoint

https://raleighnc.gov/jsonapi/node/news?filter[status]=1&page[limit]=10

RSS Feed

https://raleighnc.gov/rss.xml

A lightweight stream for news and updates. Repeated entries with the same RSS GUID or canonical link are returned once. Use rss --new-only to persist seen identifiers in the local Raleigh cache and return only newly observed entries on later --new-only runs.

Notes

  • Raleigh's site may present a Cloudflare browser challenge to non-browser clients. The CLI does not attempt to bypass that challenge; the scheduled canary records it as a visible upstream availability failure.
  • The CLI preserves canonical page URLs so users can inspect the source presentation.
  • Rendered HTML is treated as content, not executable markup.
  • Publication status is requested server-side with filter[status]=1; the CLI also requires every returned node's status to be the JSON boolean true and drops missing, false, numeric, or malformed values.
  • Text, date, and --relationship FIELD=ID filters are applied client-side after bounded JSON:API pagination because Raleigh does not expose verified server-side contracts for those filters.