Skip to content

Version 4.0.0 - Release notes

Release Date End of AMP(*) End of Life
2026-05-11 2029-05-11 2030-05-11

(*) Active Maintenance Period

The present document contains information regarding product enhancements, fixed issues and known issues related to AnswerModules Modules Suite version 4.0.0.

This guide

The information presented in the on-line guide are mostly non-version specific. AnswerModules team does its best to ensure that, where necessary, is made clear that the information presented is only applicable to specific versions, however if you are looking for this version-specific documentation, you can find it here

No Warranties and Limitation of Liability

Every effort has been made to ensure the accuracy of the features and techniques presented in this publication. However, AnswerModules accepts no responsibility and offer no warranty whether expressed or implied, for the accuracy of this publication.

Module Suite Compatibility Matrix

OpenText Content Server MS 3.6.0 MS 3.7.0 MS 3.8.0 MS 3.9.0 MS 4.0.0
Content Suite 22.1 X X X X X
Content Suite 22.2 X X X X X
Content Suite 22.3 X X X X X
Content Suite 22.4 X X X X X
Content Suite 23.1 X X X X X
Content Suite 23.2 X X X X X
Content Suite 23.3 X X X X X
Content Suite 23.4 X X X X X
Content Suite 24.1 X[1] X X X X
Content Suite 24.2 X X X X
Content Suite 24.3 X[2] X X X
Content Suite 24.4 X X X
Content Suite 25.1 X[3] X X
Content Suite 25.2 X[4] X X
Content Suite 25.3 X X
Content Suite 25.4 X[5] X
Content Suite 26.1 X

[1] Requires hotfix hotFix_ANS_360_009 to be installed

[2] Requires hotfix hotFix_ANS_370_003 to be installed

[3] Requires hotfix hotFix_ANS_380_007 to be installed

[4] Requires hotfix hotFix_ANS_380_013 to be installed

[5] Requires hotfix hotFix_ANS_390_004 to be installed

Major Changes in version 4.0.0

Script Console end-of-life and Module Suite Runtime (MSR) introduction

Script Console is discontinued as a standalone product. Its capabilities are being subsumed by Module Suite Runtime (MSR), a new containerized runtime that runs independently of OpenText Content Server and is designed for cloud-native deployments. MSR is not yet generally available: general availability scheduled for an upcoming Module Suite 4.x release. Until MSR GA, customers running Script Console in production are advised to remain on the 3.9.x line. See the Module Suite Runtime (MSR) section below for more details

  • Module Suite 4.0 moves from installer-led deployment to platform-led operation: delivery is standardized around OpenText deployment channels, extension packages ship as part of the solution, UI assets adapt to the Jato shell and theme model, and runtime capabilities move into a containerized Spring Boot service
  • Unified versioning: from 4.0 onward all modules (DocuSign, eSign, MSR) follow the same suite version numbering

  • New delivery model: MS 4.0 is delivered as OpenText System Center ready module packages; the historical Windows installer is no longer part of the shipping model

  • Jato UI support: Smart UI and form templates now understand Jato shell and themes, with light and dark mode support

  • New cross-service authentication utility (auth service) supporting NONE, BASIC, API_KEY, and OAUTH authentication types with profile-by-reference design

  • New structured logging APIs: configureLog() for namespace-based loggers, configureAppender() for custom rolling file appenders, MDC support, and SLF4J markers

  • Content Script scheduling overhauled: multiple schedules per script via UI, new ScheduleID parameter, enable/disable capability, and improved XML import/export

  • C.A.R.L. Form Builder rewritten with Response API support, reasoning model selection, ANTLR-based form grammar, and widget reference libraries for configuration

  • Process Builder DSL now includes validate() for structured pre-import validation and toSvg() for workflow map visualization

  • Library Manager now uses baseline hashes (MD5) for three-way comparison, introducing five object statuses: New, Up to date, Needs Update, Local Override, and Conflict

  • Security: fixed insecure ClientState serialization and a regression where StaticWhitelist could be overridden by Blacklist entries

