apiVersion: siphon/v1
kind: ConnectorSpec
metadata: { key: acme, name: Acme, version: 1.0.0 }
connectionParams:
- { key: baseUrl, type: url, required: true }
- { key: apiKey, type: string, required: true, secret: true }
auth: { strategy: bearer_static, token: "{{ secrets.apiKey }}" }
defaults: { baseUrl: "{{ params.baseUrl }}" }
resources:
- key: deals
canonicalEntity: Deal
sync: { mode: full }
fetch:
id: list
path: /api/deals
pagination: { strategy: page, pageSize: 100, pageParam: page, stopWhen: { path: "$.hasNext", equals: false } }
extract: { recordsPath: "$.items", idPath: "$.id" }
transform:
engine: jsonata
expression: '{ "externalId": $string(id), "NAME": name, "AMOUNT": amount }'
output:
fields:
- { name: NAME, type: string }
- { name: AMOUNT, type: number }