Extensions

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 “Advenced Features” shoud be turned on on the “Service info“ page.

 

 

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

 

 

 

Name and Description

Name and describe new extension in the corresponding fields.

 

Config

In the Config section of this page, you can configure your extension.

 

Output configs

In the Output config field, you can add the necessary information for this extension that will access and retrieve data generated by a third-party source.

To do so, you will need to specify an endpoint where this data is available and create a schema to structure the data you want to retrieve.

For example, you can create a payment status monitoring extension. To do so, you'll need to provide the endpoint URL pointing to the location where the payment data is stored.

Then, you will need to create a schema with the appropriate attributes, such as payment ID, amount, status, etc. to define the payment data structure.

 

Output config setup

  1. Click on the “Output“ field of the “Edit Extension“ page.

  2. On the pop-up window, enter the data source endpoint URL.

Now, create a schema to structure your data.

  1. Name the schema.

  2. Add all the necessary attributes.

  3. Click “OK“

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

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 the 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" field of the “Edit Extension“ page.

  2. Add the endpoint URLs and select the method to get the data.

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

  4. 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.

  5. 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

  1. Click “OK.”

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

Interaction Level Input

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 setup" field of the “Edit Extension“ page.

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

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

  4. 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.

  5. 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.

  6. Create the schema to structure your data.

    1. name the schema

    2. add all necessary attributes

  7. Click “OK.”

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

Schema Creation

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

  • Name your schema;

  • Create attributes:

    • name attribute;

    • select the data type for this attribute;

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

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

    • 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.

    • To set the allowed values ​​for this attribute, check the “Value Set“ checkbox and click “Add.“ NOTE that value sets are not available for attributes with type “Object “ and “Boolean.“ 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 “OK.“

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

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

  • Add as many attributes as you need. Once you've added all the necessary attributes, click "OK."

 

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.

 

 

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, issuing credentials, and on finish.

 

On receiving credentials

If you want the extension triggered when the user shares their credentials during the interaction, please 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 URL of the third-party system you'd like to integrate, you can click on the corresponding trigger field.

 

Add Parameters

After adding the URL, click “Add parameters“ to specify a set of parameters your service expects in this extension.

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

 

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 "SSI interaction" 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.

 

Delete and edit extension

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

 

Add an extension to the interaction

See the SSI Interaction page, “Add extension“ section.