Delivery Model Change

  • MS 4.0 is delivered as OpenText System Center ready module packages
  • The historical Windows installer is no longer part of the shipping model
  • Cloud Edition packaging consumes System Center ready modules directly
  • Extension packages are included in the solution: module files, support files, metadata, and configuration ship in a single package

Jato UI Support

  • SmartView Task templates default to shell=jato and theme=light
  • Supported theme modes: light and dark
  • Page sets data-ui-shell, data-smart-theme, and data-jato-theme on the root HTML element
  • Jato design tokens from OpenText theme CSS are consumed by Module Suite CSS/LESS overrides
  • Forms use Jato typography, surfaces, borders, and controls when Jato mode is active
  • Syncfusion-based components are bridged through Module Suite CSS variables for visual consistency
  • Legacy Carbon-style behavior remains when Jato theme attributes are absent -- no regressions

DocuSign Extension

  • SDK upgrade: bumped from 5.1.0 to 6.6.0 with updated Java SDK
  • Legacy auth deprecation warning: DocuSign is permanently disabling X-DocuSign-Authentication header login on 2026-09-30. Module Suite 4.0 proactively detects legacy profiles at startup and emits a clear WARN log message naming the affected profile and the deadline. The init() method (legacy login) is now @Deprecated. Migration path: replace the password in amcs.docusign.appSecret with an RSA private key and use JWT authentication. No breaking change today -- 4.0 does not remove the legacy path; removal is planned for a future release after the DocuSign cutoff date. Warnings are also backported to 3.8.x and 3.9.x
  • JSON SIM webhooks: new delivery mode via getNewEnvelopeDefinition("SIM"); auto-detection of JSON vs XML on receiver side
  • HMAC security: enableHMAC(..) builder for webhook sender-side security
  • Recipient lifecycle management: full CRUD -- addRecipients, updateRecipients, deleteRecipients, resendEnvelope
  • Envelope sync: new syncEnvelope() composing getEnvelopeDetails + updateEnvelope for on-demand polling without webhooks
  • Server-side envelope deletion: voidEnvelope() + moveEnvelopeToTrash() with profile overloads
  • Audit trail: getAuditTrail() / getAuditTrailRaw()
  • Comments/annotations: getCommentsTranscript() returns PDF
  • Tab details: getEnvelopeDetails() with includeTabs=true
  • API client debug toggle: per-profile amcs.docusign.apiDebug with custom SLF4J filters
  • 12 new convenience methods for event notifications (4 recipient + 8 envelope event one-liners)
  • New set of CSScriptSnippets code samples
  • For detailed information on DocuSign integration, see DocuSign Extension Guide

LLM Extension (OpenAI)

  • Assistants API removed: the entire Assistants API surface (21 methods, 21 wrapper classes) has been removed following OpenAI's deprecation of the Assistants API; the Responses API is the recommended replacement
  • Legacy file helpers removed: uploadFile(purpose, resource), getFile(fileId), listFiles(), deleteFile(file), and getFileContent(file) have been removed from both CSOpenAI and CSLLMService; use the new File API introduced in 3.9.0 (uploadFile(params), retrieveFile(fileId), listFiles(params), deleteFile(fileId), retrieveFileContent(fileId))
  • Legacy builders removed: deprecated builder factories on CSLLMService (e.g. newOpenAIChatCompletionRequestBuilder, newOpenAIFineTuneRequestBuilder) removed; use the corresponding methods on CSOpenAI
  • Legacy completion APIs removed: deprecated createCompletion and streamCompletion overloads on CSOpenAI that used the old request types removed
  • CSOpenAIModel changes: root, parent, permission properties and getOpenAIModel() removed; created property added
  • CSOpenAIVectorStore relocated: moved from api.openai.assistant to api.openai.vectorstore package
  • CSOpenAISearchResult simplified: now a plain POJO with firstId, lastId, hasMore, data
  • newChatMessage return type: CSLLMService.newChatMessage() now returns dev.langchain4j.data.message.ChatMessage
  • Moderation wrappers: delegates updated to com.openai.models.moderations.*; public scripting surface unchanged
  • For detailed migration guidance see the 4.0 Migration Guide

