Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Rebuild for kamo-shared-library update (master model, default role templates, force-rule resolver)
Triggers a rebuild so this service pulls the new kamo-shared-library revision containing Organization.branchTypeID, Organization.masterModelID, ****************...
Add master model editor, role templates, and force-rule gating
Surfaces the new branch-type security model in the UI: - branch-types tab gains an "Edit Master Model" button (hidden when the org has a branchTypeID assigne...
Master-model + applied-model endpoints and template-aware org seeding
Adds the controllers that surface the new branch-type security flow: - /api/security/master-model (GET/PUT) manages the current org's master model; only writ...
Add master model, default role templates, and applied-model resolver
Introduces the data layer for the new branch-type security model flow: - Organization gains nullable branchTypeID and masterModelID columns. - New RoleRightTem...
Add branch type chip-input field to security model editor
- BranchTypeChipField with colored dot toggle, edit-on-click label, and X delete - BranchTypeEditDialog for name/description editing - Autocomplete dropdown pul...
Send null instead of empty string for contentJson/contentPlainText on kb article create
Empty string is invalid for the JSONB column type, causing a DB error when creating an article with no content.
Expand ChildOrgSecurityModelDTO with full fields and branchTypes
Update BranchSetupManager subtitle to reference dynamic branch type label
Lock user-level fields to self-only, gate member-level edits to self or MANAGE_MEMBER_SECURITY
Replace MANAGE_USERS gate with MANAGE_MEMBER_SECURITY in member settings redirect
Rename Branch Setup tab to dynamic {branchLabel} Types and update URL to branch-types
Reset Capcha *** after every failed login attempt
Users must re-verify they are human after each incorrect password. Calls widget.reset() and clears CapchaVerified/payload state on both credential failures and ...
Properly clean up Capcha event listeners on step transition
The removeEventListener calls were inside the setTimeout callback's return value, which JavaScript ignores. This caused handlers to accumulate on every user→pas...
UPSERT SYSTEM email template rows on every run
Previously the seed runner only inserted rows that didn't exist, so canonical HTML changes never propagated to the DB. Now existing SYSTEM rows have their bodyH...
Preview uses same auto-vars as sendToUser (org logo + name)
The preview endpoint now injects logoUrl, logoSimpleUrl, and orgName from the org's domain before applying sample content variables, matching the exact variable...
Use {{logoUrl}} placeholders so sent emails match preview
serializeFullEmailHtml now stores **************** placeholders in bodyHtml instead of resolved local paths. EmailTemplateService already injects absolute logo ...
Auto-inject logoUrl, logoSimpleUrl, and orgName variables at send time
EmailTemplateService now merges base variables (logoUrl, logoSimpleUrl, orgName) derived from the org's primary domain before rendering, so all transactional te...
Rewrite all canonical templates with full branded design
All 5 templates now use the consistent outer table structure (600px, rounded card, gray header/footer) matching the block editor's serializeFullEmailHtml output...
Add org-scoping, password length validation, and code quality improvements to PasswordChangeController
Add permission gates for user-level fields and password change section in MyAccountTab
Unify preview and editor into a single coherent system
- Extract system template content via DOMParser targeting the content <td> cell, preventing double-wrapping when EmailFrame re-serializes the blocks - Replace...
Add access gate and MANAGE_MEMBER_SECURITY tab guard to member settings page
Lock form and auto-proceed after Capcha when submitting early
If the user submits before the Capcha widget is verified, the form is now disabled and the widget is triggered programmatically. Once verification completes the...
Add @Transactional to DataLoader.run to fix LazyInitializationException on startup
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.