# Changelog of Dutch Government Announcements Monitor – Permits (`lwsdjfls/nl-govt-announcements-monitor`) Actor

- **URL**: https://apify.com/lwsdjfls/nl-govt-announcements-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/lwsdjfls/nl-govt-announcements-monitor.md

## Changelog

### 0.1

- Initial release: filtered feeds of Dutch official publications from the KOOP SRU service (gemeente, other authorities, postcode area, type, activities, keywords, period), with authority, address and coordinates, name-redacted summary, document links and the derived objection deadline (metadata, text, or estimate), plus a monitor mode for new publications.
- Monitor mode: the baseline a new watch delivers on its first run is charged per publication at the lookup price (`bekendmaking-delivered`, $0.002), so a fresh `stateKey` or a changed filter is no longer a free lookup. When the spending limit ends that first run early, the watch starts from the publications that fit and the next run delivers the rest as new publications.
- A run reads at most five times `maxItems` publications, up to 10,000 (or `maxItems` itself, when that is higher), and drops publications whose metadata postcode is outside the postcode areas before downloading their document; paging stops when the service does not move forward, and a publication repeated on a later page is read once. A watch run that stops at one of these limits (or at `maxItems`) keeps the publications it did not reach instead of forgetting them, so a later run does not charge them again as new, while known publications it did read but no longer delivers (now marked as personal data, outside the postcode areas, or a record that could not be processed) leave the state as after a full run; once a watch knows more publications than a run reads, only the unreached ones whose last known modification date is inside the window are kept. In a watch, `maxItems` counts only new publications, and a run that `maxItems` cut short is no longer reported as complete.
- With `postcodeAreas` set, a publication whose postcode is only in its text, read by a run that has no text for it (the document could not be read, `fetchDocuments` is off, or the record has no document link on KOOP's repository), is no longer counted as outside the postcode areas. A new publication, and any publication in a lookup, is left out uncharged. A watch keeps the version of a known publication it delivered before, whether the run reads its whole window or stops early, so the run that reads the document delivers KOOP's change as a free `changed` record instead of charging the publication again as new; once the watch knows more publications than a run reads, a run that stops before reaching it keeps it only while the modification date of that delivered version is inside the window, as above. The run log counts these publications, including the known ones a watch kept, and a failed read also logs a warning for each.
- A document answer that is not the publication itself (a firewall or maintenance page answering 200, or a gateway's own XML error document) counts as a document that could not be read instead of being read as the publication's text: a document is only used when the repository sends the publication document KOOP serves. The warning that a publication was delivered from metadata only now appears only for publications the run delivers.
- The SRU responses and publication documents are read in a single forward pass, so a truncated or hostile answer (unclosed tags, a doctype of megabytes) costs time in proportion to its size instead of blocking the run.
- Document and link URLs are only taken from KOOP's own hosts (https); other links are replaced by the canonical publication URL. A record with an impossible character reference or a malformed date is still delivered (with U+FFFD for the character and `null` for the date), and one that cannot be processed is skipped with a warning instead of failing the run. The webhook URL is a secret input, stored encrypted.
