OpenEdge Release 13.0 delivers enhancements in the following product areas:

Developer Productivity

The enhancements to ABL, Progress Developer Studio for OpenEdge, and other development tools empower Developers to boost productivity and efficiency by allowing them to:
  • Work in their preferred and familiar environment.
  • Take advantage of AI developer assistance.

This section details the Developer productivity features in this release.

Scientific Notation Format in ABL

ABL now supports the reading and writing of numbers in scientific notation format, such as JSON, XML, and so on. This enhancement allows the representation of very small or very large numbers using scientific notation rather than requiring the representation to be in an INTEGER, INT64, or DECIMAL format. With this feature, ABL developers can simplify their code and save time by not having to write conversion routines, because any data in scientific notation format can be easily and accurately parsed and read without errors. Note that this feature does not introduce a new data type, but rather allows for the parsing and reading of numbers represented using scientific notation format. Once parsed, the values are represented internally as one of the regular ABL data types: INTEGER, INT64, or DECIMAL.

ABL also supports the writing of numbers in scientific notation format through the specification of a simple format phrase.

For more information, see Scientific notation format.

Scientific Notation Format in Developer Studio

Developers can work efficiently with very large or very small numbers because now Developer Studio supports numeric constants in scientific e-notation format supported by OpenEdge ABL. This feature provides you improved consistency and readability, contributing to a more user-friendly development environment. You can leverage the standard tooling assistance features like color coding, code formatting, code casing, outline view, show syntax help as you type, and finding references.

For more information about Developer Studio tooling features, see Developer features of Progress Developer Studio for OpenEdge.

Support for User-Defined Generics

The Advanced Business Language (ABL) now supports user-defined generics. Earlier, OpenEdge introduced the generic programming model used by collections such as Progress.Collections.List, Progress.Collections.SortedSet, and Progress.Collections.HashMap and now, it extends this support to include user-defined generics. This feature enables ABL developers to write reusable and flexible code that work with multiple data types. The use of generics ensures compile-time type safety, thus reducing run-time errors and improving the overall stability of applications.

Generic types are represented using angle bracket notation (<T>).

For more information, see User-defined generics in ABL.

Certification of .NET 8 with OpenEdge 13.0

.NET 8 is now certified to work with OpenEdge 13.0 for both ABL applications and .NET Open Client applications. This certification ensures that the ABL and .NET Open Client applications that upgrade to .NET 8 can take advantage of .NET 8 features and stay on a supported version of .NET. .NET 8 is a long-term support release with end of support projected for November 2026.

For information on how to upgrade an ABL application to .NET 8 from a previous .NET version, see Adjust the OpenEdge installation to use a different .NET version. For installation and configuration information for .NET Open Clients, see the .NET Open Client Support FAQ.

ABL Attributes and Methods No Longer Supported

This release onwards, the following attributes and methods are no longer supported:

  • The ENCRYPT-AUDIT-MAC-KEY() method of the AUDIT-POLICY system handle. Now, you can use the SECURITY-POLICY:ENCODE-PASSWORD() method instead.
  • The ALLOW-PREV-DESERIALIZATION attribute of the SECURITY-POLICY system handle.

Reduce Operational Complexity

With a strong focus on supporting modern applications for the cloud and hybrid world, this release of OpenEdge delivers even more capabilities to simplify anything that becomes complex.

This section details the features that reduce the operational complexity in this release.

Database Format Changes for OpenEdge Release 13

You use the new OpenEdge Release 13 database conversion utility for converting an OpenEdge Release 12 database to the OpenEdge Release 13 format. This utility introduces several key enhancements and structural changes, such as:
  • Resolution of the year 2038 problem—Replaces the 32-bit time values with 64-bit equivalents across master blocks, extent headers, and AI/BI headers and notes to support dates beyond January 19, 2038.
  • Stronger cryptographic integrity—Enhances security of the TDE keystore.
  • Feature bit cleanup—Removes conditional database features that are now always supported, including large file, 64-bit DBKEYS, large keys, and 64-bit sequences.
  • Meta-schema enhancements—Updates the SQL width of _user._password to 1024 characters.
  • Creation of default SQL properties record—Automatically inserts a default _sql_properties record to support internal encryption and decryption operations.

For more information, see Convert an OpenEdge Release 12 Database to OpenEdge Release 13.

Install JMS and ESB Adapters from the OpenEdge Installer

