Release V2
Overview
This release note contains all the feature additions, optimizations as well as changes that have been incorporated into the UCI ecosystem since the V1 version of UCI.
New Features
Extend /health endpoints to make them async and detailed: Health endpoints now provide a more detailed result including all the dependent services.
Making query URL paginated: The notification process now fans out in chunks instead of one at a time. This enables the UCI system to perform better and faster. A bigger page size means faster performance but a more CPU and RAM intensive process.
In bot details API, add icon image URL parameter: Conversation bots now support adding a display icon during the creation of bots.
Media upload API: Admin panel now supports uploading media files while creating a bot directly from the admin panel.
Add headers to query url being sent with broadcast conversation logic: Segment URL queries now pass an auth token to retrieve users.
Add a checkbox to create broadcast bot: Admin panel now supports a checkbox to create a broadcast bot along with a conversation bot.
Selected option highlighted: Web-Channel now highlights the previous options selected by users.
[C4GT] Add Audio support to web channel: Web-Channel now supports audio messages.
Add Bot Icon and Media caption to the chatbot: Web-Channel now supports adding a caption to media.
Bulk Data Insertion in Fusion Auth: FusionAuth service now supports bulk insertion.
Create a bot with status as disabled by default: Disabled bots now return
ServiceUnavailableException
when triggered.Return bot list in sorted order by name in allContextual endpoint:
allContextual
API now returns bots in sorted order.Return purpose and description in botDetails API: Update API now allows updation of fields such as
purpose
,description
,endDate
.Cassandra Server Configuration Pick from Docker-Compose: Docker Compose has been updated for Cassandra so that it picks up env from docker-compose file.
Add New Column in Cassandra for Notification Failure Reason: Cassandra
xmessage
table now contains additional column to store notification failure.Dockerize the web-channel to onboard to the one script deployment plan: UCI Web-Channel has now been dockerized.
Unify specs across UCI APIs:
/admin/search/internal
endpoint has been removed and only/admin/search
is supported.Add order by parameter in search API: Search API now also supports sorting by field.
Integrate Edit Bot in Admin Panel: Admin Dashboard now supports editing a bot.
Add loader to conversation-NL App: Web Channel now shows a loader until bot is loaded.
Handling of expired bots: Expired bots now show an expired message in web channel.
Broadcast Direct Message APIs: Direct message APIs can now send messages in broadcast mode.
Add endpoint to get bot report data: Bot Service now supports endpoint to get bot report data for notification.
Setup monitoring for bot health: Endpoint added for bot health.
Provide endpoints for deletion of bots: UCI-API now supports an endpoint for the deletion of disabled bots.
Bug Fixes
Some tests are failing on stable branch (outbound): Removed obsolete tests from outbound service.
Some test cases failing on stable branch (Broadcast transformer): Removed obsolete tests from Broadcast service.
Some tests are failing in stable branch (utils): Fixed failing tests in the utils package.
Some test cases failing on stable branch (inbound): Fixed failing tests in inbound service.
Some tests are failing on stable branch (orchestrator): Removed obsolete tests from Orchestrator service.
Some tests are failing on stable branch (message-rosa): Fixed failing tests on message-rosa package.
Some tests are failing on stable branch (transformer): Fixed failing tests on transformer
Fix {FileCDN}/getSignedUrl endpoints to accept fileName: FileCDN endpoints have been fixed to accept filename as a query parameter instead of static querying.
[Bug] - Getting Exception Related to Unmarshaller: Marshaller error while converting XMessages parallelly has been resolved.
[Bug] - Getting Exception Related to Kafka: Null pointer exception on Kafka has been resolved.
[Bug] Duplication of Kafka topics from Orchestrator: Duplicate message consumption from kafka in orchestrator service has been fixed.
Prevent same bot same starting message to be created: UCI-API now prevents bots with same name or starting message as that of an existing bot to be created.
Fix src/modules/service/service.service.spec.ts test: Service test cases fixed.
Increase Minio Signed URL Expiry Time for NL-APP: Minio urls for media do not expire now.
[Fix Test] src/modules/conversation-logic/conversation-logic.controller.spec.ts: Conversation Logic controller tests have been fixed.
Fix src/app.controller.spec.ts test: App controller tests have been fixed.
Invalidate cache on transaction layer on bot update: Upading a bot now invalidates cache on transaction layer.
Performance Improvements/Enhancements
Remove manual instance creation of NetcoreWhatsappAdapter: Removes manual instance creation of NetcoreWhatsappAdapter and uses dependency injection instead.
Add retry to FusionAuth in updateUser: Added retry mechanism to FusionAuth to prevent the abrupt failing of requests.
Notification Pipeline: The notification pipeline has been revamped to process more than 2L notifications without crashing services.
[Bug] - Cassandra Related Issues in Inbound: Cassandra load issue was resolved by optimizing the queries.
Add Cache in allContextual API: Adds caching to allContextual API to enhance response time.
Add logging to UCI-APIS: Service level logs have been added to all the endpoints along with the total response time of functions.
Reduce JVM memory usage: Dockerfile of java services have been modified to cap total memory usage and to use Semeru JVM instead of openjdk-jvm.
Improve error logging in UCI-APIs: UCI-API service now returns proper error messages on upload failure.
Cache cassandra result in conversation history: User conversation history from Cassandra is now being cached to improve performance.
Remove old implementation of getLatestXMessage:
getLatestXMessage
query has been optimized to perform better.vault dependency removal: Removed mittwald vault package dependency due to errors.
[Bug] - Getting Error in Aggregate Postgres: Aggregate db postgres connection pool has been added to prevent
too many clients
error.Create a separate Kafka topic for notifications in each service: Notifications and Conversations now use separate topics for Kafka.
Fix conversation flow in the setup by install.py: UCI docker deploy now provides a single script setup which automatically configures a test bot and other dependencies.
Dependencies
NL backend: NL backend systems that are responsible for managing users.
Documentation
Document changes done to Outbound: Updated Firebase adapter docs to include a table explaining all the required fields in the request.
Modify Admin Console Manual: The UCI documentation now also includes a manual for the admin panel.
Added a table explaining all the different fields that are used while creating a new conversation logic: Documentation has been updated to explain all the relevant query fields in conversation creation API.
Create flow diagram of message flow in UCI on Draw.io: Documentation now consists of Draw.io diagrams of different flows.
[Docs] Update documentation of bot history api to match v2: Documentation for bot history api has been updated for v2.
[Docs] Update documentation of bot setup api to match v2: Bot setup api has been updated in documentation to match v2.
[Docs] Update Setting up first conversation according to v2: Documentation updated for setting up first conversation.
[Doc] - Documentation for Database Schema: Documentation added for database schema.
Update UCI Setup Docs: Documentation has been updated with the latest setup guide which provides a more streamlined and hassle free installation process.
Breaking Changes
Old Admin Console is not compatible with V2 version of UCI.
V2 version of UCI depends on NL backend and will not work without it.
Gupshup provider has been removed from the pipeline.
Contributors
geeky-abhishek: Abhishek Kumar Pal
choxx: Abhishek Mishra
RyanWalker277: Anvansh Singh
devAyushDubey: Ayush Dubey
ChakshuGautam: Chakshu Gautam
chinmoy12c: Chinmoy Chakraborty
karntrehan: Karan Trehan
pankajjangid05: Pankaj Jangid
tushar5526: Tushar Gupta
1010varun: Varun Agarwal
yuvrajsab: Yuvraj Sablania
Feedback
We welcome your feedback! If you encounter any issues or have suggestions for improvements, please submit an issue on our issue tracker.
Thank you for using UCI!
Last updated