Skip to content

Quick start

Stand up a connector identity, one Modbus source, and a default DSL transform, then watch records flow through the canvas UI.

Updated View as Markdown

Put this in config.yaml: a connector identity, one Modbus source, and a default DSL transform.

connector:
  name: "shop-floor-pilot"
  push_endpoint: "https://your-opexmx-app.example.com/api/inbound-webhooks/receive/${CONNECTOR_WEBHOOK_TOKEN}"
  hmac_secret: "${CONNECTOR_HMAC_SECRET}"
  health_check_port: 3000

adapters:
  modbus:
    enabled: true
    devices:
      - id: "fanuc-01"
        host: "192.168.1.10"
        port: 502
        registers:
          - { address: 100, name: "status", type: "uint16", mapping: "state" }
          - { address: 103, name: "spindle_rpm", type: "uint16", mapping: "spindleSpeed" }

transform:
  enabled: true
  default:
    backend: "dsl"
    script_inline: |
      when metadata.temp > 80 || metadata.vib > 5.0
      set metadata.alert = metadata.temp > 80 || metadata.vib > 5.0
export CONNECTOR_HMAC_SECRET=change-me
export CONNECTOR_WEBHOOK_TOKEN=your-webhook-token
./target/release/opex-flow config.yaml

Open the flow editor at http://localhost:3000. On first run the connector generates an API token (stored in <data_dir>/api_token, the path is logged) that the UI asks for; see Security. Every polled record now runs through the DSL before fanning out to your sinks. On first start the transform: section above seeds the flow on the canvas (a banner says so); change it there and press Deploy, see the flow editor.

Next, press Examples at the foot of the palette: thirteen working flows for the plant and the business, each added to your draft as new tabs with a mock for whatever outside system it calls. See Example flows.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close