Every vertical names its own child app

Featurekamo-shared-library
Shipped
August 24, 2026 at 10:09 PM UTC
Author
Kamo
Commit
3797e1e

requiredService becomes total now that each vertical has a child app under ServiceType.POS, which deletes the "null means POS alone is enough" special case and isGated() with it. Each vertical can now be switched on, licensed and PHI-classified independently — which is what lets a medical practice use commerce at all, since RETAIL stays blocked for a PHI tenant while the rest of commerce does not. HEALTHCARE(ServiceType.EHR) is what makes the EHR appear at **************** when the app is on, with no new gating code: assertCommerceTypeAllowed, getAllowedCommerceTypes, the allowed-types endpoint behind both market pickers, **************** and the market list filter all already resolve through getRequiredService(). NOT PUSHED until the KamoInitializer backfill has run. assertCommerceTypeAllowed reads getRequiredService() directly, so the moment SecurityService sees this every org with a retail or rental market needs a child OrgFeature row it does not have yet.

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