Register lookup: a switchable plugin that asks the country's register (online half of #935) #1021

Closed
opened 2026-10-19 19:18:26 +00:00 by tiagoagueda · 0 comments
Owner

The online half of #935. The offline half (per-country check digits and register links inside the identifiers module) is in the pull request for branch 935-register-links; this issue is the lookup that the identifier contract forbids a scheme to do.

What

A separate feature plugin, Register lookup, that depends on identifiers and adds a Look up action beside a company's register number (option B in the #935 comment).

  • Off by default, or offered per instance; Server settings -> Plugins decides who may use it and holds the settings below.
  • Adapters register through an open entry-point group, as link services do (postulo.link_services, #305), so a country plugin can add one without touching core.
  • Keyless adapters shipped first: FR, NO, FI, CZ, EE, PL, plus GLEIF registeredAs / registeredAt (a company with an LEI and no register number is offered one; with both, they are compared).
  • GB, NL, DK and SE work once the operator enters a key, stored encrypted in Server settings.
  • Requests go through the guarded public_only_client with Postulo's User-Agent, under a rate limit named POSTULO_*_RATE and documented in the wiki. Only company data is sent.
  • Look up, then confirm: a review page like the Wikidata one (#673) shows the official name, address, status and NACE code (#897), and the person chooses what to keep. Nothing is overwritten silently.
  • Paperwork: record of processing and THREAT-MODEL entries for each outside service; attribution per source licence (CC BY 4.0 where required); new text through Weblate.

To confirm first

The endpoints and terms marked "to confirm" in #935: Germany's "free since 2022", PRH's current API version, Zefix's endpoints, CVR's access terms, OpenCorporates' free tier, and Portugal's lack of an API.

Left out of the offline half, belongs here

An LEI cross-check against a stored register number: an LEI's first four characters name its issuing LOU, not a country, so it cannot be done offline. It needs the GLEIF record's registeredAs.

The online half of #935. The offline half (per-country check digits and register links inside the identifiers module) is in the pull request for branch `935-register-links`; this issue is the lookup that the identifier contract forbids a scheme to do. ## What A separate feature plugin, *Register lookup*, that depends on `identifiers` and adds a *Look up* action beside a company's register number (option B in the #935 comment). - Off by default, or offered per instance; *Server settings -> Plugins* decides who may use it and holds the settings below. - Adapters register through an open entry-point group, as link services do (`postulo.link_services`, #305), so a country plugin can add one without touching core. - Keyless adapters shipped first: FR, NO, FI, CZ, EE, PL, plus GLEIF `registeredAs` / `registeredAt` (a company with an LEI and no register number is offered one; with both, they are compared). - GB, NL, DK and SE work once the operator enters a key, stored encrypted in *Server settings*. - Requests go through the guarded `public_only_client` with Postulo's User-Agent, under a rate limit named `POSTULO_*_RATE` and documented in the wiki. Only company data is sent. - Look up, then confirm: a review page like the Wikidata one (#673) shows the official name, address, status and NACE code (#897), and the person chooses what to keep. Nothing is overwritten silently. - Paperwork: record of processing and THREAT-MODEL entries for each outside service; attribution per source licence (CC BY 4.0 where required); new text through Weblate. ## To confirm first The endpoints and terms marked "to confirm" in #935: Germany's "free since 2022", PRH's current API version, Zefix's endpoints, CVR's access terms, OpenCorporates' free tier, and Portugal's lack of an API. ## Left out of the offline half, belongs here An LEI cross-check against a stored register number: an LEI's first four characters name its issuing LOU, not a country, so it cannot be done offline. It needs the GLEIF record's `registeredAs`.
tiagoagueda added this to the 0.5.0 milestone 2026-10-25 17:04:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1021
No description provided.