From bb175900f8b9b47d73995051e1eb69598bd6f958 Mon Sep 17 00:00:00 2001 From: bhushan-dhwaniris <141770295+bhushan-dhwaniris@users.noreply.github.com> Date: Sat, 7 Dec 2024 01:09:41 +0530 Subject: [PATCH] source-greythr contribution from bhushan-dhwaniris (#48743) Co-authored-by: Marcos Marx --- .../connectors/source-greythr/README.md | 33 + .../source-greythr/acceptance-test-config.yml | 17 + .../connectors/source-greythr/icon.svg | 16 + .../connectors/source-greythr/manifest.yaml | 1047 +++++++++++++++++ .../connectors/source-greythr/metadata.yaml | 35 + docs/integrations/sources/greythr.md | 37 + 6 files changed, 1185 insertions(+) create mode 100644 airbyte-integrations/connectors/source-greythr/README.md create mode 100644 airbyte-integrations/connectors/source-greythr/acceptance-test-config.yml create mode 100644 airbyte-integrations/connectors/source-greythr/icon.svg create mode 100644 airbyte-integrations/connectors/source-greythr/manifest.yaml create mode 100644 airbyte-integrations/connectors/source-greythr/metadata.yaml create mode 100644 docs/integrations/sources/greythr.md diff --git a/airbyte-integrations/connectors/source-greythr/README.md b/airbyte-integrations/connectors/source-greythr/README.md new file mode 100644 index 0000000000000..65b91a0c0f40d --- /dev/null +++ b/airbyte-integrations/connectors/source-greythr/README.md @@ -0,0 +1,33 @@ +# GreytHr +This directory contains the manifest-only connector for `source-greythr`. + +The GreytHR Connector for Airbyte allows seamless integration with the GreytHR platform, enabling users to automate the extraction and synchronization of employee management and payroll data into their preferred destinations for reporting, analytics, or further processing. + +## 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-greythr:dev`) that you can use to test the connector locally. +```bash +airbyte-ci connectors --name=source-greythr build +``` + +### Test +This will run the acceptance tests for the connector. +```bash +airbyte-ci connectors --name=source-greythr test +``` + diff --git a/airbyte-integrations/connectors/source-greythr/acceptance-test-config.yml b/airbyte-integrations/connectors/source-greythr/acceptance-test-config.yml new file mode 100644 index 0000000000000..b71ee73789643 --- /dev/null +++ b/airbyte-integrations/connectors/source-greythr/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-greythr: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-greythr/icon.svg b/airbyte-integrations/connectors/source-greythr/icon.svg new file mode 100644 index 0000000000000..f840636b361cf --- /dev/null +++ b/airbyte-integrations/connectors/source-greythr/icon.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/airbyte-integrations/connectors/source-greythr/manifest.yaml b/airbyte-integrations/connectors/source-greythr/manifest.yaml new file mode 100644 index 0000000000000..9d553363715a0 --- /dev/null +++ b/airbyte-integrations/connectors/source-greythr/manifest.yaml @@ -0,0 +1,1047 @@ +version: 6.1.0 + +type: DeclarativeSource + +description: >- + The GreytHR Connector for Airbyte allows seamless integration with the GreytHR + platform, enabling users to automate the extraction and synchronization of + employee management and payroll data into their preferred destinations for + reporting, analytics, or further processing. + +check: + type: CheckStream + stream_names: + - Employees + +definitions: + streams: + Employees: + type: DeclarativeStream + name: Employees + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employees" + Users List: + type: DeclarativeStream + name: Users List + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /user/v2/users + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: [] + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Users List" + Employees Profile: + type: DeclarativeStream + name: Employees Profile + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + inject_on_first_request: true + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/profile + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + request_parameters: + descRequired: "true" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employees Profile" + Employees Categories: + type: DeclarativeStream + name: Employees Categories + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + inject_on_first_request: true + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/categories + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + request_parameters: + descRequired: "true" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employees Categories" + Employee Bank Details: + type: DeclarativeStream + name: Employee Bank Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/bank + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employee Bank Details" + Employees Work Details: + type: DeclarativeStream + name: Employees Work Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/work + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employees Work Details" + Employee PF & ESI details: + type: DeclarativeStream + name: Employee PF & ESI details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/pf + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employee PF & ESI details" + Employee Statutory Details: + type: DeclarativeStream + name: Employee Statutory Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/statutory/india + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employee Statutory Details" + Employees Personal Details: + type: DeclarativeStream + name: Employees Personal Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/personal + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employees Personal Details" + Employee Separation Details: + type: DeclarativeStream + name: Employee Separation Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/separation + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + primary_key: + - employeeId + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employee Separation Details" + Employee Qualifications Details: + type: DeclarativeStream + name: Employee Qualifications Details + retriever: + type: SimpleRetriever + paginator: + type: DefaultPaginator + page_size_option: + type: RequestOption + field_name: size + inject_into: request_parameter + page_token_option: + type: RequestOption + field_name: page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + requester: + $ref: "#/definitions/base_requester" + path: /employee/v2/employees/qualifications + http_method: GET + request_headers: + x-greythr-domain: "{{ config[\"domain\"] }}" + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - data + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/Employee Qualifications Details" + base_requester: + type: HttpRequester + url_base: "{{ config['base_url'] }}" + authenticator: + type: SessionTokenAuthenticator + login_requester: + type: HttpRequester + path: client-token + url_base: https://{{ config['domain'] }}/uas/v1/oauth2 + http_method: POST + authenticator: + type: BasicHttpAuthenticator + password: "{{ config[\"password\"] }}" + username: "{{ config[\"username\"] }}" + request_headers: {} + request_parameters: {} + session_token_path: + - access_token + expiration_duration: P1W + request_authentication: + type: ApiKey + inject_into: + type: RequestOption + field_name: ACCESS-TOKEN + inject_into: header + +streams: + - $ref: "#/definitions/streams/Employees" + - $ref: "#/definitions/streams/Employees Categories" + - $ref: "#/definitions/streams/Employees Profile" + - $ref: "#/definitions/streams/Employees Personal Details" + - $ref: "#/definitions/streams/Employees Work Details" + - $ref: "#/definitions/streams/Employee Separation Details" + - $ref: "#/definitions/streams/Employee Statutory Details" + - $ref: "#/definitions/streams/Employee Bank Details" + - $ref: "#/definitions/streams/Employee PF & ESI details" + - $ref: "#/definitions/streams/Employee Qualifications Details" + - $ref: "#/definitions/streams/Users List" + +spec: + type: Spec + connection_specification: + type: object + $schema: http://json-schema.org/draft-07/schema# + required: + - base_url + - domain + - username + properties: + domain: + type: string + description: Your GreytHR Host URL + order: 1 + title: Host URL + base_url: + type: string + description: https://api.greythr.com + order: 0 + title: Base URL + password: + type: string + order: 3 + title: Password + always_show: true + airbyte_secret: true + username: + type: string + order: 2 + title: Username + additionalProperties: true + +metadata: + assist: + docsUrl: https://www.getknit.dev/blog/greythr-api-guide + testedStreams: + Employees: + hasRecords: true + streamHash: 28c83fcf7656de194f5722e530d230f8aa5d597d + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Users List: + hasRecords: true + streamHash: 9fabe296a9f240936fe30eac8a9803da1aedd608 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employees Profile: + hasRecords: true + streamHash: 4394c8a538b68ec6bd5b5c91ef02d40491a7720f + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employees Categories: + hasRecords: true + streamHash: d94a5856f8c3c4d3685bc1ebd8fd92debf751557 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employee Bank Details: + hasRecords: true + streamHash: c1abcaabd836f3c73ab660f2e52df64740a2f143 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employees Work Details: + hasRecords: true + streamHash: d79f7042c185f1481dd9abb739577f8fecc6574d + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employee PF & ESI details: + hasRecords: true + streamHash: 0c4d5128674762c7579273943ab279d4c38f6709 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employee Statutory Details: + hasRecords: true + streamHash: b0a8289160af4538fca2edf0cec84a15a92ddf14 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employees Personal Details: + hasRecords: true + streamHash: 32388a874fce59805a00dab12df7efa9183f3219 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employee Separation Details: + hasRecords: true + streamHash: a66bfba7e6973d7c81f705d79e209ca39b272d8b + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + Employee Qualifications Details: + hasRecords: true + streamHash: f9bb303f71084bbd7a04fc072ceb786e7518e722 + hasResponse: true + primaryKeysAreUnique: true + primaryKeysArePresent: true + responsesAreSuccessful: true + autoImportSchema: + Employees: true + Users List: true + Employees Profile: true + Employees Categories: true + Employee Bank Details: true + Employees Work Details: true + Employee PF & ESI details: true + Employee Statutory Details: true + Employees Personal Details: true + Employee Separation Details: true + Employee Qualifications Details: true + +schemas: + Employees: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + name: + type: + - string + - "null" + email: + type: + - string + - "null" + title: + type: + - string + - "null" + gender: + type: + - string + - "null" + mobile: + type: + - string + - "null" + status: + type: + - number + - "null" + leftorg: + type: + - boolean + - "null" + lastName: + type: + - string + - "null" + firstName: + type: + - string + - "null" + dateOfJoin: + type: + - string + - "null" + employeeId: + type: number + employeeNo: + type: + - string + - "null" + middleName: + type: + - string + - "null" + yearsInJob: + type: + - number + - "null" + dateOfBirth: + type: + - string + - "null" + leavingDate: + type: + - string + - "null" + lastModified: + type: + - string + - "null" + personalEmail: + type: + - string + - "null" + personalEmail2: + type: + - string + - "null" + personalEmail3: + type: + - string + - "null" + prevExperience: + type: + - number + - "null" + yearsInService: + type: + - number + - "null" + probationPeriod: + type: + - number + - "null" + relevantExperience: + type: + - number + - "null" + additionalProperties: true + Users List: + type: object + $schema: http://json-schema.org/schema# + properties: + type: + type: + - number + - "null" + id: + type: + - number + - "null" + admin: + type: + - boolean + - "null" + email: + type: + - string + - "null" + deleted: + type: + - boolean + - "null" + userName: + type: + - string + - "null" + systemPassword: + type: + - boolean + - "null" + additionalProperties: true + Employees Profile: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + twitter: + type: + - string + - "null" + wishDOB: + type: + - string + - "null" + facebook: + type: + - string + - "null" + linkedIn: + type: + - string + - "null" + nickname: + type: + - string + - "null" + biography: + type: + - string + - "null" + employeeId: + type: number + additionalProperties: true + Employees Categories: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + employeeId: + type: number + categoryList: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + id: + type: + - number + - "null" + value: + type: + - number + - "null" + category: + type: + - number + - "null" + valueDesc: + type: + - string + - "null" + effectiveTo: + type: + - string + - "null" + categoryDesc: + type: + - string + - "null" + effectiveFrom: + type: + - string + - "null" + additionalProperties: true + Employee Bank Details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + bankName: + type: + - number + - "null" + bankBranch: + type: + - number + - "null" + branchCode: + type: + - string + - "null" + employeeId: + type: number + bankAccountNumber: + type: + - string + - "null" + salaryPaymentMode: + type: + - number + - "null" + additionalProperties: true + Employees Work Details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + employeeId: + type: number + confirmDate: + type: + - string + - "null" + noticePeriod: + type: + - number + - "null" + onboardingStatus: + type: + - string + - "null" + extendedProbationDays: + type: + - number + - "null" + additionalProperties: true + Employee PF & ESI details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + uan: + type: + - string + - "null" + pfNumber: + type: + - string + - "null" + employeeId: + type: number + pfEligible: + type: + - boolean + - "null" + esiEligible: + type: + - boolean + - "null" + pfKycLinkedOn: + type: + - string + - "null" + pfExistingMember: + type: + - boolean + - "null" + excessEPFContribution: + type: + - boolean + - "null" + excessEPSContribution: + type: + - boolean + - "null" + additionalProperties: true + Employee Statutory Details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + disabled: + type: + - boolean + - "null" + birthplace: + type: + - string + - "null" + employeeId: + type: number + expatriate: + type: + - boolean + - "null" + fatherName: + type: + - string + - "null" + isDirector: + type: + - boolean + - "null" + nationality: + type: + - number + - "null" + countryOfOrigin: + type: + - number + - "null" + residentialStatus: + type: + - number + - "null" + additionalProperties: true + Employees Personal Details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + bloodGroup: + type: + - number + - "null" + employeeId: + type: number + spouseName: + type: + - string + - "null" + maritalStatus: + type: + - number + - "null" + additionalProperties: true + Employee Separation Details: + type: object + $schema: http://json-schema.org/schema# + required: + - employeeId + properties: + leftOrg: + type: + - boolean + - "null" + employeeId: + type: number + leavingDate: + type: + - string + - "null" + leavingReason: + type: + - number + - "null" + fitToBeRehired: + type: + - boolean + - "null" + submissionDate: + type: + - string + - "null" + exitInterviewDate: + type: + - string + - "null" + finalSettlementDate: + type: + - string + - "null" + submittedResignation: + type: + - boolean + - "null" + tentativeLeavingDate: + type: + - string + - "null" + additionalProperties: true + Employee Qualifications Details: + type: object + $schema: http://json-schema.org/schema# + properties: + id: + type: + - number + - "null" + duration: + type: + - string + - "null" + employee: + type: + - number + - "null" + qualArea: + type: + - number + - "null" + qualYear: + type: + - number + - "null" + institute: + type: + - string + - "null" + qualLevel: + type: + - number + - "null" + qualDescription: + type: + - number + - "null" + qualCompletionYear: + type: + - number + - "null" + additionalProperties: true diff --git a/airbyte-integrations/connectors/source-greythr/metadata.yaml b/airbyte-integrations/connectors/source-greythr/metadata.yaml new file mode 100644 index 0000000000000..16dc62370a983 --- /dev/null +++ b/airbyte-integrations/connectors/source-greythr/metadata.yaml @@ -0,0 +1,35 @@ +metadataSpecVersion: "1.0" +data: + allowedHosts: + hosts: + - "*" + registryOverrides: + oss: + enabled: true + cloud: + enabled: true + remoteRegistries: + pypi: + enabled: false + packageName: airbyte-source-greythr + connectorBuildOptions: + baseImage: docker.io/airbyte/source-declarative-manifest:6.5.2@sha256:3c89340fc033aab28e7ba7402a4a7c98cd9ca8eefa1503d23d3ea336c9a6e92b + connectorSubtype: api + connectorType: source + definitionId: 1a807325-5a1c-4e0f-a574-841034b1765d + dockerImageTag: 0.0.1 + dockerRepository: airbyte/source-greythr + githubIssueLabel: source-greythr + icon: icon.svg + license: MIT + name: GreytHr + releaseDate: 2024-11-29 + releaseStage: alpha + supportLevel: community + documentationUrl: https://docs.airbyte.com/integrations/sources/greythr + tags: + - language:manifest-only + - cdk:low-code + ab_internal: + ql: 100 + sl: 100 diff --git a/docs/integrations/sources/greythr.md b/docs/integrations/sources/greythr.md new file mode 100644 index 0000000000000..62bd604a9d5c5 --- /dev/null +++ b/docs/integrations/sources/greythr.md @@ -0,0 +1,37 @@ +# GreytHr +The GreytHR Connector for Airbyte allows seamless integration with the GreytHR platform, enabling users to automate the extraction and synchronization of employee management and payroll data into their preferred destinations for reporting, analytics, or further processing. + +## Configuration + +| Input | Type | Description | Default Value | +|-------|------|-------------|---------------| +| `domain` | `string` | Host URL. Your GreytHR Host URL | | +| `base_url` | `string` | Base URL. https://api.greythr.com | | +| `password` | `string` | Password. | | +| `username` | `string` | Username. | | + +## Streams +| Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental | +|-------------|-------------|------------|---------------------|----------------------| +| Employees | employeeId | DefaultPaginator | ✅ | ❌ | +| Employees Categories | employeeId | DefaultPaginator | ✅ | ❌ | +| Employees Profile | employeeId | DefaultPaginator | ✅ | ❌ | +| Employees Personal Details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employees Work Details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employee Separation Details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employee Statutory Details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employee Bank Details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employee PF & ESI details | employeeId | DefaultPaginator | ✅ | ❌ | +| Employee Qualifications Details | | DefaultPaginator | ✅ | ❌ | +| Users List | | DefaultPaginator | ✅ | ❌ | + +## Changelog + +
+ Expand to review + +| Version | Date | Pull Request | Subject | +|------------------|-------------------|--------------|----------------| +| 0.0.1 | 2024-11-29 | | Initial release by [@bhushan-dhwaniris](https://github.com/bhushan-dhwaniris) via Connector Builder | + +