* feat(connectors): add source clickup api template
* feat(connectors/clickup-api): add /user and /team endpoint configs
* docs(clickup-connectors): add clickup source doc
* feat: add tasks stream and list stream to ClickUp API
* feat: add space stream and folder stream to clikcup api
* feat: update acceptance-test-config.yml w/ version in 0.2.12
459856b73c/airbyte-integrations/bases/source-acceptance-test (migrating-acceptance-test-configyml-to-latest-configuration-format)
* docs: add descripiton for optional configs fields
* fix: fix list.json schema
* fix: add ignore_fields to ignore changing value in full_refresh of acceptance-tests
* add clickup to source def
* auto-bump connector version
Co-authored-by: marcosmarxm <marcosmarxm@gmail.com>
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
Co-authored-by: Marcos Marx <marcosmarxm@users.noreply.github.com>
137 lines
3.6 KiB
YAML
137 lines
3.6 KiB
YAML
version: "0.1.0"
|
|
|
|
definitions:
|
|
schema_loader:
|
|
type: JsonSchema
|
|
file_path: "./source_clickup_api/schemas/{{ options['name'] }}.json"
|
|
singleSelector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_pointer: []
|
|
arraySelector:
|
|
type: RecordSelector
|
|
extractor:
|
|
type: DpathExtractor
|
|
field_pointer: [ "{{ options['name'] }}s" ]
|
|
requester:
|
|
type: HttpRequester
|
|
name: "{{ options['name'] }}"
|
|
http_method: "GET"
|
|
authenticator:
|
|
type: ApiKeyAuthenticator
|
|
header: "Authorization"
|
|
api_token: "{{ config['api_token'] }}"
|
|
paginator:
|
|
type: NoPagination
|
|
retriever:
|
|
type: SimpleRetriever
|
|
$options:
|
|
url_base: "https://api.clickup.com/api/v2"
|
|
name: "{{ options['name'] }}"
|
|
primary_key: "{{ options['primary_key'] }}"
|
|
|
|
streams:
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "user"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "/user"
|
|
paginator:
|
|
$ref: "*ref(definitions.paginator)"
|
|
record_selector:
|
|
$ref: "*ref(definitions.singleSelector)"
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "team"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "/team"
|
|
paginator:
|
|
$ref: "*ref(definitions.paginator)"
|
|
record_selector:
|
|
$ref: "*ref(definitions.arraySelector)"
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "list"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "folder/{{ config['folder_id'] }}/list"
|
|
paginator:
|
|
$ref: "*ref(definitions.paginator)"
|
|
record_selector:
|
|
$ref: "*ref(definitions.arraySelector)"
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "space"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "team/{{ config['team_id'] }}/space"
|
|
paginator:
|
|
$ref: "*ref(definitions.paginator)"
|
|
record_selector:
|
|
$ref: "*ref(definitions.arraySelector)"
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "folder"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "space/{{ config['space_id'] }}/folder"
|
|
paginator:
|
|
$ref: "*ref(definitions.paginator)"
|
|
record_selector:
|
|
$ref: "*ref(definitions.arraySelector)"
|
|
- type: DeclarativeStream
|
|
$options:
|
|
name: "task"
|
|
schema_loader:
|
|
$ref: "*ref(definitions.schema_loader)"
|
|
retriever:
|
|
$ref: "*ref(definitions.retriever)"
|
|
requester:
|
|
$ref: "*ref(definitions.requester)"
|
|
path: "list/{{ config['list_id'] }}/task"
|
|
record_selector:
|
|
$ref: "*ref(definitions.arraySelector)"
|
|
paginator:
|
|
type: DefaultPaginator
|
|
page_size_option:
|
|
inject_into: "request_parameter"
|
|
field_name: "page_size"
|
|
pagination_strategy:
|
|
type: "OffsetIncrement"
|
|
page_size: 1
|
|
page_token_option:
|
|
field_name: "page"
|
|
inject_into: "request_parameter"
|
|
|
|
|
|
|
|
check:
|
|
type: CheckStream
|
|
stream_names: ["user", "team", "space", "folder", "list", "task"]
|
|
|
|
|
|
|