api argument.
Migrating an Action created during the period prior to General Availability (GA) should typically involve the following steps:
- Adjust references to renamed and relocated event properties as outlined in the Breaking changes section.
- Instead of composing and returning an object describing the desired side-effects, update custom code to call the relevant
apimethod as outlined in the Performing side effects section. - For Actions that need to handle redirect callbacks, use the newly-exposed dedicated function. If you used code that relied on
event.protocol === 'redirect-callback', review the Redirect with Actions page.
Breaking changes
Query and body parameters
Direct access to the query and body parameters is available using theevent.request.query and event.request.body objects. These are exposed regardless of whether the authorization was initiated via a GET or POST request. Many protocol-specific query or body parameters sent as part of an authorization request are now also available as first-class values on the event.transaction object. We recommend that you use event.transaction rather than event.request.query and event.request.body unless your use case is not supported. A complete mapping of these changes is below:
| Pre-GA Property | GA Property |
|---|---|
event.actor.ip | event.request.ip |
event.actor.hostname | event.request.hostname |
event.actor.geoIp | event.request.geoip |
event.actor.language | event.request.language |
event.actor.method | event.request.method |
event.actor.userAgent | event.request.user_agent |
event.actor.body | event.request.body |
event.actor.query | event.request.query |
event.actor.query.audience | event.resource_server.identifier |
event.actor.query.scope | event.transaction.requested_scopes |
event.actor.query.acr_values | event.transaction.acr_values |
event.actor.query.ui_locales | event.transaction.ui_locales |
event.protocol | event.transaction.protocol |
context.secrets | event.secrets |
User Profile properties
In general, theevent.user object has had its properties changed from camel case to snake case in order to match the Auth0 User Profile structure. For example, event.user.appMetadata has been changed to event.user.app_metadata.
Performing side effects
In the pre-GA version of the post-login trigger, side effects were performed by returning an object from an Action. In Actions GA, anapi object is provided to encapsulate these changes and provide better in-editor type hints and inline documentation.
Update user user_metadata
Pre-GA Trigger:You should not use this method in callbacks because invoking this method won’t update metadata immediately. Instead, you can call this method several times throughout multiple Actions in the same flow (metadata set in one Action is applied to the transient object and is therefore available in subsequent Actions), and the engine will aggregate the changes and update the metadata all at once before the flow is completed.
Update user app_metadata
Pre-GA Trigger:You should not use this method in callbacks because invoking this method won’t update metadata immediately. Instead, you can call this method several times throughout multiple Actions in the same flow (metadata set in one Action is applied to the transient object and is therefore available in subsequent Actions), and the engine will aggregate the changes and update the metadata all at once before the flow is completed.
Deny a login
Pre-GA Trigger:Throwing an error will also deny a login, but calling
api.access.deny is the preferred approach.