Extensions/Extension Editor page

The extension is a set of webhooks with extended functionality, allowing your service to work with third-party systems.

 

Features

Description

Screenshots

Features

Description

Screenshots

Create new extension

To create a new extension, the “Advanced Features” should be turned on on the “Service info“ page.

To do so, click the “Service Info“ tab, check the “Advanced Features“ checkbox, and click “Done.“

 

 

 

 

 

 

 

 

 

To add a new extension, click on the “Extension Editor“ tab, and there, click “Add Extension“ button.

 

 

 

 

 

“Extension Info” tab

 

 

Name and Description

Name and describe new extension in the corresponding fields.

 

 

Auth key

There are two types of keys:

  • The key your service uses to sign the webhook calling the integrated 3rd-party system. It is usually your service's default RSA key.

  • The key or key pair of an integrated third-party system that is/are used to sign the webhook that calls your service. Before integrating with a third-party system through the extension, you must obtain the public key from the third-party system. The public key can be of type RSA or SHA Secret.

 

 Add Auth key

Click on the "Auth key" field to set the new key.

 

 

Next, enter the key name, select the key type, and insert the key in the corresponding fields of the "Edit webhook authentication key" pop-up window. Then click "Submit."

 

 

Edit and delete the Auth key

To edit the Auth key, click on the corresponding field, make all necessary changes, and click "Submit."
To delete the key, click the cross sign next to the "Key" field.

Set Triggers:

Extension can be triggered in the following cases or a combination of these cases: on receiving credentials, on issuing credentials, and on finish.

 

On receiving credential

If you want the extension triggered when the user shares their credentials during the interaction, set the “On Receive Credentials” trigger type.

 

Click on the corresponding field and set the URL of the integrated third-party system.

 

Depending on your extension, you may need to set parameters. For example, if you want to send a message to the integrated party upon receiving a credential from the user, you can set this up in the “Parameters” section. After setting up the webhook and any necessary parameters, click “Submit.'“

 

On issuing credentials

The "On issuing credential" extension will be triggered when the system issues a credential to the user.

This trigger type allows you to set additional restrictions to activate the extension, such as the credential definition or credential schema type.

If set, the extension will only be triggered when the user is issued the credential based on the selected credential schema or credential definition.

On finish

This type of extension is triggered upon completion of an event and notifies the integrated party of the outcome, whether it was successful or not.

Add URL

To add the third-party system URL you are integrating with, click the corresponding trigger field.

 

Select required credentials

 

You can set the required credentials as a condition for triggering the extension. The credential might be selected based on the credential definition or schema.

Note that the required credential cannot be selected based on the credential schema if the credential definition created by this service based on this schema has a trust level of "Self-attested."

To specify the selective disclosure and zero-knowledge predicates, click on the required credential from the list and configure the necessary conditions.

You can find more information about adding the required credentials on this overview's "Required and issued credentials" page.

 

Ping URL

Add the URL of the third-party system you are integrating to ensure it is available.

“Is public” checkbox

Public extensions are visible and available to all services in the ProofSpace network.

If you want your extension to be available only for your service, leave the "Is public" checkbox unchecked.

 

 

You can make your extension "Public” if you choose at least one of the above-mentioned triggers.

 

“Service Level Input” tab

 

 

Service Level Input

By setting up the Service Level Input config for your extension, you enable this extension to be used in any interaction within this service using the settings you specify.

When you install the extension with the service level input config, you will be asked to add the information you specify in the schema here.

 

Service Level Input setup

  1. Click on the "Service Level Input" tab of the “Extension Editor“ page;

  2. Check the “Use config“ checkbox;

  3. Add the endpoint URL and select the method to get the data.

  4. Add the endpoint URL and select the method to save the data.

  5. If you want this config to be deleted in case of deletion of this extension, check the checkbox “Use Endpoint,“ enter the endpoint URL, and select the method in the “Delete Endpoint“ field.

  6. To get the status of this extension, check the checkbox “Use Endpoint, “enter the endpoint URL, and select the method in the “Extension Status Endpoint“ field. The expected format in response is:

    interface StatusEndpointResponse {

     ok: Boolean,

     progress?: number; // in range 0-100

     done: boolean;

     statusMessage?: string;

    }

 

  1. Create the schema to structure your data.

a. name the schema

b. add all necessary attributes.

You can find more information on how to create a schema’s attributes in the Schema Creation section of this page.

 

“Interaction Level Input” tab

 

 

 

The configurations set in the Interaction Level Input field for this extension will be applied and configured for each interaction that includes this extension.

 

Interaction Level Input setup

  1. Click on the "Interaction Level Input" tab of the “Extension editor“ page.

  2. Check the “Use config“ checkbox.

  3. Add the endpoint URL and select the method to get the data.

  4. Add endpoint URL and select the method to save the data.

  5. If you want this config to be deleted in case of this extension’s deletion, check the “Use Endpoint,” then enter the endpoint URL and select the method in the “Delete Endpoint“ field.

  6. To get the status of this extension, check the checkbox “Use Endpoint,“ then enter the endpoint URL and select the method in the “Extension Status Endpoint“ field.

  7. Create the schema to structure your data.

    1. name the schema

    2. add all necessary attributes

  8. Click “OK.”

You can find more information on how to create a schema’s attributes in the Schema Creation section of this page.

“Output” tab

 

 

Schema Creation

Create a schema with the necessary attributes to define the structure of your data:

  1. Name your schema;

  2. Create attributes:

a. name attribute;

b. select the data type for this attribute;

c. If this attribute is not required, check the “Optional“ checkbox;

d. If this attribute is an array, check the “Array“ checkbox;

e. If you want to restrict changes in the attribute data, check the “Read-only “ checkbox. In this case, this attribute will be automatically generated on the extension’s backend side.

f. To set the allowed values ​​for this attribute, click on the gray icon and click “Add.“ Enter the first allowed value in the field that appears. Click “Add“ for each additional allowed value. Once all the necessary values are set, click “Submit.“

g. If, in the future, you wish to sort data by this attribute/field, check the "Sortable" checkbox (available only for “Output“ config).

h. Check the “Multi-line” checkbox to enable string type attribute editing with multi-line support (new line).

i. Add as many attributes as you need.

Delete and edit extension

To edit the extension, click on it and make all the necessary changes.

To delete the extension, click the “Delete” icon on the row of the selected extension.

 

 

 

Add an extension to the interaction

See the Integration options, “Add extension“ section.