Guard the provider catalog's interpolated i18n keys

Testkamo-internal
Shipped
September 4, 2026 at 5:19 AM UTC
Author
Kamo
Commit
ecb69b2

check-i18n-keys.mjs reads literal t('...') calls, and the catalog builds its keys by interpolation — **************** and oauthClients.field.${labelKey} — so nothing was checking them. Add a provider or a field, forget the English, and a platform operator reads a raw key path off the card. Both sides of bring-your-own read this one catalog, so a missing field label is also a credential an organization can never be asked for. Also asserts the invariants the two screens rely on: unique provider codes, every provider carrying a client id, and no two fields writing the same target (which would silently overwrite each other on save). Verified non-vacuous by injecting a bad nameKey and a bad labelKey — both were caught and named.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing