💡 Purpose
The purpose of this initiative is to enable independent releases of Agent Desk from CX Core releases.
Agent Desk is designed as a decoupled Angular-based frontend where all business logic resides in backend services. The UI acts as a presentation layer, consuming:
-
API-based interactions (request/response)
-
Event-driven interactions (socket-based real-time updates)
👷 Architecture Overview
Agent Desk follows a decoupled, API and event-driven frontend architecture:
-
Frontend (Agent Desk - Angular)
-
Responsible for UI rendering and user interaction
-
Contains minimal business logic
-
Consumes backend services via APIs and socket events
-
-
Backend (CX Core / Services)
-
Owns all business logic and workflows
-
Exposes functionality via APIs
-
Publishes real-time updates via socket events
-
This architecture allows UI enhancements and experience improvements to be released independently, as long as there are no changes to backend contracts or event structures.
This approach enables:
|
Benefit |
Details |
|---|---|
|
Faster delivery |
Of UI improvements |
|
Reduced dependency |
On backend release cycles |
|
Greater flexibility |
In deploying user experience enhancements |
|
Improved responsiveness |
To user feedback |
clipboard Release Independence Criteria
Agent Desk can be released independently when changes are limited to:
✨ UI-Only Changes (Safe for Independent Release)
-
Layout, styling, and UX improvements
-
Component-level UI enhancements
-
Client-side validations (non-business critical)
-
Performance optimizations in UI
-
Bug fixes not affecting API/event contracts
UI changes that do not affect backend APIs or event contracts can release independently.
⛓️ Agent Desk Dependency on CX Core
Though Agent Desk targets independent release, some CX Core changes require synchronized releases.
Agent Desk must release with CX Core in these cases:
|
Dependency Type |
Description |
|---|---|
|
Changes in Socket Events
|
Modifications, additions, or removals affecting Agent Desk data consumption or real-time behavior which includes socket events |
|
API Changes
|
Updates to APIs (request/response structure, endpoints, authentication) used by Agent Desk, including deprecation or replacement
|
|
New Features Requiring UI Support |
Backend capabilities needing corresponding UI implementation |
|
Data Contract or Schema Changes
|
Changes in payload structure or data models exchanged between CX Core and Agent Desk that includes CIM events/activities |
|
Authorization / Security Changes |
Updates in authentication flows, roles, or permissions affecting UI behavior
|
In these cases, Agent Desk and CX Core releases must align to ensure compatibility and prevent runtime issues.
🏷️ Agent Desk Release Semantics
Agent Desk follows Semantic Versioning (SemVer):
Version Format: MAJOR.MINOR.PATCH (e.g., 5.3.1)
🚀 Major Releases (N.0.0)
A major release introduces breaking changes that are not backward compatible.
Characteristics:
-
Changes requiring updates in dependent systems
-
Incompatibility with previous versions
-
Mandatory upgrade for continued support
Examples:
-
API contract changes (endpoint modification/removal)
-
Changes in event (socket/CIM) structures or semantics
-
Significant architectural changes
-
Removal of deprecated features
Example:
Upgrading from 4.0.0 → 5.0.0 introduces new capabilities but breaks compatibility with older versions.
📦 Minor Releases (N.X.0)
Minor releases add new features or enhancements while maintaining backward compatibility.
Characteristics:
-
Non-breaking additions
-
Optional upgrades
-
Compatible with existing integrations
Examples:
-
New UI components or screens
-
Additional filters, views, or configurations
-
Enhancements to existing features
Note:
Users must be on the corresponding major version (e.g., 5.x.x for 5.3.0).
wrench Patch Releases (N.X.X)
Patch releases focus on stability improvements and fixes.
Characteristics:
-
Fully backward compatible
-
Non-disruptive
-
Safe to upgrade or downgrade
Examples:
-
Bug fixes
-
UI improvements (layout, styling, usability tweaks)
-
Performance optimizations
-
Security patches
Example:
A bug in 5.3.0 is fixed in 5.3.1 without impacting existing functionality.
1️⃣ The Tagging Strategy: Independent vs. Coupled
↔️ When Releasing Independently
The Agent Desk should have its own version lifecycle. If Core is at 5.1.0, the Agent Desk does not need to stay at 5.1.0. It should start its own sequence (e.g., 2.4.0).
-
Small Fixes: Increment the patch (e.g.,
2.4.1). -
New Features: Increment the minor (e.g.,
2.5.0). -
Breaking UI Changes: Increment the major (e.g.,
3.0.0).
🔗 When Releasing Necessarily with Core
If a Core change (e.g., a new API endpoint) is required for the Agent Desk to function, we
still use independent version numbers, but tag the release metadata or use a manifest file to lock the dependency.
-
Strategy: Agent Desk
2.5.0specifies that itsmin_core_versionis5.1.0.
🗂️ The "Base Release" Strategy
When the Agent Desk releases independently but must work with any Core version within a specific range (e.g., Core 5.x.x), you use Range-Based Versioning.
-
Tag:
Agent-Desk v2.5.0 (Compatible with Core ^5.1.0)
📈 Graphical Representation of Version Lineage
➡ Independent Release Flow
In this scenario, the Agent Desk iterates rapidly on UI/UX without waiting for Core.
|
Release Event |
Core Version |
Agent Desk Version |
Dependency Note |
|
Initial Launch |
|
|
1:1 Match |
|
UI Bug Fix |
|
|
No Core change needed |
|
New UI Dashboard |
|
|
Independent release |
🔃 Coupled/Compatible Release Flow
In this scenario, a Core API change forces an Agent Desk update.
-
CX release (CX
|
Release Event |
Core Version |
Agent Desk Version |
Dependency Note |
|
New API Endpoint |
|
|
Required together |
|
Another UI Tweak |
|
|
Independent again |
3️⃣ Automated Tracking (The "Metadata" Method)
To ensure the graphical views stay accurate without manual work, you should track the compatibility in your code metadata:
-
In the Agent Desk Repository: Add a
manifest.jsonfile.JSON{ "version": "2.1.4", "compatible_core_range": "^5.2.0" } -
The "Handshake" Check: When the Agent Desk starts up, it can call a
/versionendpoint on the Core server. If the versions aren't compatible according to the logic, the UI can display a warning: "Warning: You are using Agent Desk v2.1 with an unsupported Core version (v4.0)."
memo Additional Guidelines (Recommended Enhancements)
◀️ Backward Compatibility Principles
-
Maintain backward compatibility in minor and patch releases
-
Clearly document breaking changes in major releases
📃 Release Documentation
Each release should include:
-
Release notes
-
Impact analysis (breaking vs non-breaking)
-
Migration steps (for major releases)
⚙️ Version Alignment Strategy
-
Agent Desk can lead CX Core for UI-only changes
-
Must align when API or event contract changes occur
🎌 Feature Flagging (Recommended)
-
Enable independent rollout of UI features
-
Decouple feature availability from backend readiness
-
Support gradual rollout and rollback
⏪ Rollback Strategy
-
Patch and minor releases should support quick rollback
-
Major releases should include fallback strategies
🔖 Summary
This initiative enables independent, faster, and more flexible Agent Desk releases through a decoupled, API and event-driven architecture.
It defines when alignment with CX Core is required and adopts semantic versioning and structured release practices to ensure both stability and agility in development and deployment.
Scenarios
|
Scenario |
Agent Desk version |
CX-Core version |
|
CX 5.2.0 released |
|
|
|
UI revamped (e.g., Dashboard, new language support added, some new device support, browser supprot, etc) |
|
|
|
Non-breaking improvements in CX-Core (logging, AMQ->Artemis, or similar changes not changing APis consumed by AgentDesk) |
|
|
|
Breaking changes in CX-Core (Changes in Security API used by AgentDesk, SocketEvent changes, new feature requires UI improvements in AgentDesk) |
|
|
|
few more UI enhancements/fixes in UI |
|
|
|
few non-breaking enhancements/fixes in CX-Core |
|
|
-
CX5.0.3 released (AgentDesk included)
-
Agent Desk (5.1.0) released
-
Agent Desk (5.2.0) released
-
Agent Desk (6.0.0) released
-
-
CX5.2.0 (AgentDesk (6.0.0) included)
-
Identify how and where to maintain compatible versions
-
via helm charts?
-
any other possible solutions?
-