1
0
mirror of synced 2025-12-25 02:09:19 -05:00

Source Kyriba: Updates CDK, Increases Testing Coverage, Fixes Acceptance Test Config, Adds Expected Records (#34545)

This commit is contained in:
Patrick Nilan
2024-02-01 09:58:30 -08:00
committed by GitHub
parent d05f47348e
commit b8fb1eefb9
19 changed files with 707 additions and 1249 deletions

View File

@@ -1,38 +0,0 @@
FROM python:3.7.11-alpine3.14 as base
# build and load all requirements
FROM base as builder
WORKDIR /airbyte/integration_code
# upgrade pip to the latest version
RUN apk --no-cache upgrade \
&& pip install --upgrade pip \
&& apk --no-cache add tzdata build-base
COPY setup.py ./
# install necessary packages to a temporary folder
RUN pip install --prefix=/install .
# build a clean environment
FROM base
WORKDIR /airbyte/integration_code
# copy all loaded and built libraries to a pure basic image
COPY --from=builder /install /usr/local
# add default timezone settings
COPY --from=builder /usr/share/zoneinfo/Etc/UTC /etc/localtime
RUN echo "Etc/UTC" > /etc/timezone
# bash is installed for more convenient debugging.
RUN apk --no-cache add bash
# copy payload code only
COPY main.py ./
COPY source_kyriba ./source_kyriba
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
LABEL io.airbyte.version=0.1.0
LABEL io.airbyte.name=airbyte/source-kyriba

View File

@@ -8,7 +8,7 @@ For information about how to use this connector within Airbyte, see [the documen
### Prerequisites
**To iterate on this connector, make sure to complete this prerequisites section.**
#### Minimum Python version required `= 3.7.0`
#### Minimum Python version required `= 3.10.0`
#### Build & Activate Virtual Environment and install dependencies
From this connector directory, create a virtual environment:
@@ -50,19 +50,70 @@ python main.py read --config secrets/config.json --catalog integration_tests/con
### Locally running the connector docker image
#### Build
**Via [`airbyte-ci`](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md) (recommended):**
#### Use `airbyte-ci` to build your connector
The Airbyte way of building this connector is to use our `airbyte-ci` tool.
You can follow install instructions [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/README.md#L1).
Then running the following command will build your connector:
```bash
airbyte-ci connectors --name=source-kyriba build
airbyte-ci connectors --name source-kyriba build
```
Once the command is done, you will find your connector image in your local docker registry: `airbyte/source-kyriba:dev`.
##### Customizing our build process
When contributing on our connector you might need to customize the build process to add a system dependency or set an env var.
You can customize our build process by adding a `build_customization.py` module to your connector.
This module should contain a `pre_connector_install` and `post_connector_install` async function that will mutate the base image and the connector container respectively.
It will be imported at runtime by our build process and the functions will be called if they exist.
Here is an example of a `build_customization.py` module:
```python
from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
# Feel free to check the dagger documentation for more information on the Container object and its methods.
# https://dagger-io.readthedocs.io/en/sdk-python-v0.6.4/
from dagger import Container
async def pre_connector_install(base_image_container: Container) -> Container:
return await base_image_container.with_env_variable("MY_PRE_BUILD_ENV_VAR", "my_pre_build_env_var_value")
async def post_connector_install(connector_container: Container) -> Container:
return await connector_container.with_env_variable("MY_POST_BUILD_ENV_VAR", "my_post_build_env_var_value")
```
An image will be built with the tag `airbyte/source-kyriba:dev`.
#### Build your own connector image
This connector is built using our dynamic built process in `airbyte-ci`.
The base image used to build it is defined within the metadata.yaml file under the `connectorBuildOptions`.
The build logic is defined using [Dagger](https://dagger.io/) [here](https://github.com/airbytehq/airbyte/blob/master/airbyte-ci/connectors/pipelines/pipelines/builds/python_connectors.py).
It does not rely on a Dockerfile.
**Via `docker build`:**
If you would like to patch our connector and build your own a simple approach would be to:
1. Create your own Dockerfile based on the latest version of the connector image.
```Dockerfile
FROM airbyte/source-kyriba:latest
COPY . ./airbyte/integration_code
RUN pip install ./airbyte/integration_code
# The entrypoint and default env vars are already set in the base image
# ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
# ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]
```
Please use this as an example. This is not optimized.
2. Build your image:
```bash
docker build -t airbyte/source-kyriba:dev .
# Running the spec command against your patched connector
docker run airbyte/source-kyriba:dev spec
```
#### Run
Then run any of the connector commands as follows:
```
@@ -97,4 +148,3 @@ You've checked out the repo, implemented a million dollar feature, and you're re
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).
6. Pat yourself on the back for being an awesome contributor.
7. Someone from Airbyte will take a look at your PR and iterate with you to merge it into master.

View File

@@ -1,30 +1,38 @@
# 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-kyriba:dev
tests:
acceptance_tests:
spec:
- spec_path: "source_kyriba/spec.json"
tests:
- spec_path: "source_kyriba/spec.json"
connection:
- config_path: "secrets/config.json"
status: "succeed"
- config_path: "integration_tests/invalid_config.json"
status: "failed"
tests:
- config_path: "secrets/config.json"
status: "succeed"
- config_path: "integration_tests/invalid_config.json"
status: "failed"
discovery:
- config_path: "secrets/config.json"
tests:
- config_path: "secrets/config.json"
basic_read:
- config_path: "secrets/config.json"
configured_catalog_path: "integration_tests/configured_catalog.json"
empty_streams: []
# TODO uncomment this block to specify that the tests should assert the connector outputs the records provided in the input file a file
# expect_records:
# path: "integration_tests/expected_records.jsonl"
# extra_fields: no
# exact_order: no
# extra_records: yes
incremental: # TODO if your connector does not implement incremental sync, remove this block
- config_path: "secrets/config.json"
configured_catalog_path: "integration_tests/configured_catalog.json"
future_state_path: "integration_tests/abnormal_state.json"
tests:
- config_path: "secrets/config.json"
timeout_seconds: 1200
expect_records:
path: "integration_tests/expected_records.jsonl"
extra_fields: no
exact_order: no
extra_records: yes
fail_on_extra_columns: true
incremental:
tests:
- config_path: "secrets/config.json"
timeout_seconds: 2400
configured_catalog_path: "integration_tests/configured_catalog.json"
future_state:
future_state_path: "integration_tests/abnormal_state.json"
full_refresh:
- config_path: "secrets/config.json"
configured_catalog_path: "integration_tests/configured_catalog.json"
tests:
- config_path: "secrets/config.json"
timeout_seconds: 2400
configured_catalog_path: "integration_tests/configured_catalog.json"

View File

@@ -0,0 +1,30 @@
{"stream": "accounts", "data": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "description": "Company 012 Citi AUD a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "a8ab2150-a094-4b1a-b7a0-e21749e7b60c", "code": "AUD"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479986}
{"stream": "accounts", "data": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "description": "Company 012 Citi CHF a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "3def955d-cee5-441c-81d2-514c9acaec49", "code": "CHF"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": true, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": true, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479986}
{"stream": "accounts", "data": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "description": "Company 012 Citi DKK a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "ede48ce3-991f-41fc-86ff-23f859efde58", "code": "DKK"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479987}
{"stream": "accounts", "data": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "description": "Company 012 Citi GBP a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "b790622e-5fc7-4a05-aa4b-879c5a9613a6", "code": "GBP"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479987}
{"stream": "accounts", "data": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "description": "Company 012 Citi HKD a/c", "description2": null, "accountType": "BANK_ACCOUNT", "company": {"uuid": "b79ffed5-dd18-4242-985f-b9ca607d7ede", "code": "COMPANY012"}, "bank": {"uuid": "1f71d0be-f1a0-4eb5-8dae-3871a84bd5f8", "code": "CITI"}, "branch": {"uuid": "14d748f7-0054-443a-8b32-a7c452542d64", "code": "CITI_US"}, "branchDescription": null, "currency": {"uuid": "4d0966be-c684-41b5-9782-a671391ef8b3", "code": "HKD"}, "countryCode": "US", "ibanCode": null, "banCode": "00000000000000000", "statementIdentifier": null, "zbaIdentifier": null, "glAccount": {"uuid": null, "code": null}, "internalAccountCode": null, "calendar": {"uuid": "fc315653-ca1a-40b6-82e3-31e0ca73be91", "code": "US"}, "signatoryUsers": 0, "documents": false, "closedAccount": false, "creationDate": "2022-11-22", "updateDate": null, "closingDate": null, "status": "CREATION_TO_VALIDATE", "defaultGroup": {"uuid": null, "code": null}, "accountCategory1": {"uuid": null, "code": null}, "accountCategory2": {"uuid": null, "code": null}, "accountCategory3": {"uuid": null, "code": null}, "accountCategory4": {"uuid": null, "code": null}, "accountCategory5": {"uuid": null, "code": null}, "accountCategory6": {"uuid": null, "code": null}, "accountCategory7": {"uuid": null, "code": null}, "accountCategory8": {"uuid": null, "code": null}, "accountCategory9": {"uuid": null, "code": null}, "accountCategory10": {"uuid": null, "code": null}, "marker1": false, "marker2": false, "marker3": false, "attachments": false, "activeStatus": "OPENED", "accountAvailableForPayments": true}, "emitted_at": 1706211479988}
{"stream": "cash_flows", "data": {"uuid": "03740dec-d26b-4860-9e94-c3ff812a01cd", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 146", "origin": "CA/COPY/24 01 010000057", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000949", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495950}
{"stream": "cash_flows", "data": {"uuid": "f74f0cef-4555-47f7-9d30-324666600870", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 207", "origin": "CA/COPY/24 01 010000096", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL001010", "userZone4": "20210420 05 48 55 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
{"stream": "cash_flows", "data": {"uuid": "e82cd190-a922-4f79-8bf2-7818cc0e8d55", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 155", "origin": "CA/COPY/24 01 010000046", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000958", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
{"stream": "cash_flows", "data": {"uuid": "18bacf36-f8fd-459d-bd8b-f62277ec7ba1", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 145", "origin": "CA/COPY/24 01 010000079", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL000948", "userZone4": "20210420 05 48 51 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495951}
{"stream": "cash_flows", "data": {"uuid": "e2f0a797-9233-4888-a65e-933bb7abb30b", "account": {"uuid": "88a86d41-76f2-4f89-a8b8-ba4b3abf9f49", "code": "C01-SCB-USD"}, "flowCode": {"uuid": "c217bfea-eb19-37bf-e053-f60311ac43de", "code": "+AR"}, "budgetCode": {"uuid": null, "code": null}, "flowAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "accountAmount": {"currency": {"uuid": "cb00aa87-fc0c-4712-a86b-062b1b77b3e6", "code": "USD"}, "amount": 1000.0, "signedAmount": 1000.0}, "description": null, "reference": "Kyriba Test invoice 243", "origin": "CA/COPY/24 01 010000137", "number": 1, "glStatus": "EXPORTED_TO_GL", "userZones": {"userZone1": "US-026", "userZone2": "USMF", "userZone3": "GNJL001046", "userZone4": "20210420 05 48 58 pm", "userZone5": "D365"}, "actualMode": "MANUAL", "status": "CONFIRMED", "transactionDate": "2024-01-01", "valueDate": "2021-04-19", "accountingDate": "2021-04-19", "updateDateTime": "2024-01-01T16:00:02Z"}, "emitted_at": 1706211495952}
{"stream": "bank_balances_eod", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "AUD"}}, "emitted_at": 1706211527093}
{"stream": "bank_balances_eod", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "CHF"}}, "emitted_at": 1706211527234}
{"stream": "bank_balances_eod", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "DKK"}}, "emitted_at": 1706211527377}
{"stream": "bank_balances_eod", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "GBP"}}, "emitted_at": 1706211527515}
{"stream": "bank_balances_eod", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "HKD"}}, "emitted_at": 1706211527741}
{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "AUD"}}, "emitted_at": 1706211626413}
{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "CHF"}}, "emitted_at": 1706211626557}
{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "DKK"}}, "emitted_at": 1706211626702}
{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "GBP"}}, "emitted_at": 1706211626891}
{"stream": "bank_balances_intraday", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "bankBalance": {"balanceDate": "2024-01-01", "amount": 0, "lastKnownBalanceDate": null, "currencyCode": "HKD"}}, "emitted_at": 1706211627036}
{"stream": "cash_balances_eod", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "AUD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "AUD"}]}, "emitted_at": 1706211790985}
{"stream": "cash_balances_eod", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "CHF"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "CHF"}]}, "emitted_at": 1706211791131}
{"stream": "cash_balances_eod", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "DKK"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "DKK"}]}, "emitted_at": 1706211791278}
{"stream": "cash_balances_eod", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "GBP"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "GBP"}]}, "emitted_at": 1706211791422}
{"stream": "cash_balances_eod", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": false, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "HKD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "HKD"}]}, "emitted_at": 1706211791566}
{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "aff2fe86-2c13-4362-bc7b-9d2f2cacfd2e", "code": "012CITIAUD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "AUD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "AUD"}]}, "emitted_at": 1706211865338}
{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "ec258294-9384-4aff-9201-e4c78dece318", "code": "012CITICHF", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "CHF"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "CHF"}]}, "emitted_at": 1706211865475}
{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "29a77473-bc11-4a7a-b6f1-e11ed993cf67", "code": "012CITIDKK", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "DKK"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "DKK"}]}, "emitted_at": 1706211865614}
{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "9f1170cb-e4e4-48c1-b3e8-0abc5dfbd6ba", "code": "012CITIGBP", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "GBP"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "GBP"}]}, "emitted_at": 1706211865762}
{"stream": "cash_balances_intraday", "data": {"account": {"uuid": "42e125ab-b9be-4fb2-82a5-104141afedc9", "code": "012CITIHKD", "statementIdentifier": null}, "cashFlowStatus": {"estimatedForecasts": false, "confirmedForecasts": false, "intraday": true, "actual": true}, "cashBalance": [{"balanceDate": {"dateType": "VALUE", "date": "2024-01-01"}, "amount": 0.0, "currencyCode": "HKD"}, {"balanceDate": {"dateType": "VALUE", "date": "2024-01-02"}, "amount": 0.0, "currencyCode": "HKD"}]}, "emitted_at": 1706211865899}

View File

@@ -1,9 +1,15 @@
data:
ab_internal:
ql: 100
sl: 100
connectorBuildOptions:
baseImage: docker.io/airbyte/python-connector-base:1.2.0@sha256:c22a9d97464b69d6ef01898edf3f8612dc11614f05a84984451dde195f337db9
connectorSubtype: api
connectorType: source
definitionId: 547dc08e-ab51-421d-953b-8f3745201a8c
dockerImageTag: 0.1.0
dockerImageTag: 0.1.1
dockerRepository: airbyte/source-kyriba
documentationUrl: https://docs.airbyte.com/integrations/sources/kyriba
githubIssueLabel: source-kyriba
icon: kyriba.svg
license: MIT
@@ -18,11 +24,7 @@ data:
oss:
enabled: true
releaseStage: alpha
documentationUrl: https://docs.airbyte.com/integrations/sources/kyriba
supportLevel: community
tags:
- language:python
ab_internal:
sl: 100
ql: 100
supportLevel: community
metadataSpecVersion: "1.0"

View File

@@ -1,100 +0,0 @@
{
"streams": [
{
"stream": {
"name": "bank_balances_intraday",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh"]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
"stream": {
"name": "cash_balances_intraday",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh"]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
"stream": {
"name": "accounts",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh"]
},
"sync_mode": "full_refresh",
"source_defined_primary_key": [["uuid"], ["code"]],
"destination_sync_mode": "overwrite"
},
{
"stream": {
"name": "cash_flows",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh", "incremental"],
"source_defined_cursor": true,
"default_cursor_field": ["updateDateTime"]
},
"sync_mode": "incremental",
"source_defined_primary_key": [["uuid"]],
"destination_sync_mode": "append"
},
{
"stream": {
"name": "cash_balances_eod",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh"]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
"stream": {
"name": "bank_balances_eod",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh", "incremental"],
"source_defined_cursor": true,
"default_cursor_field": ["updateDateTime"]
},
"sync_mode": "incremental",
"destination_sync_mode": "append"
},
{
"stream": {
"name": "cash_balances_eod",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh", "incremental"],
"source_defined_cursor": true,
"default_cursor_field": ["date"]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
},
{
"stream": {
"name": "bank_balances_eod",
"json_schema": {
"$schema": "http://json-schema.org/draft-04/schema"
},
"supported_sync_modes": ["full_refresh"]
},
"sync_mode": "full_refresh",
"destination_sync_mode": "overwrite"
}
]
}

View File

@@ -6,7 +6,7 @@
from setuptools import find_packages, setup
MAIN_REQUIREMENTS = [
"airbyte-cdk~=0.1",
"airbyte-cdk",
]
TEST_REQUIREMENTS = [

View File

@@ -1,461 +1,270 @@
{
"type": "object",
"required": [
"bank",
"branch",
"calendar",
"code",
"company",
"countryCode",
"currency",
"uuid"
],
"properties": {
"accountCategory1": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory2": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory3": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory4": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory5": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory6": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory7": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory8": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory9": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountCategory10": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"accountAvailableForPayments": {
"type": "boolean",
"example": true,
"description": "Flag to show if account is available for payments (true) or no (false)."
},
"accountType": {
"type": "string",
"example": "BANK_ACCOUNT",
"description": "Account type",
"enum": [
"BANK_ACCOUNT",
"INTERCOMPANY_ACCOUNT",
"OTHER_ACCOUNT",
"SHARED_ACCOUNT"
]
},
"activeStatus": {
"type": "string",
"example": "OPENED",
"description": "Account status.",
"enum": ["OPENED", "CLOSED"]
},
"attachments": {
"type": "boolean",
"description": "Attachments"
},
"banCode": {
"type": "string",
"description": "Account BAN code"
},
"bank": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"branch": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"branchDescription": {
"type": ["null", "string"],
"description": "Account branch description"
},
"calendar": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"closedAccount": {
"type": "boolean",
"example": false,
"description": "Is account closed. Default value false"
},
"closingDate": {
"type": ["null", "string"],
"format": "date",
"example": "2020-06-23",
"description": "Closing date"
},
"code": {
"type": "string",
"example": "COMPANYCODE",
"description": "Account code."
},
"company": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"countryCode": {
"type": "string",
"description": "Account country code"
},
"creationDate": {
"type": "string",
"format": "date",
"example": "2020-06-21",
"description": "Creation date"
},
"currency": {
"type": "object",
"properties": {
"code": {
"type": "string",
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"defaultGroup": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"description": {
"type": ["null", "string"],
"example": "Some description",
"description": "Account description."
},
"description2": {
"type": ["null", "string"],
"example": "Some description2",
"description": "Account description2."
},
"documents": {
"type": "boolean",
"description": "Documents."
},
"glAccount": {
"type": "object",
"properties": {
"code": {
"type": ["null", "string"],
"example": "CODE_ID",
"description": "Code identifier."
},
"uuid": {
"type": ["null", "string"],
"format": "uuid",
"example": "123e4567-e89b-12d3-a456-426655440001",
"description": "UUID identifier. Has priority over the code"
}
},
"title": "ReferenceModel",
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"ibanCode": {
"type": ["null", "string"],
"description": "Account IBAN code"
},
"internalAccountCode": {
"type": ["null", "string"],
"description": "Internal account code"
},
"marker1": {
"type": "boolean",
"example": false,
"description": "Marker1."
},
"marker2": {
"type": "boolean",
"example": false,
"description": "Marker2."
},
"marker3": {
"type": "boolean",
"example": false,
"description": "Marker3."
},
"signatoryUsers": {
"type": "integer",
"format": "int64",
"description": "Signatory users."
},
"statementIdentifier": {
"type": ["null", "string"],
"description": "Account statement identifier"
},
"status": {
"type": "string",
"example": "CREATION_TO_VALIDATE",
"description": "Account status",
"enum": [
"STANDARD",
"CREATION_TO_VALIDATE",
"CREATION_VALIDATED",
"AVAILABLE_FOR_BANK_INTEGRATION",
"CLOSURE_REQUESTED",
"CLOSURE_VALIDATE",
"BANK_CONTRACT_TO_INACTIVATE",
"CLOSED"
]
},
"updateDate": {
"type": ["null", "string"],
"format": "date",
"example": "2020-06-22",
"description": "Update date"
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "UUID of the account."
},
"zbaIdentifier": {
"type": ["null", "string"],
"description": "Account ZBA identifier"
}
},
"type": ["object", "null"],
"title": "AccountSearchModel",
"description": "Account search",
"$schema": "http://json-schema.org/schema#"
"$schema": "http://json-schema.org/schema#",
"properties": {
"accountCategory1": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory2": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory3": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory4": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory5": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory6": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory7": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory8": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory9": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountCategory10": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"accountAvailableForPayments": {
"type": ["boolean", "null"]
},
"accountType": {
"type": ["string", "null"]
},
"activeStatus": {
"type": ["string", "null"]
},
"attachments": {
"type": ["boolean", "null"]
},
"banCode": {
"type": ["string", "null"]
},
"bank": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
}
},
"branch": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
}
},
"branchDescription": {
"type": ["null", "string"]
},
"calendar": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
}
},
"closedAccount": {
"type": ["boolean", "null"]
},
"closingDate": {
"type": ["null", "string"]
},
"code": {
"type": ["string", "null"]
},
"company": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
}
},
"countryCode": {
"type": ["string", "null"]
},
"creationDate": {
"type": ["string", "null"]
},
"currency": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
}
},
"defaultGroup": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"description": {
"type": ["null", "string"]
},
"description2": {
"type": ["null", "string"]
},
"documents": {
"type": ["boolean", "null"]
},
"glAccount": {
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"]
},
"uuid": {
"type": ["null", "string"]
}
}
},
"ibanCode": {
"type": ["null", "string"]
},
"internalAccountCode": {
"type": ["null", "string"]
},
"marker1": {
"type": ["boolean", "null"]
},
"marker2": {
"type": ["boolean", "null"]
},
"marker3": {
"type": ["boolean", "null"]
},
"signatoryUsers": {
"type": ["integer", "null"]
},
"statementIdentifier": {
"type": ["null", "string"]
},
"status": {
"type": ["string", "null"]
},
"updateDate": {
"type": ["null", "string"]
},
"uuid": {
"type": ["string", "null"]
},
"zbaIdentifier": {
"type": ["null", "string"]
}
}
}

View File

@@ -1,63 +1,36 @@
{
"type": "object",
"required": ["account", "bankBalance"],
"properties": {
"account": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"example": "ACCOUNT001",
"description": "Code that represents the account.",
"minLength": 1,
"maxLength": 12
"type": ["string", "null"]
},
"statementIdentifier": {
"type": ["null", "string"],
"example": "Statement identifier",
"description": "Account Statement Identifier of the account.",
"minLength": 0,
"maxLength": 50
"type": ["null", "string"]
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "Unique internal identifier that represents the account."
"type": ["string", "null"]
}
},
"title": "BK-BankAccountModel"
}
},
"bankBalance": {
"type": "object",
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"format": "double",
"example": 1.123,
"description": "End of day balance value."
"type": ["number", "null"]
},
"balanceDate": {
"type": "string",
"format": "date",
"example": "2019-11-11",
"description": "Date of the end of day balance."
"type": ["string", "null"]
},
"currencyCode": {
"type": "string",
"example": "EUR",
"description": "Account currency code.",
"minLength": 1,
"maxLength": 3
"type": ["string", "null"]
},
"lastKnownBalanceDate": {
"type": ["null", "string"],
"format": "date",
"example": "2019-11-11",
"description": "Date of last known balance within the last 365 days."
"type": ["null", "string"]
}
},
"title": "BK-BalanceModel"
}
}
},
"title": "BK-BankStatementBalanceModel",

View File

@@ -1,54 +1,34 @@
{
"type": "object",
"required": ["account", "bankBalance"],
"properties": {
"account": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"example": "ACCOUNT001",
"description": "Code that represents the account.",
"minLength": 1,
"maxLength": 12
"type": ["string", "null"]
},
"statementIdentifier": {
"type": ["null", "string"],
"example": "Statement identifier",
"description": "Account Statement Identifier of the account.",
"minLength": 0,
"maxLength": 50
"type": ["null", "string"]
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "Unique internal identifier that represents the account."
"type": ["string", "null"]
}
},
"title": "BK-BankAccountModel"
}
},
"bankBalance": {
"type": "object",
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"format": "double",
"example": 1.123,
"description": "End of day balance value."
"type": ["number", "null"]
},
"balanceDate": {
"type": "string",
"format": "date",
"example": "2019-11-11",
"description": "Date of the end of day balance."
"type": ["string", "null"]
},
"currencyCode": {
"type": "string",
"example": "EUR",
"description": "Account currency code.",
"minLength": 1,
"maxLength": 3
"type": ["string", "null"]
},
"lastKnownBalanceDate": {
"type": ["string", "null"]
}
},
"title": "BK-BalanceModel"

View File

@@ -2,98 +2,60 @@
"type": "object",
"properties": {
"account": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"example": "ACCOUNT001",
"description": "Code that represents the account.",
"minLength": 1,
"maxLength": 12
"type": ["string", "null"]
},
"statementIdentifier": {
"type": ["null", "string"],
"example": "Statement identifier",
"description": "Account Statement Identifier of the account.",
"minLength": 0,
"maxLength": 50
"type": ["null", "string"]
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "Unique internal identifier that represents the account."
"type": ["string", "null"]
}
},
"title": "BK-BankAccountModel"
}
},
"cashBalance": {
"type": "array",
"description": "Cash balance.",
"type": ["array", "null"],
"items": {
"type": "object",
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"format": "double",
"example": -50000.0,
"description": "Cash balance amount of the selected date, Amount can be positive and negative."
"type": ["number", "null"]
},
"balanceDate": {
"type": "object",
"type": ["object", "null"],
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2020-05-25",
"description": "The date based on which the cash balance is calculated."
"type": ["string", "null"]
},
"dateType": {
"type": "string",
"example": "TRANSACTION",
"description": "The date type based on which the cash balance is calculated.",
"enum": ["TRANSACTION", "VALUE"]
"type": ["string", "null"]
}
},
"title": "BK-BalanceDateModel"
}
},
"currencyCode": {
"type": "string",
"example": "EUR",
"description": "Currency code.",
"minLength": 1,
"maxLength": 3
"type": ["string", "null"]
}
},
"title": "BK-CashBalanceModel"
}
}
},
"cashFlowStatus": {
"type": "object",
"type": ["object", "null"],
"properties": {
"actual": {
"type": "boolean",
"example": false,
"description": "Select the status Actual to calculate the cash balance."
"type": ["boolean", "null"]
},
"confirmedForecasts": {
"type": "boolean",
"example": false,
"description": "Select the status Confirmed forecast to calculate the cash balance."
"type": ["boolean", "null"]
},
"estimatedForecasts": {
"type": "boolean",
"example": false,
"description": "Select the status Estimated forecast to calculate the cash balance."
"type": ["boolean", "null"]
},
"intraday": {
"type": "boolean",
"example": false,
"description": "Select the status Intraday to calculate the cash balance."
"type": ["boolean", "null"]
}
},
"title": "BK-CashFlowStatusModel",
"description": "Cash flow status."
}
}
},
"title": "BK-AccountCashBalanceModel",

View File

@@ -2,98 +2,61 @@
"type": "object",
"properties": {
"account": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"example": "ACCOUNT001",
"description": "Code that represents the account.",
"minLength": 1,
"maxLength": 12
"type": ["string", "null"]
},
"statementIdentifier": {
"type": ["null", "string"],
"example": "Statement identifier",
"description": "Account Statement Identifier of the account.",
"minLength": 0,
"maxLength": 50
"type": ["null", "string"]
},
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "Unique internal identifier that represents the account."
"type": ["string", "null"]
}
},
"title": "BK-BankAccountModel"
}
},
"cashBalance": {
"type": "array",
"type": ["array", "null"],
"description": "Cash balance.",
"items": {
"type": "object",
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"format": "double",
"example": -50000.0,
"description": "Cash balance amount of the selected date, Amount can be positive and negative."
"type": ["number", "null"]
},
"balanceDate": {
"type": "object",
"type": ["object", "null"],
"properties": {
"date": {
"type": "string",
"format": "date",
"example": "2020-05-25",
"description": "The date based on which the cash balance is calculated."
"type": ["string", "null"]
},
"dateType": {
"type": "string",
"example": "TRANSACTION",
"description": "The date type based on which the cash balance is calculated.",
"enum": ["TRANSACTION", "VALUE"]
"type": ["string", "null"]
}
},
"title": "BK-BalanceDateModel"
}
},
"currencyCode": {
"type": "string",
"example": "EUR",
"description": "Currency code.",
"minLength": 1,
"maxLength": 3
"type": ["string", "null"]
}
},
"title": "BK-CashBalanceModel"
}
}
},
"cashFlowStatus": {
"type": "object",
"type": ["object", "null"],
"properties": {
"actual": {
"type": "boolean",
"example": false,
"description": "Select the status Actual to calculate the cash balance."
"type": ["boolean", "null"]
},
"confirmedForecasts": {
"type": "boolean",
"example": false,
"description": "Select the status Confirmed forecast to calculate the cash balance."
"type": ["boolean", "null"]
},
"estimatedForecasts": {
"type": "boolean",
"example": false,
"description": "Select the status Estimated forecast to calculate the cash balance."
"type": ["boolean", "null"]
},
"intraday": {
"type": "boolean",
"example": false,
"description": "Select the status Intraday to calculate the cash balance."
"type": ["boolean", "null"]
}
},
"title": "BK-CashFlowStatusModel",
"description": "Cash flow status."
}
}
},
"title": "BK-AccountCashBalanceModel",

View File

@@ -3,37 +3,21 @@
"required": ["uuid", "account", "flowAmount", "flowCode", "status"],
"properties": {
"uuid": {
"type": "string",
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "UUID of the cash flow."
"type": ["string", "null"]
},
"transactionDate": {
"type": "string",
"format": "date",
"example": "2021-04-01",
"description": "Transaction date"
"type": ["string", "null"]
},
"valueDate": {
"type": "string",
"format": "date",
"example": "2021-04-02",
"description": "Value date"
"type": ["string", "null"]
},
"accountingDate": {
"type": "string",
"format": "date",
"example": "2021-04-03",
"description": "Accounting date"
"type": ["string", "null"]
},
"updateDateTime": {
"type": "string",
"format": "date-time",
"example": "2020-01-02T13:04:35Z",
"description": "Update date time"
"type": ["string", "null"]
},
"account": {
"description": "Bank account",
"$ref": "_definitions.json#/definitions/ReferenceModel"
},
"flowCode": {
@@ -45,9 +29,7 @@
"$ref": "_definitions.json#/definitions/ReferenceModel"
},
"status": {
"type": "string",
"example": "CONFIRMED",
"description": "Cash flow status"
"type": ["string", "null"]
},
"flowAmount": {
"description": "Flow amount",
@@ -58,43 +40,26 @@
"$ref": "_definitions.json#/definitions/AmountModel"
},
"description": {
"type": ["null", "string"],
"description": "Cash flow's description",
"minLength": 0,
"maxLength": 2500
"type": ["null", "string"]
},
"reference": {
"type": ["null", "string"],
"description": "Cash flow's reference",
"minLength": 0,
"maxLength": 250
"type": ["null", "string"]
},
"origin": {
"type": "string",
"description": "Cash flow's origin",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"]
},
"number": {
"type": "integer",
"format": "int32",
"description": "Cash flow's number",
"minimum": 0,
"maximum": 250
"type": ["integer", "null"]
},
"glStatus": {
"type": "string",
"example": "BALANCED",
"description": "Cash flow GL status"
"type": ["string", "null"]
},
"userZones": {
"description": "User zones of the cash flow",
"$ref": "_definitions.json#/definitions/UserZonesModel"
},
"actualMode": {
"type": "string",
"example": "Manual",
"description": "Cash flow actual mode"
"type": ["string", "null"]
}
},
"title": "CashFlowSearchModel",

View File

@@ -1,15 +1,14 @@
{
"definitions": {
"AggregatedGroupDto": {
"type": "object",
"required": ["aggregation"],
"type": ["object", "null"],
"properties": {
"entity": {
"description": "Entity",
"$ref": "#/definitions/ReferenceModel"
},
"date": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"description": "Date"
},
@@ -25,16 +24,15 @@
"title": "AggregatedGroupDto"
},
"AggregationDto": {
"type": "object",
"required": ["amount"],
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"type": ["number", "null"],
"example": 10580.123,
"description": "Calculated aggregation amount of the cash flows expressed in conversion currency"
},
"count": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"description": "Count of the aggregated cash flows."
}
@@ -42,39 +40,21 @@
"title": "AggregationDto"
},
"AggregationLevelDto": {
"type": "object",
"required": ["groupingCriterion", "groups", "level"],
"type": ["object", "null"],
"properties": {
"level": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"example": 1,
"description": "The level of the aggregation",
"enum": [1, 2, 3]
"description": "The level of the aggregation"
},
"groupingCriterion": {
"type": "string",
"type": ["string", "null"],
"example": "BANK",
"description": "The grouping criterion for this level",
"enum": [
"ACCOUNT",
"ACCOUNT_GROUP",
"BANK",
"BANK_GROUP",
"COMPANY",
"COMPANY_GROUP",
"CURRENCY",
"COUNTRY",
"COUNTRY_GROUP",
"FLOW_CODE",
"BUDGET_CODE",
"TRANSACTION_DATE",
"VALUE_DATE",
"ACCOUNTING_DATE"
]
"description": "The grouping criterion for this level"
},
"groups": {
"type": "array",
"type": ["array", "null"],
"description": "List of aggregated groups",
"items": {
"$ref": "#/definitions/AggregatedGroupDto"
@@ -84,7 +64,7 @@
"title": "AggregationLevelDto"
},
"AmountModel": {
"type": "object",
"type": ["object", "null"],
"properties": {
"currency": {
"example": "USD",
@@ -92,19 +72,22 @@
"$ref": "#/definitions/ReferenceModel"
},
"amount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Amount value"
},
"signedAmount": {
"type": ["number", "null"]
}
},
"title": "AmountModel"
},
"AmountResponseDTO": {
"type": "object",
"type": ["object", "null"],
"properties": {
"amount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Amount"
@@ -118,28 +101,28 @@
"title": "AmountResponseDTO"
},
"CashAmountModel": {
"type": "object",
"type": ["object", "null"],
"properties": {
"accountAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Account amount"
},
"feeAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Fee amount"
},
"interestAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Interest amount"
},
"commissionAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Commission amount"
@@ -148,16 +131,7 @@
"title": "CashAmountModel"
},
"CashAmountResponseDTO": {
"type": "object",
"required": [
"account",
"accountAmount",
"date",
"flowAmount",
"flowCode",
"number",
"status"
],
"type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -176,10 +150,8 @@
"$ref": "#/definitions/CashFlowDateModel"
},
"description": {
"type": "string",
"description": "Cash flow's description",
"minLength": 0,
"maxLength": 2500
"type": ["string", "null"],
"description": "Cash flow's description"
},
"flowAmount": {
"description": "Flow amount",
@@ -190,41 +162,33 @@
"$ref": "#/definitions/AmountResponseDTO"
},
"status": {
"type": "string",
"type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status",
"minLength": 0,
"maxLength": 2500
"description": "Cash flow status"
},
"reference": {
"type": "string",
"description": "Cash flow's reference",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's reference"
},
"origin": {
"type": "string",
"description": "Cash flow's origin",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's origin"
},
"number": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"description": "Cash flow's number"
},
"glStatus": {
"type": "string",
"description": "Cash flow's GL status",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's GL status"
},
"userZones": {
"description": "User zones of the cash flow",
"$ref": "#/definitions/UserZonesModel"
},
"actualMode": {
"type": "string",
"type": ["string", "null"],
"example": "Manual",
"description": "Cash flow actual mode"
}
@@ -232,20 +196,18 @@
"title": "CashAmountResponseDTO"
},
"CashFlowAggregationFilteringDto": {
"type": "object",
"required": ["entityFilters"],
"type": ["object", "null"],
"properties": {
"entityFilters": {
"type": "array",
"type": ["array", "null"],
"description": "The list of the filters by entities",
"items": {
"$ref": "#/definitions/EntityFilterDto"
}
},
"accountType": {
"type": "string",
"description": "The account type selected to filter cash flows",
"enum": ["ALL", "BANK", "INTERCO"]
"type": ["string", "null"],
"description": "The account type selected to filter cash flows"
},
"period": {
"description": "The period used to filter cash flows",
@@ -260,132 +222,53 @@
"$ref": "#/definitions/ReferenceModel"
},
"origin": {
"type": "string",
"description": "Origin of a cash flow",
"enum": [
"BANK",
"BANK_FLOAT",
"BANK_INTRADAY",
"BANK_SHARE",
"CASH_FLOW",
"CASH_INTEGRATION",
"CASH_LAW",
"CASH_COPY",
"CASH_FEE",
"CASH_INTEREST",
"CASH_BALANCE",
"CASH_SCENARIO",
"CASH_SERIES",
"BALANCING",
"BORROWING",
"FX",
"PAYMENT",
"PAYMENT_CAMT054",
"PAYMENT_ERP",
"PAYABLE_DRAFTS",
"RECEIVABLE_DRAFTS"
]
"type": ["string", "null"],
"description": "Origin of a cash flow"
},
"description": {
"type": "string",
"description": "Description of the cash flow",
"minLength": 0,
"maxLength": 100
"type": ["string", "null"],
"description": "Description of the cash flow"
},
"reference": {
"type": "string",
"type": ["string", "null"],
"example": "123-ABC",
"description": "Reference of the cash flow",
"minLength": 0,
"maxLength": 50
"description": "Reference of the cash flow"
},
"status": {
"type": "string",
"description": "Status of a cash flow",
"enum": ["ESTIMATED", "CONFIRMED", "ACTUAL", "INTRADAY"]
"type": ["string", "null"],
"description": "Status of a cash flow"
},
"actualMode": {
"type": "string",
"description": "Select the actual mode to filter the cash flows",
"enum": ["ALL", "CASHREC", "MANUAL"]
"type": ["string", "null"],
"description": "Select the actual mode to filter the cash flows"
},
"glStatus": {
"type": "string",
"description": "GL status",
"enum": ["EMPTY", "NOT_BALANCED", "NOT_SENT_TO_GL", "SENT_TO_GL"]
"type": ["string", "null"],
"description": "GL status"
}
},
"title": "CashFlowAggregationFilteringDto"
},
"CashFlowAggregationLevelsDto": {
"type": "object",
"type": ["object", "null"],
"properties": {
"level1": {
"type": "string",
"description": "The first level of aggregation by the grouping criterion",
"enum": [
"ACCOUNT",
"ACCOUNT_GROUP",
"BANK",
"BANK_GROUP",
"COMPANY",
"COMPANY_GROUP",
"CURRENCY",
"COUNTRY",
"COUNTRY_GROUP",
"FLOW_CODE",
"BUDGET_CODE",
"TRANSACTION_DATE",
"VALUE_DATE",
"ACCOUNTING_DATE"
]
"type": ["string", "null"],
"description": "The first level of aggregation by the grouping criterion"
},
"level2": {
"type": "string",
"description": "The second level of aggregation by the grouping criterion",
"enum": [
"ACCOUNT",
"ACCOUNT_GROUP",
"BANK",
"BANK_GROUP",
"COMPANY",
"COMPANY_GROUP",
"CURRENCY",
"COUNTRY",
"COUNTRY_GROUP",
"FLOW_CODE",
"BUDGET_CODE",
"TRANSACTION_DATE",
"VALUE_DATE",
"ACCOUNTING_DATE"
]
"type": ["string", "null"],
"description": "The second level of aggregation by the grouping criterion"
},
"level3": {
"type": "string",
"description": "The third level of aggregation by the grouping criterion",
"enum": [
"ACCOUNT",
"ACCOUNT_GROUP",
"BANK",
"BANK_GROUP",
"COMPANY",
"COMPANY_GROUP",
"CURRENCY",
"COUNTRY",
"COUNTRY_GROUP",
"FLOW_CODE",
"BUDGET_CODE",
"TRANSACTION_DATE",
"VALUE_DATE",
"ACCOUNTING_DATE"
]
"type": ["string", "null"],
"description": "The third level of aggregation by the grouping criterion"
}
},
"title": "CashFlowAggregationLevelsDto"
},
"CashFlowAggregationRequestDto": {
"type": "object",
"required": ["currencyConversion", "filtering"],
"type": ["object", "null"],
"properties": {
"filtering": {
"description": "Filtering",
@@ -403,8 +286,7 @@
"title": "CashFlowAggregationRequestDto"
},
"CashFlowAggregationResponseDto": {
"type": "object",
"required": ["accountAmountAggregationTotal", "currency"],
"type": ["object", "null"],
"properties": {
"accountAmountAggregationTotal": {
"description": "Calculated aggregation total of the cash flows",
@@ -422,28 +304,28 @@
"title": "CashFlowAggregationResponseDto"
},
"CashFlowDateModel": {
"type": "object",
"type": ["object", "null"],
"properties": {
"transactionDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2021-04-01",
"description": "Transaction date"
},
"valueDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2021-04-02",
"description": "Value date"
},
"accountingDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2021-04-03",
"description": "Accounting date"
},
"updateDateTime": {
"type": "string",
"type": ["string", "null"],
"format": "date-time",
"example": "2020-01-02T13:04:35Z",
"description": "Update date time"
@@ -452,8 +334,7 @@
"title": "CashFlowDateModel"
},
"CashFlowModel": {
"type": "object",
"required": ["account", "date", "flowAmount", "flowCode", "status"],
"type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -468,7 +349,7 @@
"$ref": "#/definitions/ReferenceModel"
},
"status": {
"type": "string",
"type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -485,16 +366,12 @@
"$ref": "#/definitions/CashAmountModel"
},
"description": {
"type": "string",
"description": "Cash flow's description",
"minLength": 0,
"maxLength": 2500
"type": ["string", "null"],
"description": "Cash flow's description"
},
"reference": {
"type": "string",
"description": "Cash flow's reference",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's reference"
},
"userZones": {
"description": "User zones of the cash flow",
@@ -504,17 +381,7 @@
"title": "CashFlowModel"
},
"CashFlowResponseDetailed": {
"type": "object",
"required": [
"account",
"bank",
"branch",
"company",
"companyGlAmount",
"counterpartyFlow",
"flowCode",
"forecastGlCountervalue"
],
"type": ["object", "null"],
"properties": {
"currency": {
"example": "USD",
@@ -522,40 +389,36 @@
"$ref": "#/definitions/ReferenceModel"
},
"feeAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Fee amount"
},
"interestAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Interest amount"
},
"commissionAmount": {
"type": "number",
"type": ["number", "null"],
"format": "double",
"example": 10580.123,
"description": "Commission amount"
},
"updateDateTime": {
"type": "string",
"type": ["string", "null"],
"format": "date-time",
"example": "2021-04-02T12:12:12Z",
"description": "Last update date of the cash flow."
},
"flowID": {
"type": "string",
"description": "Flow ID",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Flow ID"
},
"companyConsolidationCode": {
"type": "string",
"description": "Company consolidation code",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Company consolidation code"
},
"company": {
"description": "Company",
@@ -578,10 +441,8 @@
"$ref": "#/definitions/AmountResponseDTO"
},
"debitCreditType": {
"type": "string",
"description": "Type of GL",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Type of GL"
},
"counterpartyFlow": {
"description": "Counterparty flow",
@@ -599,8 +460,7 @@
"title": "CashFlowResponseDetailed"
},
"CashFlowSearchModel": {
"type": "object",
"required": ["account", "date", "flowAmount", "flowCode", "status"],
"type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -619,7 +479,7 @@
"$ref": "#/definitions/CashFlowDateModel"
},
"status": {
"type": "string",
"type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -632,32 +492,24 @@
"$ref": "#/definitions/AmountModel"
},
"description": {
"type": "string",
"description": "Cash flow's description",
"minLength": 0,
"maxLength": 2500
"type": ["string", "null"],
"description": "Cash flow's description"
},
"reference": {
"type": "string",
"description": "Cash flow's reference",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's reference"
},
"origin": {
"type": "string",
"description": "Cash flow's origin",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's origin"
},
"number": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"description": "Cash flow's number",
"minimum": 0,
"maximum": 250
"description": "Cash flow's number"
},
"glStatus": {
"type": "string",
"type": ["string", "null"],
"example": "BALANCED",
"description": "Cash flow GL status"
},
@@ -666,7 +518,7 @@
"$ref": "#/definitions/UserZonesModel"
},
"actualMode": {
"type": "string",
"type": ["string", "null"],
"example": "Manual",
"description": "Cash flow actual mode"
}
@@ -674,8 +526,7 @@
"title": "CashFlowSearchModel"
},
"CashFlowUpdateModel": {
"type": "object",
"required": ["account", "date", "flowAmount", "flowCode", "status"],
"type": ["object", "null"],
"properties": {
"account": {
"description": "Bank account",
@@ -690,7 +541,7 @@
"$ref": "#/definitions/ReferenceModel"
},
"status": {
"type": "string",
"type": ["string", "null"],
"example": "CONFIRMED",
"description": "Cash flow status"
},
@@ -707,16 +558,12 @@
"$ref": "#/definitions/CashAmountModel"
},
"description": {
"type": "string",
"description": "Cash flow's description",
"minLength": 0,
"maxLength": 2500
"type": ["string", "null"],
"description": "Cash flow's description"
},
"reference": {
"type": "string",
"description": "Cash flow's reference",
"minLength": 0,
"maxLength": 250
"type": ["string", "null"],
"description": "Cash flow's reference"
},
"userZones": {
"description": "User zones of the cash flow",
@@ -726,23 +573,21 @@
"title": "CashFlowUpdateModel"
},
"CounterpartyFlowModel": {
"type": "object",
"required": ["company", "consolidationCode"],
"type": ["object", "null"],
"properties": {
"company": {
"description": "Company",
"$ref": "#/definitions/ReferenceModel"
},
"consolidationCode": {
"type": "string",
"type": ["string", "null"],
"description": "Consolidation code"
}
},
"title": "CounterpartyFlowModel"
},
"CurrencyConversionDto": {
"type": "object",
"required": ["currency", "currencyRate"],
"type": ["object", "null"],
"properties": {
"currency": {
"description": "Currency used for conversion",
@@ -756,24 +601,21 @@
"title": "CurrencyConversionDto"
},
"CurrencyConversionRateDto": {
"type": "object",
"required": ["mode"],
"type": ["object", "null"],
"properties": {
"mode": {
"type": "string",
"description": "Currency rate mode to use for currency conversion",
"enum": ["FIXING", "HISTORICAL"]
"type": ["string", "null"],
"description": "Currency rate mode to use for currency conversion"
},
"fixingDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2020-02-01",
"description": "The date of the currency rate to be used if selected mode is FIXING."
},
"historicalDateType": {
"type": "string",
"description": "The dates of that type of the cash flows will be used as the currency rate datesif selected mode is HISTORICAL.",
"enum": ["TRANSACTION", "VALUE", "ACCOUNTING"]
"type": ["string", "null"],
"description": "The dates of that type of the cash flows will be used as the currency rate datesif selected mode is HISTORICAL."
},
"type": {
"description": "Currency rate type",
@@ -783,26 +625,14 @@
"title": "CurrencyConversionRateDto"
},
"EntityFilterDto": {
"type": "object",
"required": ["entities", "entityType"],
"type": ["object", "null"],
"properties": {
"entityType": {
"type": "string",
"description": "The entity type to filter cash flows",
"enum": [
"ACCOUNT",
"ACCOUNT_GROUP",
"BANK",
"BANK_GROUP",
"COMPANY",
"COMPANY_GROUP",
"CURRENCY",
"COUNTRY",
"COUNTRY_GROUP"
]
"type": ["string", "null"],
"description": "The entity type to filter cash flows"
},
"entities": {
"type": "array",
"type": ["array", "null"],
"description": "The entities to filter cash flows of the specified type",
"items": {
"$ref": "#/definitions/ReferenceModel"
@@ -812,22 +642,21 @@
"title": "EntityFilterDto"
},
"FilteringPeriodDto": {
"type": "object",
"type": ["object", "null"],
"properties": {
"dateType": {
"type": "string",
"type": ["string", "null"],
"example": "TRANSACTION",
"description": "The date type based on which the period is defined",
"enum": ["TRANSACTION", "VALUE", "ACCOUNTING", "UPDATE", "CREATION"]
"description": "The date type based on which the period is defined"
},
"startDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2021-04-02",
"description": "The start date of the filtering period"
},
"endDate": {
"type": "string",
"type": ["string", "null"],
"format": "date",
"example": "2021-04-03",
"description": "The end date of the filtering period"
@@ -836,10 +665,10 @@
"title": "FilteringPeriodDto"
},
"InnerError": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"type": ["string", "null"],
"example": "Invalid",
"description": "One of a server-defined set of error codes."
},
@@ -852,7 +681,7 @@
"description": "An object containing more specific information than the current object about the error."
},
"ReferenceModel": {
"type": "object",
"type": ["object", "null"],
"properties": {
"code": {
"type": ["null", "string"],
@@ -870,11 +699,10 @@
"description": "Represents possible identifiers for resource. Should be provided at least one identifier (code or uuid). In the case of providing uuid and code, uuid will be used for resolving the reference."
},
"ResponseUUIDModel": {
"type": "object",
"required": ["uuid"],
"type": ["object", "null"],
"properties": {
"uuid": {
"type": "string",
"type": ["string", "null"],
"format": "uuid",
"example": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"description": "UUID of the created resource."
@@ -883,16 +711,15 @@
"title": "ResponseUUIDModel"
},
"RestApiError": {
"type": "object",
"required": ["code", "message"],
"type": ["object", "null"],
"properties": {
"code": {
"type": "string",
"type": ["string", "null"],
"example": "Invalid",
"description": "One of a server-defined set of error codes."
},
"details": {
"type": "array",
"type": ["array", "null"],
"example": [
{
"code": "Invalid",
@@ -910,12 +737,12 @@
"$ref": "#/definitions/InnerError"
},
"message": {
"type": "string",
"type": ["string", "null"],
"example": "The request failed because it contained invalid values",
"description": "A human-readable representation of the error."
},
"target": {
"type": "string",
"type": ["string", "null"],
"example": "target",
"description": "The target of the error."
}
@@ -924,7 +751,7 @@
"description": "REST API Error."
},
"RestApiErrorResponse": {
"type": "object",
"type": ["object", "null"],
"properties": {
"error": {
"description": "The error object.",
@@ -939,52 +766,42 @@
"properties": {
"userZone1": {
"type": ["null", "string"],
"description": "Free field whose type (Alphanumeric, Numeric, Date, List) is defined in the application setup. The imported value must be consistent with the field type. And the total length across all user zone values must be of 250 characters max",
"minLength": 0,
"maxLength": 100
"description": "Free field whose type (Alphanumeric, Numeric, Date, List) is defined in the application setup. The imported value must be consistent with the field type. And the total length across all user zone values must be of 250 characters max"
},
"userZone2": {
"type": ["null", "string"],
"description": "Free field. Same behavior as field User zone 1",
"minLength": 0,
"maxLength": 100
"description": "Free field. Same behavior as field User zone 1"
},
"userZone3": {
"type": ["null", "string"],
"description": "Free field. Same behavior as field User zone 1",
"minLength": 0,
"maxLength": 100
"description": "Free field. Same behavior as field User zone 1"
},
"userZone4": {
"type": ["null", "string"],
"description": "Free field. Same behavior as field User zone 1",
"minLength": 0,
"maxLength": 100
"description": "Free field. Same behavior as field User zone 1"
},
"userZone5": {
"type": ["null", "string"],
"description": "Free field. Same behavior as field User zone 1",
"minLength": 0,
"maxLength": 100
"description": "Free field. Same behavior as field User zone 1"
}
},
"title": "UserZonesModel"
},
"_links": {
"type": "object",
"type": ["object", "null"],
"properties": {
"current": {
"type": "string",
"type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=10",
"description": "Current page."
},
"next": {
"type": "string",
"type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=20",
"description": "Next page."
},
"prev": {
"type": "string",
"type": ["string", "null"],
"example": "https://host/gateway/api/resources?page.limit=10&page.offset=0",
"description": "Previous page."
}
@@ -992,55 +809,51 @@
"title": "_links"
},
"_metadata": {
"type": "object",
"type": ["object", "null"],
"properties": {
"links": {
"description": "Links for pages.",
"$ref": "#/definitions/_links"
},
"numberOfTotalResults": {
"type": "integer",
"type": ["integer", "null"],
"format": "int64",
"example": 100,
"description": "The number of total records.",
"minimum": 0.0,
"exclusiveMinimum": false
},
"pageLimit": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"example": 100,
"description": "Limit the number of records per page. By default 100.",
"minimum": 1.0,
"exclusiveMinimum": false
},
"pageOffset": {
"type": "integer",
"type": ["integer", "null"],
"format": "int32",
"example": 0,
"description": "Page Offset means the number of records you want to skip before starting reading. By default 0.",
"minimum": 0.0,
"exclusiveMinimum": false
},
"pageResults": {
"type": "integer",
"type": ["integer", "null"],
"format": "int64",
"example": 10,
"description": "The number of records in current page.",
"minimum": 0.0,
"exclusiveMinimum": false
}
},
"title": "_metadata"
},
"_pageOfCashFlowSearchModel": {
"type": "object",
"type": ["object", "null"],
"properties": {
"metadata": {
"$ref": "#/definitions/_metadata"
},
"results": {
"type": "array",
"type": ["array", "null"],
"items": {
"$ref": "#/definitions/CashFlowSearchModel"
}

View File

@@ -270,9 +270,15 @@ class SourceKyriba(AbstractSource):
return f"https://{config['domain']}/gateway"
def check_connection(self, logger, config) -> Tuple[bool, any]:
client = KyribaClient(config["username"], config["password"], self.gateway_url(config))
client.login()
return True, None
try:
client = KyribaClient(config["username"], config["password"], self.gateway_url(config))
client.login()
return True, None
except Exception as e:
if isinstance(e, requests.exceptions.HTTPError) and e.response.status_code == 401:
err_message = f"Please check your `username` and `password`. Error: {repr(e)}"
return False, err_message
return False, repr(e)
def streams(self, config: Mapping[str, Any]) -> List[Stream]:
gateway_url = self.gateway_url(config)

View File

@@ -5,32 +5,36 @@
"title": "Kyriba Spec",
"type": "object",
"required": ["domain", "username", "password", "start_date"],
"additionalProperties": false,
"additionalProperties": true,
"properties": {
"domain": {
"type": "string",
"description": "Kyriba domain",
"title": "Domain",
"examples": ["demo.kyriba.com"],
"pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*"
"pattern": "^[a-zA-Z0-9._-]*\\.[a-zA-Z0-9._-]*\\.[a-z]*",
"order": 2
},
"username": {
"type": "string",
"description": "Username to be used in basic auth",
"title": "Username"
"title": "Username",
"order": 0
},
"password": {
"type": "string",
"description": "Password to be used in basic auth",
"title": "Password",
"airbyte_secret": true
"airbyte_secret": true,
"order": 1
},
"start_date": {
"type": "string",
"description": "The date the sync should start from.",
"title": "Start Date",
"examples": ["2021-01-10"],
"pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$"
"pattern": "^\\d{4}\\-(0[1-9]|1[012])\\-(0[1-9]|[12][0-9]|3[01])$",
"order": 3
},
"end_date": {
"type": "string",

View File

@@ -6,7 +6,7 @@ from datetime import date
from unittest.mock import MagicMock
import pytest
from source_kyriba.source import CashBalancesStream
from source_kyriba.source import BankBalancesStream
from .test_streams import config
@@ -14,64 +14,58 @@ from .test_streams import config
@pytest.fixture
def patch_base_class(mocker):
# Mock abstract methods to enable instantiating abstract class
mocker.patch.object(CashBalancesStream, "primary_key", "test_primary_key")
mocker.patch.object(CashBalancesStream, "__abstractmethods__", set())
mocker.patch.object(BankBalancesStream, "primary_key", "test_primary_key")
mocker.patch.object(BankBalancesStream, "__abstractmethods__", set())
def test_stream_slices(patch_base_class):
stream = CashBalancesStream(**config())
account_uuids = [{"account_uuid": "first"}, {"account_uuid": "second"}]
stream = BankBalancesStream(**config())
account_uuids = [
{"account_uuid": "first"},
{"account_uuid": "second"}
]
stream.get_account_uuids = MagicMock(return_value=account_uuids)
stream.start_date = date(2022, 1, 1)
stream.end_date = date(2022, 3, 1)
stream.end_date = date(2022, 1, 2)
expected = [
{
"account_uuid": "first",
"startDate": "2022-01-01",
"endDate": "2022-02-01",
"date": "2022-01-01",
},
{
"account_uuid": "second",
"startDate": "2022-01-01",
"endDate": "2022-02-01",
"date": "2022-01-01",
},
{
"account_uuid": "first",
"startDate": "2022-02-02",
"endDate": "2022-03-01",
"date": "2022-01-02",
},
{
"account_uuid": "second",
"startDate": "2022-02-02",
"endDate": "2022-03-01",
},
"date": "2022-01-02",
}
]
slices = stream.stream_slices()
assert slices == expected
def test_path(patch_base_class):
stream = CashBalancesStream(**config())
stream = BankBalancesStream(**config())
inputs = {"stream_slice": {"account_uuid": "uuid"}}
path = stream.path(**inputs)
assert path == "cash-balances/accounts/uuid/balances"
assert path == "bank-balances/accounts/uuid/balances"
def test_request_params(patch_base_class):
stream = CashBalancesStream(**config())
stream = BankBalancesStream(**config())
inputs = {
"stream_slice": {"account_uuid": "uuid", "endDate": "2022-02-01", "startDate": "2022-01-01"},
"stream_slice": {"account_uuid": "uuid", "date": "2022-02-01"},
"stream_state": {},
}
stream.intraday = False
stream.balance_type = "END_OF_DAY"
params = stream.request_params(**inputs)
expected = {
"endDate": "2022-02-01",
"startDate": "2022-01-01",
"intraday": False,
"actual": True,
"estimatedForecasts": False,
"confirmedForecasts": False,
"dateType": "VALUE",
"date": inputs["stream_slice"]["date"],
"type": stream.balance_type,
}
assert params == expected

View File

@@ -13,14 +13,6 @@ config = {
"start_date": "2022-01-01",
}
config = {
"username": "username",
"password": "password",
"domain": "demo.kyriba.com",
"start_date": "2022-01-01",
}
def test_check_connection(mocker):
source = SourceKyriba()
KyribaClient.login = MagicMock()

View File

@@ -1,24 +1,69 @@
# Kyriba
<HideInUI>
This page contains the setup guide and reference information for the [Kyriba](https://www.kyriba.com/) source connector.
</HideInUI>
## Overview
The Kyriba source retrieves data from [Kyriba](https://kyriba.com/) using their [JSON REST APIs](https://developer.kyriba.com/apiCatalog/).
## Setup Guide
### Requirements
## Prerequisites
- Kyriba domain
- Username
- Username
- Password
You have to reach out to Kyriba to get these.
## Setup Guide
### Set up the Kyriba source connector in Airbyte
1. Log in to your [Airbyte Cloud](https://cloud.airbyte.com/workspaces) account or your Airbyte Open Source account.
2. Navigate to **Sources** in the left sidebar and click **+ New source**. in the top-right corner.
3. Choose **Kyriba** from the list of available sources.
4. For **Source name**, enter a descriptive name to help you identify this source.
5. For **Domain**, enter your Kyriba domain.
6. Input your **Username** and **Password** for basic authentication.
7. Specify the**Start Date**, from which data syncing will commence.
8. (Optional) Specify an End Date to indicate the last date up to which data will be synced.
<HideInUI>
## Supported Sync Modes
The Kyriba source connector supports the following [sync modes](https://docs.airbyte.com/cloud/core-concepts#connection-sync-modes):
- Full Refresh
- Incremental
## Supported Streams
- [Accounts](https://developer.kyriba.com/site/global/apis/accounts/index.gsp)
- [Bank Balances](https://developer.kyriba.com/site/global/apis/bank-statement-balances/index.gsp) - End of Day and Intraday
- [Cash Balances](https://developer.kyriba.com/site/global/apis/cash-balances/index.gsp) - End of Day and Intraday
- [Cash Flows](https://developer.kyriba.com/site/global/apis/cash-flows/index.gsp) (incremental)
- [Cash Balances](https://developer.kyriba.com/site/global/apis/cash-balances/index.gsp) - End of Day and Intraday
- [Cash Flows](https://developer.kyriba.com/site/global/apis/cash-flows/index.gsp)
## Limitations & Troubleshooting
<details>
<summary>
Expand to see details about Kyriba connector limitations and troubleshooting.
</summary>
### Connector Limitations
#### Rate Limiting
The Kyriba connector should not run into API limitations under normal usage. [Create an issue](https://github.com/airbytehq/airbyte/issues) if you see any rate limit issues that are not automatically retried successfully.
### Troubleshooting
* Check out common troubleshooting issues for the Stripe source connector on our [Airbyte Forum](https://github.com/airbytehq/airbyte/discussions).
</details>
## Changelog
| Version | Date | Pull Request | Subject |
| :------ | :--------- | :------------------------------------------------------- | :-------------------------- |
| Version | Date | Pull Request | Subject |
| :------ | :--------- | :------------------------------------------------------- | :--------------------------- |
| 0.1.1 | 2024-01-30 | [34545](https://github.com/airbytehq/airbyte/pull/34545) | Updates CDK, Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.1.0 | 2022-07-13 | [12748](https://github.com/airbytehq/airbyte/pull/12748) | The Kyriba Source is created |
</HideInUI>