---
title: Enable SimpCon Pull Producer
slug: enable-simpcon-pull-producer
docTags: 
createdAt: 2026-09-22T11:07:57.243Z
---

## Overview

This extension retrieves data from an external source system and publishes the data to a Data Streaming Service topic. The extension requires connection details for the source system, including the endpoint URL and authentication credentials. Optional filters, such as assignment groups and domain-separated company names, can be configured to limit the data processed by the extension.

The extension prevents unintended data reingestion after Kubernetes restarts by using a stored date and time offset. The extension compares the value of the DX\_ENV\_USER\_START\_DATETIME environment variable with the current UTC date and time.

- During a user-initiated start or restart, the stored value should be within one hour of the current UTC time.
- During an automatic Kubernetes restart, the environment variable typically contains a previously cached start time that is more than one hour old.
- The comparison helps prevent accidental reprocessing of data after an unexpected container restart.

:::hint{type="info"}
The extension assumes that both the user start date and time and the current date and time use UTC. The one-hour threshold might not be appropriate for all deployment environments and should be evaluated based on operational requirements.
:::

## Chainguard Migration

Starting with version 3.0.0, extensions created from this template use the Simplified Connectors framework running on a Chainguard-based Tomcat image.

## Platform Service Interactions

The extension transforms and forwards requests to the following Data Streaming Service topic:

:::BlockQuote
itil-xxxxx-source
:::

## Configure the Extension

The following environment variables must be provided to the container:

| Variable                                                           | Default       | Comments                                   |
| ------------------------------------------------------------------ | ------------- | ------------------------------------------ |
| DX\_ENV\_ENVIRONMENT (string)                                      |               | The type of environment the extension      |
| is running in: LOCAL, DEV, or PROD                                 |               |                                            |
| DX\_ENV\_PV\_MOUNT (string)                                        | /var/lib/misc | The path where the extension               |
| state (state.properties) will be deployed on, always /var/lib/misc |               |                                            |
| DX\_ENV\_OU\_KEY (string)                                          |               | OU Tenant Key                              |
| DX\_ENV\_OU\_BAC\_ID (string)                                      |               | BAC id of the client                       |
| DX\_ENV\_OU\_ES\_INSTANCE (string)                                 |               | The Elasticearch instance the messages     |
| are supposed to go to on the Consumer side                         |               |                                            |
| DX\_EXT\_CDI\_TOOL\_SOURCE (string)                                |               | Client Tool Mapping value                  |
| DX\_EXT\_CDI\_CUSTOMERCODE (string)                                |               | Client Tool Mapping value                  |
| DX\_EXT\_SOURCE\_QUERY\_URL (string)                               |               | SMT URL to query for ticket state          |
| DX\_EXT\_SOURCE\_USER (string)                                     |               | SMT Username used for Basic Authentication |
| DX\_EXT\_SOURCE\_PW (string)                                       |               | SMT Password used for Basic Authentication |

## Results from Execution

The extension retrieves data from ServiceNow and publishes the data to a Data Streaming Service Kafka topic. Because the extension processes data asynchronously, no application-level response code is returned.

The extension:

- Processes messages in batches at intervals defined by the configured environment variables.
- Runs continuously as a containerized application.
- Uses Kubernetes liveness and readiness probes to report runtime health status.

## How the extension works

This application is a Simplified Connector Producer designed to run as an extension instance in the Integrated Artificial Intelligence for IT Operations platform. The application runs as a container in Kubernetes and follows a producer workflow that retrieves records from the source system and publishes them to a Data Streaming Service topic

## Deploy the extension

The extension is intended for deployment and configuration through the Integrated Artificial Intelligence for IT Operations user interface for a specific Organizational Unit (OU) or Compute Zone.

:::hint{type="info"}
Local execution is intended only for developers who are familiar with the extension codebase.
:::

## Run the extension locally

**Build the container image**

1. Open a terminal session.
2. Navigate to the extension directory.

:::BlockQuote{indent="1"}
cd \<extension\_path>
:::

**Build the docker image**

:::BlockQuote
docker build -t simpcon-pull-producer:1.0.0 -f ./deployment/Dockerfile
:::

**Start the container**

Run the container and provide the required environment variables.

:::BlockQuote
docker run --rm \\
\--network host \\
-itd \\
-p 8080:8080 \\
-e DX\_ENV\_ENVIRONMENT=LOCAL \\
-e DX\_ENV\_PV\_MOUNT=/var/lib/misc \\
-e DX\_ENV\_OU\_KEY=098a759b1e7c.1 \\
-e DX\_ENV\_OU\_BAC\_ID=BAC0000BF2 \\
-e DX\_ENV\_OU\_ES\_INSTANCE=es.was1 \\
-e DX\_EXT\_CDI\_TOOL\_SOURCE=SNOW-extsvc \\
-e DX\_EXT\_CDI\_CUSTOMERCODE=id1 \\
-e DX\_EXT\_SOURCE\_QUERY\_URL=[https://dev.service-now.com/api/now/table/incident](https://dev.service-now.com/api/now/table/incident) \\
-e DX\_EXT\_SOURCE\_USER=\<source\_username> \\
-e DX\_EXT\_SOURCE\_PW=\<source\_password> \\
simpcon-producer:1.0.0
:::

## Monitor the container

**View running containers**

:::BlockQuote
docker ps
:::

**View container logs**

:::BlockQuote
docker logs \<container\_id> | less
:::

**Troubleshoot the container**

1. Identify the container ID.

:::BlockQuote{indent="1"}
docker ps
:::

2. Open a shell session in the container.

:::BlockQuote{indent="1"}
docker exec -it \<container\_id> /bin/bash
:::

## Support

The Extensions Development Team owns and maintains this extension.