Docbuilder Extension

  • Interactive PDF AcroForm support in Docbuilder DSL: textfield, checkfield, listfield, listboxfield, radiofield, signaturefield, and datefield
  • Improved builder/factory behavior for inline fields in complex table layouts, including nested tables and cell auto-wrapping
  • PDF renderer hardening for multi-section documents: improved block flow and field alignment to avoid overlaps/misalignment in complex scripts
  • New regression tests for core/pdf/word form-field rendering and updated Docbuilder documentation

Intelligent Viewing API (viewx)

  • New extension module content-script-ext-viewx (viewx service endpoint) wrapping the server-side ViewX REST layer via executeRestAPI
  • Document transformation: transform() (POST) and listTransformRequests() (GET)
  • Built-in presets: PDF_MERGE, TIFF_MERGE, PDF_VERSION, PDF_RENDITION with getPresetMap() / listAvailablePresets()
  • Fluent request builder: newTransformRequest() with overloads for nodes, presets, maps; chainable options for ISO conformance, color, layers, markup burn-in, page size, orientation, TIFF options
  • Banner/watermark support: newBannerOptions() and newWatermark() with font, color, opacity, positioning
  • Response model: CSViewxTransformResponse with status, errors, publications

Cross-service Authentication (auth)

  • New auth service provides a standardized authentication paradigm for all Content Script Services requiring authentication to remote services
  • Supported authentication types: NONE, BASIC, API_KEY, OAUTH via amcs.auth.auth_type
  • Profile-by-reference: other services reference an auth profile ID instead of embedding credentials (e.g. amcs.mail.authProfile points to an auth profile)
  • Full OAuth lifecycle: authorization code, client credentials, and other grant types; APIs include getOAuthAuthorizationUrl, storeOAuthCode, getOAuthAccessToken, deleteOAuth*
  • OAuth callback handler (oauthflow.groovy) handles Identity Provider redirects via /runcs/am/oauthflow with CSRF state validation
  • Mail as first consumer: content-script-ext-mail reads amcs.mail.authProfile and delegates to auth.getAuthProfile(); falls back to legacy inline smtpOAuth2.* if not set
  • Designed for adoption by other services beyond mail

New Logging APIs

  • configureLog(namespace): script-level API to set a structured logger namespace (amcs.<namespace>.<className>) before first log use, enabling hierarchical log routing
  • admin.configureAppender(appenderName, namespace, level): binds a rolling file appender to a specific amcs.* namespace; optional marker filter for stream splitting
  • MDC support: admin.putLogContext, removeLogContext, clearLogContext for thread-local diagnostic context in log patterns
  • Markers: admin.logMarker(name) returns SLF4J markers; configureAppender with marker name routes marked events to dedicated files
  • Namespace log level control: admin.setNamespaceLogLevel() / resetNamespaceLogLevel() for runtime level changes on subtrees
  • Expanded MSLogging infrastructure: appender-binding registry, reload-replay on Log4j2 config changes, marker override filters
  • New set of CSScriptSnippets code samples

Content Script Scheduling

  • Multiple schedules per Content Script are now supported via the UI
  • New ScheduleID parameter uniquely labels each schedule (mandatory in the UI, optional via distagent for backward compatibility)
  • Schedules can be disabled and re-enabled via UI or distagent
  • Scheduling data now relies solely on Content Server task tables, no longer stored in node ExtendedData
  • XML export includes only enabled schedules; XML import sets all schedules as disabled
  • Improved XML import/export: custom <scheduling> tag with direct database table interaction; remains backward compatible with previous export format

C.A.R.L. Form Builder

  • Rewritten to use the OpenAI Response API instead of legacy Chat Completions API
  • Support for both reasoning and non-reasoning models with configurable reasoning effort
  • Form structure defined by a context-free grammar parsed using ANTLR
  • Widget reference libraries: views prefixed with _CARL serve as sample libraries for widget configuration; both semantic label mapping and widget-specific attributes can be overridden
  • Improved performance: capable of creating forms with 50+ fields in minutes
  • LLM invocation flow: one API call for global structure followed by N parallel calls for widget configuration
  • Real-time user notifications during elaboration

