source-sage-hr contribution from parthiv11 (#46551)
Co-authored-by: Marcos Marx <marcosmarxm@users.noreply.github.com>
This commit is contained in:
33
airbyte-integrations/connectors/source-sage-hr/README.md
Normal file
33
airbyte-integrations/connectors/source-sage-hr/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Sage HR
|
||||
This directory contains the manifest-only connector for `source-sage-hr`.
|
||||
|
||||
The Sage HR Airbyte Connector enables seamless data integration, allowing you to extract employee and HR data from Sage HR into your preferred data warehouse or analytics tool. Simplify data syncing for effortless employee management and streamline HR workflows.
|
||||
|
||||
## 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-sage-hr:dev`) that you can use to test the connector locally.
|
||||
```bash
|
||||
airbyte-ci connectors --name=source-sage-hr build
|
||||
```
|
||||
|
||||
### Test
|
||||
This will run the acceptance tests for the connector.
|
||||
```bash
|
||||
airbyte-ci connectors --name=source-sage-hr test
|
||||
```
|
||||
|
||||
@@ -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-sage-hr: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"
|
||||
8
airbyte-integrations/connectors/source-sage-hr/icon.svg
Normal file
8
airbyte-integrations/connectors/source-sage-hr/icon.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
|
||||
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M42.4043 0H5.59573C2.50529 0 0 2.50529 0 5.59573V42.4043C0 45.4947 2.50529 48 5.59573 48H42.4043C45.4947 48 48 45.4947 48 42.4043V5.59573C48 2.50529 45.4947 0 42.4043 0Z" fill="white"/>
|
||||
<path d="M31.347 16.8776C32.97 16.8776 34.2858 15.5618 34.2858 13.9388C34.2858 12.3157 32.97 11 31.347 11C29.7239 11 28.4082 12.3157 28.4082 13.9388C28.4082 15.5618 29.7239 16.8776 31.347 16.8776Z" fill="#00D639"/>
|
||||
<path d="M16.347 16.8776C17.97 16.8776 19.2858 15.5618 19.2858 13.9388C19.2858 12.3157 17.97 11 16.347 11C14.7239 11 13.4082 12.3157 13.4082 13.9388C13.4082 15.5618 14.7239 16.8776 16.347 16.8776Z" fill="#00D639"/>
|
||||
<path d="M31.9804 20.5365C31.841 20.0552 31.1591 20.0552 31.0198 20.5365L26.1851 37.2383C26.0925 37.5581 26.3324 37.8774 26.6653 37.8774H36.3348C36.6677 37.8774 36.9077 37.5581 36.8151 37.2383L31.9804 20.5365Z" fill="black"/>
|
||||
<path d="M16.9804 20.5365C16.841 20.0552 16.1591 20.0552 16.0198 20.5365L11.1851 37.2383C11.0925 37.5581 11.3324 37.8774 11.6653 37.8774H21.3348C21.6677 37.8774 21.9077 37.5581 21.8151 37.2383L16.9804 20.5365Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
931
airbyte-integrations/connectors/source-sage-hr/manifest.yaml
Normal file
931
airbyte-integrations/connectors/source-sage-hr/manifest.yaml
Normal file
@@ -0,0 +1,931 @@
|
||||
version: 5.11.1
|
||||
|
||||
type: DeclarativeSource
|
||||
|
||||
description: >-
|
||||
The Sage HR Airbyte Connector enables seamless data integration, allowing you
|
||||
to extract employee and HR data from Sage HR into your preferred data
|
||||
warehouse or analytics tool. Simplify data syncing for effortless employee
|
||||
management and streamline HR workflows.
|
||||
|
||||
check:
|
||||
type: CheckStream
|
||||
stream_names:
|
||||
- employees
|
||||
|
||||
definitions:
|
||||
streams:
|
||||
employees:
|
||||
type: DeclarativeStream
|
||||
name: employees
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /employees
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/employees"
|
||||
leave-management-policies:
|
||||
type: DeclarativeStream
|
||||
name: leave-management-policies
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /leave-management/policies
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/leave-management-policies"
|
||||
documents:
|
||||
type: DeclarativeStream
|
||||
name: documents
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /documents
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
start_from_page: 1
|
||||
page_size: 30
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/documents"
|
||||
positions:
|
||||
type: DeclarativeStream
|
||||
name: positions
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /positions
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/positions"
|
||||
teams:
|
||||
type: DeclarativeStream
|
||||
name: teams
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /teams
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/teams"
|
||||
terminated-employees:
|
||||
type: DeclarativeStream
|
||||
name: terminated-employees
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /terminated-employees
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/terminated-employees"
|
||||
termination-reasons:
|
||||
type: DeclarativeStream
|
||||
name: termination-reasons
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /termination-reasons
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/termination-reasons"
|
||||
individual-allowances:
|
||||
type: DeclarativeStream
|
||||
name: individual-allowances
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /leave-management/reports/individual-allowances
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/individual-allowances"
|
||||
document-categories:
|
||||
type: DeclarativeStream
|
||||
name: document-categories
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /documents/categories
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/document-categories"
|
||||
offboarding-categories:
|
||||
type: DeclarativeStream
|
||||
name: offboarding-categories
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /offboarding/categories
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/offboarding-categories"
|
||||
onboarding-categories:
|
||||
type: DeclarativeStream
|
||||
name: onboarding-categories
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: onboarding/categories
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/onboarding-categories"
|
||||
leave-requests:
|
||||
type: DeclarativeStream
|
||||
name: leave-requests
|
||||
primary_key:
|
||||
- id
|
||||
retriever:
|
||||
type: SimpleRetriever
|
||||
requester:
|
||||
$ref: "#/definitions/base_requester"
|
||||
path: /leave-management/requests
|
||||
http_method: GET
|
||||
record_selector:
|
||||
type: RecordSelector
|
||||
extractor:
|
||||
type: DpathExtractor
|
||||
field_path:
|
||||
- data
|
||||
paginator:
|
||||
type: DefaultPaginator
|
||||
page_token_option:
|
||||
type: RequestOption
|
||||
inject_into: request_parameter
|
||||
field_name: page
|
||||
pagination_strategy:
|
||||
type: PageIncrement
|
||||
page_size: 30
|
||||
start_from_page: 1
|
||||
inject_on_first_request: true
|
||||
schema_loader:
|
||||
type: InlineSchemaLoader
|
||||
schema:
|
||||
$ref: "#/schemas/leave-requests"
|
||||
base_requester:
|
||||
type: HttpRequester
|
||||
url_base: https://{{ config['subdomain'] }}.sage.hr/api/
|
||||
authenticator:
|
||||
type: ApiKeyAuthenticator
|
||||
api_token: "{{ config[\"api_key\"] }}"
|
||||
inject_into:
|
||||
type: RequestOption
|
||||
field_name: X-Auth-Token
|
||||
inject_into: header
|
||||
|
||||
streams:
|
||||
- $ref: "#/definitions/streams/employees"
|
||||
- $ref: "#/definitions/streams/leave-management-policies"
|
||||
- $ref: "#/definitions/streams/documents"
|
||||
- $ref: "#/definitions/streams/positions"
|
||||
- $ref: "#/definitions/streams/teams"
|
||||
- $ref: "#/definitions/streams/terminated-employees"
|
||||
- $ref: "#/definitions/streams/termination-reasons"
|
||||
- $ref: "#/definitions/streams/individual-allowances"
|
||||
- $ref: "#/definitions/streams/document-categories"
|
||||
- $ref: "#/definitions/streams/offboarding-categories"
|
||||
- $ref: "#/definitions/streams/onboarding-categories"
|
||||
- $ref: "#/definitions/streams/leave-requests"
|
||||
|
||||
spec:
|
||||
type: Spec
|
||||
connection_specification:
|
||||
type: object
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
required:
|
||||
- api_key
|
||||
- subdomain
|
||||
properties:
|
||||
api_key:
|
||||
type: string
|
||||
name: api_key
|
||||
order: 0
|
||||
title: API Key
|
||||
airbyte_secret: true
|
||||
subdomain:
|
||||
type: string
|
||||
order: 1
|
||||
title: subdomain
|
||||
additionalProperties: true
|
||||
|
||||
metadata:
|
||||
autoImportSchema:
|
||||
employees: true
|
||||
leave-management-policies: false
|
||||
documents: false
|
||||
positions: false
|
||||
teams: false
|
||||
terminated-employees: false
|
||||
termination-reasons: true
|
||||
individual-allowances: false
|
||||
document-categories: false
|
||||
offboarding-categories: false
|
||||
onboarding-categories: false
|
||||
leave-requests: false
|
||||
testedStreams:
|
||||
employees:
|
||||
streamHash: c1c52bac2f855a5a9ddc6d85c739f8b5c7d7f1c8
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
leave-management-policies:
|
||||
streamHash: 75aee0808e8547e8dbd6727ef7dea5c2055f34a3
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
documents:
|
||||
streamHash: c34a9651675ae4c0e1da808835aa277d5994036d
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
positions:
|
||||
streamHash: bc6a2889d3472d2852e3180736c2f9ec238b1a9c
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
teams:
|
||||
streamHash: aa0f7219f8b8cbc6c76718d54fc461b0c1df5fff
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
terminated-employees:
|
||||
streamHash: d1083bface3557a2e078c2206e3e35bdfb291d63
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
termination-reasons:
|
||||
streamHash: 7cc49c6aab5d11d0b76be2f0aaadccc662a2aa8f
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
individual-allowances:
|
||||
streamHash: 042acbef3a7a20f47c3ac28281b713af5d8330d6
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
document-categories:
|
||||
streamHash: b528b0a9da72113b40c5d394ce6f88017513b5e4
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
offboarding-categories:
|
||||
streamHash: 03f27f7fdcf924dbfb1473fbdcc489725587125a
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
onboarding-categories:
|
||||
streamHash: a916e054b284a2228353ec583ce4b35605851d4e
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
leave-requests:
|
||||
streamHash: b2a18c9b8b92858b7399a11252dbcbc6cc336203
|
||||
hasResponse: true
|
||||
responsesAreSuccessful: true
|
||||
hasRecords: true
|
||||
primaryKeysArePresent: true
|
||||
primaryKeysAreUnique: true
|
||||
assist:
|
||||
docsUrl: https://sagehr.docs.apiary.io/
|
||||
openapiSpecUrl: https://developer.sage.com/hr/reference/sage-hr-v1.0.swagger.yml
|
||||
|
||||
schemas:
|
||||
employees:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
email:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
employment_start_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
employment_status:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
first_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
irregular_contract_worker:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
last_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
personal_identification_number:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
position:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
position_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
reports_to_employee_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
tax_number:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
leave-management-policies:
|
||||
type: object
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
additionalProperties: true
|
||||
properties: {}
|
||||
documents:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
description:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
acceptance_required:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
company_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
created_at:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
created_by:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
document_category_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
document_expires:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
file_content_type:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
file_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
file_scan_result:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
file_scan_started_at:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
file_size:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
file_updated_at:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
last_edited_by:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
right_to_work_number:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
shared_with_direct_manager:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
shared_with_everyone:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
shared_with_team_manager:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
source:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
updated_at:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
positions:
|
||||
type: object
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
additionalProperties: true
|
||||
properties: {}
|
||||
teams:
|
||||
type: object
|
||||
$schema: http://json-schema.org/draft-07/schema#
|
||||
additionalProperties: true
|
||||
properties: {}
|
||||
terminated-employees:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
email:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
employment_start_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
employment_status:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
first_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
irregular_contract_worker:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
last_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
personal_identification_number:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
position:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
tax_number:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
team:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
team_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
termination_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
termination-reasons:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
type:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
individual-allowances:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
eligibilities:
|
||||
type:
|
||||
- array
|
||||
- "null"
|
||||
items:
|
||||
type:
|
||||
- object
|
||||
- "null"
|
||||
properties:
|
||||
carryover:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
policy:
|
||||
type:
|
||||
- object
|
||||
- "null"
|
||||
properties:
|
||||
id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
quantity:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
unit:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
full_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
required:
|
||||
- id
|
||||
document-categories:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
documents_count:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
offboarding-categories:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
id:
|
||||
type: number
|
||||
title:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
onboarding-categories:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
id:
|
||||
type: number
|
||||
title:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
leave-requests:
|
||||
type: object
|
||||
$schema: http://json-schema.org/schema#
|
||||
additionalProperties: true
|
||||
properties:
|
||||
details:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
employee_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
end_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
fields:
|
||||
type:
|
||||
- array
|
||||
- "null"
|
||||
first_part_of_day:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
hours:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
id:
|
||||
type: number
|
||||
is_multi_date:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
is_part_of_day:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
is_single_day:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
policy_id:
|
||||
type:
|
||||
- number
|
||||
- "null"
|
||||
request_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
second_part_of_day:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
shared_person_name:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
shared_person_nin:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
specific_time:
|
||||
type:
|
||||
- boolean
|
||||
- "null"
|
||||
start_date:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
status:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
status_code:
|
||||
type:
|
||||
- string
|
||||
- "null"
|
||||
required:
|
||||
- id
|
||||
35
airbyte-integrations/connectors/source-sage-hr/metadata.yaml
Normal file
35
airbyte-integrations/connectors/source-sage-hr/metadata.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
metadataSpecVersion: "1.0"
|
||||
data:
|
||||
allowedHosts:
|
||||
hosts:
|
||||
- "https://*.sage.hr/api/"
|
||||
registryOverrides:
|
||||
oss:
|
||||
enabled: true
|
||||
cloud:
|
||||
enabled: true
|
||||
remoteRegistries:
|
||||
pypi:
|
||||
enabled: false
|
||||
packageName: airbyte-source-sage-hr
|
||||
connectorBuildOptions:
|
||||
baseImage: docker.io/airbyte/source-declarative-manifest:5.11.1@sha256:f48a7ddc1f3acecbd8eb6a10a3146e8d0396e9a4dede77beafb76924f416df65
|
||||
connectorSubtype: api
|
||||
connectorType: source
|
||||
definitionId: d8384215-9de6-4268-bbea-40c636ee14c7
|
||||
dockerImageTag: 0.0.1
|
||||
dockerRepository: airbyte/source-sage-hr
|
||||
githubIssueLabel: source-sage-hr
|
||||
icon: icon.svg
|
||||
license: MIT
|
||||
name: Sage HR
|
||||
releaseDate: 2024-10-08
|
||||
releaseStage: alpha
|
||||
supportLevel: community
|
||||
documentationUrl: https://docs.airbyte.com/integrations/sources/sage-hr
|
||||
tags:
|
||||
- language:manifest-only
|
||||
- cdk:low-code
|
||||
ab_internal:
|
||||
ql: 100
|
||||
sl: 100
|
||||
36
docs/integrations/sources/sage-hr.md
Normal file
36
docs/integrations/sources/sage-hr.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Sage HR
|
||||
The Sage HR Airbyte Connector enables seamless data integration, allowing you to extract employee and HR data from Sage HR into your preferred data warehouse or analytics tool. Simplify data syncing for effortless employee management and streamline HR workflows.
|
||||
|
||||
## Configuration
|
||||
|
||||
| Input | Type | Description | Default Value |
|
||||
|-------|------|-------------|---------------|
|
||||
| `api_key` | `string` | API Key. | |
|
||||
| `subdomain` | `string` | subdomain. | |
|
||||
|
||||
## Streams
|
||||
| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental |
|
||||
|-------------|-------------|------------|---------------------|----------------------|
|
||||
| employees | id | DefaultPaginator | ✅ | ❌ |
|
||||
| leave-management-policies | id | No pagination | ✅ | ❌ |
|
||||
| documents | id | DefaultPaginator | ✅ | ❌ |
|
||||
| positions | id | DefaultPaginator | ✅ | ❌ |
|
||||
| teams | id | DefaultPaginator | ✅ | ❌ |
|
||||
| terminated-employees | id | DefaultPaginator | ✅ | ❌ |
|
||||
| termination-reasons | id | DefaultPaginator | ✅ | ❌ |
|
||||
| individual-allowances | id | DefaultPaginator | ✅ | ❌ |
|
||||
| document-categories | id | No pagination | ✅ | ❌ |
|
||||
| offboarding-categories | id | DefaultPaginator | ✅ | ❌ |
|
||||
| onboarding-categories | id | DefaultPaginator | ✅ | ❌ |
|
||||
| leave-requests | id | DefaultPaginator | ✅ | ❌ |
|
||||
|
||||
## Changelog
|
||||
|
||||
<details>
|
||||
<summary>Expand to review</summary>
|
||||
|
||||
| Version | Date | Pull Request | Subject |
|
||||
|------------------|-------------------|--------------|----------------|
|
||||
| 0.0.1 | 2024-10-08 | | Initial release by [@parthiv11](https://github.com/parthiv11) via Connector Builder |
|
||||
|
||||
</details>
|
||||
Reference in New Issue
Block a user