@happyvertical/smrt-users 0.52.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -113,6 +113,8 @@ Catalog sync is additive and fail-closed:
113
113
  - it updates `name`, `description`, and `category` by slug
114
114
  - it does not auto-grant permissions to roles
115
115
  - it does not delete stale permissions in v1
116
+ - it commits created/updated rows in small batched transactions; when calling
117
+ it inside your own transaction, pass that transaction's database handle
116
118
 
117
119
  ### App-defined permissions in `smrt.config.ts`
118
120
 
@@ -93,7 +93,11 @@ membership or tenant DENY to attenuate inherited role authority.
93
93
  seedSystemRoles({ seedPermissions: true }) maps owner/admin to all catalog
94
94
  permissions, member to ordinary-resource read/create, viewer to read. Member
95
95
  create excludes identity/RBAC/security resources and their joins/overrides.
96
- Seeding is additive/idempotent; removal requires prune: true.
96
+ Seeding is additive/idempotent; removal requires prune: true. Catalog sync
97
+ and grants plan from one read, then commit in `SEEDING_BATCH_SIZE` batches
98
+ (#3323): never one durable commit per row (an fsync each on local SQLite),
99
+ and never one catalog-wide transaction (`@happyvertical/sql` transaction
100
+ scopes cost superlinearly per statement). Pass a caller transaction's handle.
97
101
  - When a package adds built-in self-personalization permissions after role
98
102
  creation, explicitly call seedDefaultRolePersonalizationPermissions(). It
99
103
  upgrades owner/admin/member/viewer idempotently and never grants custom roles.