Process Builder DSL

  • New validate() API returns structured ValidationError objects, eliminating the need to discover issues only at import time
  • Validation checks: missing titles, dead links, duplicate step titles, orphan steps, gateway conditions, and more
  • New toSvg() API returns an SVG workflow map for preview, documentation, or debugging
  • DSL documentation updated with grammar, complete examples, validation guidance, and SVG contract

New Extension Packages

  • content-script-ext-msr: adds the msr service for MSR forms and submissions, and msrresources for resource store browse, upload, rename, download, and delete
  • content-script-ext-csrest: adds typed REST services for Content Server -- rcsauth, rcsnodes, rcsmembers, rcsversions, rcssearch, rcsvolumes

Content Script IDE

  • Autocomplete builds context from the active Content Server system and injected console services
  • Spring AOP proxies are unwrapped so the engine sees real service classes and annotations
  • Cursor buffer extraction supports chained method calls across multiple lines
  • Default script helper methods included when completing from top-level script scope
  • Results sorted: semantic type first, then by value -- methods, fields, services in predictable order
  • New editor context menu replaces previous right-click behavior of triggering /info/<node>

ImportLib & Boot Library Changes

  • SystemLibraryVersion bumped from 3900 to 4000, triggering "Library Update" in the admin UI
  • Boot library packaging restructured: otcs-module/bootlibrary/ now only contains lib.ver (library version number); bootstrap content (CSSystem) is imported from otcs-module/library/
  • Every library object now carries a baseline hash (MD5) computed at build time from its content and metadata
  • Three-way comparison: the Library Manager compares the library's published hash, the volume node's stored hash (from last import), and the node's version count
  • Five object statuses replace the old binary model:
Status Description
New Library object has no counterpart in the Volume; available for first-time import
Up to date Baselines match, no local edits; nothing to do
Needs Update Library baseline changed (new release version) but the user never modified the volume object; safe to update
Local Override Baselines match (same release version) but the user made intentional local edits (versionNum > 1); import would overwrite
Conflict Library baseline changed AND the user modified the object locally; both sides diverged and need manual resolution
  • Visual pills in the Library Manager UI: each status is shown as a color-coded badge with rollup counts on parent folders
  • Volume duplicate cleanup: removed root-level duplicate DocuSign content

Beautiful WebForms

  • New form QueryBuilder widget for building queries within forms
  • New form widget for Circular Gauge visualization
  • New optional feature allowing you to assign a namespace to form input fields, enhancing support for multiple forms within the same page
  • Allow conditional view update, notification support and loader options for button actions
  • Multiple improvements in itemreference CSService

Smart Pages

  • New handler to retrieve the Intelligent Viewer instance from a SmartPage where it is rendered (smartui:<ivid>:iv:get)
  • OScript code to retrieve the SmartUI theme of the current user (amsui.getTheme())

Content Script

  • docman.recordGenericAuditEvent(…): custom entries in the audit table with guard for custom audit IDs (>= 999999) to prevent overwriting built-in Content Server audit events
  • Access Workflow CustomData programmatically
  • getuserbyname now supports partial name matching
  • Callback trigger on classification applied

PDF Service

  • findTextCoordinates(): locate text positions within a PDF document
  • addOverlayText() with closure support
  • addOverlayRectangles(): draw rectangles on PDF pages
  • pdf.merge now correctly cleans up temporary files
  • Overlay operations can now be applied to more than one page at a time

Administration & Build

  • Refactored module-amcontentscript-build: moved Maven copy-dependencies output from src to target
  • Repurposed boot library import to use standard library for CSSystem
  • Enhanced Volume Import Tool with grid columns, filters, reference guide, and jstree-grid bug fixes
  • Removed content-script-ext-pdf dependency from Beautiful Webforms module
  • Added documentation for distagent.scheduleContentScript() APIs

Miscellaneous

  • Content Script Editor context menu replaces previous right-click behavior of triggering /info/<node>
  • Removed stale smarteditor CSS files from editors/baseeditor/css/

All Enhancements in version 4.0.0

