PingAM

Manage scripts (REST)

AM provides the scripts endpoint to manage scripts using REST calls.

User-created scripts are realm-specific, so you must include the realm when you call the endpoint, for example, /json{/realm}/scripts. If you don’t specify a realm in the URI, AM uses the Top Level Realm.

AM includes some global example scripts that you can use in any realm.

Scripts are represented in JSON and are built from standard JSON objects and values (strings, numbers, objects, sets, arrays, true, false, and null). Each script has a system-generated universally unique identifier (UUID), which you must specify when modifying existing scripts. Renaming a script won’t affect the UUID.

Example script:

{
  "_id": "01e1a3c0-038b-4c16-956a-6c9d89328cff",
  "name": "Authentication Tree Decision Node Script",
  "description": "Default global script for a scripted decision node",
  "script": "LyoKICAtIERhdGE...",
  "default": true,
  "language": "JAVASCRIPT",
  "context": "AUTHENTICATION_TREE_DECISION_NODE",
  "createdBy": "id=dsameuser,ou=user,ou=am-config",
  "creationDate": 1433147666269,
  "lastModifiedBy": "id=dsameuser,ou=user,ou=am-config",
  "lastModifiedDate": 1433147666269,
  "evaluatorVersion": "1.0"
}

The values for the fields shown in the example are explained below:

_id

The UUID that AM generates for the script.

name

The name provided for the script.

description

An optional text string to help identify the script.

script

The source code of the script. The source code is in UTF-8 format and encoded into Base64.

For example, a script such as the following:

var a = 123;
var b = 456;

When encoded into Base64 becomes:

dmFyIGEgPSAxMjM7IA0KdmFyIGIgPSA0NTY7
default

Whether the script is the default script for the context.

language

The language the script is written in: JAVASCRIPT or GROOVY. The script context determines the supported language(s).

context

The context type of the script.

context

The context type of the script.

Supported context values
Legacy Next-generation Used by

AUTHENTICATION_CLIENT_SIDE

Not available

Client-side authentication

AUTHENTICATION_SERVER_SIDE

Not available

Server-side authentication

AUTHENTICATION_TREE_DECISION_NODE

SCRIPTED_DECISION_NODE

DEVICE_MATCH_NODE

Not available

CACHE_LOADER

CONFIG_PROVIDER_NODE

CONFIG_PROVIDER_NODE_NEXT_GEN

Not available

LIBRARY

Not available

NODE_DESIGNER

OAUTH2_ACCESS_TOKEN_MODIFICATION

OAUTH2_ACCESS_TOKEN_MODIFICATION_NEXT_GEN

OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER

OAUTH2_AUTHORIZE_ENDPOINT_DATA_PROVIDER_NEXT_GEN

Not available

OAUTH2_DYNAMIC_CLIENT_REGISTRATION

OAUTH2_EVALUATE_SCOPE

OAUTH2_EVALUATE_SCOPE_NEXT_GEN

OAUTH2_MAY_ACT

OAUTH2_MAY_ACT_NEXT_GEN

OAUTH2_SCRIPTED_JWT_ISSUE

OAUTH2_SCRIPTED_JWT_ISSUER_NEXT_GEN

OAUTH2_VALIDATE_SCOPE

OAUTH2_VALIDATE_SCOPE_NEXT_GEN

OIDC_CLAIMS

OIDC_CLAIMS_NEXT_GEN

Not available

PINGONE_VERIFY_COMPLETION_DECISION_NODE

POLICY_CONDITION

POLICY_CONDITION_NEXT_GEN

SAML2_IDP_ADAPTER

SAML2_IDP_ADAPTER_NEXTGEN

SAML2_IDP_ATTRIBUTE_MAPPER

SAML2_IDP_ATTRIBUTE_MAPPER_NEXT_GEN

Not available

SAML2_NAMEID_MAPPER

Not available

SAML2_SP_ACCOUNT_MAPPER

SAML2_SP_ADAPTER

SAML2_SP_ADAPTER_NEXTGEN

SOCIAL_IDP_PROFILE_TRANSFORMATION

SOCIAL_IDP_PROFILE_TRANSFORMATION_NEXT_GEN

SOCIAL_PROVIDER_HANDLER_NODE

OIDC_NODE

createdBy

A string containing the universal identifier DN of the subject that created the script.

creationDate

An integer containing the creation date and time, in ISO 8601 format.

lastModifiedBy

A string containing the universal identifier DN of the subject that most recently updated the resource type.

If the script has not been modified since it was created, this property will have the same value as createdBy.

lastModifiedDate

A string containing the last modified date and time, in ISO 8601 format.

If the script has not been modified since it was created, this property will have the same value as creationDate.

evaluatorVersion

A number representing the script engine version: 1.0 for legacy or 2.0 for next-generation. Refer to Next-generation scripts for details.

When invalid or unspecified, the value defaults to 1.0 for all script types except library scripts, which are always 2.0 (next-generation).