> For the complete documentation index, see [llms.txt](https://motivlabs.gitbook.io/impulse-dev-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://motivlabs.gitbook.io/impulse-dev-manual/connectors/testing-controller/implementation.md).

# Implementation

## Basics

* Remember a connector could be a `source` or `destination` one. Each will need a set of configuration files (explained below) exported to `astro`

## Steps

* In your connector implement this interface: <https://github.com/motiv-labs/go-test-runner-destination/blob/main/destination-connector-tester.go>
* Create a binary and place it under the proper folder under impulse, for example:&#x20;

```bash
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -mod=mod -a -installsuffix cgo -o ../impulse/docker-tools/compose-template/connector-test/dotcms/destination/testRunnerDestination ./cmd/test-runner-destination
```

* Provide the configuration files under `astro`. For example for `dotCMS` + `source`  ([Github Link](https://github.com/motiv-labs/impulse/tree/master/docker-tools/compose-template/connector-test/dotcms/source)) the path would look like this: `impulse/docker-tools/compose-template/connector-test/dotcms/source`

  * *astro-config-extension.conf*: Property file for your testing binary.
  * *config.json*: Contains specific properties for each of the `ks-min` and `ks-max` types of testing.&#x20;
  * *content-mapping.json (optional)*: Content Mapper configuration, in order to work, the sync needs to have this file in both `source` and `destination`.
  * *docker-compose.yml*: Docker config for the tested system including the `transformer` and `adapter`.
  * *ks-max.sh*: curl commands to config system endpoints, taxis aand adapters for type `ks-max`
  * *ks-min.sh:* curl commands to config system endpoints, taxis aand adapters for type `ks-min`
