Registry v5.0.0 is a significant rewrite due to the retirement of the older version of the underlying framework (CakePHP v2). The project leveraged this opportunity to clean up a number of long standing issues, some dating back to v0.1. As a result, upgrading will be fairly disruptive.
Approaches to Upgrading
Existing Registry installations cannot be upgraded in place. Data must be migrated to a new v5.0.0 based installation. As such, the recommended approach is to first stand up a new v5 Registry test instance, and then perform a test migration.
Performing Data Migration
CakePHP has changed its URL format, so pretty much all bookmarks will need to be changed. In general, controller names now use hyphens instead of underscores, and named parameters now use standard query args. So, for example
It's possible to set up Apache rewrite rules to accept the old format and translate it to the new format, however Registry v5 does not include this sort of configuration out of the box.
- Responses now include metadata.
- Support for pagination has been added.
- Multiple records can be provided in a single add request.
- XML payloads are no longer supported.
- The VOOT API is no longer supported.
- "Translated" enumerations are no longer supported. Where v1 used (eg) the string
Active, v2 simply uses
REST API Users
API Users created in Registry v5 use API Keys that are randomly generated, and hashed using a different method than earlier versions. API Keys (formerly called "passwords") will continue to work, and they will be rehashed automatically when the API User authenticates. However, it may be desirable to generate new API Keys for existing API Users after upgrading, since the newer hashing mechanism is stronger.
The Registry database should ordinarily be treated as a "black box", and code or interfaces should not be designed around direct table access. Registry v5.0.0 changes the name of all tables (mostly to drop the
cm_ prefix) and restructures various tables. For full details, review the documentation for tables of interest.