Skip to content

Commit 4d7eed2

Browse files
sajarinnatikgadzhi
andauthored
🎉 New Source: Hibob (#43336)
Co-authored-by: Natik Gadzhi <[email protected]>
1 parent 97d822f commit 4d7eed2

File tree

15 files changed

+2997
-0
lines changed

15 files changed

+2997
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Hibob Source
2+
3+
This is the repository for the Hibob configuration based source connector.
4+
For information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/hibob).
5+
6+
## Local development
7+
8+
### Prerequisites
9+
10+
- Python (`^3.10`)
11+
- Poetry (`^1.7`) - installation instructions [here](https://python-poetry.org/docs/#installation)
12+
13+
### Installing the connector
14+
15+
From this connector directory, run:
16+
17+
```bash
18+
poetry install --with dev
19+
```
20+
21+
### Create credentials
22+
23+
**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/hibob)
24+
to generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `src/source_hibob/spec.yaml` file.
25+
Note that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.
26+
See `sample_files/sample_config.json` for a sample config file.
27+
28+
### Locally running the connector
29+
30+
```
31+
poetry run source-hibob spec
32+
poetry run source-hibob check --config secrets/config.json
33+
poetry run source-hibob discover --config secrets/config.json
34+
poetry run source-hibob read --config secrets/config.json --catalog sample_files/configured_catalog.json
35+
```
36+
37+
38+
### Building the docker image
39+
40+
1. Install [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md)
41+
2. Run the following command to build the docker image:
42+
43+
```bash
44+
airbyte-ci connectors --name=source-hibob build
45+
```
46+
47+
An image will be available on your host with the tag `airbyte/source-hibob:dev`.
48+
49+
### Running as a docker container
50+
51+
Then run any of the connector commands as follows:
52+
53+
```
54+
docker run --rm airbyte/source-hibob:dev spec
55+
docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-hibob:dev check --config /secrets/config.json
56+
docker run --rm -v $(pwd)/secrets:/secrets airbyte/source-hibob:dev discover --config /secrets/config.json
57+
docker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-hibob:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json
58+
```
59+
60+
### Running our CI test suite
61+
62+
You can run our full test suite locally using [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md):
63+
64+
```bash
65+
airbyte-ci connectors --name=source-hibob test
66+
```
67+
68+
### Customizing acceptance Tests
69+
70+
Customize `acceptance-test-config.yml` file to configure acceptance tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.
71+
If your connector requires to create or destroy resources for use during acceptance tests create fixtures for it and place them inside integration_tests/acceptance.py.
72+
73+
### Dependency Management
74+
75+
All of your dependencies should be managed via Poetry.
76+
To add a new dependency, run:
77+
78+
```bash
79+
poetry add <package-name>
80+
```
81+
82+
Please commit the changes to `pyproject.toml` and `poetry.lock` files.
83+
84+
## Publishing a new version of the connector
85+
86+
You've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?
87+
88+
1. Make sure your changes are passing our test suite: `airbyte-ci connectors --name=source-hibob test`
89+
2. Bump the connector version (please follow [semantic versioning for connectors](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#semantic-versioning-for-connectors)):
90+
- bump the `dockerImageTag` value in in `metadata.yaml`
91+
- bump the `version` value in `pyproject.toml`
92+
3. Make sure the `metadata.yaml` content is up to date.
93+
4. Make sure the connector documentation and its changelog is up to date (`docs/integrations/sources/hibob.md`).
94+
5. Create a Pull Request: use [our PR naming conventions](https://docs.airbyte.com/contributing-to-airbyte/resources/pull-requests-handbook/#pull-request-title-convention).
95+
6. Pat yourself on the back for being an awesome contributor.
96+
7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.
97+
8. Once your PR is merged, the new version of the connector will be automatically published to Docker Hub and our connector registry.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference)
2+
# for more information about how to configure these tests
3+
connector_image: airbyte/source-hibob:dev
4+
acceptance_tests:
5+
spec:
6+
tests:
7+
- spec_path: "source_hibob/manifest.yaml"
8+
connection:
9+
tests:
10+
- config_path: "secrets/config.json"
11+
status: "succeed"
12+
- config_path: "integration_tests/invalid_config.json"
13+
status: "failed"
14+
discovery:
15+
tests:
16+
- config_path: "secrets/config.json"
17+
basic_read:
18+
tests:
19+
- config_path: "secrets/config.json"
20+
configured_catalog_path: "integration_tests/configured_catalog.json"
21+
empty_streams: []
22+
incremental:
23+
bypass_reason: "This connector does not implement incremental sync"
24+
full_refresh:
25+
tests:
26+
- config_path: "secrets/config.json"
27+
configured_catalog_path: "integration_tests/configured_catalog.json"
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"streams": [
3+
{
4+
"stream": {
5+
"name": "profiles",
6+
"json_schema": {},
7+
"supported_sync_modes": ["full_refresh"]
8+
},
9+
"sync_mode": "full_refresh",
10+
"destination_sync_mode": "overwrite"
11+
},
12+
{
13+
"stream": {
14+
"name": "payroll",
15+
"json_schema": {},
16+
"supported_sync_modes": ["full_refresh"]
17+
},
18+
"sync_mode": "full_refresh",
19+
"destination_sync_mode": "overwrite"
20+
}
21+
]
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"username": "this should not work",
3+
"password": "this shouldn't work either",
4+
"is_sandbox": true
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"username": "SERVICE-xxxxx",
3+
"password": "token",
4+
"is_sandbox": true
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#
2+
# Copyright (c) 2024 Airbyte, Inc., all rights reserved.
3+
#
4+
5+
6+
from source_hibob.run import run
7+
8+
if __name__ == "__main__":
9+
run()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
data:
2+
allowedHosts:
3+
hosts:
4+
- app.sandbox.hibob.com
5+
- app.hibob.com
6+
registries:
7+
oss:
8+
enabled: true
9+
cloud:
10+
enabled: true
11+
remoteRegistries:
12+
pypi:
13+
enabled: true
14+
packageName: airbyte-source-hibob
15+
connectorBuildOptions:
16+
# Please update to the latest version of the connector base image.
17+
# https://hub.docker.com/r/airbyte/python-connector-base
18+
# Please use the full address with sha256 hash to guarantee build reproducibility.
19+
baseImage: docker.io/airbyte/python-connector-base:2.0.0@sha256:c44839ba84406116e8ba68722a0f30e8f6e7056c726f447681bb9e9ece8bd916
20+
connectorSubtype: api
21+
connectorType: source
22+
definitionId: 4dc991ed-3dcc-4c40-ac28-9402836709f1
23+
dockerImageTag: 0.1.0
24+
dockerRepository: airbyte/source-hibob
25+
githubIssueLabel: source-hibob
26+
icon: icon.svg
27+
license: MIT
28+
name: Hibob
29+
releaseDate: 2024-08-06
30+
releaseStage: alpha
31+
supportLevel: community
32+
documentationUrl: https://docs.airbyte.com/integrations/sources/hibob
33+
tags:
34+
- language:python
35+
- cdk:low-code
36+
metadataSpecVersion: "1.0"

0 commit comments

Comments
 (0)