-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
[EPIC] Add title
and description
properties to each field in connectors specifications and order input fields appropriately
#8324
Labels
area/connectors
Connector related issues
autoteam
team/connectors-python
type/enhancement
New feature or request
unblockers
Defines Unblockers Team
Comments
sherifnada
added
type/enhancement
New feature or request
needs-triage
area/connectors
Connector related issues
and removed
needs-triage
labels
Nov 30, 2021
https://docs.google.com/spreadsheets/d/1SS_fxBOilj2z0uPNKEwDFnOpLdsbH18x3YwwLYyJZWw/edit?usp=sharing Standardize config labels on source/destination setup #7841 |
@sherifnada, We have several questions to specify updates details:
|
This was referenced Dec 1, 2021
This was referenced Dec 13, 2021
This was referenced Dec 20, 2021
This was referenced Dec 30, 2021
Update fields in source-connectors specifications: mongodb, mongodb-strict-encrypt, mongodb-v2
#9197
Closed
This was referenced Jan 24, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area/connectors
Connector related issues
autoteam
team/connectors-python
type/enhancement
New feature or request
unblockers
Defines Unblockers Team
Context
Each connector declares a
specification
, a json object which describes the inputs that this connector can take as input in order to run a sync. For example:indicates that a connector takes in a username string in order to run.
Additionally, the description of each property can be enriched with the
title
anddescription
attributes to produce a more user friendly experience in the UI. This displays this information to the user in a polished way and gives less technical users (e.g: analysts) confidence that they can use this product. This is especially important because a non technical user will lose confidence in the product if they see something likeuser_name
instead ofUsername
because they will feel it's unpolished and perhaps not ready for production usage. For example the following spec:produces the following input field in the UI:
Whereas the following specification:
Tell us about the problem you're trying to solve
We want to provide
title
anddescription
properties for each field for each connector in order to provide a good UX for users.Conventions for how to write good
title
anddescription
fieldstitle
: This should be a "human readable" form of the connector's parameter name. For example, if the parameter is calledaccount_id
the title should beAccount ID
. However, thetitle
property doesn't have to be the same as the the parameter name. For example, if the property name is confusing or difficult to understand e.g it's calledkey
, this is a very unintuitive name to the user; in this case consider renaming it to something likeAPI key
.description
: Describes what the parameter is for. Be specific and unambiguous in the wording, explaining more than just the field name alone provides. Specifically, you should explain the following:Start Date
parameter, a good description might beAny data created after this date will be replicated. If this date is not set, the connector replicates data from 1 year ago by default
.API Token
, what permission level should the token have? (usually it's something likeAn API token with read permissions to all your Shopify resources
).YYYY-MM-DD
orYYYY-MM-DDT00:00:00Z
etc.<a href="URL_HERE">NAME_OF_THE_LINK</a>
.To do this well, you may need to dig into what the meaning of the parameter is. For example, if you see a parameter like
conversion_window_days
and you're not sure what that means, you'll need to either ask the eng team for help, look at the connector code or API documentation to understand what it is.Implementation
There are two ways of composing specifications:
In both cases however, the final spec is always rendered as JSON. To see the connector's finally rendered spec run
docker run <connector_name> spec
e.g:docker run airbyte/source-postgres spec
. If you are running windows, you may need to install WSL2 and install docker.Once you have the final JSON specification, you can always preview what it will look like in the UI using instructions here.
The process you should follow is:
spec
method using the docker command above to find out the final spec currently rendered by the connectortitle
anddescription
-- this is safe to do only iftitle
anddescription
properties were the only thing that was changed. To publish a connector while skipping tests add therun-tests=false
clause to the end of the/publish
command e.g:/publish connector=connectors/source-postgres run-tests=false
.At times, the build will fail if you format the JSON incorrectly. Don't worry about it, just tell the eng team and they'll fix it. Or if you're feeling adventurous ask them to show you how to run the formatting commands using gradle so you can fix the build yourself.
Challenges you'll need engineering help with
Ask the engineering team for assistance if:
The text was updated successfully, but these errors were encountered: