Skip to content

Commit

Permalink
source-monday: new connector
Browse files Browse the repository at this point in the history
This is a new connector for Monday.com. The
requirements for this connector are
to incorporate the following streams:

- Boards
- Items
- Tags
- Teams
- Users

The connector will be able to perform full
refreshes and incremental updates on `Boards`
and `Items` using the Activity Log.
The rest are full refresh.

Monday's API is GraphQL-based, which comes with
complexity and rate limits. To combat this we do
not select all fields in the GraphQL query, but
instead only select a smaller subset. The streams
are in full parity with the fields that Airbytes
Monday source connector has. We can easily add
additional fields or streams if needed later.

Monday's Activity Logs do not capture all possible
events. The one event we know of now is renaming
a subitem. This event is not captured and therefore
will not be reflected in the incremental updates.
However, there are CDK improvements being worked
that will support scheduled backfills which can
be used to schedule backfills for the stream.

The connector supports API Access tokens as the
authentication method. The Monday OAuth2 app
will be set up and submitted to Monday for review
so that OAuth2 can be usesd for authentication in
the future.
  • Loading branch information
= authored and JustinASmith committed Feb 24, 2025
1 parent d8ef392 commit 6d738c8
Show file tree
Hide file tree
Showing 21 changed files with 4,058 additions and 0 deletions.
41 changes: 41 additions & 0 deletions source-monday/acmeCo/boards.schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
$defs:
Meta:
properties:
op:
default: u
description: "Operation type (c: Create, u: Update, d: Delete)"
enum:
- c
- u
- d
title: Op
type: string
row_id:
default: -1
description: "Row ID of the Document, counting up from zero, or -1 if not known"
title: Row Id
type: integer
title: Meta
type: object
additionalProperties: true
properties:
_meta:
$ref: "#/$defs/Meta"
default:
op: u
row_id: -1
description: Document metadata
id:
title: Id
type: string
updated_at:
format: date-time
title: Updated At
type: string
required:
- id
- updated_at
title: IncrementalResource
type: object
x-infer-schema: true
22 changes: 22 additions & 0 deletions source-monday/acmeCo/flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
collections:
acmeCo/boards:
schema: boards.schema.yaml
key:
- /id
acmeCo/items:
schema: items.schema.yaml
key:
- /id
acmeCo/tags:
schema: tags.schema.yaml
key:
- /_meta/row_id
acmeCo/teams:
schema: teams.schema.yaml
key:
- /_meta/row_id
acmeCo/users:
schema: users.schema.yaml
key:
- /_meta/row_id
41 changes: 41 additions & 0 deletions source-monday/acmeCo/items.schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
$defs:
Meta:
properties:
op:
default: u
description: "Operation type (c: Create, u: Update, d: Delete)"
enum:
- c
- u
- d
title: Op
type: string
row_id:
default: -1
description: "Row ID of the Document, counting up from zero, or -1 if not known"
title: Row Id
type: integer
title: Meta
type: object
additionalProperties: true
properties:
_meta:
$ref: "#/$defs/Meta"
default:
op: u
row_id: -1
description: Document metadata
id:
title: Id
type: string
updated_at:
format: date-time
title: Updated At
type: string
required:
- id
- updated_at
title: IncrementalResource
type: object
x-infer-schema: true
31 changes: 31 additions & 0 deletions source-monday/acmeCo/tags.schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
$defs:
Meta:
properties:
op:
default: u
description: "Operation type (c: Create, u: Update, d: Delete)"
enum:
- c
- u
- d
title: Op
type: string
row_id:
default: -1
description: "Row ID of the Document, counting up from zero, or -1 if not known"
title: Row Id
type: integer
title: Meta
type: object
additionalProperties: true
properties:
_meta:
$ref: "#/$defs/Meta"
default:
op: u
row_id: -1
description: Document metadata
title: FullRefreshResource
type: object
x-infer-schema: true
31 changes: 31 additions & 0 deletions source-monday/acmeCo/teams.schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
$defs:
Meta:
properties:
op:
default: u
description: "Operation type (c: Create, u: Update, d: Delete)"
enum:
- c
- u
- d
title: Op
type: string
row_id:
default: -1
description: "Row ID of the Document, counting up from zero, or -1 if not known"
title: Row Id
type: integer
title: Meta
type: object
additionalProperties: true
properties:
_meta:
$ref: "#/$defs/Meta"
default:
op: u
row_id: -1
description: Document metadata
title: FullRefreshResource
type: object
x-infer-schema: true
31 changes: 31 additions & 0 deletions source-monday/acmeCo/users.schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
$defs:
Meta:
properties:
op:
default: u
description: "Operation type (c: Create, u: Update, d: Delete)"
enum:
- c
- u
- d
title: Op
type: string
row_id:
default: -1
description: "Row ID of the Document, counting up from zero, or -1 if not known"
title: Row Id
type: integer
title: Meta
type: object
additionalProperties: true
properties:
_meta:
$ref: "#/$defs/Meta"
default:
op: u
row_id: -1
description: Document metadata
title: FullRefreshResource
type: object
x-infer-schema: true
19 changes: 19 additions & 0 deletions source-monday/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
credentials:
credentials_title: Private App Credentials
access_token_sops: ENC[AES256_GCM,data:Ui0iAumXNNh29kOHwfID+3f5TsJ/N6ui7pR5m4wvO2juZj/RjJ40aaS+Y0ggmIoI9PTaMf8CFyoIhmcBTILis2cOFzQ9Wi0F120pI+fDqZbuHa58LHaDAn0w8Xu89VyBN5PTFHkhquvJeTSmvw1ZN5u+VDv7xueOqi4T3+XngEAOgykj6v8aZI8MBU856w1hb6r1qrsIO4vrHsfqeh/EDJp7kwFRcYXAqrNkUFdWcMZqXNXZT2qeuXa5sKKsoX5gsy3/T41oxuBQQcL85yW/y7TNqyLgYyxZrohm+bpdnbhn9yHECBDylhlxWEsWww/c+BWhmByaAlEWh3nFq/CtVVzFiu3zxtTAM5zUvG7fIFMWQsNyvMHW5wQPqe9tJpRlIHLkd0PTBQsAW5AXzU5FSXn0mLFi0uNIlbouuhWv5UzO0gwqjxfvmg==,iv:YMGskK2HaRLDb1bHiz8hhbTklovwtyBmBE4etG7VbE4=,tag:68TDb2RQsp7uZ+ya1e+0+Q==,type:str]
advanced:
limit: 5
sops:
kms: []
gcp_kms:
- resource_id: projects/estuary-theatre/locations/us-central1/keyRings/connector-keyring/cryptoKeys/connector-repository
created_at: "2025-02-24T14:54:10Z"
enc: CiQAdmEdwiUz2CBgjozzZ+kI6mdPPHJG78GFgZYD4nzyLyAaKBMSSQCtUdBGWueL8OoOPv0OZZCxgyA+GvyP2EEF0pjlk7hDFzZ2dwzntv9ENrhIYKTFm3o5JuzxTuS/UcISWzFUoVLYe+Nylj4sbug=
azure_kv: []
hc_vault: []
age: []
lastmodified: "2025-02-24T14:54:11Z"
mac: ENC[AES256_GCM,data:nQS6I62N9We4MXBQSE8zs4HsTo0Tja6NtvF8FGP9bJ4yVMYpdYgxsvGh9VrSDax3jCZa3hU2T9j8LpdJGZh6joAdAwyzoHWnBwTPHaX0GphSqL+GteSuwPuMTFVVQvpKQZuqm96W2VkPzBlGiq55M1v4N4Fl+pChXKpvDH4JJGM=,iv:RqRrnm1V20PviKAGGBCVDMiDSYXyL+9mgMkvRu9s5GA=,tag:RgZV64TlYh6UfKjZm7Q6aA==,type:str]
pgp: []
encrypted_suffix: _sops
version: 3.9.4
Loading

0 comments on commit 6d738c8

Please sign in to comment.