Migration from 1.8.x to 1.9.0
This guide contains instructions for migration from PowerAuth Server version 1.8.x to version 1.9.0.
Database Changes
For convenience, you can use liquibase for your database migration.
For manual changes use SQL scripts:
Added pa_temporary_key Table
To facilitate a new feature of temporary keys, we added a new pa_temporary_key table to store the key pairs.
Add encryption_mode Column
- A new column encryption_modehas been added to thepa_application_configtable to enable encryption of configuration values.
- A new column encryption_modehas been added to thepa_application_callbacktable to enable encryption of authentication values.
New Database Table for Callback Events Monitoring
A new pa_application_callback_event table has been created to monitor Callback URL Events. This change introduces
the additional benefit of setting a retry strategy for individual Callback URL Events and monitoring the state of each
dispatched event. The table contains following columns:
- id- Event identifier, generated using sequence- pa_app_callback_event_seq.
- application_callback_id- Reference for corresponding Callback URL record in the- pa_application_callbacktable.
- callback_data- Data payload of the Callback URL Event.
- status- Current state of the Callback URL Event.
- timestamp_created- Creation timestamp of the Callback URL Event.
- timestamp_last_call- Timestamp of the last attempt to send the Callback URL Event.
- timestamp_next_call- Timestamp of the next scheduled time to send the Callback URL Event.
- timestamp_delete_after- Timestamp after which the Callback URL Event record should be deleted from the table.
- timestamp_rerun_after- Timestamp after which the Callback URL Event record in processing state should be rerun.
- attempts- Number of dispatch attempts made for the Callback URL Event.
- idempotency_key- UUID used as the- Idempotency-Key.
The pa_application_callback_event table comes with following indices:
- pa_app_cb_event_status_idxon- (status),
- pa_app_cb_event_ts_del_idxon- (timestamp_delete_after).
Add Columns to Configure Callback Retry Strategy
New columns has been added to the pa_application_callback table. These columns provide additional configuration
options for the retry strategy with an exponential backoff algorithm. Namely:
- max_attemptsto set the maximum number of attempts to dispatch a callback,
- initial_backoffto set the initial backoff period before the next send attempt, and
- retention_periodto set the duration for which is the callback event stored.
These settings at the individual callback level overrides the global default settings at the application level.
Add Column Indicating If a Callback Is Enabled
A new column enabled has been added to the pa_application_callback table to indicate whether a Callback URL is
enabled or disabled. When a new Callback URL is created via the Callback URL Management API, the enabled column is set
to true (enabled) by default. A Callback URL remains enabled until a delete request is made through the Callback URL
Management API, at which point the enabled column is set to false (disabled). Disabled Callback URLs will be
excluded from all subsequent queries and operations.
Callback URL Creation and Last Update Timestamp
Following columns has been added to the pa_application_callback table to improve caching mechanism of REST clients
used for callback posting:
- timestamp_createdto store the timestamp of the record creation, and
- timestamp_last_updatedto store the timestamp of the last record update via the Callback Management API.
REST API Changes
Added Services for Temporary Keys
The API now publishes new endpoints related to the temporary key management:
- POST /rest/v3/keystore/create- Creates a new temporary key pair
- POST /rest/v3/keystore/remove- Removes a temporary key pair
Deprecated Parameter activationOtpValidation in Init Activation
The parameter activationOtpValidation is deprecated.
Use the activationOtp parameter during activation init or activation commit to control the OTP check.
Use the commitPhase parameter for specifying when the activation should be committed.
New Attributes in Callback URL Management API
The Callback URL Management API supports configuration of retry policy and retention period for each Callback URL
configuration. These changes impact both the request and response bodies of /rest/v3/application/callback/create
and /rest/v3/application/callback/update endpoints and response body of /rest/v3/application/callback/list endpoint.
Following attributes have been added:
- retentionPerioddefines the duration after which a completed callback event is automatically removed from database.
- initialBackoffdefines the initial delay before retry attempt following a callback event failure, if retries are enabled.
- maxAttemptsdefines the maximum number of attempts to send a callback event.
ECDSA Signature Verification in JOSE Format
The method POST /rest/v3/signature/ecdsa/verify now supports validation of ECDSA signature in JOSE format, thanks to added signatureFormat request attribute (DER as a default value, or JOSE).
Other Changes
New Configuration Properties for Callback Events Monitoring
New configuration options has been added to modify the Callback URL Events monitoring and retry policy. See the Callback URL Events Configuration section for further details.
Idempotency-Key of Callback URL Events
Callback URL Events now include an Idempotency-Key in the HTTP request header. It is a unique UUIDv4 key to recognize
retries of the same request.
New Configuration Options For the Proximity Check
Two new configuration properties have been introduced to adjust parameters for the TOTP generation and validation algorithm in the proximity check process.
- powerauth.service.proximity-check.otp.step-durationdefines the time-step duration used for generating and validating TOTP during the proximity check. Defaults to 30 seconds.
- powerauth.service.proximity-check.otp.step-countdefines the acceptable TOTP transmission delay by setting the number of past time-steps that will be validated for the proximity check. Defaults to 1, which means proximity otp value from the current time-step or the previous time-step is acceptable.
Deprecated Methods in PowerAuth Client
Several methods in PowerAuth client were deprecated in this version due to addition of temporary keys. Use the methods which contain the object parameter instead, as described in the deprecation notices.