Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt
hiddentrue

Webhooks make it possible to run existing SIL scripts from outside of the Jira / Confluence instance, by using a REST/HTTP client and retrieve the results of the run script.

Webhooks make it possible to run existing SIL scripts from outside of the Jira / Confluence instance, by using a REST/HTTP client and retrieve the results of the run script.
In order for this to be possible, you need the following things:

  1. Create a SIL script.

  2. Configure a webhook to run that SIL script.

Creating a SIL Script

You can use almost any SIL script but the two Webhooks specific SIL routines getWebhookPayload and appendToWebhookResponse are especially powerful with this feature.

Example 1 - Getting the Webhooks payload from the calling client and returning custom results and HTTP response code

Code Block
languagecpp
//getting the REST/HTTP call input parameters:
WebhookPayload httpRequestPayload = getWebhookPayload();

//getting the used HTTP method:
string httpMethod = httpRequestPayload.httpMethod;//This can be something like "GET", "POST", "PUT" etc.

//getting the http request payload (body):
string httpPayload = httpRequestPayload.payload;

//getting the http query parameters:
WebhookParam[] httpQueryParams = httpRequestPayload.queryParams;
string firstQueryParamName = httpQueryParams[0].name;
string firstQueryParamValue = httpQueryParams[0].values[0];

//sending the response back to the caller:
appendToWebhookResponse("http method:");
appendToWebhookResponse(httpMethod);
appendToWebhookResponse("payload:");
appendToWebhookResponse(httpPayload);
appendToWebhookResponse("firstQueryParamName:");
appendToWebhookResponse(firstQueryParamName);
appendToWebhookResponse("firstQueryParamValue:");
appendToWebhookResponse(firstQueryParamValue);

//returning a HTTP status code:
return true, 200;


The format for the return line. If used, it should return <true|false>[, <HTTP status code>];
The first argument can only have the 'true' or 'false' values. 'True' means that the script was run correctly, and 'false' means that the script encountered a problem when it was run.

Note

It is highly recommended that you use valid HTTP status codes.

Webhooks Configuration

To define what URI and HTTP method(s) will be used to invoke a specific SIL™ script, use the SIL Webhooks configuration.

  1. Log in to your Jira as Admin.

  2. Go to your Administration > Add-ons > Power Apps Configuration → Integrations → Web Hooks.

  3. To create a Webhook entry, click the the Add webhook button.
    A screen like the following will appear:

  4. Fill in the parameters in the form:

    • Name - the name of the webhook. This will be used as an identifier for the webhook configuration.

    • Methods - the HTTP method (or methods) to bind the webhook to.

    • Script - SIL™ script that will run when calling this webhook.

    • Synchronized - the sync/async configuration for the webhook.

  5. Save the configuration. After you save  the configuration, a new entry like the following one will show up:

    The URI column in the table will help you run your newly created webhook. For example if your Confluence installation instance is located at http://localhost, you can run the webhook using the  http://localhost/rest/keplerrominfo/refapp/latest/webhooks/mysilwebhook/run address with the selected HTTP method(s).

Info

The difference between synchronous and asynchronous is that the asynchronous Webhook SIL call can't return any results or custom HTTP codes to the caller. This happens because the SIL script run task is added to a list of future tasks to be run, and the HTTP call ends.

With the synchronous option, the call will block until the SIL script run is completed, and the results will be returned to the caller.

You can access the webhook configured in this example image using the HTTP methods GET and POST. Changes are visible immediately and the webhook is ready immediately. If you configured the Webhook to be available for the GET HTTP method, you can test the webhook in the browser, giving it custom query parameters, and the result could look something like this (the above SIL script was used):

Webhooks Authentication

For the REST/HTTP client to be able to make any Webhooks calls, it needs to be authenticated into the Jira / Confluence instance.

Please refer to the Atlassian Security pages for information on the authentication:

  1. https://developer.atlassian.com/server/jira/platform/basic-authentication/

  2. https://developer.atlassian.com/cloud/confluence/basic-auth-for-rest-apis/

More About Webhooks

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "webhook_routine" and space = currentSpace ( )

Contents

Table of Contents
minLevel1
maxLevel2
We've encountered an issue exporting this macro. Please try exporting this page again later.