Starting with OpenEdge 13.0, you no longer need a separate installer for the JMS and ESB Adapters because the Progress OpenEdge JMS and ESB Adapters are now bundled with the OpenEdge installer.

For more information, see Install the Progress OpenEdge JMS Adapter and Install the OpenEdge Adapter for Sonic ESB.

Note: In addition to being included with the product, OpenEdge ESB Adapter is available as a standalone installation.

Performance and Scalability

As systems are getting faster, OpenEdge keeps up. This release provides the best and optimized performance throughout OpenEdge, making it as scalable as possible, which is necessary in the cloud. Scalability is not just scaling up, but it can also be scaling down and reducing resources, to improve the throughput and therefore reduce the time necessary to execute database utilities.

This section details the performance and scalability features in this release.

Back up Offline Databases Faster

Reducing the time needed for the backup operation helps shorten outages. This release introduces the multi-threaded backup feature to speed up backup operations for offline databases. Multi-threaded backup is now the default setting for backing up both online and offline databases. You can use the PROBKUP utility to customize or disable this feature.

Progress strongly recommends that you back up an original database before performing any repair work on it, to have a fallback if the repair renders the database unusable. When the database is repaired and deemed viable, you should back up that version of the database before putting it into production.

For more information and recommendations, see PROBKUP utility and Run a multi-threaded backup.

Run Multi-threaded Index Check Offline

Index check is a vital tool for assessing the health of databases, identifying problems, maintaining database integrity, and establishing the recovery strategy during database downtime.

Database Administrators can now run index check in offline mode using multiple threads to validate the record for each key and the key order. Both online and offline execution of options 2, 3, and 4 now use multiple threads by default, considering that your hardware has sufficient memory, CPUs, and serial disk access. Using threads allows parallel execution of serial operations, which can improve performance depending on the machine workload, database size and layout, indexes, and tables.

For more information, see PROUTIL IDXCHECK qualifier.

Improve Configuration of Client Database-Request Statement Caching

To improve configuration of client statement caching at database startup, Database Administrators can configure the following new parameters using PROMON and the _DbParams VST:
  • -clstmtCacheSize—Specifies the size of the client statement cache in shared memory.
  • -clstmtCacheLevel—Enables all future connections to use Client Statement Cache at the specified level.
  • -clstmtCacheType—Enables the specified user types to use Client Statement Caching when the -clstmtCacheLevel parameter is also set.
  • -clstmtCacheAllocationFactor—Specifies the number of connections to account for, when reserving shared memory. This startup parameter is configurable using PROUTIL INCREASETO.

Additionally, the -clstmtCacheDir is now updated to allow for online modification of the directory location, regardless of whether the parameter had previously been set or not.

PROMON Changes

You can find the following new options in the Client Database-Request Statement Cache menu in PROMON:

New option Activates Client Database-Request Statement Caching…
2a─Activate For All Users For all clients. For backward compatibility, enter 2 or 2a to access this option.
2b─Activate For All Users by User Type At a specified level for all existing clients of a particular type, without affecting the connections for which client statement caching has already been enabled.
3a─Activate For All Future Users For all future client connections to the database and updates the value of -clstmtCacheLevel. For backward compatibility, enter 3 or 3a to access this option.
3b─Activate For All Future Users by User Type At a specified level for all future client connections of a particular user type to the database. It updates the values of -clstmtCacheLevel and -clstmtCacheType.

For more information, see Activate database-request statement caching for all future users by user type and Client Database-Request Statement Cache.

Increase Configurability of Diagnostic Data Collection

Diagnostic data is collected for all connections each time an event occurs. Although this data is crucial for analysis, rapid succession of diagnostic events can overwhelm the deployment, causing database unresponsiveness and hindrance in normal Online Transaction Processing (OLTP) activities. To gather enough diagnostic data and isolate the problem, Database Administrators can now use the following new database broker parameters by configuring them through PROMON and the _DbParams VST:
  • Diagnostic frequency (-diagFrequency)—Limits the frequency with which subsequent diagnostic events of the same type are recorded, to the specified number of seconds. Its default value is 0 (zero).
  • Top diagnostic event triggers (-diagTopN)—Reports diagnostics for the top n most prominent event triggers (offenders) causing a diagnostic event, such as lock table overflow and BI threshold, at database startup and online. It accepts an integer value N ranging from 0 (default value) to 32000 as the number of connections to include in the diagnostic data report.

