Migration from 2.0.x to 2.1.x
This guide contains instructions for migration from PowerAuth Cloud version 2.0.x to version 2.1.0.
Database Changes
For convenience, you can use liquibase for your database migration.
For manual changes, use SQL scripts:
Add Column subject_id to audit_log table
Added a new indexed column subject_id holding an identifier linking the audit record to an entity it is related to (e.g. user ID for user-related audit records).
The auditing tables may be already updated in your database schema if the database schema is not separated for different PowerAuth applications. In case the column audit_log.subject_id and its index audit_log_subject_id_idx are already present, you can safely skip this migration step.
Migrate audit_log table data
If you are using the /v2/audit/log endpoint (for example, you are using the Admin Console web application), you need to migrate the audit_log table data. Otherwise, the endpoint will return no records created before 2.1.0 version.
The schema must be migrated first before migrating the data (see the previous section).
The migration scripts for the supported databases, along with instructions on how to use them, can be found here:
Configuration Updates
The activation removal endpoint can be configured to allow authentication using POSSESSION factor (1FA). By default, two-factor authentication is used when removing activations, either POSSESSION_KNOWLEDGE or POSSESSION_BIOMETRY.
You can enable 1FA for activation removal by setting the environment variable:
ENROLLMENT_SERVER_ACTIVATION_REMOVE_ALLOW_1FA=true
REST API Updates
GET /v2/registrations/{registrationId}
The response has been extended with:
- a new
protocolattribute indicating the protocol used for the registration (possible values arepowerauthandfido2) - a new
externalIdattribute containing the external ID associated with the registration
GET /v2/registrations
Each registration returned by the endpoint has been extended with:
- a new
protocolattribute indicating the protocol used for the registration (possible values arepowerauthandfido2) - a new
externalIdattribute containing the external ID associated with the registration
POST /v2/fido2/assertions/challenge
The endpoint has been modified:
- a new optional attribute
userIdis accepted, allowing to specify the user for which the assertion challenge is generated - the
externalIdattribute is no longer mandatory - the response has been extended with the
allowCredentialsattribute (credentials associated with the assertion), using the following structure:{ "allowCredentials": [ { "credentialId": "string", "type": "string", "transports": [ "string" ] } ] } - the response contains a new
operationIdattribute representing the operation ID the assertion is associated with
POST /v2/fido2/assertions
The appId attribute used to verify the challenge can be approved by given application is no longer mandatory. If not present, the user ID retrieved from response.userHandle is used to determine the application ID.
POST /admin/applications/{id}/push/hms
The appId attribute in the request body is no longer required and will be ignored if present. The path parameter is used exclusively.
POST /messages/send
The call now supports an optional numerical value for badge displayed as a badge on the app icon.