mirror of
https://github.com/magnus919/agent-skills.git
synced 2026-09-11 19:47:12 +03:00
Keep Cloudflare WAF challenges distinct while preserving a blocking canary signal for unavailable civic adapters.
1.8 KiB
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--newsnode--eventandnode--event_seriesnode--projectnode--placenode--serviceandnode--service_corenode--directory_entrynode--organizational_unitnode--alert,node--alert_update, andnode--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 booleantrueand drops missing, false, numeric, or malformed values. - Text, date, and
--relationship FIELD=IDfilters are applied client-side after bounded JSON:API pagination because Raleigh does not expose verified server-side contracts for those filters.