ObjectStackObjectStack

Profiles (removed)

The Profile concept was removed by ADR-0090 D2. Baseline access is now authored with the everyone audience anchor, package isDefault suggestions, and ordinary permission sets distributed via positions.

Profiles — removed (ADR-0090 D2)

ObjectStack no longer has a Profile concept. It was removed pre-launch (ADR-0090 D2) because it duplicated permission sets while adding a second mental model: admins had to learn "the ONE primary set" vs "add-on sets", every user needed a profile picked, and packaged profiles could not compose across packages without an owner.

Everything a profile did is expressed with the remaining vocabulary:

You wanted a profile for…Author it as…
A user's baseline permissionsA permission set bound to the everyone audience anchor (default grants for all authenticated users), or the configured baseline set (member_default) — both additive (ADR-0090 D5)
A package's default access postureisDefault: true on the package's permission set — an install-time suggestion to bind it to everyone; the admin confirms, nothing auto-binds
A job function's permissions ("Sales Rep")An ordinary permission set bound to a position (sales_rep) via sys_position_permission_set
Tab/app visibility defaultstabPermissions on any permission set (unchanged)

The former isProfile flag was deleted from PermissionSetSchema; the profile metadata kind and its plural alias were removed from the metadata registry. Restriction is done by not granting (the model is additive) — never by authoring "subtraction profiles".

Migrating v1 metadata. Replace isProfile: true with either isDefault: true (if the set was the app's default posture) or nothing (if it was a job-function set — bind it to a position instead). The D7 publish linter and the schema both reject the old shape.

See also

  • Permission Sets — the only capability container
  • Positions — distribution, built-ins, and the everyone/guest anchors
  • Decision record: ADR-0090 (D2, D5, D9) · Design reference: docs/design/permission-model.md

On this page