Back to all resources
Outbound Events Outbound Events Json

Kafka Outbound Events / Signal - Config

Create an Outbound Events configuration with a Kafka provider.

Kafka Outbound Events / Signal - Config

Steps to create the Outbound Events configuration in a project with Kafka as provider in Confluent.

Use case

One Outbound Events configuration can be set per project.

The configuration will send events to the defined providers through the designated routes each time a modification is made in the stipulated IKG section.

In this use case, a configuration is created to send a message each time a CRUD action is executed on any configuration node.

To know the supported filters, go to the Terraform plugin registry:

See more details

ikg

Requirements

- ServiceAccount credentials created in the IndyKite Hub for your organization.

- A valid API Key for a Confluent environment.

Steps

1. Create a topic on Confluent.

2. Create an Outbound Events configuration and a KBAC policy configuration.

3. Check that messages are received in the topic each time a CRUD action is executed on any configuration node (including any read action on Outbound Events).

Step 2

Create an EventSink configuration.

POST https://eu.api.indykite.com/configs/v1/event-sinksJson
{
  "project_id": "your_project_gid",
  "description": "description of eventsink",
  "display_name": "eventsink name",
  "name": "eventsink-name",
  "providers": {
    "provider-with-kafka": {
      "kafka": {
        "brokers": [
          "http://your-destination:9092"
        ],
        "disable_tls": false,
        "tls_skip_verify": false,
        "topic": "topic_signal",
        "username": "api_key",
        "password": "api_key_secret"
      }
    }
  },
  "routes": [
    {
      "provider_id": "provider-with-kafka",
      "event_type_key_values_filter": {
        "event_type": "indykite.audit.config.*"
      },
      "stop_processing": true,
      "display_name": "Configuration Audit Events"
    }
  ]
}

Create a simple Policy which designates the Person nodes who can drive a resource Car.

policy.jsonJson
{
  "meta": {
    "policy_version": "2.0-kbac"
  },
  "subject": {
    "type": "Person"
  },
  "actions": [
    "CAN_DRIVE"
  ],
  "resource": {
    "type": "Car"
  },
  "condition": {
    "cypher": "MATCH (subject:Person)-[:DRIVES]->(resource:Car)"
  }
}

ikg