For more information about the new startup parameters, see Diagnostic frequency (-diagFrequency) and Top diagnostic event triggers (-diagTopN).

This release onwards, you can also find the following new options in the Diagnostic Data Collection menu in PROMON:

  • 10. Reporting frequency—Displays the current value set for -diagFrequency. Use this option to update -diagFrequency.
  • 11. Report only top offenders—Displays the current value set for -diagTopN. Use this option to update -diagFrequency.
  • 99a. Collect enabled diagnostic data now—Executes data collection immediately without honoring the pause-time value or the values set for options 10 and 11. You can also enter 9 to access this option.
  • 99b. Collect diagnostic data for a particular event—Triggers the event you select from the following menu:
    Enter event to initiate or Q to Quit
    (1-Lock Table Overflow, 2-BI Threshold, 3-System Error):
    
    Except for the System Error event, the chosen event complies with the current diagnostic setting for -diagTopN or option 11, however the value set for the -diagFrequency parameter or option 10 does not limit reporting frequency.

For more information about the new PROMON options, see Diagnostic Data Collection menu.

Remove Index Delete Holders Using Enhanced IDXCOMPACT

This release introduces the following three enhancements to the PROUTIL IDXCOMPACT qualifier, which is an online database utility to improve query performance by performing index compaction:
  • The -compactonly option—Database Administrators can use it to compact the index tree only when the index is a unique index. This option:
    • Disables scanning for index delete placeholders in the tree and instead compacts the index.
    • Affects the behavior of the IDXCOMPACT operation depending on whether the unusedblocks option is also specified.

    For more information, see PROUTIL IDXCOMPACT qualifier.

  • IDXCOMPACT status messages—Along with displaying how much compacting has completed and the estimated remaining time, the runtime status of IDXCOMPACT now displays the percentage of compaction completed for each iteration or loop with respect to the total number of iterations.

    For unique indexes, the status messages of the IDXCOMPACT operation vary based on the

    specification of unusedblocks when combined with the -compactonly option.

    For more information, see Troubleshoot index compaction.

  • New _UserStatus State—The _UserStatus-State field of the _UserStatus VST has been updated to include the following new state:
    _UserStatus-State value Utility Description
    40 PROUTIL IDXCOMPACT Counting blocks for the scan

    For more information, see User status (_UserStatus).

Provide -blocksize Values in Kilobytes for PROSTRCT CREATE

Database Administrators create the physical database files for the database by using the PROSTRCT CREATE utility, in which the -blocksize parameter specifies the size of database block. Before this release, -blocksize accepted the value of database blocksize only in bytes (for example, 4096 or 8192). Now, this parameter accepts values in kilobytes (KB) also, for example, to create databases of block-size:
  • 4KB—Specify -blocksize 4096 or -blocksize 4.
  • 8KB—Specify -blocksize 8192 or -blocksize 8.

This enhancement reduces the possibility of typographical errors and maintaining backward compatibility with the previous bytes-based convention. It minimizes the likelihood of creating an incorrectly-sized database and then having to recreate it.

For more information, see PROSTRCT CREATE qualifier.

Identify Deprecated Ciphers Using PROUTIL Enhancements

To support compliance with evolving security protocols, the PROUTIL utility is enhanced in this release, so that Database Administrators can easily identify any deprecated ciphers that are in use.
  • The PROUTIL DESCRIBE command now reports if the database is using any deprecated DMK and object ciphers. This visibility enables administrators to proactively address cipher deprecation and maintain compliance with security requirements.

    For more information about PROUTIL DESCRIBE enhancements, see PROUTIL DESCRIBE qualifier.

  • The PROUTIL EPOLICY command introduces the following enhancements:
    • The EPOLICY INFO qualifier introduces a new column that indicates whether each cipher is supported or deprecated, making it easier to audit cipher usage across the environment.
    • The EPOLICY VIEW qualifier introduces the new all parameter that displays information from all EPOLICY VIEW parameters except keystore, providing a comprehensive overview in a single command and showing any deprecated ciphers across all objects.
    • The EPOLICY VIEW keystore parameter now explicitly shows if a keystore cipher is deprecated.

    For more information about the PROUTIL EPOLICY enhancements, see PROUTIL EPOLICY INFO qualifier and PROUTIL EPOLICY VIEW qualifier.

