BcsService
Component | Version |
---|---|
BcsService.exe | 3.4.321.0 |
Dependencies
Component | Min. Version |
---|---|
Audio32.dll | 2.12.221.0 (as minimum, part of release 2019.2) |
DigaSQL | 3.14.3466.0 |
EndPoints.dll | 1.0.8.0 |
BcsHelpers.dll | 1.0.22.0 |
IBCS.dll | 3.0.124.0 |
RtfQuillDeltaConverter.dll | 1.0.56.0 |
.NET | 4.6 |
Known issues
- If the service client crashed locked BCS nodes related to the client can't be unlocked via BCS Service and must be force unlocked (e.g. via DigAIRange)
- If client locked BCS node and then unexpected terminated (e.g. killed in Task Manager) locked node will be unlocked only after client inactivity connection timeout is exceeded
- Full name in DigaSystem must be always filled and be unique by every user. Otherwise isn't possible to set properly speaker & speaking speed in broadcast list
New features
API
- Support WS and WSS connections to BCS
- OIDC login is approved for WebSocket authentication
- OIDC login is approved for HTTP authentication
- Unified PostDatabaseObject request for import any database objects
- Support multiple database objects in PostDatabaseObject request
- Support multiple database objects via parameter "Reference" in PostDatabaseObject request
- Support optional extra BCS metadata for imported database objects in PostDatabaseObject request
- Support changed RTF in BCS notifications
- Enable modern lock notification mechanism based on multilock info. Warning!!! Notification format is changed. See documentation for details
- Remove obsolete NodeId parameter from lock / unlock notifications
- Send lock / unlock notifications
- Support insert & update RTF in PostNode request
- Support insert & update RTF in PutNode request
- Support LockWithRtf request
- Optional flag to not change already specified speakers for PutSpeaker request
- Set default value for the parameter strictTrackNumbers in PutSpeaker request as false
- CopyShow provide option to copy specified tracks only
- Force to use for REST DeleteLock request access token only
- Force to use for REST DeleteLogin request access token only
- Force to use for REST DeleteNodeNotification request access token only
- FileHandlingProgress and FileHandlingResult requests requires authentication now
- Show parameter name in error message if parameter value is invalid
- More detailed error message about requested RTF files for nodes located in BCS trash
- Others
- Initialize BCS day at once before 1-st CRUD request
- GetPrograms request is more performant through using cached BCS programs information
- Performance optimization for large number of client connections
- Use new RtfQullDelta converter based on SautinSoft library
- Use new RtfQuillDeltaConverter to remove footer from RTF
- Check IBCS.dll version at start
- Use the BCSHelpers.dll for replication RTF files imported from database
- Exclude passwords from debugging log
Bug fixes
- Determine RTF referenced files in any XML tags with file references
- Remove inactive WebSocket connections
- Set properly default flag for removing all specified speakers in PutSpeaker request
- Properly read RTF files locked for writing from another client
- Properly handle client connection identifiers
- Return empty string instead error for non-existed RTF files for compatibility with DigAIRange
- Escaped JSON string returned from WebSocket request GetRtfFile
- DpeAuthorizationToken request return error for connections with OpenID authentication
- Insert imported database objects with properly sequence
- Properly handle CheckIsTargetShowEmpty flag in PutCopyShow request
- Copy media files referenced in source show in PutCopyShow request if AnalyzeMediaFiles flag is used
- Properly copy shows with AnalyzeMediaFiles parameter as false
- Properly check is target show empty
- Properly handle short time file changes
- Properly lock RTF file if lock mode isn't specified in PutRtfFile request
- Properly lock non-existed RTF file in LockWithRtfFile request
- Properly remove file locks by WebSocket connection closing
- Send lock / unlock notifications only at once
- Send lock / Unlock notifications only to related clients connected under the same BCS account
- Send lock notifications in JSON format without unnecessary wrapped fields
- No more error message if referenced RTF file from BCS notification doesn't exist
- If RTF file doesn't exist wait until it copied into BCS media directory before locking
- Return properly full id to the moved node in PutMoveNode request
- No more error by unlocking not locked node
- Wrong formatted RTF by XML output format in GetRtfFile request
- Properly change RTF content if full XML is specified in PutNode & PostNode requests
- Remove backup files after restore if already existed RTF file can't be changed
- Properly handle PutNode & PostNode requests with some specififc formatted RtfQuillDelta RTF content
- Properly combine track from source & destination shows
- Unlock all locked files after closing connection from client
- Properly handle sending close notification to already non-existed clients
- Unlock all locked nodes after closing connection from client
- Properly response to PostDatabaseObject request via websocket in JSON format with different database objects types
- Properly recalculate text duration in PutNode request if only partial XML is specifified for update
- Always include connection identifier initiated locking event into event message
- No more overloading by checking inactive file handling tasks
- Race condition by accessing to file handling task