{"id":19307404,"url":"https://github.com/artefactory/airbyte-napta-source","last_synced_at":"2025-07-09T20:32:30.264Z","repository":{"id":176892211,"uuid":"605145543","full_name":"artefactory/airbyte-napta-source","owner":"artefactory","description":"Airbyte \u003c-\u003e Napta connector","archived":false,"fork":false,"pushed_at":"2023-10-10T08:25:02.000Z","size":6424,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-24T02:49:53.521Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artefactory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-22T14:43:29.000Z","updated_at":"2023-04-19T15:54:42.000Z","dependencies_parsed_at":"2024-11-10T00:10:53.523Z","dependency_job_id":null,"html_url":"https://github.com/artefactory/airbyte-napta-source","commit_stats":null,"previous_names":["artefactory/airbyte-napta-source"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/artefactory/airbyte-napta-source","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artefactory%2Fairbyte-napta-source","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artefactory%2Fairbyte-napta-source/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artefactory%2Fairbyte-napta-source/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artefactory%2Fairbyte-napta-source/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artefactory","download_url":"https://codeload.github.com/artefactory/airbyte-napta-source/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artefactory%2Fairbyte-napta-source/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502662,"owners_count":23618669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T00:10:49.428Z","updated_at":"2025-07-09T20:32:30.243Z","avatar_url":"https://github.com/artefactory.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Napta Source\n\nThis is the repository for the Napta source connector, written in Python.\nFor information about how to use this connector within Airbyte, see [the documentation](https://docs.airbyte.com/integrations/sources/napta).\n\n## Local development\n\n### Prerequisites\n**To iterate on this connector, make sure to complete this prerequisites section.**\n\n#### Minimum Python version required `= 3.9.0`\n\n#### Build \u0026 Activate Virtual Environment and install dependencies\nFrom this connector directory, create a virtual environment:\n```\npython -m venv .venv\n```\n\nThis will generate a virtualenv for this module in `.venv/`. Make sure this venv is active in your\ndevelopment environment of choice. To activate it from the terminal, run:\n```\nsource .venv/bin/activate\npip install -r requirements.txt\npip install '.[tests]'\n```\nIf you are in an IDE, follow your IDE's instructions to activate the virtualenv.\n\nNote that while we are installing dependencies from `requirements.txt`, you should only edit `setup.py` for your dependencies. `requirements.txt` is\nused for editable installs (`pip install -e`) to pull in Python dependencies from the monorepo and will call `setup.py`.\nIf this is mumbo jumbo to you, don't worry about it, just put your deps in `setup.py` but install using `pip install -r requirements.txt` and everything\nshould work as you expect.\n\n#### Building via Gradle\nYou can also build the connector in Gradle. This is typically used in CI and not needed for your development workflow.\n\nTo build using Gradle, from the Airbyte repository root, run:\n```\n./gradlew :airbyte-integrations:connectors:source-napta:build\n```\n\n#### Create credentials\n**If you are a community contributor**, follow the instructions in the [documentation](https://docs.airbyte.com/integrations/sources/napta)\nto generate the necessary credentials. Then create a file `secrets/config.json` conforming to the `source_napta/spec.yaml` file.\nNote that any directory named `secrets` is gitignored across the entire Airbyte repo, so there is no danger of accidentally checking in sensitive information.\nSee `integration_tests/sample_config.json` for a sample config file.\n\n**If you are an Airbyte core member**, copy the credentials in Lastpass under the secret name `source napta test creds`\nand place them into `secrets/config.json`.\n\n### Locally running the connector\n```\npython main.py spec\npython main.py check --config secrets/config.json\npython main.py discover --config secrets/config.json\npython main.py read --config secrets/config.json --catalog integration_tests/configured_catalog.json\n```\n\n### Locally running the connector docker image\n\n#### Build\nFirst, make sure you build the latest Docker image:\n```\ndocker build . -t airbyte/source-napta:dev\n```\n\nIf you want to build the Docker image with the CDK on your local machine (rather than the most recent package published to pypi), from the airbyte base directory run:\n```bash\nCONNECTOR_TAG=\u003cTAG_NAME\u003e CONNECTOR_NAME=\u003cCONNECTOR_NAME\u003e sh airbyte-integrations/scripts/build-connector-image-with-local-cdk.sh\n```\n\n\nYou can also build the connector image via Gradle:\n```\n./gradlew :airbyte-integrations:connectors:source-napta:airbyteDocker\n```\nWhen building via Gradle, the docker image name and tag, respectively, are the values of the `io.airbyte.name` and `io.airbyte.version` `LABEL`s in\nthe Dockerfile.\n\n#### Run\nThen run any of the connector commands as follows:\n```\ndocker run --rm airbyte/source-napta:dev spec\ndocker run --rm -v $(pwd)/secrets:/secrets airbyte/source-napta:dev check --config /secrets/config.json\ndocker run --rm -v $(pwd)/secrets:/secrets airbyte/source-napta:dev discover --config /secrets/config.json\ndocker run --rm -v $(pwd)/secrets:/secrets -v $(pwd)/integration_tests:/integration_tests airbyte/source-napta:dev read --config /secrets/config.json --catalog /integration_tests/configured_catalog.json\n```\n## Testing\nMake sure to familiarize yourself with [pytest test discovery](https://docs.pytest.org/en/latest/goodpractices.html#test-discovery) to know how your test files and methods should be named.\nFirst install test dependencies into your virtual environment:\n```\npip install .[tests]\n```\n### Unit Tests\nTo run unit tests locally, from the connector directory run:\n```\npython -m pytest unit_tests\n```\n\n### Integration Tests\nThere are two types of integration tests: Acceptance Tests (Airbyte's test suite for all source connectors) and custom integration tests (which are specific to this connector).\n#### Custom Integration tests\nPlace custom tests inside `integration_tests/` folder, then, from the connector root, run\n```\npython -m pytest integration_tests\n```\n#### Acceptance Tests\nCustomize `acceptance-test-config.yml` file to configure tests. See [Connector Acceptance Tests](https://docs.airbyte.com/connector-development/testing-connectors/connector-acceptance-tests-reference) for more information.\nIf 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.\nTo run your integration tests with acceptance tests, from the connector root, run\n```\npython -m pytest integration_tests -p integration_tests.acceptance\n```\nTo run your integration tests with docker\n\n### Using gradle to run tests\nAll commands should be run from airbyte project root.\nTo run unit tests:\n```\n./gradlew :airbyte-integrations:connectors:source-napta:unitTest\n```\nTo run acceptance and custom integration tests:\n```\n./gradlew :airbyte-integrations:connectors:source-napta:integrationTest\n```\n\n## Dependency Management\nAll of your dependencies should go in `setup.py`, NOT `requirements.txt`. The requirements file is only used to connect internal Airbyte dependencies in the monorepo for local development.\nWe split dependencies between two groups, dependencies that are:\n* required for your connector to work need to go to `MAIN_REQUIREMENTS` list.\n* required for the testing need to go to `TEST_REQUIREMENTS` list\n\n### Publishing a new version of the connector\nYou've checked out the repo, implemented a million dollar feature, and you're ready to share your changes with the world. Now what?\n1. Make sure your changes are passing unit and integration tests.\n1. Bump the connector version in `Dockerfile` -- just increment the value of the `LABEL io.airbyte.version` appropriately (we use [SemVer](https://semver.org/)).\n1. Create a Pull Request.\n1. Pat yourself on the back for being an awesome contributor.\n1. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartefactory%2Fairbyte-napta-source","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartefactory%2Fairbyte-napta-source","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartefactory%2Fairbyte-napta-source/lists"}