ID Scope Description
#000753 Extension - DocuSign Update DocuSign Java SDK to latest version
#000754 Extension - DocuSign Add configuration option to enable debugging mode of DocuSign Java SDK API Client
#000785 Extension - DocuSign DocuSign Delete Envelope on DocuSign Server
#001132 Extension - DocuSign Add an API to fetch the comments transcript on a DocuSign Envelope
#002135 Module Suite Allow conditional view update, notification support and loader options for buttons' action
#002158 Beautiful Webforms It is possible to programmatically set the view code rendered by the form view and to provide a fallback error template
#002210 Module Suite New viewx service to provide API access to Intelligent Viewing functionality
#002224 Content Script DTREECORE.ExtendedData API capabilities extension
#002225 Content Script Custom Audit Events from ContentScript implementation
#002227 Module Suite OTCM 25.4 Compatibility
#002238 Beautiful Webforms New form QueryBuilder widget
#002250 Module Suite After Base configuration change ServiceWrapper method updateConfiguration is called for every thread to update service configuration
#002255 Module Suite Documentation for APIs distagent.scheduleContentScript()
#002256 Content Script Access Workflow CustomData
#002260 Content Script getuserbyname: add ability to search incomplete names
#002270 Content Script Callback trigger on classification change
#002272 Beautiful Webforms New optional feature allowing to assign namespace to form input fields to enhance support of multiple forms within same page
#002274 Smart Pages Implement OScript code to get SmartUI theme of the user
#002278 Beautiful Webforms New form widget for Circular Gauge visualization
#002280 Module Suite Add logic to updateConfiguration service method to apply new configuration only when corresponding service has been updated
#002284 Content Script Content Script volume: reuse JavaScriptTemplatingHelper via clear() + fix sanitize to amortize Handlebars/Nashorn compile cost
#002285 Module Suite Refactor module-amcontentscript-build: move Maven copy-dependencies output from src to target
#002296 Smart Pages Added a handler that allows you to retrieve the IV from the SmartPage where it is rendered (smartui:\<ivid>:iv:get)
#002338 Beautiful Webforms Multiple improvements in itemreference CSService
#002348 Extension - DocuSign DocuSign Envelope recipient lifecycle management APIs -- add, update, delete, resend
#002361 Extension - DocuSign Add syncEnvelope method to DocuSignService for on-demand envelope synchronization
#002372 Module Suite Repurpose boot library import to use standard library for CSSystem
#002373 Module Suite Enhance Volume Import Tool: grid columns, filters, reference guide, and jstree-grid bug fixes
#002388 Extension - MSR Introduce content-script-ext-msr extension for Module Suite Runtime API
#002389 Extension - CSRest Introduce content-script-ext-csrest extension for Content Server REST API
#002390 Module Suite Remove content-script-ext-pdf dependency from Beautiful Webforms module
#002396 Extension - Docbuilder Implement interactive PDF form builder support (AcroForm widgets, builder/renderer hardening, tests, and documentation updates)
#002398 Extension - LLM Remove lambdua OpenAI dependency and finalize LLM 4.0 migration: replace with official OpenAI Java SDK, remove Assistants API, legacy file helpers, and deprecated builders

Issues Resolved in version 4.0.0

