Skip to content

Add 11 catalog adapters and fill gaps in 4 existing ones - #1304

Merged
helpcodeai merged 4 commits into
mainfrom
feat/catalog-gaps-block-20
Oct 27, 2026
Merged

helpcodeai merged 4 commits into
mainfrom
feat/catalog-gaps-block-20

Conversation

@helpcodeai

Copy link
Copy Markdown
Contributor

Summary

Adds 11 catalog adapters for public vendor APIs (e-commerce administration, spend management, call tracking, economic data, web search, crypto market data, marketplace analytics) and fills gaps in 4 existing adapters, so these services work from the catalog without a hand-made connector. Every tool is built from the vendor's public API documentation (docsUrl in each adapter). Writes that send, move money, delete or are hard to undo install switched off.

Changes

New adapters (560 listed, up from 549; 27 keyless)

Adapter Region Auth Tools (off at install)
shopware-6-admin de OAuth2 client credentials (integration key) 30 (4)
moss de OAuth2 client credentials 30 (1)
shoper intl OAuth2 client credentials (/webapi/rest/auth) 17 (1)
ringostat intl API key header 7 (1)
fred intl query key 21
brave-search intl API key header 12
coinglass intl API key header 24
deribit intl none (public methods) 16
zerion intl Basic (key as user name) 15
mirakl-connect intl OAuth2 client credentials 11 (3)
mpstats intl API key header 38
  • shopware-6-admin is the Admin API (/api), separate from the existing Store API adapter shopware-6: entity search with criteria, products and their properties, categories, CMS pages/blocks/slots, media upload from URL, sales channels, promotions and SEO URLs. language_id maps to the sw-language-id header. Generic create/update/delete and /_action/sync install switched off.
  • mirakl-connect is Mirakl's channel platform for sellers and differs from the existing mirakl (Marketplace seller API); the instructions say which one to use.
  • coinglass answers HTTP 200 for API errors; errorWhen turns those into auth, rate-limit or bad-request failures.

Extended adapters

  • weclapp (+5): reference record by id, notifications, external connections (list/get), active sales channels.
  • klardaten (+2): DATEVconnect diagnostics (domains, echo); select on law file parties.
  • daftra (+3): estimates list/get, create estimate. The old note that estimates answer 405 is removed: the list route answers with an API key.
  • ready2order (+2): tables and table areas.
  • mirakl-connect: 402 documented as a feature outside the account's plan.
  • weclapp.write-tools.spec.ts: header comment reworded.
  • Catalog regenerated; quoted counts updated in the READMEs, CITATION.cff, glama.json, package.json, server.json.

Cloud and self-hosted: adapters behave the same in both modes; none is selfHostOnly.

Type

  • Bug fix
  • New feature
  • Documentation
  • Refactoring
  • Performance improvement
  • Other (describe below)

Testing

  • Added/updated unit tests
  • Tested manually (describe steps below)
  • No tests needed (explain why)

Each new adapter has a *.live.spec.ts with static assertions for every tool mapping; live parts are gated behind RUN_<SLUG>_LIVE=1 and only read.

Read-only tools were exercised against real accounts (GET or read-only POST only, response shapes checked, no writes sent):

  • shopware-6-admin 11 ok (token via client credentials, version, searches, product and entity by id; one 403 on the language entity, an ACL of that integration)
  • fred 21/21, brave-search 2 (web, LLM context), deribit (keyless live spec 9/9)
  • coinglass 6, zerion 11, mirakl-connect 4 (conversations answer 402: not in that account's plan, now documented)
  • moss 10 (bank transaction search not checked: the token endpoint rate-limited repeated token requests from the check script; the engine caches tokens)
  • ringostat 3 (calls, SIP status), mpstats 2, shoper 7 reads (statuses, shippings, payments and parcels answered 403 for that API user's rights; the token flow itself was not exercised)
  • weclapp 4 new reads, klardaten 2 new reads, daftra estimates list, ready2order tables and table areas

Commands (repository root unless noted), after rebasing on main (6d4d875):

  • node scripts/validate-adapters.mjs --warn: exit 0, no new warnings on the added or changed adapters.
  • node scripts/regenerate-catalog.mjs: no diff.
  • node scripts/adapter-count.mjs --check: OK: every quoted count equals 560 adapters (27 keyless, 8671 tools).
  • packages/backend: npm run lint (exit 0; unrelated rewrites reverted), npx tsc --noEmit -p tsconfig.json (exit 0), npx jest src/adapters: 553 suites passed, 1 skipped; 18,605 tests passed, 1,600 skipped, 0 failed.

Checklist

  • My code follows the existing code style
  • I have tested my changes locally
  • I have updated documentation (if applicable)
  • All existing tests pass (npm test)
  • This PR has a descriptive title

Related Issues

None.

New: Shopware 6 Admin API, Moss, Shoper, Ringostat, FRED, Brave Search,
CoinGlass, Deribit, Zerion, Mirakl Connect and MPStats. Extended: weclapp,
klardaten, daftra, ready2order and the Mirakl Connect error notes. Catalog
regenerated and quoted counts updated (560 adapters, 27 keyless).
@helpcodeai
helpcodeai merged commit 20aa283 into main Oct 27, 2026
14 checks passed
@helpcodeai
helpcodeai deleted the feat/catalog-gaps-block-20 branch October 27, 2026 16:29
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants