chore(connect): provider-host ratchet in check:guards, drop the dead Arcim gateway client (#2178)

* chore(connect): provider-host ratchet in check:guards, drop the dead Arcim gateway client

Two boundary chores from the Connect plan. (1) A per-file ratchet in
scripts/checks/no-new-antipatterns.mjs over files under lib/, app/ and
extensions/ that name a provider API host (Enable Banking, Skatteverket,
Qvalia, Fortnox, Visma, Briox, Bjorn Lunden, Bokio, Bolagsverket, TIC, Meta,
Gmail). The 22 files that do so today are grandfathered in the baseline; a
new one fails the guard with the connector routing as the remedy, and the set
may only shrink as upstreams move behind the connector. (2) The client for
the retired Arcim Sync gateway (extensions/general/arcim-migration/lib/
arcim-client.ts) is deleted with its test: provider-client.ts replaced it and
nothing else imported it. The --update rewrite also locks in the lower
naive-ore-round count (620 to 617) that main already reached.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMUUom4fUk6zi4xYZSSfat
Signed-off-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>

* chore(guards): provider-host ratchet is case-insensitive and skips colocated .test.tsx; document the own-credentials exception

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>

---------

Signed-off-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-09-02 20:57:37 +02:00
committed by GitHub
co-authored by Claude Fable 5.1 Jakob Wennberg
parent c0ecf2fa3b
commit 8c8996773f
5 changed files with 93 additions and 513 deletions
+8
View File
@@ -98,6 +98,14 @@ The boundary is strict and CI-enforced:
extensions enabled, so a direct import breaks the build.
- Extensions integrate through the event bus and documented extension APIs,
and are wired via a generated static registry (`npm run setup:extensions`).
- Provider integrations (banks, Skatteverket, Peppol, migration sources) are
moving behind the connector: a self-hosted instance with a connector key
and no credentials of its own for an upstream reaches that upstream through
the hosted `app/api/connect/*` side (an instance running on its own
registered credentials talks to the provider directly, see
`docs/SELF-HOSTING.md`), and the open ledger keeps the contract plus the
manual file paths. `npm run check:guards` ratchets the set of files that
name a provider API host directly; that set may only shrink.
Licensing follows the same boundary: the project is AGPL-3.0, with an
extension exception that allows third-party extensions using only the