Skip to content

Add catalog block 29: company registries, bol.com, Cin7, Tookan, Threads, NinjaOne, Housecall Pro, Egypt ETA - #1614

Merged
helpcodeai merged 17 commits into
mainfrom
feat/catalog-block-29
Nov 9, 2026
Merged

helpcodeai merged 17 commits into
mainfrom
feat/catalog-block-29

Conversation

@helpcodeai

Copy link
Copy Markdown
Contributor

Summary

Adds 15 catalog adapters for public, documented APIs: seven open company registries, a marketplace, two inventory systems, delivery management, social publishing, IT management, field service and e-invoicing.

The catalog grows from 715 to 730 listed adapters (42 keyless). Six new regions: no, fi, cz, pl, ro, eg.

Changes

Adapter Region Tools Auth API docs
brreg (Brønnøysund: Enhetsregisteret + Regnskapsregisteret) no 15 read none https://data.brreg.no/enhetsregisteret/api/dokumentasjon/en/index.html
prh-ytj (PRH open data: YTJ, trade register notices, XBRL statements) fi 11 read none https://avoindata.prh.fi/en/ytj/swagger-ui
ares (ARES, one tool per source register) cz 10 read none https://ares.gov.cz/swagger-ui/
krs (National Court Register extracts, daily changes) pl 3 read none https://prs.ms.gov.pl/krs/openApi
anaf (VAT payer check, batch, financial statement indicators) ro 3 read none https://static.anaf.ro/static/10/Anaf/Informatii_R/Servicii_web/doc_WS_V9.txt
shab (Swiss Official Gazette of Commerce) ch 3 read none https://www.amtsblattportal.ch/docs/api/
borme (BOE open data: BORME and BOE summaries and items) es 4 read none https://www.boe.es/datosabiertos/api/api.php
bol-com (bol.com Retailer API v10, offers on v11) nl 25 OAuth2 client credentials https://api.bol.com/retailer/public/Retailer-API/index.html
cin7-omni (Cin7 Omni API v1) intl 26 Basic (API username + key) https://api.cin7.com/api
cin7-core (Cin7 Core, formerly DEAR, API v2) intl 30 account id + application key headers https://dearinventory.docs.apiary.io/
tookan (Jungleworks delivery and field workforce) intl 20 key in the JSON body https://tookanapi.docs.apiary.io/
threads (Meta Threads API) intl 23 long-lived user token https://developers.facebook.com/docs/threads
ninjaone (NinjaOne public API v2) intl 36 OAuth2 client credentials, regional host https://app.ninjarmm.com/apidocs/
housecall-pro (Housecall Pro public API) intl 36 API key https://docs.housecallpro.com/
egypt-eta (Egyptian Tax Authority e-invoicing) eg 20 OAuth2 client credentials https://sdk.invoicing.eta.gov.eg/

The shared-endpoint policy from #1538 applies:

  • No money movement.
    • bol.com has no return handling (accepting a return refunds the customer) and buys no shipping labels.
    • Cin7 payments and credit notes are read-only, and there are no void, dispatch or invoice tools.
    • Housecall Pro has no payment tools.
    • Tookan leaves out wallet, fare and payout endpoints.
  • No signed submissions. egypt-eta cannot submit documents, because that needs an HSM or token signature. Its instructions explain why.
  • Deletes and irreversible writes install switched off:
    • bol.com: cancel order item, delete offer;
    • Cin7 Omni: create adjustment;
    • Cin7 Core: create stock adjustment;
    • Tookan: delete task, delete customer;
    • Threads: delete post;
    • NinjaOne: reboot device, apply OS patches;
    • Housecall Pro: delete job line item;
    • ETA: cancel, reject and decline.

Notes:

  • NinjaOne tickets are read-only. NinjaOne refuses ticket writes from client-credentials apps (405). They would need the authorization-code flow.
  • Threads uses a pasted 60-day token. The engine's bearer renewal covers Facebook and Instagram only, so the instructions explain how to exchange and refresh the token. Automatic renewal would be an auth change and needs an issue first.
  • Registries:
    • KRS masks people's names in the open API; the instructions tell the model to say so.
    • PRH notice searches need a name, Business ID or town besides a date.
    • Brreg key figures cover three years; older years point to the PDF copies.
    • Licences and attribution (NLOD 2.0, CC BY 4.0, BOE reuse conditions) are in each adapter's instructions.
  • Tookan reports errors inside HTTP 200 bodies. Error rules map body status 100/101/201/404 to failed calls, and login tokens and password hashes are stripped from answers.
  • Logos. Threads and Housecall Pro use their real marks. The others are clean monograms or wordmarks.

Tests

Commands run in the repository root unless noted:

  • node scripts/regenerate-catalog.mjs: 746 adapters across 21 regions.
  • node scripts/adapter-count.mjs --check: OK, 730 adapters, 42 keyless, 13189 tools.
  • node scripts/validate-adapters.mjs --warn: 746 passed, 0 failed. No warnings on the new adapters; the 1435 warnings are on existing ones.
  • node --test scripts/validate-adapters.test.mjs: 32 passed.
  • In packages/backend:
    • npx tsc --noEmit -p tsconfig.json: clean.
    • npx eslint on the changed specs: clean.
    • npx jest on the 15 new specs plus catalog and env-var-meta: 20 suites, 16016 passed, 19 live tests skipped.
    • npx jest src/adapters/[a-z]*.spec.ts src/connectors/catalog src/ee/support/support-catalog src/mcp-server/directory: 28 suites, 16482 passed.
  • Live checks:
    • The registry specs were run once with RUN_<SLUG>_LIVE=1: 52 passed.
    • The other adapters' wrong-key checks were run against the real APIs.
    • Read tools of cin7-omni (13 ok, 1 module not permitted for that key), bol-com (6 ok) and tookan (4 ok) were exercised read-only with scripts/ops/verify-adapter-with-connector.mjs.

Profile, posts, replies and conversations, mentions, post and account
insights, keyword search, public profile lookup and publishing through
the Threads API, with a long-lived user token. Deleting installs
switched off.
The validator and the catalog codegen scan packages/backend/src/adapters/eg,
and the connector store shows its name and flag.
Organizations, devices, alerts, activities, fleet queries, policies,
users, ticket boards and tickets through the NinjaOne API v2 with a
client-credentials app on the regional host. Reboot and OS patch
apply install switched off.
Customers, jobs, line items, appointments, estimates, invoices, leads,
employees, schedule windows and the price book through the Housecall
Pro API (MAX plan API key). Deleting a job line item installs switched
off; no payment tools.
Document search, details, raw and PDF, submissions, document types,
document packages, notifications and item codes through the ETA
e-Invoicing API with an ERP client. Cancel, reject and the declines
install switched off; submission is left out because it needs a
signature from a token or HSM.
Scan the five new region directories in the validator and the catalog
codegen, and give them a label and flag in the connector store.
Keyless, read-only adapters for public company registers and gazettes:
brreg (Norway), prh-ytj (Finland), ares (Czechia), krs (Poland),
anaf (Romania), shab (Swiss Official Gazette of Commerce) and borme
(Spanish BORME and BOE). Each has a live spec with static assertions;
the live part runs keyless behind RUN_<SLUG>_LIVE=1.
@helpcodeai
helpcodeai requested a review from D3nisty as a code owner November 9, 2026 15:57
@helpcodeai
helpcodeai enabled auto-merge (squash) November 9, 2026 15:57
@helpcodeai
helpcodeai merged commit b8062cb into main Nov 9, 2026
14 checks passed
@helpcodeai
helpcodeai deleted the feat/catalog-block-29 branch November 9, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants