NEWS


tidybrreg 0.6.0

The split

tidybrreg is now the narrow, typed client to the register: exactly sixteen exports, each wrapping one endpoint of Enhetsregisteret, the Fullmakt service, Regnskapsregisteret, or SSB KLASS.

brreg_entity()  brreg_search()  brreg_underenheter()  brreg_children()
brreg_roles()   brreg_roles_legal()  brreg_konsern()
brreg_signatur()  brreg_prokura()
brreg_regnskap()
brreg_updates()  brreg_update_fields()
brreg_download()
brreg_label()  get_brreg_dic()  brreg_validate()

The managed-state subsystem (snapshot store, brreg_sync(), replay, changelog queries, flows, panels, series, tsibble conversion, events, annotations, name history, harmonisation, director networks, survival data, brreg_board_summary(), diff_roller_state(), brreg_status()) has moved, unchanged in behaviour, to the companion package tidybrregpanel in the tidybrregpanel/ directory of this repository. It depends on tidybrreg and is built alongside it on r-universe. The pre-split implementation remains at commit c9bd992.

The Model Context Protocol server tidybrregmcp (tidybrregmcp/) exposes the sixteen exports as MCP tools, deriving every tool's documentation and schema from this package's help pages, and writes a manifest (mcp_manifest()) from which tidybrreg-mcp (tidybrreg-mcp-node/, on npm) serves the same catalogue without R. The package ships inst/extdata/endpoints.json, a machine-readable contract of every export's endpoint, query mapping and status handling, held to the functions by tests/testthat/test-endpoints.R.

Tidy shape

New: annual accounts

Breaking changes

Typed conditions

Every error and warning now carries a class and fields; see ?tidybrreg_conditions. Errors: tidybrreg_error_invalid_org_nr, _invalid_filter, _not_found, _http, _result_window, _invalid_since, _no_bundled_dictionary, _rate_limited, _connection. Warnings: tidybrreg_warning_deleted, _partial, _truncated, _unknown_member, _bundled_fallback, _parse, _unresolved, _unsupported_plan.

Request layer

The retry rule follows what the brreg-json-fetcher collector observed live. 500, 502 and 504 are transient like 429 and 503 (three tries, exponential pause), except the Regnskapsregisteret 500 that names an unsupported accounting plan, which is a property of the entity and is final. The register's rate limit sometimes arrives as HTTP 200 with a text/plain body Too many requests; it was an unreadable-body crash and is now retried and, when it persists, a typed tidybrreg_error_rate_limited. A connection failure (DNS, TCP, TLS, dropped connection) is retried the same number of times and then a tidybrreg_error_connection; the bulk download goes through the same rule, so a connection reset mid-download is retried and a server error aborts with the typed tidybrreg_error_http. The live audit probes the fetcher's two deleted controls (931264338, 991128972) as deleted here too. The Node server applies the same rule from endpoints.json.

Fixes to the retained core

tidybrreg 0.5.0

Breaking changes

New features

Minor improvements and fixes

tidybrreg 0.4.0

New features

Minor improvements and fixes

tidybrreg 0.3.8

Bug fixes

tidybrreg 0.3.7

New features

Documentation

tidybrreg 0.3.6

Bug fixes

Internal

tidybrreg 0.3.4

Roller CDC: field-level change detection

Performance

Bug fixes

tidybrreg 0.3.3

Bug fixes

Field dictionary

Sync engine

tidybrreg 0.3.2

Event-sourcing sync engine

Registry annotations (påtegninger)

Unified change tracking

tidybrreg 0.3.1

New functions

Changes

Infrastructure

tidybrreg 0.3.0

Documentation

Test coverage

tidybrreg 0.2.0

New features

Snapshot engine

Provenance manifest

Panel construction

Entity and sub-entity access

Bulk downloads

Concordance

Governance research

CDC updates

Dependency changes

tidybrreg 0.1.0