1
0
mirror of synced 2026-01-05 21:02:13 -05:00
Files
airbyte/airbyte-integrations/connectors/source-gitlab/source_gitlab/spec.json
Baz b69639e06f 🎉 Source Gitlab: add OAuth2.0 authentication support (#7506)
* added support of oauth2.0

* added OAuthFlow.java part

* bumped version of the Dockerfile

* corrected SAT

* added unit_test for Oauth java part, added integration-test for java part

* added changelog

* fix java part test

* updated after review

* updated spec.json

* updated after review

* #7480 source gitlab: rm empty files

* #7480 source gitlab: add single use refresh token authenticator

* #7480 source gitlab: upd oauth implementation

* #7480 source gitlab: refactor auth

* #7480 fix oauth: java

* #7480 source gitlab: review fixes

* #7480 source gitlab: upd release stage

* #7480 source gitlab: fix unit tests

* #7480 source gitlab: update expected records

* #7480 source gitlab: upd sats

* #7480 source gitlab: upd expected records

* #7480 source Gitlab: use SingleUseRefreshTokenOauth as is

* #7480 sourcte gitlab: upd expected records

* auto-bump connector version

Co-authored-by: Denys Davydov <davydov.den18@gmail.com>
Co-authored-by: Augustin <augustin@airbyte.io>
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
2023-01-18 19:59:15 +02:00

161 lines
5.1 KiB
JSON

{
"documentationUrl": "https://docs.airbyte.com/integrations/sources/gitlab",
"connectionSpecification": {
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Source Gitlab Spec",
"type": "object",
"required": ["api_url", "start_date", "credentials"],
"additionalProperties": true,
"properties": {
"credentials": {
"title": "Authorization Method",
"type": "object",
"order": 0,
"oneOf": [
{
"type": "object",
"title": "OAuth2.0",
"required": ["client_id", "client_secret", "refresh_token", "access_token", "token_expiry_date"],
"properties": {
"auth_type": {
"type": "string",
"const": "oauth2.0"
},
"client_id": {
"type": "string",
"description": "The API ID of the Gitlab developer application.",
"airbyte_secret": true
},
"client_secret": {
"type": "string",
"description": "The API Secret the Gitlab developer application.",
"airbyte_secret": true
},
"access_token": {
"type": "string",
"description": "Access Token for making authenticated requests.",
"airbyte_secret": true
},
"token_expiry_date": {
"type": "string",
"description": "The date-time when the access token should be refreshed.",
"format": "date-time"
},
"refresh_token": {
"type": "string",
"description": "The key to refresh the expired access_token.",
"airbyte_secret": true
}
}
},
{
"title": "Private Token",
"type": "object",
"required": ["access_token"],
"properties": {
"auth_type": {
"type": "string",
"const": "access_token"
},
"access_token": {
"type": "string",
"title": "Private Token",
"description": "Log into your Gitlab account and then generate a personal Access Token.",
"airbyte_secret": true
}
}
}
]
},
"api_url": {
"type": "string",
"examples": ["gitlab.com"],
"title": "API URL",
"default": "gitlab.com",
"description": "Please enter your basic URL from GitLab instance.",
"order": 1
},
"start_date": {
"type": "string",
"title": "Start Date",
"description": "The date from which you'd like to replicate data for GitLab API, in the format YYYY-MM-DDT00:00:00Z. All data generated after this date will be replicated.",
"examples": ["2021-03-01T00:00:00Z"],
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
"order": 2
},
"groups": {
"type": "string",
"examples": ["airbyte.io"],
"title": "Groups",
"description": "Space-delimited list of groups. e.g. airbyte.io.",
"order": 3
},
"projects": {
"type": "string",
"title": "Projects",
"examples": ["airbyte.io/documentation"],
"description": "Space-delimited list of projects. e.g. airbyte.io/documentation meltano/tap-gitlab.",
"order": 4
}
}
},
"advanced_auth": {
"auth_flow_type": "oauth2.0",
"predicate_key": ["credentials", "auth_type"],
"predicate_value": "oauth2.0",
"oauth_config_specification": {
"oauth_user_input_from_connector_config_specification": {
"type": "object",
"properties": {
"domain": {
"type": "string",
"path_in_connector_config": ["api_url"]
}
}
},
"complete_oauth_output_specification": {
"type": "object",
"properties": {
"access_token": {
"type": "string",
"path_in_connector_config": ["credentials", "access_token"]
},
"refresh_token": {
"type": "string",
"path_in_connector_config": ["credentials", "refresh_token"]
},
"token_expiry_date": {
"type": "string",
"format": "date-time",
"path_in_connector_config": ["credentials", "token_expiry_date"]
}
}
},
"complete_oauth_server_input_specification": {
"type": "object",
"properties": {
"client_id": {
"type": "string"
},
"client_secret": {
"type": "string"
}
}
},
"complete_oauth_server_output_specification": {
"type": "object",
"properties": {
"client_id": {
"type": "string",
"path_in_connector_config": ["credentials", "client_id"]
},
"client_secret": {
"type": "string",
"path_in_connector_config": ["credentials", "client_secret"]
}
}
}
}
}
}