Hello,
A new update for Trados GroupShare has just been released. The installation file for this new Cumulative Update 8 is available for download in all relevant customer accounts with Trados GroupShare 2020 SR1.
Please continue below for an overview of the new features and fixes.
New Project Settings XML REST API Endpoint
With this release it's possible to extract and amend viable settings of existing projects through the REST API. For this, Trados GroupShare provides a new API endpoint to export the current settings of a project as a Trados project settings file (.sdlproj). After changing the settings in the file, the file can be reimported, and the changed settings applied through the same endpoint.
(GET/PUT /api/projectserver/v2/projects/{projectId}/settingsxml) (CRQ-24649)
- POST: /api/projectserver/v2/projects/{projectId}/files/externalCheckOut
Calling this endpoint will check-out exclusively multiple files at once.
- POST: /api/projectserver/v2/projects/{projectId}/files/externalCheckIn
Calling this endpoint will check-in multiple files at once. This action is restricted to the user who previously checked out the files.
- POST: /api/projectserver/v2/projects/{projectId}/files/undoExternalCheckOut
Calling this endpoint will undo check-out multiple files at once. This action requies "Cancel Check Out of Other Users Project Files" permission. If the user who performs this action is the user who check-out the files, then translation is lost; if not, the translation if saved.
- POST: /api/projectserver/v2/projects/{projectId}/cancelPublishPackage
During project creation, this endpoint allows you to cancel the publish of a project package to Groupshare.
- GET: /api/management/v2/permissions/organizationtree?username=[encoded username]&hideImplicitLibs=[hideImplicitLibs]
Calling this endpoint will retrieve all the user permission from all organizations that this user belongs to.
API Changes for Third-Party Developers
With this release, we're introducing API documentation based on OpenAPI. These are available in machine-readable OpenAPI json format and can be used for automated endpoint discovery. You can find documents available for the entire RestAPI at: http(s)://<gsserver>/docs/<section>, where <gsserver> is the host server and <section> can be:
- supported-contains all supported endpoints. This is the recommended document for regular use.
- all- contains all endpoints, including deprecated.
- V4- only endpoints belonging to version 4
- V3- only endpoints belonging to version 3
- V2- only endpoints belonging to version 2
- V1- only endpoints belonging to version 1. These endpoints are deprecated for project server and management.
- http(s)://<gserver>/docs/projectserver/<section>
- http(s)://<gserver>/docs/management/<section>
- http(s)://<gserver>/docs/multiterm/<section>
- http(s)://<gserver>/docs/authentication/<section>
Where <gserver> is the host server and <section> can be all - contains all available endpoints, or supported - contains only non-deprecated endpoints.
We have marked the following REST API endpoints as deprecated and we plan to remove them in future releases:
HttpMethod | Obsolete routes | Alternative | Reason |
GET | /api/management/v2/backgroundtasks/{id} | /api/management/v2/backgroundtasks | - |
POST | /api/management/v2/organizationcals/{organizationid} | /api/management/v2/organizationcals | - |
PUT | /api/management/v2/organizationresources/{id} | /api/management/v2/organizationresources | - |
DELETE | /api/management/v2/organizations | /api/management/v2/organizations/{id} | - |
POST | /api/management/v2/organizations/{id} | /api/management/v2/organizations | - |
PUT | /api/management/v2/organizations/{id} | /api/management/v2/organizations | - |
DELETE | /api/management/v2/organizations/{organizationId}/membership | /api/management/v2/organizations/{id} | - |
POST | /api/management/v2/organizations/{organizationId}/membership | /api/management/v2/organizations | - |
PUT | /api/management/v2/organizations/{organizationId}/membership | /api/management/v2/organizations | - |
POST | /api/management/v2/roles/{id} | /api/management/v2/roles | - |
PUT | /api/management/v2/roles/{id} | /api/management/v2/roles | - |
DELETE | /api/management/v2/roles/{roleId}/membership | /api/management/v2/roles/membership | - |
GET | /api/management/v2/roles/{roleId}/membership | /api/management/v2/roles/{roleId}/users | - |
PUT | /api/management/v2/roles/{roleId}/membership | /api/management/v2/roles/membership | - |
PUT | /api/management/v2/roles/{roleId}/users | /api/management/v2/roles/membership | - |
DELETE | /api/management/v2/roles/membership/{id} | /api/management/v2/roles/membership | - |
GET | /api/management/v2/roles/membership/{id} | /api/management/v2/roles/{roleId}/users | - |
PUT | /api/management/v2/roles/membership/{id} | /api/management/v2/roles/membership | - |
POST | /api/management/v2/users/{id} | /api/management/v2/users | - |
PUT | /api/management/v2/users/{id} | /api/management/v2/users | - |
DELETE | /api/management/v2/users/{name} | /api/management/v2/users/{id} | - |
POST | /api/management/v2/users/{name} | /api/management/v2/users | - |
PUT | /api/management/v2/users/{name} | /api/management/v2/users | - |
POST | /api/management/v3/organizations/{id} | /api/management/v3/organizations | - |
PUT | /api/management/v3/organizations/{id} | /api/management/v3/organizations | - |
GET | /api/projectserver/v2/dashboard | - | - |
GET | /api/projectserver/v2/dashboard/projectsPerMonth | Reporting Service /api/reports/Dashboard/ProjectsPerMonth | - |
GET | /api/projectserver/v2/dashboard/topLanguagePairs | Reporting Service /api/reports/Dashboard/TopLanguagePairs | - |
GET | /api/projectserver/v2/dashboard/topLanguagePairs/{noOfTopLanguagePairs} | Reporting Service /api/reports/Dashboard/TopLanguagePairs | - |
GET | /api/projectserver/v2/dashboard/wordsPerMonth | Reporting Service /api/reports/Dashboard/WordsPerMonth | - |
GET | /api/projectserver/v2/dashboard/wordsPerOrganization | Reporting Service /api/reports/Dashboard/WordsPerOrganization | - |
GET | /api/projectserver/v2/projectPredefinedReports | Reporting Service /api/reports/Predefined/Projects | - |
POST | /api/projectserver/v2/projects/{id} | /api/projectserver/v2/projects | - |
DELETE | /api/projectserver/v2/projects/{projectId}/changestatus/{status} | /api/projectserver/v2/projects/{projectId}/detach[/{deleteProjectTMs}] | - |
PUT | /api/projectserver/v2/projects/{projectId}/detach | /api/projectserver/v2/projects/{projectId}/changestatus/{status} | - |
GET | /api/projectserver/v2/tasksReport | Reporting Service /api/reports/Predefined/Tasks | - |
GET | /api/projectserver/v2/tmLeverageReport | Reporting Service /api/reports/Predefined/TMLeverage | - |
DELETE | /management/api/1.0/Membership | /api/management/v2/roles/membership | - |
PUT | /management/api/1.0/Membership | /api/management/v2/roles/membership | - |
DELETE | /management/api/1.0/Membership/{id} | - | Accidental route |
PUT | /management/api/1.0/Membership/{id} | - | Accidental route |
DELETE | /management/api/1.0/Membership/{name} | - | Accidental route |
PUT | /management/api/1.0/Membership/{name} | - | Accidental route |
DELETE | /management/api/1.0/Organizations | /api/management/v2/organizations/{id} | - |
POST | /management/api/1.0/Organizations | /api/management/v2/organizations | - |
GET | /management/api/1.0/Organizations | /api/management/v2/organizations | - |
PUT | /management/api/1.0/Organizations | /api/management/v2/organizations | - |
DELETE | /management/api/1.0/Organizations/{id} | /api/management/v2/organizations/{id} | - |
GET | /management/api/1.0/Organizations/{id} | /api/management/v2/organizations/{id} | - |
POST | /management/api/1.0/Organizations/{id} | - | Accidental route |
PUT | /management/api/1.0/Organizations/{id} | - | Accidental route |
DELETE | /management/api/1.0/Organizations/{name} | - | Accidental route |
PUT | /management/api/1.0/Organizations/{name} | - | Accidental route |
GET | /management/api/1.0/Organizations/{name} | - | Accidental route |
POST | /management/api/1.0/Organizations/{name} | - | Accidental route |
GET | /management/api/1.0/Permissions | /api/management/v2/permissions | - |
GET | /management/api/1.0/Permissions/{id} | /api/management/v2/permissions | - |
GET | /management/api/1.0/Permissions/{name} | /api/management/v2/permissions | - |
DELETE | /management/api/1.0/Roles | /api/management/v2/roles/{id} | - |
GET | /management/api/1.0/Roles | /api/management/v2/roles | - |
POST | /management/api/1.0/Roles | /api/management/v2/roles | - |
PUT | /management/api/1.0/Roles | /api/management/v2/roles | - |
DELETE | /management/api/1.0/Roles/{id} | /api/management/v2/roles/{id} | - |
POST | /management/api/1.0/Roles/{id} | /api/management/v2/roles | - |
PUT | /management/api/1.0/Roles/{id} | /api/management/v2/roles | - |
GET | /management/api/1.0/Roles/{id} | /api/management/v2/roles/{id} | - |
DELETE | /management/api/1.0/Roles/{name} | /api/management/v2/roles/{id} | - |
GET | /management/api/1.0/Roles/{name} | /api/management/v2/roles | - |
POST | /management/api/1.0/Roles/{name} | /api/management/v2/roles | - |
PUT | /management/api/1.0/Roles/{name} | /api/management/v2/roles | - |
DELETE | /management/api/1.0/roles/{roleId}/membership | /api/management/v2/roles/membership | - |
PUT | /management/api/1.0/roles/{roleId}/membership | - | Accidental route |
DELETE | /management/api/1.0/roles/membership | /api/management/v2/roles/membership | - |
PUT | /management/api/1.0/roles/membership | /api/management/v2/roles/membership | - |
DELETE | /management/api/1.0/Users | /api/management/v2/users/{id} | - |
GET | /management/api/1.0/Users | /api/management/v2/users | - |
POST | /management/api/1.0/Users | /api/management/v2/users | - |
PUT | /management/api/1.0/Users | /api/management/v2/users | - |
DELETE | /management/api/1.0/Users/{id} | /api/management/v2/users/{id} | - |
GET | /management/api/1.0/Users/{id} | /api/management/v2/users/{id} | - |
POST | /management/api/1.0/Users/{id} | /api/management/v2/users | - |
PUT | /management/api/1.0/Users/{id} | /api/management/v2/users | - |
DELETE | /management/api/1.0/Users/{name} | /api/management/v2/users/{id} | - |
GET | /management/api/1.0/Users/{name} | /api/management/v2/users/{id} | - |
POST | /management/api/1.0/Users/{name} | /api/management/v2/users | - |
PUT | /management/api/1.0/Users/{name} | /api/management/v2/users | - |
DELETE | /multiterm/api/1.0/termbases/{termbaseId}/concepts | - | Accidental route |
GET | /multiterm/api/1.0/termbases/{termbaseId}/concepts | - | Accidental route |
POST | /multiterm/api/1.0/termbases/{termbaseId}/concepts/{conceptId} | - | Accidental route |
PUT | /multiterm/api/1.0/termbases/{termbaseId}/concepts/{conceptId} | - | Accidental route |
GET | /multiterm/api/1.0/termbases/{termbaseId}/multimedia | - | Accidental route |
POST | /multiterm/api/1.0/termbases/{termbaseId}/multimedia/{imageId} | - | Accidental route |
POST | /projectserver/api/1.0/CreateProject | /api/projectserver/v2/projects/{projectId}/create | - |
GET | /projectserver/api/1.0/FileDownload | /api/projectserver/v2/projects/{projectId}/download | - |
GET | /projectserver/api/1.0/FileStatus | /api/projectserver/v2/projects/{projectId}/files | - |
GET | /projectserver/api/1.0/phases/{projectId} | /api/projectserver/v2/phases/{projectId} | - |
GET | /projectserver/api/1.0/Projects | /api/projectserver/v2/projects | - |
POST | /projectserver/api/1.0/Projects | /api/projectserver/v2/projects | - |
DELETE | /projectserver/api/1.0/projects/{id} | /api/projectserver/v2/projects/{id} | - |
GET | /projectserver/api/1.0/projects/{id} | /api/projectserver/v2/projects/{id} | - |
POST | /projectserver/api/1.0/projects/{id} | /api/projectserver/v2/projects | - |
DELETE | /projectserver/api/1.0/projects/{id}/Delete | /api/projectserver/v2/projects/{id} | - |
GET | /projectserver/api/1.0/projects/{id}/Get | /api/projectserver/v2/projects/{id} | - |
GET | /projectserver/api/1.0/projects/{id}/GetByResourceGroupPath | /api/projectserver/v2/projects/byresourcegroup | - |
POST | /projectserver/api/1.0/projects/{id}/Post | /api/projectserver/v2/projects | - |
POST | /projectserver/api/1.0/projects/{projectId}/changeassignment | /api/projectserver/v2/projects/{projectId}/changeassignment | - |
POST | /projectserver/api/1.0/projects/{projectId}/changephase | /api/projectserver/v2/projects/{projectId}/changephase | - |
GET | /projectserver/api/1.0/projects/{projectId}/download | /api/projectserver/v2/projects/{projectId}/download | - |
GET | /projectserver/api/1.0/projects/{projectId}/download/{type} | /api/projectserver/v2/projects/{projectId}/download/{type} | - |
GET | /projectserver/api/1.0/projects/{projectId}/filestatus | /api/projectserver/v2/projects/{projectId}/files | - |
GET | /projectserver/api/1.0/projects/{projectId}/filestatus/languagefiles | /api/projectserver/v2/projects/{projectId}/files | - |
GET | /projectserver/api/1.0/projects/{projectId}/phaseswithassignees/{phaseId} | /api/projectserver/v2/projects/{projectId}/phaseswithassignees/{phaseId} | - |
GET | /projectserver/api/1.0/projects/{projectId}/publishingstatus | /api/projectserver/v2/projects/{projectId}/publishingstatus | - |
POST | /projectserver/api/1.0/projects/{projectId}/publishpackage | /api/projectserver/v2/projects/{projectId}/publishpackage | - |
GET | /projectserver/api/1.0/PublishingStatus | /api/projectserver/v2/projects/{projectId}/publishingstatus | - |
POST | /projectserver/api/1.0/PublishPackage | /api/projectserver/v2/projects/{projectId}/publishpackage | - |
Updated MultiTerm Online Classic Layouts
This release includes a new version of our web-based terminology client MultiTerm Online. Starting this version, the five classic layouts for MultiTerm have been re-built and can now also be used to edit in browser applications without support for executing Java applets.
In the meantime, we also fixed a Tomcat security vulnerability (CRQ-32118) and a display issue for True values when adding or editing Boolean values in the new MultiTerm Online legacy layouts (CRQ-32038). You can extract the new multiterm.war containing these 2 additional fixes after downloading and extracting it from the following ZIP archive: https://downloadcentercdn.sdl.com/TP/Trados/GroupShare/2020/SR1/CU8/multiterm.zip
Fixed Issues
- Fixed an issue where the File Processing Server folder was not removed when upgrading from Groupshare 2017. The folder is no longer appearing when upgrading to CU8. (LTGS-11099)
- TM Language Pairs and Units were not displayed properly in Project Settings if a TM was referenced with a different server name. The issue is now fixed. (LTGS-11100)
- When changing the phase of a project, Groupshare displayed an error if the user that created the project was deleted. The issue is now fixed. (LTGS-5537)
- The issue of using MultiTerm Online in recent Apache Tomcat versions generating java.lang.StackOverflowError exceptions in the Tomcat logs, and negatively impacting disk space on the web server, have been addressed. (CRQ-31794)
- When downloading the latest file version in Trados Studio from a Groupshare project, an error was thrown in some cases. The error is no longer displayed, and the issue is fixed. (CRQ-31650)
- Groupshare Dashboard and Reporting tab are now correctly displayed when set to German language. (CRQ-31294)
- When using Google Chrome, clicking on the "?" icon displayed next to a Termbase in the Termbases window, the about.pdf download indicated Failed Network Error. The issue is now fixed. (CRQ-30332)
- Sorting by "User Type" is now displayed properly in Groupshare. (CRQ-29338)
- Addressed an issue with incorrect overdue notifications sent for already completed files (CRQ-28364)
- Fixed an issue where GroupShare files in the TranslateAndAnalyze FileStore folder never got removed. The files used by T&A Service are now deleted from the T&A FileStore. (CRQ-24619)
- Word count with Asian languages is now displayed correctly in Analyze Report when processed from GroupShare webUI. (CRQ-22007)
- Optimized project synchronization to avoid timeouts during file check-in and other operations from Studio. (CRQ-17825)
- TM is no longer disabled if has a plus character ("+") in the name. (CRQ-17759)
- Groupshare would not work properly when only one TM Server was installed. The issue is now fixed. (CRQ-17381)
- Download link for Exporting terms is now displayed in MultiTerm Online. (CRQ-8769)
- Results are now being displayed in Termbase View when searching for termbases. (CRQ-6158)
- Addressed an issue with the Webhook service potentially remaining in an unresponsive state. (CRQ-31013)
- Improved specific SQL stored procedure (proj.GetProjectPackageManifestParts), providing new overall performance potential to the application. (CRQ-30383)
- Addressed an issue in which the GroupShare Application Service ignored the SqlCommandTimeout setting when executing certain SQL stored procedures. (CRQ-30356)
- It's now possible again to search for entries in MultiTerm Online based on entry IDs not showing up on the first page of the hit list. (CRQ-26475)
- Addressed an issue in which a user might get logged out after adding a new term using legacy/classic or custom layouts. (CRQ-18265)
- Updated commons-text to version 1.10.0 for MultiTerm Online. This specifically addresses a recently identified vulnerability in the commons-text library. (CRQ-31582)
- After publishing a project, Publish Project background task remained In Progress on GroupShare if the project had many files. The issue is now fixed. (LTGS-11053)
- Endpoint GET /API/management/v2/users/{username} no longer returns a list of users and is returning only a single user. (LTGS-10848)
- When editing a term in a non-default layout in MultiTerm Online, the term in the left side list would not be updated. The issue is now fixed. (LTGS-10809)
- MultiTerm .war file now contains all the flags for languages. (LTGS-10802)
- Text in languages combo boxes can now be added. (LTGS-10781)
- Incorrect warning was displayed when adding fields with duplicate names in the same field template. The issue is now fixed. (LTGS-10775)
- Fields of TMs are now displayed on website and the "Save" button is working properly. (LTGS-10751)
- Fixed an issue where the Update Files button was not enabled when a translatable and a reference file had the same name if a file was selected. (LTGS-10717)
- Update translatable/reference files now work for projects with the same file with different roles in different folders. (LTGS-10315)
- Printing functionality now works properly for Analysis Report and the total rows in a table are displayed correctly. (LTGS-10313)
- When downloading a version of a file, the notification now displays the correct number of the version. (LTGS-10224)
- Update Project button is now disabled when all files are checked out. (LTGS-10218)
- Fixed an issue where the selected reference files with folder structure were not updated when uploading a file with a matching name. (LTGS-10206)
- Addressed an issue with the hard filter when using MultiTerm Server termbases. It's now possible again to use a filter condition on a field with more than 50 characters. (LTGS-10015)
- When unlinking a field template from a TM with a duplicate name, the loading mask is now disappearing. (LTGS-9873)
- The width of segments in the Online Editor is now adapted accordingly after increasing the size of the browser window in GroupShare. (LTGS-8912)
- The Language Pair specific settings for a batch task created in Trados Studio are now also applied in GroupShare. (LTGS-7692)
- Fixed an issue where project templates on GroupShare website where a TM list would not expand on the first click. (LTGS-6172)
- Fixed an issue where the Translate and Analysis batch task would not translate the files from a project (LTGS-4681)
- Editing term fields for the termbase in non-default layout failed with errors. The issue is now fixed. (LTGS-10934)
- Fixed an issue where CALs for sub-organizations were not released after logout. (LTGS-9814)
- When creating a project from GroupShare WebUI using a Project Template with specific Language Pair, the settings were not preserved. The issue is now fixed. (CRQ-21310)
- The Analyze File Report is now displaying correctly the word count with Asian source languages in WebUI. (CRQ-22007)
Other Changes
- Option to Choose Which Notifications Trados GroupShare Sends. System administrators can now configure the type of notifications sent by the application in the Trados GroupShare configuration. (CRQ-29484)
- Updated commons-io to version 2.11.0 for MultiTerm Online. This specifically addresses a recently identified vulnerability in the commons-io library. (LTGS-10950)
- Updated commons-text to version 1.10.0 for MultiTerm Online. This specifically addresses a recently identified vulnerability in the commons-text library. (LTGS-10948)
- Updated publisher text from SDL to SDL Limited (a part of the RWS Holding Plc. Group). (LTGS-10595)
- Service Provider-initiated SSO is now supported in GroupShare. (CRQ-31754)
- Updated Microsoft .NET to version 6. This includes updates of dependencies (e.g. ASP.NET CORE) to a version supported by the .NET CORE 6.
- Replaced deprecated RabbitMQ routing key "Sdl.LanguageCloud.Commands.ProcessStatisticsCommand" with "Sdl.LanguageCloud.StatisticsService.Command.ProcessMultipleDocumentsStatistics.V1. (LTGS-10578)
- Updated RabbitMQ Server to 3.11.3 (LTGS-10844)
- To simplify REST API documentation, we've dropped the (static) Swagger UI web client (…/swagger-ui). You can now find the updated Swagger UI documentation tool at …/documentation/api/index. (LTGS-10805)
- Updated the Aspose PDF library (Aspose.PDF.dll) to 20.2.0, mitigating previously reported vulnerabilities in previous versions of this library. (LTGS-10655)
- When configuring MultiTerm Online, the Xceres no longer generates an exception. This has been migrated to java native XMP API. (LTGS-10976)
Known Issues
- Language pair specific settings are not applied when adding or updating a project file. (LTGS-11106)
- Organizations cannot be deleted from the GroupShare UI or using theDELETE /api/management/v3 endpoint (which the UI uses) on environments where TM Server is installed without Project Server. (LTGS-11157)
- The following vulnerabilities are reported in the reporing component (Logi Analytics) used by GS 2020 SR1 CU8:
- CVE-2013-4940, CVE-2013-4939, CVE-2013-4942, CVE-2013-4941
- Additionaly, XSS (cross site scripting) and out-of-band vulnerabilities are reported with the reporting component (Logi Analytics). These will be solved as well with the upcoming CU. (CRQ-32107, CRQ-32104)
Thank you,
Phillip Maieski | Trados Product Management Team