Zetect Usage Guide Connector GuideSwitch portal ⇄

Test

There's no publish step — you test a connector the same way you'll ever run it: drop the built JAR into a running agent's connectors directory and restart it. No image build, no registry.

Build and drop the JAR

  1. Build it: mvn clean package -DskipTests → target/cyiam-connector-<name>-<version>.jar.
  2. Find the agent's connectors directory — set by CYIAM_CONNECTORS_DIR (defaults to /opt/cyiam-agent/connectors in the packaged Docker image, ./connectors when running the JAR directly).
  3. Copy your JAR there: cp target/cyiam-connector-<name>-<version>.jar <connectors-dir>/ — or, if the agent runs in a container without that directory bind-mounted from the host, docker cp target/cyiam-connector-<name>-<version>.jar <agent-container>:/opt/cyiam-agent/connectors/.
  4. Restart the agent. PluginLoader only scans the connectors directory at startup, not on file changes.
  5. Confirm it loaded: check the agent's log for Registered connector '<Name>' from cyiam-connector-<name>-<version>.jar, and that it appears in the following Plugin loading complete summary.

Send a test command and watch it flow

A real ConnectorCommand arrives on agent.<tenantId>.import.inbound (IDENTITY_SYNC) or agent.<tenantId>.prov.inbound (everything else). The agent log shows the whole round trip:

14

If a request fails before reaching your connector code — no connector log line between "Dispatching" and "Published ... status=ERROR" — it's a validation early-return (missing field, unresolvable connectionInfo), not an exception. See connector-requests-responses for the required fields per action.

17

Then re-check the Registered connector log line for the exact filename+version — it's the only reliable signal of what's actually loaded.