This repository was archived by the owner on Apr 16, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
220 lines (208 loc) · 5.85 KB
/
Copy pathconfig.example.yaml
File metadata and controls
220 lines (208 loc) · 5.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
providers:
stripe:
mode: webhook
secret: ${STRIPE_WEBHOOK_SECRET}
github:
mode: webhook
secret: ${GITHUB_WEBHOOK_SECRET}
events: ["push", "pull_request", "issues", "release"]
hubspot:
mode: webhook+poll
app_id: ${HUBSPOT_APP_ID}
client_secret: ${HUBSPOT_CLIENT_SECRET}
api_key: ${HUBSPOT_API_KEY}
base_url: https://api.hubapi.com
token_url: ${HUBSPOT_TOKEN_URL}
client_id: ${HUBSPOT_CLIENT_ID}
refresh_token: ${HUBSPOT_REFRESH_TOKEN}
objects: ["deals", "contacts", "companies", "tickets"]
query_per_page: 100
poll_interval: 60s
poll_rate_limit_per_sec: 4
poll_burst: 1
poll_max_pages: 200
poll_max_requests: 400
poll_failure_budget: 6
poll_circuit_break_duration: 45s
poll_jitter_ratio: 0.15
tenants:
tenant-a:
secret: ${HUBSPOT_TENANT_A_WEBHOOK_SECRET}
access_token: ${HUBSPOT_TENANT_A_ACCESS_TOKEN}
refresh_token: ${HUBSPOT_TENANT_A_REFRESH_TOKEN}
poll_interval: 30s
poll_rate_limit_per_sec: 8
poll_burst: 2
poll_max_pages: 100
poll_max_requests: 200
poll_failure_budget: 8
poll_circuit_break_duration: 60s
poll_jitter_ratio: 0.25
salesforce:
mode: poll
base_url: ${SALESFORCE_BASE_URL}
access_token: ${SALESFORCE_ACCESS_TOKEN}
token_url: ${SALESFORCE_TOKEN_URL}
client_id: ${SALESFORCE_CLIENT_ID}
client_secret: ${SALESFORCE_CLIENT_SECRET}
refresh_token: ${SALESFORCE_REFRESH_TOKEN}
api_version: v59.0
objects: ["Opportunity"]
query_per_page: 200
poll_interval: 60s
poll_rate_limit_per_sec: 4
poll_burst: 1
poll_max_pages: 200
poll_max_requests: 400
poll_failure_budget: 5
poll_circuit_break_duration: 30s
poll_jitter_ratio: 0.1
quickbooks:
mode: poll
base_url: https://quickbooks.api.intuit.com
access_token: ${QBO_ACCESS_TOKEN}
token_url: ${QBO_TOKEN_URL}
client_id: ${QBO_CLIENT_ID}
client_secret: ${QBO_CLIENT_SECRET}
refresh_token: ${QBO_REFRESH_TOKEN}
realm_id: ${QBO_REALM_ID}
objects: ["Customer"]
query_per_page: 100
poll_interval: 120s
poll_rate_limit_per_sec: 4
poll_burst: 1
poll_max_pages: 200
poll_max_requests: 400
poll_failure_budget: 5
poll_circuit_break_duration: 30s
poll_jitter_ratio: 0.1
notion:
mode: poll
base_url: https://api.notion.com
access_token: ${NOTION_TOKEN}
token_url: ${NOTION_TOKEN_URL}
client_id: ${NOTION_CLIENT_ID}
client_secret: ${NOTION_CLIENT_SECRET}
refresh_token: ${NOTION_REFRESH_TOKEN}
query_per_page: 100
poll_interval: 120s
poll_rate_limit_per_sec: 4
poll_burst: 1
poll_max_pages: 200
poll_max_requests: 400
poll_failure_budget: 5
poll_circuit_break_duration: 30s
poll_jitter_ratio: 0.1
linear:
mode: webhook
secret: ${LINEAR_WEBHOOK_SECRET}
shopify:
mode: webhook
secret: ${SHOPIFY_WEBHOOK_SECRET}
nats:
url: nats://localhost:4222
stream: SIPHON
subject_prefix: siphon.tap
tenant_scoped_subjects: false
max_age: 168h
dedup_window: 2m
connect_timeout: 5s
reconnect_wait: 2s
max_reconnects: -1
publish_timeout: 5s
publish_max_retries: 3
publish_retry_backoff: 100ms
# Set one auth mode only: username/password, token, or creds_file.
username: ""
password: ""
token: ""
creds_file: ""
secure: false
insecure_skip_verify: false
ca_file: ""
cert_file: ""
key_file: ""
stream_replicas: 1
stream_storage: file
stream_discard: old
stream_max_consumers: 0
stream_max_msgs_per_subject: 0
stream_compression: none
stream_allow_msg_ttl: false
stream_max_msgs: 0
stream_max_bytes: 0
stream_max_msg_size: 0
clickhouse:
addr: clickhouse:9000
database: siphon
table: tap_events
username: default
password: ${CLICKHOUSE_PASSWORD}
secure: false
insecure_skip_verify: false
tls_server_name: ""
ca_file: ""
cert_file: ""
key_file: ""
dial_timeout: 5s
max_open_conns: 4
max_idle_conns: 2
conn_max_lifetime: 30m
batch_size: 500
flush_interval: 2s
consumer_name: tap_clickhouse_sink
consumer_fetch_batch_size: 100
consumer_fetch_max_wait: 500ms
consumer_ack_wait: 30s
consumer_max_ack_pending: 1000
consumer_max_deliver: 0
consumer_backoff: []
consumer_max_waiting: 0
consumer_max_request_max_bytes: 0
insert_timeout: 10s
retention_ttl: 8760h
vault:
# Optional. If set, any config string with `vault://path#key` is resolved at boot.
# `address` also defaults from VAULT_ADDR when omitted.
address: ${VAULT_ADDR}
namespace: ${VAULT_NAMESPACE}
# Supported: kubernetes, token
auth_method: kubernetes
# Used when auth_method=token. Falls back to VAULT_TOKEN when empty.
token: ${VAULT_TOKEN}
token_file: ""
# Used when auth_method=kubernetes.
kubernetes_role: siphon-runtime
kubernetes_mount_path: kubernetes
kubernetes_jwt_file: /var/run/secrets/kubernetes.io/serviceaccount/token
server:
port: 8080
base_path: /webhooks
read_timeout: 10s
write_timeout: 5s
shutdown_timeout: 10s
max_body_size: 1048576
admin_token: ${TAP_ADMIN_TOKEN}
admin_token_secondary: ${TAP_ADMIN_TOKEN_SECONDARY}
admin_token_read: ${TAP_ADMIN_TOKEN_READ}
admin_token_replay: ${TAP_ADMIN_TOKEN_REPLAY}
admin_token_cancel: ${TAP_ADMIN_TOKEN_CANCEL}
admin_replay_max_limit: 2000
admin_replay_job_ttl: 24h
admin_replay_job_max_jobs: 512
admin_replay_job_timeout: 5m
admin_replay_max_concurrent_jobs: 2
admin_replay_store_backend: memory
admin_replay_sqlite_path: ./data/tap-admin-replay.db
admin_replay_require_reason: false
admin_replay_reason_min_length: 12
admin_replay_max_queued_per_ip: 100
admin_replay_max_queued_per_token: 20
admin_rate_limit_per_sec: 5
admin_rate_limit_burst: 20
admin_allowed_cidrs: []
admin_mtls_required: false
admin_mtls_client_cert_header: X-Forwarded-Client-Cert
state:
backend: sqlite
sqlite_path: ./data/tap-state.db