Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configuration documentation #5

Merged
merged 11 commits into from
Aug 10, 2020
Merged

Conversation

cgardens
Copy link
Contributor

Doc that tries to enumerate the requirements for the source side of our product. Proposes what configuration needs to be taken in. Still rough, but hopefully enough to push the conversation forwards.

@cgardens cgardens force-pushed the charles/source_configuration_docs branch 2 times, most recently from ac1269f to 19108df Compare July 30, 2020 22:21
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved

Fivetran has a similar feature, where at configuration time, it detects the scheme of the data source and allows a user to select a subset of the columns discovered.

## Source
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a section about supported sources/destinations? here are some imo good MVP candidates:
Sources:

  1. Postgres
  2. S3 CSV
  3. MySQL

Destinations:

  1. BigQuery
  2. RedShift
  3. Postgres
  4. MySQL

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also have one SaaS source

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the goal here is to describe how configuration works, can we keep this conversation in the reqs doc: https://docs.google.com/document/d/1X6M3qhbg9E9adykdI8KmO3xV7mr0XK7O3jLbN5Z7ydw/edit#?

docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
@cgardens cgardens changed the title source / connected source requirements and configuration documentation configuration documentation Aug 4, 2020
Copy link
Contributor

@sherifnada sherifnada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments, might have some more tomorrow when I've had some time to think about it

},
"dataType": {
"type": "string",
"enum": ["string", "number", "uuid", "boolean"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this enum seems overly restrictive since we could custom data types e.g: postgres dates or json blobs. What is the value of making this an enum vs. having it be a string? Or are we pooling anything that isn't a uuid/number/boolean into string? in that case, should uuid also be pooled into string?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good question. the value of having these be an enum in the future is that we can make sure we are matching up columns in different tables that are compatible. like recognize if we are piping a uuid into a string column is maybe not what we want to do. for right now it doesn't matter probably?

i was being lazy when i wrote this enum, just putting in values as an example; i would definitely include more types.

i think defining our own types will probably be valuable at some point, but kinda ambivalent as to whether we need to do it MVP or do what you said and just use strings. what would your preference be @sherifnada ?

* Receive feedback on whether Dataline was able to reach the source with the given credentials.
* Insert credentials for a destination.
* Receive feedback on whether Dataline was able to reach the destination with the given credentials.
* Show intent to connect source to destination.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this point mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol. yeah awkward phrasing. all steps so far have just been source or destination. this step is where you say i want to connect source X to destination Y.

* Show intent to connect source to destination.
* Receives schema of the source.
* Selects which part of the schema will be synced.
* Triggers a manual sync or inputs schedule on which syncs should take place.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in the case the user triggers a manual sync, is this saying the line would be a one-time transient transfer?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it would just attempt to run a sync (using whatever existing configuration is, full_refresh or append).

docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved
docs/configuration_data_model.md Outdated Show resolved Hide resolved

### Conduit Types

#### StandardConduitConfiguration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the Standard prefix?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as in you don't think this should be the same across all taps. what parts do you think can't be standardized? i think the goal here is to try to get the conduit configuration to be the mode (which is standard) and the part of the schema that we want to sync (which is standardized in tables/columns).

Configuration that is the SAME for all tap / target combinations. Describes the sync mode (full refresh or append) as well what part of the schema will be synced.

```json
{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this also have a handle to source and destination?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah... i actually all of these input configs are missing sourceId or destinationId. do you have an opinion about putting these in the configs versus just adding them to interface of the methods. (e.g. sync(sourceId, destinationId, etc...)). i'm a little inclined to take this approach since ConnectionConfiguration is not standard. if we did add the id to the configs, then we would maybe need to add a StandardConnectionConfiguration as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

talked offline. i will add the source destination id into the objects.

docs/configuration_data_model.md Outdated Show resolved Hide resolved

1. Add a source _without_ needing to write HTML. They should be responsible for only 2 things:
1. Define Configuration: define a json object which describes which properties need to be collected by a user. Then the UI figures out how to render it.
1. Implement: `testConnection`, `discoverSchema`, and `sync`. These functions should only rely on the configurations defined in the json and should return objects that match the interfaces that are described below.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should are more granularity in the sync

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you say more? you think the configuration should be more granular? or are you talking about splitting up the steps in the sync step more? if the latter, we can figure that out in sherif's work doc.


Fivetran has a similar feature, where at configuration time, it detects the scheme of the data source and allows a user to select a subset of the columns discovered.

## Source
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should also have one SaaS source

}
```

#### StandardConnectionStatus
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is it prefixed with Standard?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the configuration for a connection is not standard, but i was imagining that when you implement a test connection check you need to return something against a standard interface (i.e. it connected or it didn't). is there something you feel is non standard here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or is the question just what standard means? it means it's a configuration / interface that is the same for all taps or targets.

docs/configuration_data_model.md Outdated Show resolved Hide resolved
@cgardens cgardens force-pushed the charles/source_configuration_docs branch 2 times, most recently from 8fc2613 to da5d407 Compare August 5, 2020 21:32
@cgardens cgardens force-pushed the charles/source_configuration_docs branch from da5d407 to 01c3ec4 Compare August 5, 2020 21:45
@cgardens cgardens marked this pull request as ready for review August 10, 2020 20:20
@cgardens cgardens merged commit 0589033 into master Aug 10, 2020
@cgardens cgardens deleted the charles/source_configuration_docs branch August 10, 2020 22:13
davinchia added a commit that referenced this pull request May 3, 2021
sashaNeshcheret added a commit that referenced this pull request Sep 29, 2021
#6503)

* 🎉 Destination MSSQL: Added support for connection via SSH tunnels (#5970)

* 🎉 Destination MSSQL: bumb image version

*  🎉 Destination MSSQL: update mssql.md file
mohamagdy added a commit to mohamagdy/airbyte that referenced this pull request May 1, 2022
ahmed-buksh added a commit to ahmed-buksh/airbyte that referenced this pull request May 25, 2022
@sbjorn sbjorn mentioned this pull request Aug 29, 2022
18 tasks
matter-q added a commit that referenced this pull request Sep 16, 2022
matter-q pushed a commit that referenced this pull request Sep 22, 2022
* Replaced sidebar menu with headlessui

* Removed unnecessary tag li

* Removed unnecessary Sidebar Popout

* Changed export type

* Added keyboard support

* Removed styled-components

* Removed commented code

* Disabled ESLint rule css-modules/no-undef-class

* Review fixes

* Fixed shorthand property

* Review fixes

* Review fixes #2

* Review fixes #3

* Review fixes #4

* Review fixes #5

* Review fixes #6

* Review fixes #7

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>
robbinhan pushed a commit to robbinhan/airbyte that referenced this pull request Sep 29, 2022
* Replaced sidebar menu with headlessui

* Removed unnecessary tag li

* Removed unnecessary Sidebar Popout

* Changed export type

* Added keyboard support

* Removed styled-components

* Removed commented code

* Disabled ESLint rule css-modules/no-undef-class

* Review fixes

* Fixed shorthand property

* Review fixes

* Review fixes airbytehq#2

* Review fixes airbytehq#3

* Review fixes airbytehq#4

* Review fixes airbytehq#5

* Review fixes airbytehq#6

* Review fixes airbytehq#7

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>
jhammarstedt pushed a commit to jhammarstedt/airbyte that referenced this pull request Oct 31, 2022
* Replaced sidebar menu with headlessui

* Removed unnecessary tag li

* Removed unnecessary Sidebar Popout

* Changed export type

* Added keyboard support

* Removed styled-components

* Removed commented code

* Disabled ESLint rule css-modules/no-undef-class

* Review fixes

* Fixed shorthand property

* Review fixes

* Review fixes airbytehq#2

* Review fixes airbytehq#3

* Review fixes airbytehq#4

* Review fixes airbytehq#5

* Review fixes airbytehq#6

* Review fixes airbytehq#7

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

* Update airbyte-webapp/src/packages/cloud/views/layout/SideBar/SideBar.module.scss

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>

Co-authored-by: Vladimir <volodymyr.s.petrov@globallogic.com>
ganpatagarwal added a commit to ganpatagarwal/airbyte that referenced this pull request May 18, 2023
initial files for source walmart seller
@avirajsingh7 avirajsingh7 mentioned this pull request Aug 3, 2023
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants