Get Notified for Installations of Your Applications in a Provet Organisation

Every time a new client registers to use an integration — i.e. chooses it from the integration catalogue in Provet (Add Application) — unique client credentials are sent to the integration provider. There are two options for notifying a provider of a new client registration, which can be chosen when creating an integration template:

  • Email — suitable when the integration is used on only one Provet instance. The person receiving the email can then configure the authentication details and start using the integration.

  • Hookup URL — recommended when the integration is widely used. Enables fully automated handling of new client registrations without human interaction.

Hookup URL

A hookup URL listens for automated notifications of new clients. When a new client adds the integration in Provet, the orchestration tool automatically sends a JSON message to that URL. The integration can then parse the new client’s credentials from the message and add them to its client table.

JSON Schema for New Integration Registrations

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": [
    "provet_id",
    "client_id",
    "client_secret",
    "algorithm",
    "authorization_grant_type",
    "client_type",
    "redirect_uris",
    "token_url",
    "authorize_url",
    "openid_autodiscovery_url"
  ],
  "properties": {
    "provet_id": {
      "type": "number",
      "description": "Provet ID of the tenant who added this integration."
    },
    "client_id": {
      "type": "string"
    },
    "client_secret": {
      "type": ["null", "string"]
    },
    "algorithm": {
      "type": ["null", "string"],
      "description": "Signing algorithm used.",
      "examples": [null, "HS256", "RS256"]
    },
    "authorization_grant_type": {
      "type": "string",
      "description": "Authorization flow used.",
      "examples": ["authorization_code", "client_credentials"]
    },
    "client_type": {
      "type": "string",
      "description": "Client type.",
      "examples": ["confidential", "public"]
    },
    "redirect_uris": {
      "type": "string",
      "description": "Space-separated list of callback URIs.",
      "examples": ["https://example.com/callback"]
    },
    "token_url": {
      "type": "string",
      "description": "OAuth2.0 token endpoint URL."
    },
    "authorize_url": {
      "type": "string",
      "description": "OAuth2.0 authorize endpoint URL."
    },
    "openid_autodiscovery_url": {
      "type": ["null", "string"],
      "description": "OpenID autodiscovery URL. Null if integration does not use OpenID."
    },
    "departments": {
      "type": "array",
      "items": { "type": "integer" },
      "description": "Array of department IDs that have enabled this integration.",
      "examples": [[1, 2, 3]]
    },
    "added_department": {
      "type": "integer",
      "description": "ID of the department that enabled this integration.",
      "examples": [3]
    },
    "removed_department": {
      "type": "integer",
      "description": "ID of the department that disabled this integration.",
      "examples": [3]
    }
  }
}