Security

OpenEdge continually monitors for potential security vulnerabilities. The effort to scan, identify, assess, and mitigate potential security threats is ongoing. Information on how Progress manages reporting, management, discussion, and disclosure of vulnerabilities discovered in OpenEdge can be found in Progress OpenEdge Security Guidelines.

This section details the Security features in this release.

Support for FIPS 140-3

OpenEdge introduces FIPS mode that when enabled, helps verify the use of NIST-approved algorithms for all encryption, hashing, and key management operations, supporting organizations in aligning with U.S. Federal Information Processing Standards (FIPS 140-3). FIPS mode uses CMVP-certified cryptographic modules based on Bouncy Castle. The support for FIPS 140-3 standards strengthens security and promotes consistent cryptographic behavior across OpenEdge applications. Even without enabling FIPS mode, customers gain enhanced protection through the strengthened, standards aligned security algorithms delivered in this release.

Enabling FIPS mode assists in validating that OpenEdge components use FIPS-validated cryptography. However, additional steps are required for full FIPS certification of your application environment.

For more information, see FIPS mode FAQs.

New and Mandatory Encoding Prefixes

The encoding prefix specifies the industry-standard, encryption-based encoding method that OpenEdge uses to securely process data between components. In this release, encoding prefixes are updated as follows:

  • New encoding prefix—You can use the new aedh0 prefix to represent a NIST-approved algorithm in both FIPS and non-FIPS modes.

    For more information, see Encoding prefix.

  • Mandatory encoding prefixes—You must now explicitly set an encoding prefix when creating passwords, to ensure accurate interpretation and prevent ambiguity when generating encoded values.

    For more information, see genpassword.

ABL Cryptography Enhancements

This release introduces new ABL cryptography functions and attributes designed to support FIPS 140-3. While these enhancements help with FIPS compliance when required, they also deliver significant security and usability improvements—even when FIPS mode is not enabled.

Key Enhancements

  • FIPS-MODE attribute—A new attribute on the SECURITY-POLICY system handle to indicate whether FIPS mode is enabled, allowing applications to dynamically adapt behavior based on the security context.
  • New GENERATE-PASSWORD-HASH function—Replaces the older ENCODE function with a more secure, NIST-approved hashing approach. This function is fully usable outside of FIPS mode, offering stronger password protection by default.
  • Supportive attributes for password hashing—New attributes:PASSWORD-HASH-ALGORITHM, PASSWORD-HASH-ROUNDS, and PASSWORD-HASH-SALT provide fine-grained control over password hashing behavior, enhancing security regardless of FIPS mode.
  • New GENERATE-SALT function—Provides a secure and convenient way to generate random salt values for use in cryptographic operations, enhancing password hashing and key-derivation processes by enabling the creation of strong, unpredictable salts.

    This function is valuable not just when FIPS mode is enabled, but in all security contexts, especially when supplying a salt value to the GENERATE-PASSWORD-HASH and GENERATE-PBE-KEY functions and the PASSWORD-HASH-SALT and ENCRYPTION-SALT attributes.

  • Enhanced GENERATE-PBE-KEY function—Now supports the NIST-approved PBKDF2 algorithm, improving resistance to brute-force attacks. When FIPS mode is enabled, the PBE-ALGORITHM attribute must be set to "PBKDF2" and a salt value between 16 and 512 bytes is required. You can proactively use PBKDF2 in non-FIPS environments for stronger security.
  • Expanded ENCRYPTION-SALT attribute—Now supports salt values up to 512 bytes, providing greater flexibility and security in encryption workflows.
  • New SECURITY-POLICY methods: ENCODE-PASSWORD() and VALIDATE-PASSWORD()—The ENCODE-PASSWORD() method encodes a given character expression (typically a password) and returns it as a character value with a prefix, supporting multiple Encoding prefixes, including those permitted under FIPS mode. It replaces the older ENCRYPT-AUDIT-MAC-KEY( ) method, which is no longer supported.

    The VALIDATE-PASSWORD() method checks whether a given cleartext password matches a previously encoded password.

Improved error handling in existing functions and attributes

To promote secure cryptographic practices, several existing ABL cryptography functions, attributes, and methods have been enhanced to generate warnings or errors when FIPS mode is enabled.

Functions

Attributes

