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]
}
}
}