You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When this tap is used with Meltano, the settings defined in `meltano.yml` must stay in sync with the `config_jsonschema` in the tap class. Configuration drift between these two sources causes confusion and runtime errors.
220
+
221
+
**When to sync:**
222
+
223
+
- Adding new configuration properties to the tap
224
+
- Removing or renaming existing properties
225
+
- Changing property types, defaults, or descriptions
226
+
- Marking properties as required or secret
227
+
228
+
**How to sync:**
229
+
230
+
1. Update `config_jsonschema` in `tap_greenhouse/tap.py`
231
+
1. Update the corresponding `settings` block in `meltano.yml`
232
+
1. Update `.env.example` with the new environment variable
th.Property("batch_size", th.IntegerType, default=100), # New setting
242
+
).to_dict()
243
+
```
244
+
245
+
```yaml
246
+
# meltano.yml
247
+
plugins:
248
+
extractors:
249
+
- name: tap-greenhouse
250
+
settings:
251
+
- name: api_url
252
+
kind: string
253
+
- name: api_key
254
+
kind: string
255
+
sensitive: true
256
+
- name: batch_size # New setting
257
+
kind: integer
258
+
value: 100
259
+
```
260
+
261
+
```bash
262
+
# .env.example
263
+
TAP_GREENHOUSE_API_URL=https://api.example.com
264
+
TAP_GREENHOUSE_API_KEY=your_api_key_here
265
+
TAP_GREENHOUSE_BATCH_SIZE=100 # New setting
266
+
```
267
+
268
+
**Setting kind mappings:**
269
+
270
+
| Python Type | Meltano Kind |
271
+
|-------------|--------------|
272
+
|`StringType`|`string`|
273
+
|`IntegerType`|`integer`|
274
+
|`BooleanType`|`boolean`|
275
+
|`NumberType`|`number`|
276
+
|`DateTimeType`|`date_iso8601`|
277
+
|`ArrayType`|`array`|
278
+
|`ObjectType`|`object`|
279
+
280
+
Any properties with `secret=True` should be marked with `sensitive: true` in `meltano.yml`.
281
+
282
+
**Best practices:**
283
+
284
+
- Always update all three files (`tap.py`, `meltano.yml`, `.env.example`) in the same commit
285
+
- Use the same default values in all locations
286
+
- Keep descriptions consistent between code docstrings and `meltano.yml``description` fields
287
+
288
+
> **Note:** This guidance is consistent with target and mapper templates in the Singer SDK. See the [SDK documentation](https://sdk.meltano.com) for canonical reference.
289
+
203
290
### Common Pitfalls
204
291
205
292
1.**Rate Limiting**: Implement backoff using `RESTStream` built-in retry logic
0 commit comments