Remove translate config from application.yml — belongs in k8s/configmap.yaml
Add async translation for KB articles, add locale-aware public article APIs
Add concurrency group to prevent duplicate workflow runs
When a push triggers a workflow and workflow_dispatch is also fired (or two pushes arrive in quick succession), both runs would execute simultaneously. Adding a...
Add unauthenticated public endpoints for KB articles
Add KbPublicArticleController with endpoints for the marketing site to fetch published articles where aiVisibleToPublic=true, without requiring OTK authenticati...
Defer NATS event publishing until after transaction commits to prevent RAG race condition
Events were firing inside @Transactional methods, causing RAGService to read stale data from CockroachDB before the commit. Also auto-defaults aiVisibleToMember...
Support AI visibility toggles in KB article create/update
Accept aiEnabled and visibility flags in create/update endpoints. Handle AI toggle changes by publishing delete events when AI is disabled, triggering re-indexi...
Add notes management with RAG integration
Move notes CRUD from SecurityService to KBService. Add note encryption, NATS event publishing for RAG pipeline, and AI processing toggle support. Notes with AI ...
Update KB media and version ID references from Long to UUID
Article IDs (KbArticle) remain Long. Version, media, pin, and review IDs now use UUID for improved CockroachDB write performance.
Add unpublish endpoint for KB articles
Add POST /articles/{guid}/unpublish that sets status back to DRAFT and publishes a kb.article.unpublished NATS event so RAGService can remove the article from t...
Return article guid/title in pending reviews response
The KbArticleReview entity has @JsonIgnore on article, so the pending reviews endpoint was returning reviews without article details (guid, title). Now uses eag...
Add error handling to createArticle endpoint
Wrap createArticle call in try-catch to return proper JSON error responses instead of Spring Boot's default HTML error page.
Add org-level resource management and article-media linking APIs
Rewrite KbMediaService/Controller for org-level media CRUD with paginated listing, search, metadata update, and soft delete. Add article-media link/unlink/sync ...
Correct hasRight to match flat rights array format and honor god mode
Session rights are stored as ["VIEW_DASHBOARD", ...] not [{name, setting}]. Also bypass right checks when GD (god mode) is true.
Accept parentGuid from frontend in article creation
Frontend sends parentGuid (string) not parentId (numeric). Resolve GUID to ID server-side via lookup.
Scaffold KBService - Knowledge Base article CRUD, versioning, review workflow, media upload, NATS events
Like what you see shipping?
Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.