-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
Copy pathmanifest.yaml
102 lines (99 loc) · 2.81 KB
/
manifest.yaml
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
version: "0.29.0"
definitions:
schema_loader:
type: JsonFileSchemaLoader
file_path: "./source_monday/schemas/{{ parameters['name'] }}.json"
selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- "data"
- "{{ parameters['name'] }}"
requester:
type: CustomRequester
class_name: "source_monday.MondayGraphqlRequester"
url_base: "https://api.monday.com/v2"
http_method: "GET"
authenticator:
type: BearerAuthenticator
api_token: "{{ config['credentials']['api_token'] if config['credentials']['auth_type'] == 'api_token' else config['credentials']['access_token'] if config['credentials']['auth_type'] == 'oauth2.0' else config.get('api_token', '') }}"
limit: "{{ parameters['items_per_page'] }}"
error_handler:
type: "DefaultErrorHandler"
response_filters:
- predicate: "{{ 'error_code' in response and response['error_code'] == 'ComplexityException' }}"
action: RETRY
backoff_strategies:
- type: ConstantBackoffStrategy
backoff_time_in_seconds: 60
default_paginator:
type: "DefaultPaginator"
pagination_strategy:
type: "PageIncrement"
start_from_page: 1
page_size: 100
retriever:
record_selector:
$ref: "#/definitions/selector"
requester:
$ref: "#/definitions/requester"
paginator:
$ref: "#/definitions/default_paginator"
base_stream:
retriever:
$ref: "#/definitions/retriever"
schema_loader:
$ref: "#/definitions/schema_loader"
primary_key: "id"
base_nopagination_stream:
retriever:
$ref: "#/definitions/retriever"
paginator:
type: NoPagination
items_stream:
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
record_selector:
type: RecordSelector
extractor:
field_path: ["data", "boards", "*", "items", "*"]
paginator:
$ref: "#/definitions/default_paginator"
pagination_strategy:
$ref: "#/definitions/default_paginator/pagination_strategy"
page_size: 1
$parameters:
name: "items"
path: ""
items_per_page: 1
boards_stream:
$ref: "#/definitions/base_stream"
$parameters:
name: "boards"
path: ""
teams_stream:
$ref: "#/definitions/base_nopagination_stream"
$parameters:
name: "teams"
path: ""
updates_stream:
$ref: "#/definitions/base_stream"
$parameters:
name: "updates"
path: ""
users_stream:
$ref: "#/definitions/base_stream"
$parameters:
name: "users"
path: ""
streams:
- "#/definitions/items_stream"
- "#/definitions/boards_stream"
- "#/definitions/teams_stream"
- "#/definitions/updates_stream"
- "#/definitions/users_stream"
check:
stream_names:
- "users"