Skip to Content
Menu

Cetmix Tower Webhook

by
Odoo
v 16.0 Third Party 1
Download for v 16.0 Deploy on Odoo.sh
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Community Apps Dependencies
Lines of code 15800
Technical Name cetmix_tower_webhook
LicenseAGPL-3
Websitehttps://tower.cetmix.com
You bought this module and need support? Click here!

Cetmix Tower Webhook

Beta License: AGPL-3 cetmix/cetmix-tower

This module implements incoming webhooks for Cetmix Tower. Webhooks are authorised using customisable authenticators which can be pre-configured and reused across multiple webhooks. Webhooks and authenticators can be exported and imported using YAML format, which makes them easily sharable.

This module is a part of Cetmix Tower, however it can be used to manage any other odoo applications.

Please refer to the official documentation for detailed information.

Table of contents

Use Cases / Context

Although Odoo has native support of webhooks staring 17.0, they still have some limitations. Another option is the OCA ‘endpoint’ module which although is more flexible still makes it usable with Cetmix Tower more complicated.

Configuration

Configure an Authenticator

⚠️ WARNING: You must be a member of the “Cetmix Tower/Root” group to configure authenticators.

  • Go to “Cetmix Tower > Settings > Automation > Webhook Authenticators” and click “New”.

Complete the following fields:

  • Name. Authenticator name
  • Reference. Unique reference. Leave this field blank to auto generate it
  • Code. Code that is used to authenticate the request. You can use all Cetmix Tower - Python command variables except for the server​ plus the following webhook specific ones:
  • headers: dictionary that contains the request headers
  • raw_data: string with the raw HTTP request body
  • payload: dictionary that contains the JSON payload or the GET parameters of the request

The code returns the result​ variable in the following format:

result = {"allowed": <bool, mandatory, default=False>, "http_code": <int, optional>, "message": <str, optional>}

eg:

result = {"allowed": True}
result = {"allowed": False, "http_code": 403, "message": "Sorry..."}

Configure a Webhook

⚠️ WARNING: You must be a member of the “Cetmix Tower/Root” group to configure webhooks.

  • Go to “Cetmix Tower > Settings > Automation > Webhooks” and click “New”.

Complete the following fields:

  • Enabled. Uncheck this field to disable the webhook without deleting it
  • Name. Authenticator name
  • Reference. Unique reference. Leave this field blank to auto generate it
  • Authenticator. Select an Authenticator used for this webhook
  • Endpoint. Webhook andpoint. The complete webhook URL will be <your_tower_url>/cetmix_tower_webhooks/​
  • Run as User. Select a user to run the webhook on behalf of. CAREFUL! You must realize and understand what you are doing, including all the possible consequences when selecting a specific user.
  • Code. Code that processes the request. You can use all Cetmix Tower Python command variables (except for the server) plus the following webhook-specific one:
    • headers: dictionary that contains the request headers
    • payload: dictionary that contains the JSON payload or the GET parameters of the request

Webhook code returns a result using the Cetmix Tower Python command pattern:

result = {"exit_code": <int, default=0>, "message": <string, default=None}

To configure the time for which the webhook call logs are stored:

  • Go to “Cetmix Tower > Settings > General Settings”
  • Put a number of days into the “Keep Webhook Logs for (days)” field. Default value is 30.

Please refer to the official documentation for detailed configuration instructions.

Usage

When a request is received, Cetmix Tower will search for the webhook with the matching endpoint and authenticate the request using the selected authenticator. In case of successful authentication webhook code is run. Each webhook call is logged. Logs are available under the “Cetmix Tower > Logs > Webhook Calls” menu or under the “Logs” button directly in the Webhook.

Please refer to the official documentation for detailed usage instructions.

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

Credits

Authors

  • Cetmix

Maintainers

This module is part of the cetmix/cetmix-tower project on GitHub.

You are welcome to contribute.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.