-
Notifications
You must be signed in to change notification settings - Fork 4.6k
🪟🎉 Connector builder: Add copy to/from stream buttons #20816
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
Merged
Merged
Changes from 227 commits
Commits
Show all changes
230 commits
Select commit
Hold shift + click to select a range
699470e
move connector builder components into the same shared components/con…
lmossman 827532b
move diff over from poc branch
lmossman 4899673
save current progress
lmossman a1b62f1
add modal for adding streams
lmossman d2ed762
improve some types
f474a1c
Merge remote-tracking branch 'upstream/master' into chore-improve-con…
5b0521f
improve further
39e8ba8
focus stream after adding and reset button style
lmossman 2352ef9
add reset confirm modal and select view on add
lmossman df492fa
style global config and streams buttons
lmossman 5a99c7a
styling improvements
lmossman 62fc08c
handle long stream names better
lmossman 7b26b78
pull in connector manifest schema directly
lmossman af659fd
Merge remote-tracking branch 'upstream/master' into chore-improve-con…
1cd3bbb
clean up a bit more
807c436
refactor loading state
6c76e0f
Merge remote-tracking branch 'upstream/master' into flash1293/connect…
05c3107
move loading state up
eee4303
remove isLoading references
7d6f977
remove unused props and make fetch connector error work
0fe11f0
remove special component for name
34d4814
remove top level state for unifinished flows
67d62c5
Merge remote-tracking branch 'upstream/master' into flash1293/connect…
afea882
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
c7e7475
Merge branch 'master' into flash1293/connector-form-loading-state
cc7f65f
Merge branch 'chore-improve-connector-form-types' into flash1293/conn…
a1c6cbd
start removing uiwidget
9be8337
Update airbyte-webapp/src/views/Connector/ConnectorCard/ConnectorCard…
37cee8f
Merge remote-tracking branch 'upstream/master' into flash1293/connect…
5686241
Merge branch 'flash1293/connector-form-loading-state' of github.com:a…
7b73364
remove undefined option for selected id
7058d26
Merge branch 'flash1293/connector-form-loading-state' into flash1293/…
dd7e82a
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
71a88f1
add box shadows to resizable panels
lmossman d7bee54
upgrade orval and use connector manifest schema directly
lmossman 162ecf2
remove airbyte protocol from connector builder api spec
lmossman def60b0
Merge branch 'master' into lmossman/use-connector-manifest-schema-dir…
lmossman ff9aa76
generate python models from openapi change
lmossman 3678956
merge with lmossman/use-connector-manifest-schema-directly
lmossman b16d4a8
fix position of yaml toggle
lmossman 67fb9dd
handle no stream case with better looking message
lmossman bb42007
group global fields into single object and fix console error
lmossman 9bb1812
confirmation modal on toggling dirty form + cleanup
lmossman 587ca2f
merge with master
lmossman 81cf108
fix connector name display
lmossman 094a045
undo change to manifest schema
lmossman d1c8c80
remove commented code
lmossman aebac20
remove unnecessary change
lmossman 6d4c7d3
Merge remote-tracking branch 'upstream/master' into flash1293/connect…
d624792
Merge branch 'flash1293/connector-form-loading-state' into flash1293/…
36cf941
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
b7a6322
Merge remote-tracking branch 'upstream/master' into flash1293/connect…
72b602a
Merge branch 'flash1293/connector-form-loading-state' into flash1293/…
5e47a4a
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
1e39be4
fix spacing
lmossman 09cf875
use shadow mixin for connector img
lmossman ec65d67
add comment about connector img
lmossman 6c71028
Merge remote-tracking branch 'origin/master' into flash1293/connector…
809625f
remove unused prop
10446eb
Merge branch 'flash1293/connector-form-loading-state' into flash1293/…
4a7a885
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
2024b60
Merge branch 'flash1293/connector-form-unifinished-flows' into flash1…
ee30092
fix types
d91df38
remove uiwidget state
f9a3fa1
Merge remote-tracking branch 'origin/master' into lmossman/connector-…
603820a
change onSubmit to no-op
lmossman cb2f299
remove console log
lmossman d1672a0
clean up styling
lmossman 7255784
simplify sidebar to remove StreamSelectButton component
lmossman 65cd42b
swap colors of toggle
lmossman 10d7893
move FormikPatch to src/core/form
lmossman fc89001
move types up to connectorBuilder/ level
lmossman 24eaaff
use grid display for ui yaml toggle button
lmossman de604f6
use spread instead of setting array index directly
lmossman e696e57
add intl in missing places
lmossman 5952f70
merge with master
lmossman b7c08f6
pull connector manifest schema in through separate openapi spec
lmossman 93fe558
Merge remote-tracking branch 'origin/master' into flash1293/connector…
cbc023a
Merge branch 'flash1293/connector-form-name-override' into flash1293/…
ec54d38
Merge branch 'flash1293/connector-form-unifinished-flows' into flash1…
47152ea
clean up
6ec0e10
adjust comment
1aa7829
handle errors in a nice way
7b90088
do not respect default on oneOf fields
fbefbdd
rename to formblock
6b3e5e2
reduce re-renders
dd04e61
erge branch 'lmossman/connector-builder-config-ui' of github.com:airb…
d6f10b4
use correct intl string id
lmossman 5ffe20e
throttle setting json manifest in yaml editor
lmossman b82ba2a
use button prop instead of manually styling
lmossman b9580b4
consolidate AddStreamButton styles
lmossman 1587243
fix sidebar flex styles
lmossman 62a60e5
use specific flex properties instead of flex
lmossman 092821d
clean up download and reset button styles
lmossman 7b8dec8
use row-reverse for yaml editor download button
lmossman 6d68db9
fix stream selector styles to remove margins
lmossman 91bc357
give connector setup guide panel same corner and shadow styles
lmossman 4ffb969
remove blur from page display
lmossman 70afdf8
set view to stream when selected in test panel
lmossman f656506
add placeholder when stream name is empty
lmossman c437d30
switch to index-based stream selection to preserve testing panel sele…
lmossman 3cdbc70
handle empty name in stream selector
lmossman 9aa3f80
Merge remote-tracking branch 'origin/master' into flash1293/connector…
c765003
Merge branch 'flash1293/connector-form-unifinished-flows' into flash1…
831f574
Merge branch 'lmossman/connector-builder-config-ui' of github.com:air…
e2730fe
Merge branch 'lmossman/connector-builder-config-ui' into flash1293/in…
269ae82
make connector form work in connector builder
901fc63
wip
5cd77ec
pass error to secure inputs
5dfbc22
Merge remote-tracking branch 'origin/master' into flash1293/connector…
a6aa741
simplify and improve styling
95717d2
align top
40d162d
Merge branch 'flash1293/connector-form-unifinished-flows' into flash1…
4944d3f
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
3255298
fix small stuff
b9384ee
Merge remote-tracking branch 'origin/master' into flash1293/connector…
333fb0b
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
cec206f
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
ba28014
add basic input UI
582a5f2
code review
18d6ce8
remove comment
60c1f1c
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
53ad55f
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
5300933
Merge remote-tracking branch 'origin/master' into flash1293/integrate…
935188b
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
b694dc5
user inputs
e7d81ea
make most of inputs configuration work
9cb595d
Merge remote-tracking branch 'origin/master' into flash1293/connector…
fe74a45
review comments
5c00ad0
rename file
bd0dffc
be strict about boolean values
1ff8c13
add example
c6ee526
track form error in error boundary
05bbd6f
Merge branch 'flash1293/connector-form-remove-ui-widget-state' of git…
3de021a
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
552fc65
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
ace1299
fix a bunch of stuff
7fa1752
handle unknown config types
fff4703
Merge remote-tracking branch 'origin/master' into flash1293/connector…
94ba866
review comments
97bb0a7
handle unexpected cases better
633b9b2
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
7196409
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
4a37a67
add warning label
10fa73e
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
7e48ba5
fix label
75db697
fix some styling
e47517f
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
b340ef4
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
98c146c
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
e931956
Merge remote-tracking branch 'origin/master' into feature/connector-b…
9835a5c
review comments
6889f66
enrich error with connector id
7b60406
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
c352df0
Merge branch 'feature/connector-builder' into flash1293/integrate-con…
ed43eab
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
7958ef1
improve state management and error handling
d5e56eb
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
35a74ba
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
beb4968
Merge branch 'feature/connector-builder' into flash1293/integrate-con…
b3cfb8f
Merge branch 'flash1293/integrate-connector-form' into flash1293/allo…
49f55a1
Merge branch 'flash1293/allow-configuring-inputs' of github.com:airby…
04d87cf
allow auth configuration
b796201
check for conflicts with the inferred inputs
02c8096
🪟🎉 Add copy stream button (#20577)
18498c7
fix invisible inputs
9ffa34e
handle stored form values that don't contain new fields properly
lmossman 8c4b6c7
Merge branch 'flash1293/allow-configuring-inputs' into flash1293/conn…
lmossman 526adfc
rename prop
7d49233
🪟🎉 Connector builder: Integrate connector form for test input (#20385)
c0350d3
Merge branch 'flash1293/allow-configuring-inputs' of github.com:airby…
e98ebc1
Merge branch 'feature/connector-builder' into flash1293/allow-configu…
fb1ec21
Merge branch 'flash1293/allow-configuring-inputs' into flash1293/conn…
a17ab05
session token and oauth authentication
7b6470e
fill in session token variable
c5da764
Merge remote-tracking branch 'origin/master' into flash1293/connector…
6c0bf9d
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
477977f
use request_body_json instead of request_body_data
lmossman 200cfe7
:window: :art: Move `Add` button into the line of Connector Builder k…
lmossman 23f4fbe
fix merge of default values
lmossman d4975bf
add primaryKey and cursorField to builder types, and consolidate defa…
lmossman 32213f8
add cursor and primary key fields to ui
lmossman 3e20324
save
lmossman 3ee0ffb
add page size and token option inputs
lmossman 0576478
fixes after rebase
lmossman 5e45f59
add pagination
lmossman f101602
fix pagination types
lmossman 5fb62e2
handle empty field_name better
lmossman 7cce350
Update airbyte-webapp/src/locales/en.json
20e8044
Update airbyte-webapp/src/components/connectorBuilder/Builder/InputsV…
50bddcb
inputs editing weirdness
0ca37ad
input form reset
8095fda
using the Label component
fbeb2e1
Merge branch 'flash1293/allow-configuring-inputs' into flash1293/conn…
1bccbbd
reduce redundancy and hide advanced input options for inferred inputs
eaec279
unnecessary validation
a338590
typo
2429d29
unnecessary effect hook
6dd02d9
build spec even for invalid forms but do not update stream list
84803ce
Merge branch 'flash1293/connector-builder-authentication' into flash1…
4bd0bdc
typos
ca0219b
make sure validation error does not go away
134fc17
Merge branch 'flash1293/oauth-session-auth' into lmossman/connector-b…
67408af
build copy in and out buttons
c7fd310
🪟🎉 Connector builder: Allow defining inputs (#20431)
e0e3796
fix merge conflict with dropdown prop being renamed to control
e23a6d8
[Connector Builder] Add paginator (#20698)
lmossman 610e668
[Connector Builder] Add stream slicer (#20748)
lmossman e68ff49
debounce form builder values update to reduce load
9ccf294
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
ae9a229
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
a9e1d09
🪟🔧 Connector builder: use new lowcode manifest (#20715)
dca8cd5
Merge branch 'feature/connector-builder' into flash1293/copy-components
1c6aa34
add copy from/to buttons
3ca2399
remove unused thing
7dbcd3f
use label for checkbox to make it clickable
e4f7bba
debounce validation as well
16c71ae
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
54c070d
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
16a316a
Merge branch 'feature/connector-builder' into flash1293/copy-components
2e20fa6
akways show stream test button in error state if there are errors
65199d0
fix type of oauth input
92722e0
Merge branch 'master' into flash1293/connector-form-remove-ui-widget-…
718c233
Merge branch 'flash1293/connector-form-remove-ui-widget-state' into f…
408ad4a
Merge branch 'feature/connector-builder' into flash1293/copy-components
6a8be0b
Merge remote-tracking branch 'origin/master' into feature/connector-b…
01080f6
Merge branch 'feature/connector-builder' into flash1293/copy-components
edc0fa7
Merge remote-tracking branch 'origin/master' into flash1293/copy-comp…
7f0dfd0
review comments
f7cb2d1
Merge remote-tracking branch 'origin/master' into flash1293/copy-comp…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 11 additions & 3 deletions
14
airbyte-webapp/src/components/GroupControls/GroupControls.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
179 changes: 179 additions & 0 deletions
179
airbyte-webapp/src/components/connectorBuilder/Builder/AuthenticationSection.tsx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
import { BuilderCard } from "./BuilderCard"; | ||
import { BuilderField } from "./BuilderField"; | ||
import { BuilderOneOf } from "./BuilderOneOf"; | ||
import { BuilderOptional } from "./BuilderOptional"; | ||
import { KeyValueListField } from "./KeyValueListField"; | ||
import { UserInputField } from "./UserInputField"; | ||
|
||
export const AuthenticationSection: React.FC = () => { | ||
return ( | ||
<BuilderCard> | ||
<BuilderOneOf | ||
path="global.authenticator" | ||
label="Authentication" | ||
tooltip="Authentication method to use for requests sent to the API" | ||
options={[ | ||
{ label: "No Auth", typeValue: "NoAuth" }, | ||
{ | ||
label: "API Key", | ||
typeValue: "ApiKeyAuthenticator", | ||
default: { | ||
api_token: "{{ config['api_key'] }}", | ||
header: "", | ||
}, | ||
children: ( | ||
<> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.header" | ||
label="Header" | ||
tooltip="HTTP header which should be set to the API Key" | ||
/> | ||
<UserInputField | ||
label="API Key" | ||
tooltip="The API key issued by the service. Fill it in in the user inputs" | ||
/> | ||
</> | ||
), | ||
}, | ||
{ | ||
label: "Bearer", | ||
typeValue: "BearerAuthenticator", | ||
default: { | ||
api_token: "{{ config['api_key'] }}", | ||
}, | ||
children: ( | ||
<UserInputField | ||
label="API Key" | ||
tooltip="The API key issued by the service. Fill it in in the user inputs" | ||
/> | ||
), | ||
}, | ||
{ | ||
label: "Basic HTTP", | ||
typeValue: "BasicHttpAuthenticator", | ||
default: { | ||
username: "{{ config['username'] }}", | ||
password: "{{ config['password'] }}", | ||
}, | ||
children: ( | ||
<> | ||
<UserInputField label="Username" tooltip="The username for the login. Fill it in in the user inputs" /> | ||
<UserInputField label="Password" tooltip="The password for the login. Fill it in in the user inputs" /> | ||
</> | ||
), | ||
}, | ||
{ | ||
label: "OAuth", | ||
typeValue: "OAuthAuthenticator", | ||
default: { | ||
client_id: "{{ config['client_id'] }}", | ||
client_secret: "{{ config['client_secret'] }}", | ||
refresh_token: "{{ config['client_refresh_token'] }}", | ||
refresh_request_body: [], | ||
token_refresh_endpoint: "", | ||
}, | ||
children: ( | ||
<> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.token_refresh_endpoint" | ||
label="Token refresh endpoint" | ||
tooltip="The URL to call to obtain a new access token" | ||
/> | ||
<UserInputField label="Client ID" tooltip="The OAuth client ID" /> | ||
<UserInputField label="Client secret" tooltip="The OAuth client secret" /> | ||
<UserInputField label="Refresh token" tooltip="The OAuth refresh token" /> | ||
<BuilderOptional> | ||
<BuilderField | ||
type="array" | ||
path="global.authenticator.scopes" | ||
optional | ||
label="Scopes" | ||
tooltip="Scopes to request" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.token_expiry_date_format" | ||
optional | ||
label="Token expiry date format" | ||
tooltip="The format of the expiry date of the access token as obtained from the refresh endpoint" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.expires_in_name" | ||
optional | ||
label="Token expiry property name" | ||
tooltip="The name of the property which contains the token exipiry date in the response from the token refresh endpoint" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.access_token_name" | ||
optional | ||
label="Access token property name" | ||
tooltip="The name of the property which contains the access token in the response from the token refresh endpoint" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.grant_type" | ||
optional | ||
label="Grant type" | ||
tooltip="The grant type to request for access_token" | ||
/> | ||
<KeyValueListField | ||
path="global.authenticator.refresh_request_body" | ||
label="Request Parameters" | ||
tooltip="The request body to send in the refresh request" | ||
/> | ||
</BuilderOptional> | ||
</> | ||
), | ||
}, | ||
{ | ||
label: "Session token", | ||
typeValue: "SessionTokenAuthenticator", | ||
default: { | ||
username: "{{ config['username'] }}", | ||
password: "{{ config['password'] }}", | ||
session_token: "{{ config['session_token'] }}", | ||
}, | ||
children: ( | ||
<> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.header" | ||
label="Header" | ||
tooltip="Specific HTTP header of source API for providing session token" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.session_token_response_key" | ||
label="Session token response key" | ||
tooltip="Key for retrieving session token from api response" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.login_url" | ||
label="Login url" | ||
tooltip="Url for getting a specific session token" | ||
/> | ||
<BuilderField | ||
type="string" | ||
path="global.authenticator.validate_session_url" | ||
label="Validate session url" | ||
tooltip="Url to validate passed session token" | ||
/> | ||
<UserInputField label="Username" tooltip="The username" /> | ||
<UserInputField label="Password" tooltip="The password" /> | ||
<UserInputField | ||
label="Session token" | ||
tooltip="Session token generated by user (if provided username and password are not required)" | ||
/> | ||
</> | ||
), | ||
}, | ||
]} | ||
/> | ||
</BuilderCard> | ||
); | ||
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,4 +18,6 @@ | |
.form { | ||
flex: 1; | ||
padding: variables.$spacing-xl; | ||
padding-right: 80px; | ||
overflow: auto; | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: apply this padding to the left as well, so that the form is centered in its containing div
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
80px is a lot of horizontal screen space to lose, instead I made this styling conditional based on whether there are multiple streams in the first place. Also solves the issue of not having an unnecessary gap on user input and global views.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, I like that approach 👍