Forward query string to APIService so org-scoped routes like domains list resolve correctly
Use string org IDs for security org API and theme WS
getOrgId() coerced orgID with Number(), corrupting int64 Cockroach IDs in /api/security/org/{id}/* URLs (404/failed saves). Add getOrgIdString(), use it in Labe...
Set EmbRecordState.isActive on wizard create-org so orgs.is_active is not null
Return JSON-safe create-org body instead of serializing Organization entity
Parse create-org with plain ObjectMapper and return Jackson message on 400
Deserialize create-org body into CreateOrganizationPayload to avoid entity JsonIdentityInfo failure
Parse create-org JSON by stripping wizard domain field before Organization mapping
Parse create-org JSON without @RequestBody to avoid 415
Spring returns Unsupported Media Type when Content-Type is missing or not accepted for @RequestBody. Read bytes and use ObjectMapper instead so APIService/Next ...
Normalize JSON Content-Type and surface Spring error fields
Force a single application/json header for JSON proxy bodies; org route always sets it. Map Problem Details title/detail in createOrganization errors.
Set application/json for JSON bodies forwarded to SecurityService
RestTemplate to upstream could leave Content-Type incompatible with Spring @RequestBody, causing 415. After reading the raw body, force APPLICATION_JSON when th...
Skip compliance step when policies are fixed; resync branch type from API
Ensure JSON Content-Type when proxying to SecurityService
Organization creation returned 415 Unsupported Media Type because upstream Spring expects application/json for @RequestBody. Node fetch could omit or default Co...
Compare member IDs as strings for self-check and redirect
User-info API returns memberID as string to preserve int64 precision. isSelf used Number() and strict equality with mixed types, so viewing your own /settings/m...
Repair TicketChat real-time updates after load race
Defer STOMP subscription until initial message fetch finishes so setMessages from the API cannot wipe messages delivered during load. Clear messages when sessio...
Upsert role rights in place to avoid Hibernate insert-before-delete duplicate key
Dedupe rights, no-op security models when locked, validate title length
Hide deprecated play (and app/media) with case-insensitive matching
- Lowercase statusMap keys and lookups so verification aligns with API casing - Treat hidden infra labels case-insensitively - Strip deprecated labels from effe...
Read session rights as list or legacy CSV for member endpoints
KSessionService and SecurityRoleController store rights as List<String> of RoleRightType names. MemberSecurityController cast to String and split on comma, caus...
Verify-dns checks every KnownAliases label; skip deprecated app/media in optional
Security role save for locked roles and clearer API errors
- When isAllowEditSecurity is false, omit rights and securityModelIds from the PUT body so SecurityService accepts metadata-only updates (session timeout, d...
Proxy PATCH membership-type to SecurityService
The member profile UI called **************** but no App Router handler existed, so Next returned HTML 404 and the client showed Unknown error after failed JSON...
Persist RoleRightType by stable getId() instead of ordinal
Hibernate @Enumerated(EnumType.ORDINAL) writes/reads the declaration-index of the enum. When a RoleRightType value is removed (e.g. MANAGE_USERS, id=19), every ...
Avoid transaction-poisoning DDL and harden multi-pod races
The previous self-heal put DDL inside a @Transactional syncAll(). When an ALTER TABLE ADD CONSTRAINT fired on an existing constraint (normal case after first bo...
Drop stale CHECK constraints on default-role-rights enum columns
Hibernate auto-generates CHECK (column IN ('VAL1', 'VAL2', ...)) constraints on CREATE TABLE for @Enumerated(EnumType.STRING) columns, freezing the enum's value...
Add missing unique constraints for role-right upserts
**************** + syncSecurityModelRoleRights use `ON CONFLICT (role_id, right_type) DO NOTHING` and `ON CONFLICT (default_role_id, right_type) DO NOTHING`, wh...
Add unique constraint on (role_id, right_type) in OrgRoleRight
Required for ON CONFLICT DO NOTHING in **************** Without this constraint, the sync query fails with "no unique or exclusion constraint matching the ON CO...
Remove getType() calls from OrganizationController after OrganizationType removal
Stop overwriting member avatar with logged-in user's avatar on profile view
fetchAvatars fetched /api/security/avatars (no memberID scope — always returns the logged-in user's avatars) and called setActiveAvatar, clobbering the correct ...
Add missing sync-rights proxy route
POST /api/security/roles/sync-rights was missing a Next.js proxy handler, causing the Sync Rights button in Security Roles settings to always fail.
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.