ID Scope Description
#000674 Module Suite The list of fields is empty in the table widget when a new view is created
#000758 Extension - DocuSign DocuSign Admin dashboard pagination and filtering not working correctly on Oracle database
#000823 Extension - DocuSign Docusign service DEBUG lines logged at ERROR level
#001345 Beautiful Webforms DropArea: Injected drop area code closure causing issue
#001346 Beautiful Webforms Radio Basic: Validation error label appears multiple times
#001353 Content Script users.current.departmentGroupID has an incorrect annotation
#001400 Module Suite CSBrowseViewColumns page: available parameters are not documented
#001776 Beautiful Webforms The 'Item reference' widget V4 ignores the target 'Space ID' if the configuration 'Use a single select input' is enabled
#001868 Module Suite GroupName method within users service issue
#001988 Module Suite forms.mapToForm API method fails without errors when a Set exceeds the limit
#002003 Extension - PDF pdf.merge cannot delete file
#002013 Module Suite The snippet "Using cache to track long running operations" raises a javascript error
#002020 Module Suite Services loading issues in Cloud instances
#002023 Beautiful Webforms Title and subtitle widget (V4): Incorrect Label in Appearance Tab
#002090 Module Suite The notifications service fails to aggregate the messages
#002102 Module Suite Application Builder: Export Remote Form -- it's not possible to create the remote form, the wizard doesn't show Save button
#002103 Beautiful Webforms It is not possible to set a default value on BWF widgets
#002107 Beautiful Webforms Set selectedItem on load in drop down list
#002120 Content Script Issue while using docTemplate.setProperties in the content script
#002123 Smart Pages "Include SmartUI Widget" widget types Tree and Chart are not working in SmartView template
#002126 Module Suite Fixed Sync ListView actions functionality
#002131 Module Suite Coreshare cannot share node to a Core Share group
#002139 Beautiful Webforms BWF V4 javascript method amui.showMessage is missing
#002153 Beautiful Webforms Deleting/Restoring AnswerModules Beautiful Form views clobbers all widgets
#002194 Extension - DocuSign Accessing workflow properties on a DocuSign envelope throws cast exception if the value is not set
#002197 Module Suite Developer portal documentation missing and typos
#002200 Module Suite Passing previous dynamic parameters values
#002201 Smart Pages Node Table widget incompatible with CS 23.1/23.2 on a Smart Page
#002205 Beautiful Webforms Currency symbol appears twice in currency widget when suffix is set and prefix is not set
#002209 Module Suite xecm newBusinessAttachment API
#002211 Beautiful Webforms Beautiful Web Form builder Save request when closing
#002216 Extension - DocuSign XML Envelope decoding fails when large documents are embedded due to 20mb default max string size in jackson library
#002222 Content Script Typos in names of search API methods
#002228 Beautiful Webforms Duplicated widget libraries in FormBuilder
#002229 Content Script CSCategory getSqlColumn bug
#002233 Extension - PDF Add ability for pdf service to apply overlay to more than one page at a time
#002237 Extension - PDF The footer of a generated Word document is not converted correctly
#002248 Beautiful Webforms Fragment not applied in Custom Action Button widget
#002252 Beautiful Webforms Partial defaultValue not initialized in CSServices' bwfpreview
#002253 Beautiful Webforms CSServices bwfpreview script fails on postgresql
#002254 Beautiful Webforms The 'Progress Bar' widget of the V4 library does not set the values of the 'Custom Style' fields
#002267 Module Suite Restart not triggered when only one of multiple [amcs.core.debugEnabled] restart-required flags is toggled
#002269 Smart Pages Base configuration is not "saved inside MS" upon first installation, leading to SmartPages not working
#002271 Smart Pages SmartView Command Menu overrides not showing in object function menu after MS update
#002273 Module Suite Module Suite Activation issue 3.x series
#002277 Module Suite Binary file corruption during REST API response processing
#002281 Module Suite docman.listRecycledItems() returns only 25 items
#002294 Module Suite Regression on StaticWhitelist: it is possible to override Blacklist
#002295 Module Suite Unsecure ClientState Serialization
#002301 Module Suite HTML Template Editor is stuck loading when cache is enabled until a hard reload is performed
#002307 Content Script Big ints (like 100000000000) are not fetched correctly from Category Integer attributes by Content Script
#002317 Content Script Inconsistent behavior with CARL for Content Script
#002320 Smart Pages Menu item added with Content Script disappears after navigating to properties in SmartUI
#002332 Smart Pages Top-positioned widget labels are partially hidden when form is embedded in Smart Page within a Perspective
#002335 Smart Pages Workflow task forms using 'SmartView Task' template not rendered correctly
#002345 Extension - DocuSign DocuSign extension tools and components are duplicate in CSVolume
#002351 Beautiful Webforms Inconsistent capitalization between widget name and volume object for "Text Input" in library V4
#002365 Extension - Adobe Sign adobesign.cleanStore() methods have wrong descriptions
#002366 Module Suite Remove stale smarteditor CSS files from editors/baseeditor/css/
#002370 Extension - DocuSign Build pipeline fix: DocuSign volume content now ships in the DocuSign module