diff --git a/airbyte-integrations/connectors/source-concord/README.md b/airbyte-integrations/connectors/source-concord/README.md
new file mode 100644
index 000000000000..fa87ae072030
--- /dev/null
+++ b/airbyte-integrations/connectors/source-concord/README.md
@@ -0,0 +1,39 @@
+# Concord
+This directory contains the manifest-only connector for `source-concord`.
+
+This is the setup for the Concord source which ingests data from the concord API.
+
+Concord turns contract data into financial insights. Sign, store and search unlimited contracts https://www.concord.app/
+
+In order to use this source, you must first create a concord account and log in. Then navigate to Automations -> Integrations -> Concord API -> Generate New Key to obtain your API key.
+
+The API is accessible from two environments, sandbox and production. You can learn more about the API here https://api.doc.concordnow.com/
+
+## Usage
+There are multiple ways to use this connector:
+- You can use this connector as any other connector in Airbyte Marketplace.
+- You can load this connector in `pyairbyte` using `get_source`!
+- You can open this connector in Connector Builder, edit it, and publish to your workspaces.
+
+Please refer to the manifest-only connector documentation for more details.
+
+## Local Development
+We recommend you use the Connector Builder to edit this connector.
+
+But, if you want to develop this connector locally, you can use the following steps.
+
+### Environment Setup
+You will need `airbyte-ci` installed. You can find the documentation [here](airbyte-ci).
+
+### Build
+This will create a dev image (`source-concord:dev`) that you can use to test the connector locally.
+```bash
+airbyte-ci connectors --name=source-concord build
+```
+
+### Test
+This will run the acceptance tests for the connector.
+```bash
+airbyte-ci connectors --name=source-concord test
+```
+
diff --git a/airbyte-integrations/connectors/source-concord/acceptance-test-config.yml b/airbyte-integrations/connectors/source-concord/acceptance-test-config.yml
new file mode 100644
index 000000000000..0a19a6c91ce9
--- /dev/null
+++ b/airbyte-integrations/connectors/source-concord/acceptance-test-config.yml
@@ -0,0 +1,17 @@
+# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
+# for more information about how to configure these tests
+connector_image: airbyte/source-concord:dev
+acceptance_tests:
+ spec:
+ tests:
+ - spec_path: "manifest.yaml"
+ connection:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ discovery:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ basic_read:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ incremental:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
+ full_refresh:
+ bypass_reason: "This is a builder contribution, and we do not have secrets at this time"
diff --git a/airbyte-integrations/connectors/source-concord/icon.svg b/airbyte-integrations/connectors/source-concord/icon.svg
new file mode 100644
index 000000000000..aed9fd3c32fa
--- /dev/null
+++ b/airbyte-integrations/connectors/source-concord/icon.svg
@@ -0,0 +1,15 @@
+
+
+
diff --git a/airbyte-integrations/connectors/source-concord/manifest.yaml b/airbyte-integrations/connectors/source-concord/manifest.yaml
new file mode 100644
index 000000000000..d884fa7a8108
--- /dev/null
+++ b/airbyte-integrations/connectors/source-concord/manifest.yaml
@@ -0,0 +1,1878 @@
+version: 5.15.0
+
+type: DeclarativeSource
+
+description: >-
+ This is the setup for the Concord source which ingests data from the concord
+ API.
+
+
+ Concord turns contract data into financial insights. Sign, store and search
+ unlimited contracts https://www.concord.app/
+
+
+ In order to use this source, you must first create a concord account and log
+ in. Then navigate to Automations -> Integrations -> Concord API -> Generate
+ New Key to obtain your API key.
+
+
+ The API is accessible from two environments, sandbox and production. You can
+ learn more about the API here https://api.doc.concordnow.com/
+
+check:
+ type: CheckStream
+ stream_names:
+ - agreements
+
+definitions:
+ streams:
+ agreements:
+ type: DeclarativeStream
+ name: agreements
+ primary_key:
+ - uid
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: organizations/{{stream_partition.parent_id}}/agreements
+ http_method: GET
+ request_headers:
+ organization: "{{ config[\"env\"] }}"
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: start
+ page_size_option:
+ type: RequestOption
+ field_name: limit
+ inject_into: request_parameter
+ pagination_strategy:
+ type: PageIncrement
+ page_size: 100
+ start_from_page: 0
+ inject_on_first_request: true
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ parent_key: id
+ partition_field: parent_id
+ stream:
+ $ref: "#/definitions/streams/user_organizations"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/agreements"
+ user_organizations:
+ type: DeclarativeStream
+ name: user_organizations
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: user/me/organizations
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - organizations
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/user_organizations"
+ organization:
+ type: DeclarativeStream
+ name: organization
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: organizations/{{stream_partition.parent_id}}
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ parent_key: id
+ partition_field: parent_id
+ stream:
+ $ref: "#/definitions/streams/user_organizations"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/organization"
+ folders:
+ type: DeclarativeStream
+ name: folders
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: organizations/{{stream_partition.parent_id}}/folders
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path: []
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ parent_key: id
+ partition_field: parent_id
+ stream:
+ $ref: "#/definitions/streams/user_organizations"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/folders"
+ reports:
+ type: DeclarativeStream
+ name: reports
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: organizations/{{stream_partition.parent_id}}/reports
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - reports
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: page
+ page_size_option:
+ type: RequestOption
+ field_name: numberOfItemsByPage
+ inject_into: request_parameter
+ pagination_strategy:
+ type: PageIncrement
+ start_from_page: 0
+ page_size: 100
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ parent_key: id
+ partition_field: parent_id
+ stream:
+ $ref: "#/definitions/streams/user_organizations"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/reports"
+ tags:
+ type: DeclarativeStream
+ name: tags
+ primary_key:
+ - id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: tags
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - tags
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/tags"
+ organization_members:
+ type: DeclarativeStream
+ name: organization_members
+ primary_key:
+ - user_id
+ retriever:
+ type: SimpleRetriever
+ requester:
+ $ref: "#/definitions/base_requester"
+ path: organizations/{{stream_partition.parent_id}}/members
+ http_method: GET
+ record_selector:
+ type: RecordSelector
+ extractor:
+ type: DpathExtractor
+ field_path:
+ - members
+ paginator:
+ type: DefaultPaginator
+ page_token_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: start
+ page_size_option:
+ type: RequestOption
+ inject_into: request_parameter
+ field_name: limit
+ pagination_strategy:
+ type: OffsetIncrement
+ page_size: 100
+ partition_router:
+ type: SubstreamPartitionRouter
+ parent_stream_configs:
+ - type: ParentStreamConfig
+ parent_key: id
+ partition_field: parent_id
+ stream:
+ $ref: "#/definitions/streams/user_organizations"
+ transformations:
+ - type: AddFields
+ fields:
+ - path:
+ - user_id
+ value: "{{ record['user']['id'] }}"
+ schema_loader:
+ type: InlineSchemaLoader
+ schema:
+ $ref: "#/schemas/organization_members"
+ base_requester:
+ type: HttpRequester
+ url_base: https://{{ config["env"] }}.concordnow.com/api/rest/1/
+ authenticator:
+ type: ApiKeyAuthenticator
+ api_token: "{{ config[\"api_key\"] }}"
+ inject_into:
+ type: RequestOption
+ field_name: X-API-KEY
+ inject_into: header
+
+streams:
+ - $ref: "#/definitions/streams/agreements"
+ - $ref: "#/definitions/streams/user_organizations"
+ - $ref: "#/definitions/streams/organization"
+ - $ref: "#/definitions/streams/folders"
+ - $ref: "#/definitions/streams/reports"
+ - $ref: "#/definitions/streams/tags"
+ - $ref: "#/definitions/streams/organization_members"
+
+spec:
+ type: Spec
+ connection_specification:
+ type: object
+ $schema: http://json-schema.org/draft-07/schema#
+ required:
+ - api_key
+ - env
+ properties:
+ api_key:
+ type: string
+ name: api_key
+ order: 0
+ title: API Key
+ airbyte_secret: true
+ env:
+ type: string
+ description: The environment from where you want to access the API.
+ enum:
+ - uat
+ - api
+ name: organizationId
+ order: 1
+ title: Environment
+ additionalProperties: true
+
+metadata:
+ autoImportSchema:
+ agreements: true
+ user_organizations: true
+ organization: false
+ folders: false
+ reports: false
+ tags: true
+ organization_members: false
+ testedStreams:
+ agreements:
+ streamHash: 07d516db9e3071f685d7e9f55fc2fc7ff5ce8dd5
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ user_organizations:
+ streamHash: 5520dfe5fc4a50db732484e0a2b69b057f998ed2
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ organization:
+ streamHash: 883312227d1d185dadbc88ee7bbbb2ac3c423eba
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ folders:
+ streamHash: 00fe7f2e0b38ad208db1f322bdea9f74b8551326
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ reports:
+ streamHash: a1a6c2f6b428c996d9af1ffa8578223779bd0851
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ tags:
+ streamHash: 884d1cd380e602b84919004685e117b97fcf0452
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ organization_members:
+ streamHash: d617acc1e88d4a7e563ca0c6b4f574e2e6e9ce04
+ hasResponse: true
+ responsesAreSuccessful: true
+ hasRecords: true
+ primaryKeysArePresent: true
+ primaryKeysAreUnique: true
+ assist:
+ docsUrl: https://api.doc.concordnow.com/
+ openapiSpecUrl: https://api.doc.concordnow.com/concord-openapi-bundled.yaml
+
+schemas:
+ agreements:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ metadata:
+ type:
+ - object
+ - "null"
+ properties:
+ accessFromRole:
+ type:
+ - boolean
+ - "null"
+ accessType:
+ type:
+ - string
+ - "null"
+ createdAt:
+ type:
+ - number
+ - "null"
+ inboxed:
+ type:
+ - boolean
+ - "null"
+ modifiedAt:
+ type:
+ - number
+ - "null"
+ properties:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ content:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ propertyType:
+ type:
+ - string
+ - "null"
+ value:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ metadata:
+ type:
+ - object
+ - "null"
+ properties:
+ fullName:
+ type:
+ - string
+ - "null"
+ propertyValueId:
+ type:
+ - string
+ - "null"
+ valueText:
+ type:
+ - string
+ - "null"
+ propertyId:
+ type:
+ - string
+ - "null"
+ propertyName:
+ type:
+ - string
+ - "null"
+ propertySource:
+ type:
+ - string
+ - "null"
+ read:
+ type:
+ - boolean
+ - "null"
+ status:
+ type:
+ - string
+ - "null"
+ summaryStatus:
+ type:
+ - string
+ - "null"
+ tags:
+ type:
+ - array
+ - "null"
+ title:
+ type:
+ - string
+ - "null"
+ trashed:
+ type:
+ - boolean
+ - "null"
+ with:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - string
+ - "null"
+ uid:
+ type: string
+ required:
+ - uid
+ user_organizations:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ createdAt:
+ type:
+ - number
+ - "null"
+ id:
+ type: number
+ isParent:
+ type:
+ - boolean
+ - "null"
+ isSubsidiary:
+ type:
+ - boolean
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ subscription:
+ type:
+ - string
+ - "null"
+ subsidiaries:
+ type:
+ - array
+ - "null"
+ user:
+ type:
+ - object
+ - "null"
+ properties:
+ features:
+ type:
+ - object
+ - "null"
+ properties:
+ accessRules:
+ type:
+ - boolean
+ - "null"
+ adminOversight:
+ type:
+ - boolean
+ - "null"
+ amendments:
+ type:
+ - boolean
+ - "null"
+ analytics:
+ type:
+ - boolean
+ - "null"
+ api:
+ type:
+ - boolean
+ - "null"
+ auditTrail:
+ type:
+ - boolean
+ - "null"
+ autoTemplates:
+ type:
+ - boolean
+ - "null"
+ bulkUpload:
+ type:
+ - boolean
+ - "null"
+ clauseLibrary:
+ type:
+ - boolean
+ - "null"
+ complexPasswords:
+ type:
+ - boolean
+ - "null"
+ customBranding:
+ type:
+ - boolean
+ - "null"
+ customRoles:
+ type:
+ - boolean
+ - "null"
+ dataLocalization:
+ type:
+ - boolean
+ - "null"
+ dedicatedEncryptionKey:
+ type:
+ - boolean
+ - "null"
+ drafting:
+ type:
+ - boolean
+ - "null"
+ execution:
+ type:
+ - boolean
+ - "null"
+ exports:
+ type:
+ - object
+ - "null"
+ properties:
+ advanced:
+ type:
+ - boolean
+ - "null"
+ simple:
+ type:
+ - boolean
+ - "null"
+ integrations:
+ type:
+ - object
+ - "null"
+ properties:
+ box:
+ type:
+ - boolean
+ - "null"
+ docusign:
+ type:
+ - boolean
+ - "null"
+ dropbox:
+ type:
+ - boolean
+ - "null"
+ facebook:
+ type:
+ - boolean
+ - "null"
+ gdrive:
+ type:
+ - boolean
+ - "null"
+ google:
+ type:
+ - boolean
+ - "null"
+ hubspot:
+ type:
+ - boolean
+ - "null"
+ linkedin:
+ type:
+ - boolean
+ - "null"
+ salesforce:
+ type:
+ - boolean
+ - "null"
+ saml:
+ type:
+ - boolean
+ - "null"
+ webhook:
+ type:
+ - boolean
+ - "null"
+ internalWorkflows:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItem:
+ type:
+ - boolean
+ - "null"
+ property:
+ type:
+ - boolean
+ - "null"
+ reports:
+ type:
+ - boolean
+ - "null"
+ sendContractWithDocument:
+ type:
+ - boolean
+ - "null"
+ sendInvitationWithDocument:
+ type:
+ - boolean
+ - "null"
+ signDoubleAuth:
+ type:
+ - object
+ - "null"
+ properties:
+ coworkers:
+ type:
+ - boolean
+ - "null"
+ thirdParties:
+ type:
+ - boolean
+ - "null"
+ signature:
+ type:
+ - boolean
+ - "null"
+ subsidiaries:
+ type:
+ - boolean
+ - "null"
+ userGroups:
+ type:
+ - boolean
+ - "null"
+ versioning:
+ type:
+ - boolean
+ - "null"
+ whitelistedIp:
+ type:
+ - boolean
+ - "null"
+ workflowCenter:
+ type:
+ - boolean
+ - "null"
+ role:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ description:
+ type:
+ - string
+ - "null"
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ rights:
+ type:
+ - object
+ - "null"
+ properties:
+ accessAllAgreement:
+ type:
+ - boolean
+ - "null"
+ contractAccess:
+ type:
+ - boolean
+ - "null"
+ contractAttachments:
+ type:
+ - boolean
+ - "null"
+ contractCreate:
+ type:
+ - boolean
+ - "null"
+ contractCreateBulk:
+ type:
+ - boolean
+ - "null"
+ contractDelete:
+ type:
+ - boolean
+ - "null"
+ contractUpdate:
+ type:
+ - boolean
+ - "null"
+ draftCommentAdd:
+ type:
+ - boolean
+ - "null"
+ draftCommentReply:
+ type:
+ - boolean
+ - "null"
+ draftCommentResolve:
+ type:
+ - boolean
+ - "null"
+ draftOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ fillFields:
+ type:
+ - boolean
+ - "null"
+ folderCreate:
+ type:
+ - boolean
+ - "null"
+ folderDelete:
+ type:
+ - boolean
+ - "null"
+ folderList:
+ type:
+ - boolean
+ - "null"
+ folderUpdate:
+ type:
+ - boolean
+ - "null"
+ groupCreate:
+ type:
+ - boolean
+ - "null"
+ groupDelete:
+ type:
+ - boolean
+ - "null"
+ groupUpdate:
+ type:
+ - boolean
+ - "null"
+ groupUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ negotiationAddComment:
+ type:
+ - boolean
+ - "null"
+ negotiationAttachments:
+ type:
+ - boolean
+ - "null"
+ negotiationBreak:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentAdd:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentReply:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentResolve:
+ type:
+ - boolean
+ - "null"
+ negotiationCreate:
+ type:
+ - boolean
+ - "null"
+ negotiationInvite:
+ type:
+ - boolean
+ - "null"
+ negotiationOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ negotiationSign:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdate:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateFirstVersion:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateMetadata:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateOwn:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllContract:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllNegotiation:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllTemplate:
+ type:
+ - boolean
+ - "null"
+ orgAccessRuleModify:
+ type:
+ - boolean
+ - "null"
+ orgAccessRuleView:
+ type:
+ - boolean
+ - "null"
+ orgAddUsers:
+ type:
+ - boolean
+ - "null"
+ orgBilling:
+ type:
+ - boolean
+ - "null"
+ orgCreate:
+ type:
+ - boolean
+ - "null"
+ orgInviteUsers:
+ type:
+ - boolean
+ - "null"
+ orgRemoveUsers:
+ type:
+ - boolean
+ - "null"
+ orgUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationClauseCreate:
+ type:
+ - boolean
+ - "null"
+ organizationClauseDelete:
+ type:
+ - boolean
+ - "null"
+ organizationClauseList:
+ type:
+ - boolean
+ - "null"
+ organizationClauseUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemCreate:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemDelete:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemGet:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowList:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ propertyCreate:
+ type:
+ - boolean
+ - "null"
+ propertyDelete:
+ type:
+ - boolean
+ - "null"
+ propertyList:
+ type:
+ - boolean
+ - "null"
+ propertyUpdate:
+ type:
+ - boolean
+ - "null"
+ roleCreate:
+ type:
+ - boolean
+ - "null"
+ roleDelete:
+ type:
+ - boolean
+ - "null"
+ roleUpdate:
+ type:
+ - boolean
+ - "null"
+ roleUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ tagCreate:
+ type:
+ - boolean
+ - "null"
+ tagDelete:
+ type:
+ - boolean
+ - "null"
+ tagListAll:
+ type:
+ - boolean
+ - "null"
+ tagUpdate:
+ type:
+ - boolean
+ - "null"
+ templateAttachments:
+ type:
+ - boolean
+ - "null"
+ templateCommentAdd:
+ type:
+ - boolean
+ - "null"
+ templateCommentReply:
+ type:
+ - boolean
+ - "null"
+ templateCommentResolve:
+ type:
+ - boolean
+ - "null"
+ templateCreate:
+ type:
+ - boolean
+ - "null"
+ templateDelete:
+ type:
+ - boolean
+ - "null"
+ templateOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ templateUpdate:
+ type:
+ - boolean
+ - "null"
+ templateUpdateTags:
+ type:
+ - boolean
+ - "null"
+ templateUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ templateUse:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ subscription:
+ type:
+ - string
+ - "null"
+ required:
+ - id
+ organization:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ adminOversight:
+ type:
+ - boolean
+ - "null"
+ allTagsVisible:
+ type:
+ - boolean
+ - "null"
+ askForTags:
+ type:
+ - string
+ - "null"
+ canCollaboratorSign:
+ type:
+ - boolean
+ - "null"
+ contactInfos:
+ type:
+ - object
+ - "null"
+ properties:
+ mobileCode:
+ type:
+ - number
+ - "null"
+ phoneCode:
+ type:
+ - number
+ - "null"
+ createdAt:
+ type:
+ - number
+ - "null"
+ deleted:
+ type:
+ - boolean
+ - "null"
+ emailDomains:
+ type:
+ - array
+ - "null"
+ id:
+ type: number
+ name:
+ type:
+ - string
+ - "null"
+ passwordStrategy:
+ type:
+ - boolean
+ - "null"
+ region:
+ type:
+ - string
+ - "null"
+ sendContractWithDocument:
+ type:
+ - boolean
+ - "null"
+ sendInvitationWithDocument:
+ type:
+ - boolean
+ - "null"
+ signingAuthentications:
+ type:
+ - object
+ - "null"
+ properties:
+ colleagues:
+ type:
+ - string
+ - "null"
+ thirdParties:
+ type:
+ - string
+ - "null"
+ subscription:
+ type:
+ - string
+ - "null"
+ subsidiaries:
+ type:
+ - array
+ - "null"
+ whitelistedIps:
+ type:
+ - array
+ - "null"
+ required:
+ - id
+ folders:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ access:
+ type:
+ - object
+ - "null"
+ properties:
+ allUserInOrganizationAccess:
+ type:
+ - boolean
+ - "null"
+ invitations:
+ type:
+ - array
+ - "null"
+ teams:
+ type:
+ - array
+ - "null"
+ users:
+ type:
+ - array
+ - "null"
+ children:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ access:
+ type:
+ - object
+ - "null"
+ properties:
+ allUserInOrganizationAccess:
+ type:
+ - boolean
+ - "null"
+ invitations:
+ type:
+ - array
+ - "null"
+ teams:
+ type:
+ - array
+ - "null"
+ users:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - object
+ - "null"
+ properties:
+ email:
+ type:
+ - string
+ - "null"
+ folderId:
+ type:
+ - number
+ - "null"
+ fullName:
+ type:
+ - string
+ - "null"
+ hasPicture:
+ type:
+ - boolean
+ - "null"
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ children:
+ type:
+ - array
+ - "null"
+ documentCount:
+ type:
+ - number
+ - "null"
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ parentId:
+ type:
+ - number
+ - "null"
+ documentCount:
+ type:
+ - number
+ - "null"
+ id:
+ type: number
+ required:
+ - id
+ reports:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ description:
+ type:
+ - string
+ - "null"
+ filters:
+ type:
+ - object
+ - "null"
+ properties:
+ createdAt:
+ type:
+ - object
+ - "null"
+ properties:
+ isWithinTheLast:
+ type:
+ - string
+ - "null"
+ createdBy:
+ type:
+ - array
+ - "null"
+ endAt:
+ type:
+ - object
+ - "null"
+ properties:
+ isWithinTheNext:
+ type:
+ - string
+ - "null"
+ modifiedAt:
+ type:
+ - object
+ - "null"
+ properties:
+ isMoreThan:
+ type:
+ - string
+ - "null"
+ parties:
+ type:
+ - array
+ - "null"
+ sharedWith:
+ type:
+ - array
+ - "null"
+ signatureDate:
+ type:
+ - object
+ - "null"
+ properties:
+ isWithinTheLast:
+ type:
+ - string
+ - "null"
+ statuses:
+ type:
+ - array
+ - "null"
+ items:
+ type:
+ - string
+ - "null"
+ tagNames:
+ type:
+ - array
+ - "null"
+ id:
+ type: string
+ lastUpdatedAt:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ required:
+ - id
+ tags:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ id:
+ type: number
+ inAccessRule:
+ type:
+ - boolean
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ organizationId:
+ type:
+ - number
+ - "null"
+ required:
+ - id
+ organization_members:
+ type: object
+ $schema: http://json-schema.org/schema#
+ additionalProperties: true
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ createdAt:
+ type:
+ - number
+ - "null"
+ groups:
+ type:
+ - array
+ - "null"
+ isActive:
+ type:
+ - boolean
+ - "null"
+ organization:
+ type:
+ - object
+ - "null"
+ properties:
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ role:
+ type:
+ - object
+ - "null"
+ properties:
+ type:
+ type:
+ - string
+ - "null"
+ description:
+ type:
+ - string
+ - "null"
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ rights:
+ type:
+ - object
+ - "null"
+ properties:
+ accessAllAgreement:
+ type:
+ - boolean
+ - "null"
+ contractAccess:
+ type:
+ - boolean
+ - "null"
+ contractAttachments:
+ type:
+ - boolean
+ - "null"
+ contractCreate:
+ type:
+ - boolean
+ - "null"
+ contractCreateBulk:
+ type:
+ - boolean
+ - "null"
+ contractDelete:
+ type:
+ - boolean
+ - "null"
+ contractUpdate:
+ type:
+ - boolean
+ - "null"
+ draftCommentAdd:
+ type:
+ - boolean
+ - "null"
+ draftCommentReply:
+ type:
+ - boolean
+ - "null"
+ draftCommentResolve:
+ type:
+ - boolean
+ - "null"
+ draftOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ draftWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ fillFields:
+ type:
+ - boolean
+ - "null"
+ folderCreate:
+ type:
+ - boolean
+ - "null"
+ folderDelete:
+ type:
+ - boolean
+ - "null"
+ folderList:
+ type:
+ - boolean
+ - "null"
+ folderUpdate:
+ type:
+ - boolean
+ - "null"
+ groupCreate:
+ type:
+ - boolean
+ - "null"
+ groupDelete:
+ type:
+ - boolean
+ - "null"
+ groupUpdate:
+ type:
+ - boolean
+ - "null"
+ groupUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ negotiationAddComment:
+ type:
+ - boolean
+ - "null"
+ negotiationAttachments:
+ type:
+ - boolean
+ - "null"
+ negotiationBreak:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentAdd:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentReply:
+ type:
+ - boolean
+ - "null"
+ negotiationCommentResolve:
+ type:
+ - boolean
+ - "null"
+ negotiationCreate:
+ type:
+ - boolean
+ - "null"
+ negotiationInvite:
+ type:
+ - boolean
+ - "null"
+ negotiationOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ negotiationSign:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdate:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateFirstVersion:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateMetadata:
+ type:
+ - boolean
+ - "null"
+ negotiationUpdateOwn:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ negotiationWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllContract:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllNegotiation:
+ type:
+ - boolean
+ - "null"
+ orgAccessAllTemplate:
+ type:
+ - boolean
+ - "null"
+ orgAccessRuleModify:
+ type:
+ - boolean
+ - "null"
+ orgAccessRuleView:
+ type:
+ - boolean
+ - "null"
+ orgAddUsers:
+ type:
+ - boolean
+ - "null"
+ orgBilling:
+ type:
+ - boolean
+ - "null"
+ orgCreate:
+ type:
+ - boolean
+ - "null"
+ orgInviteUsers:
+ type:
+ - boolean
+ - "null"
+ orgRemoveUsers:
+ type:
+ - boolean
+ - "null"
+ orgUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationClauseCreate:
+ type:
+ - boolean
+ - "null"
+ organizationClauseDelete:
+ type:
+ - boolean
+ - "null"
+ organizationClauseList:
+ type:
+ - boolean
+ - "null"
+ organizationClauseUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemCreate:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemDelete:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemGet:
+ type:
+ - boolean
+ - "null"
+ organizationFieldItemUpdate:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowList:
+ type:
+ - boolean
+ - "null"
+ organizationWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ propertyCreate:
+ type:
+ - boolean
+ - "null"
+ propertyDelete:
+ type:
+ - boolean
+ - "null"
+ propertyList:
+ type:
+ - boolean
+ - "null"
+ propertyUpdate:
+ type:
+ - boolean
+ - "null"
+ roleCreate:
+ type:
+ - boolean
+ - "null"
+ roleDelete:
+ type:
+ - boolean
+ - "null"
+ roleUpdate:
+ type:
+ - boolean
+ - "null"
+ roleUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ tagCreate:
+ type:
+ - boolean
+ - "null"
+ tagDelete:
+ type:
+ - boolean
+ - "null"
+ tagListAll:
+ type:
+ - boolean
+ - "null"
+ tagUpdate:
+ type:
+ - boolean
+ - "null"
+ templateAttachments:
+ type:
+ - boolean
+ - "null"
+ templateCommentAdd:
+ type:
+ - boolean
+ - "null"
+ templateCommentReply:
+ type:
+ - boolean
+ - "null"
+ templateCommentResolve:
+ type:
+ - boolean
+ - "null"
+ templateCreate:
+ type:
+ - boolean
+ - "null"
+ templateDelete:
+ type:
+ - boolean
+ - "null"
+ templateOrganizationWorkflowUse:
+ type:
+ - boolean
+ - "null"
+ templateUpdate:
+ type:
+ - boolean
+ - "null"
+ templateUpdateTags:
+ type:
+ - boolean
+ - "null"
+ templateUpdateUsers:
+ type:
+ - boolean
+ - "null"
+ templateUse:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowCreate:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowDelete:
+ type:
+ - boolean
+ - "null"
+ templateWorkflowUpdate:
+ type:
+ - boolean
+ - "null"
+ user:
+ type:
+ - object
+ - "null"
+ properties:
+ email:
+ type:
+ - string
+ - "null"
+ fullName:
+ type:
+ - string
+ - "null"
+ hasMfa:
+ type:
+ - boolean
+ - "null"
+ hasPicture:
+ type:
+ - boolean
+ - "null"
+ id:
+ type:
+ - number
+ - "null"
+ name:
+ type:
+ - string
+ - "null"
+ user_id:
+ type: number
+ required:
+ - user_id
diff --git a/airbyte-integrations/connectors/source-concord/metadata.yaml b/airbyte-integrations/connectors/source-concord/metadata.yaml
new file mode 100644
index 000000000000..2f1ba9ddb465
--- /dev/null
+++ b/airbyte-integrations/connectors/source-concord/metadata.yaml
@@ -0,0 +1,35 @@
+metadataSpecVersion: "1.0"
+data:
+ allowedHosts:
+ hosts:
+ - "https://*.concordnow.com/api/rest/1/"
+ registryOverrides:
+ oss:
+ enabled: true
+ cloud:
+ enabled: true
+ remoteRegistries:
+ pypi:
+ enabled: false
+ packageName: airbyte-source-concord
+ connectorBuildOptions:
+ baseImage: docker.io/airbyte/source-declarative-manifest:5.16.0@sha256:6800f806944ee4fccf24ae01f6b8fbefb12d952c3b3da338f51f732b55de51f2
+ connectorSubtype: api
+ connectorType: source
+ definitionId: dc50b4e6-862e-4b49-8ed7-3c988f4b1db0
+ dockerImageTag: 0.0.1
+ dockerRepository: airbyte/source-concord
+ githubIssueLabel: source-concord
+ icon: icon.svg
+ license: MIT
+ name: Concord
+ releaseDate: 2024-10-25
+ releaseStage: alpha
+ supportLevel: community
+ documentationUrl: https://docs.airbyte.com/integrations/sources/concord
+ tags:
+ - language:manifest-only
+ - cdk:low-code
+ ab_internal:
+ ql: 100
+ sl: 100
diff --git a/docs/integrations/sources/concord.md b/docs/integrations/sources/concord.md
new file mode 100644
index 000000000000..9ac539a61060
--- /dev/null
+++ b/docs/integrations/sources/concord.md
@@ -0,0 +1,37 @@
+# Concord
+This is the setup for the Concord source which ingests data from the concord API.
+
+Concord turns contract data into financial insights. Sign, store and search unlimited contracts https://www.concord.app/
+
+In order to use this source, you must first create a concord account and log in. Then navigate to Automations -> Integrations -> Concord API -> Generate New Key to obtain your API key.
+
+The API is accessible from two environments, sandbox and production. You can learn more about the API here https://api.doc.concordnow.com/
+
+## Configuration
+
+| Input | Type | Description | Default Value |
+|-------|------|-------------|---------------|
+| `api_key` | `string` | API Key. | |
+| `environment` | `string` | enviornment. The environment from where you want to access the API https://api.doc.concordnow.com/#section/Environments. | |
+
+
+## Streams
+| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental |
+|-------------|-------------|------------|---------------------|----------------------|
+| agreements | uid | DefaultPaginator | ✅ | ❌ |
+| user_organizations | id | No pagination | ✅ | ❌ |
+| organization | id | No pagination | ✅ | ❌ |
+| folders | id | No pagination | ✅ | ❌ |
+| reports | id | DefaultPaginator | ✅ | ❌ |
+| tags | id | No pagination | ✅ | ❌ |
+
+## Changelog
+
+
+ Expand to review
+
+| Version | Date | Pull Request | Subject |
+|------------------|-------------------|--------------|----------------|
+| 0.0.1 | 2024-10-16 | | Initial release by [@aazam-gh](https://github.com/aazam-gh) via Connector Builder |
+
+