These enhancements help developers proactively identify and address weak cryptographic configurations, improving application security across all environments instead of just those operating in FIPS mode.

For guidance on updating applications to run in FIPS mode, see Update ABL cryptography code to use FIPS mode.

Enhanced Security Options for Java Open Client

This release introduces enhanced support for configuring Java Open Client applications to be FIPS-compliant. Importantly, these new configuration options offer significant security benefits even when FIPS mode is not enabled. Administrators can now define the full certificate store details used by the Open Client to validate server certificates, enabling stronger cryptographic practices across the board.

This added flexibility empowers Application and System Administrators to align with FIPS standards when required or to simply bolster security posture in non-FIPS environments. Whether or not FIPS mode is active, these enhancements provide a more robust and customizable approach to securing Java Open Client communications.

For more information, see FIPS support with Java Open Client in OpenEdge applications and Use custom certificate store types and JCE providers.

Changeable Cipher to Store SQL Column Statistics Data for TDE-enabled Database Tables

The OpenEdge SQL engine now allows Database Administrators to change the encryption cipher used for column statistics in Transparent Data Encryption (TDE)-enabled databases. Any user with SQL DBA privileges can set the cipher using the ALTER DATABASE SET COLUMN STATISTICS command online, without downtime. The new cipher is recorded in system tables and used for all subsequent encryption of column statistics in both the current session and other active sessions in the database environment. The robust error handling of this command ensures that invalid or unsupported ciphers and insufficient privileges are clearly reported with specific error messages. If the cipher is not changed using this command, AES_CFB_128 remains the default cipher for encrypting column statistics.

For more information, see ALTER DATABASE SET COLUMN STATISTICS.

You can retrieve the currently set cipher for TDE-enabled tables using the new SHOW COLUMN STATISTICS command.

For more information, see SHOW COLUMN STATISTICS CIPHER.

Enhanced Password Security and UI Updates in the Data Administration Tool

The OpenEdge Data Administration tool now supports stronger password security, FIPS compliance, and improved administrative controls across Data Administration tools, including user management and reporting enhancements.
  • FIPS-compliant password hashing—Passwords for newly-created users are now hashed using the ABL built-in function GENERATE-PASSWORD-HASH, which supports algorithms approved by the National Institute of Standards and Technology (NIST). This function is also used when you create users through the Data Administration tool.

    For more information, see OpenEdge passwords.

  • New reporting column—The new New Pwd? column is added to the user report that you can access through the Data Administration tool. This new column indicates whether a password was generated using the GENERATE-PASSWORD-HASH function or encoded using the legacy ENCODE() function.

    For more information, see User Report option or Run a user report.

  • FIPS mode behavior—When FIPS mode is enabled, users created in OpenEdge Release 12.8 or earlier cannot log in to the database through Data Dictionary or Data Administration tool.

  • Password management in the UI—Regardless of FIPS mode, users can change their own password and designated security administrators can update the password for other users in the database by using the new Change Password button. After enabling FIPS compliance in your OpenEdge environment, legacy passwords no longer work. Security administrators must reset them using FIPS-approved algorithms to maintain compliance and ensure secure database connections with ADE tools.

    For more information, see Edit User List option and Change a password for database users.

Third-Party Support

The following updates were made to the supported third-party products, and the operating system and other platform certifications.

New Container OS for OpenEdge Docker Images

To provide improved security and overall enhancements, the PAS for OpenEdge and database images on the Docker Hub now use the latest Red Hat Universal Base Images (UBI 9) Minimal operating system, instead of the CentOS Linux 7.5 opearting system. This change in the container OS for docker images enables you to run OpenEdge applications on the latest OS platform supported by Red Hat.

For more information on docker images, see Contents of a PAS for OpenEdge Docker image.

Version Update for Spring Framework and Spring Security

The Spring Framework version is now updated to 6.2.14 and the Spring Security is updated to version 6.5.6. These updates include new features, support for the latest specifications, and long-term support.

For more information, see Upgrade Spring configuration files.

Version Update for Infragistics Controls

The OpenEdge Ultra Controls .NET license that installs Infragistics Ultimate UI for Windows Forms is now updated to version 25.1.20251.100.

Version Update for OpenSSL

The OpenSSL library that OpenEdge uses for TLS communication between OpenEdge clients and OpenEdge servers is now updated to version 3.5.

For more information, see OpenSSL 3.5 in OpenEdge.