A security model says where each member type lands on "/"

Featurekamo-shared-library
Shipped
August 28, 2026 at 7:51 PM UTC
Author
Kamo
Commit
0352b3e

Three columns on ChildOrgSecurityModel — DEFAULT_MEMBER_HOME_SCREEN, **************** DEFAULT_ORG_OWNER_HOME_SCREEN. Each holds HOME_SCREEN_DEFAULT or REQUIRES_CHILD_ORG_OWNERSHIP; the second withholds the launchpad until that member owns an organization of their own. Three rather than one because the three member types are three different jobs: the same model routinely wants a plain member pushed into creating their own organization while its team members and owners go straight to work. The split mirrors APPLIES_TO_MEMBERS / _TEAM_MEMBERS / _OWNERS exactly. VARCHAR, not an ordinal enum — an ordinal relabels every stored row the day a third option is inserted anywhere but the end. setHomeScreenDefaults is a targeted setter in the shape of setAllowRootSubdomains rather than three more positional parameters on updateModel, which already takes fifteen. Null means "leave this one alone", so a caller that knows about one of the three cannot silently reset the others. normalizeHomeScreenDefault fails OPEN and is tested for it: only the exact string turns the requirement on, because the alternative takes a member's home screen away and a typo or a stale client must never be able to do that by accident.

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