Skip to main content

Django plugin for Zato

Project description

django-zato-plugin

A client library for invoking Zato services from Django applications.

Zato is an integration platform that orchestrates and automates connections to APIs, databases, queues, and other systems.

Learn more here: https://zato.io

With this plugin, Django delegates integration work to Zato - your views call Zato services, Zato handles the rest. Less code in Django, all integrations in one place.

Installation

pip install django-zato-plugin

Configuration

Add to your Django settings:

ZATO_URL = 'http://localhost:17010/zato/api/invoke/django/{}'
ZATO_USERNAME = 'django'
ZATO_PASSWORD = 'password' # Use your Zato password, e.g. from the Zato_Password env. variable

API

The client exposes one method:

response = client.invoke(service, data=None, request=None)

  • service - name of the Zato service to invoke (string)
  • data - request data to send (dict or None)
  • request - optional Django request for context propagation (headers like X-Zato-User, X-Zato-Correlation-Id, X-Zato-Forwarded-For)

Returns the response from the Zato service as a dict.

Usage

Let's say you have a frontend with a cybersecurity automation UI and you want to invoke a couple of backend services using JSON.

Here's how it would look like:

# views.py
from django.http import JsonResponse
from django_zato import client

def block_ip(request):

    # Extract the request ..
    ip_address = request.POST['ip_address']
    reason = request.POST['reason']

    # .. block on firewall and get the response ..
    firewall_response = client.invoke('firewall.block-ip', {'ip_address': ip_address})
    rule_id = firewall_response['rule_id']

    # .. log incident in SIEM ..
    siem_response = client.invoke('siem.log-incident', {
        'ip_address': ip_address,
        'reason': reason,
        'action': 'blocked',
        'firewall_rule_id': rule_id,
    })

    # .. Extract the response from SIEM ..
    incident_id = siem_response['incident_id']

    # .. and return the response to the frontend.
    return JsonResponse({
        'status': 'ok',
        'firewall_rule_id': rule_id,
        'siem_incident_id': incident_id,
    })

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_zato_plugin-4.1.6.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_zato_plugin-4.1.6-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file django_zato_plugin-4.1.6.tar.gz.

File metadata

  • Download URL: django_zato_plugin-4.1.6.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_zato_plugin-4.1.6.tar.gz
Algorithm Hash digest
SHA256 e7506497f05e47fbd4e4315c47c2c889a49ca15806191a1255107bcd31cd09fd
MD5 244e7f9be252368d53b07bc38f9ebf76
BLAKE2b-256 224ea9539b7b8280c0e46b4bb8c1ce5cfd1641dba5c513926e62f807af2bbaf0

See more details on using hashes here.

File details

Details for the file django_zato_plugin-4.1.6-py3-none-any.whl.

File metadata

  • Download URL: django_zato_plugin-4.1.6-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_zato_plugin-4.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d04839533c518de8990621b4fe65f5d9450d10119f7996c5f6d86474d7a737c9
MD5 948c34e26d60179a0a94223d979eabc5
BLAKE2b-256 a0e0888d2ec9b98ff08716c063bf2c36271449fd272ce22042097daa91721a3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page