What's New in OpenEdge 13.0
- Last Updated: February 11, 2026
- 16 minute read
- OpenEdge
- Version 13.0
- Documentation
|
OpenEdge Release 13.0 delivers enhancements in the following product areas: |
Developer Productivity
- 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.
Built-in AI Coding Assistant in Developer Studio
Starting with OpenEdge 13.0, Progress Developer Studio for OpenEdge includes an integrated AI Coding Assistant powered by ChatGPT. You no longer need to download the AI Coding Assistant plugin and install it separately in the Developer Studio.
For more information, see AI Coding Assistant with Developer Studio and Enable AI Coding Assistant with Developer Studio.
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 theAUDIT-POLICYsystem handle. Now, you can use theSECURITY-POLICY:ENCODE-PASSWORD() method instead. - The
ALLOW-PREV-DESERIALIZATIONattribute of theSECURITY-POLICYsystem 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
- 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._passwordto 1024 characters. - Creation of default SQL properties record—Automatically inserts a
default
_sql_propertiesrecord 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.
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
_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-clstmtCacheLevelparameter 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.
-
Client Database-Request Statement Cache Size (-clstmtCacheSize)
-
Client Database-Request Statement Caching Level (-clstmtCacheLevel).
-
Client Database-Request Statement Caching User Type (-clstmtCacheType).
-
Client Database-Request Statement Cache Allocation Factor (-clstmtCacheAllocationFactor)
-
Client Database-Request Statement Caching Directory (-clstmtCacheDir).
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
_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 valueNranging 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:
Except for theEnter event to initiate or Q to Quit (1-Lock Table Overflow, 2-BI Threshold, 3-System Error):System Errorevent, the chosen event complies with the current diagnostic setting for-diagTopNor option 11, however the value set for the-diagFrequencyparameter 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
- The
-compactonlyoption—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
unusedblocksoption 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
unusedblockswhen combined with the-compactonlyoption.For more information, see Troubleshoot index compaction.
- New
_UserStatusState—The_UserStatus-Statefield of the_UserStatusVST 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
-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
-blocksize4096 or-blocksize4. - 8KB—Specify
-blocksize8192 or-blocksize8.
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
- The
PROUTIL DESCRIBEcommand 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 DESCRIBEenhancements, see PROUTIL DESCRIBE qualifier. - The
PROUTIL EPOLICYcommand introduces the following enhancements:- The
EPOLICY INFOqualifier 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 VIEWqualifier introduces the newallparameter that displays information from allEPOLICY VIEWparameters exceptkeystore, providing a comprehensive overview in a single command and showing any deprecated ciphers across all objects. - The
EPOLICY VIEW keystoreparameter now explicitly shows if a keystore cipher is deprecated.
For more information about the
PROUTIL EPOLICYenhancements, see PROUTIL EPOLICY INFO qualifier and PROUTIL EPOLICY VIEW qualifier. - The
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
aedh0prefix 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-HASHandGENERATE-PBE-KEYfunctions and thePASSWORD-HASH-SALTandENCRYPTION-SALTattributes. - Enhanced GENERATE-PBE-KEY function—Now supports
the NIST-approved
PBKDF2algorithm, 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 usePBKDF2in 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
- DBRESTRICTIONS function— Returns
FIPSif a database is running in FIPS mode. - ENCRYPT function, DECRYPT function, and MESSAGE-DIGEST function—Generates an error if a non-NIST-approved algorithm is specified.
- ENCODE function and MD5-DIGEST function—Generates an error because this function is not supported in FIPS mode.
- GENERATE-PBE-KEY function—Generates an error if a non-NIST-approved algorithm is specified or if a salt value is not provided or is smaller than 16 bytes.
Attributes
- SECURITY-POLICY:PBE-HASH-ALGORITHM attribute and SECURITY-POLICY:SYMMETRIC-ENCRYPTION-ALGORITHM attribute—Generates a warning if a non-NIST-approved algorithm is specified.
- SECURITY-POLICY:SYMMETRIC-SUPPORT attribute—When FIPS mode is enabled, only NIST-approved algorithms are returned.
- SECURITY-POLICY:ENCRYPTION-SALT attribute—Now supports salt values up to 512 bytes and generates an error if the salt is too short in FIPS mode.
- SECURITY-POLICT:PBE-ALGORITHM attribute – Must
be set to
PBKDF2in FIPS mode and generates an error if not compliant.
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
-
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 theGENERATE-PASSWORD-HASHfunction or encoded using the legacyENCODE()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.