* Add wrapper for cloud dbt endpoint
Also includes a cheeky little test usage which probably should have had
a name starting with an underscore (I did not commit the test code which
added the new variable's contents to `(window as any).availableJobs`, on
grounds that it was very ugly, but I did want to have the import and
call of the wrapper function hit the git history here).
* Add dbt Cloud jobs via dropdown (WIP: breaks if no integration)
Selecting job from dropdown adds it to saved jobs, but the new endpoint
is unconditionally called even though it will always throw an error for
users with no dbt Cloud integration configured.
* Refactor to stop errors in non-dbt-integrated workspaces
Well, I suppose throwing a runtime error for every connection which
could support dbt Cloud jobs but is part of a workspace with no
integration set up, but that doesn't exactly seem ideal.
Instead, this pulls all logic out of the top-level card except for
pulling the dbt Cloud integration information; then it delegates the
rest to either of two fairly self-contained components,
`NoDbtIntegration` or the new `DbtJobsForm`. The immediate benefit is
that I have a nice component boundary in which I can unconditionally
run dbt-Cloud-only logic to fetch available jobs.
* Filter already-selected jobs out of dropdown
* Use dbt's jobNames and read-only {account,job}Id in job list
* Remove obsolete yup validations for dbt Cloud jobs
Since the values are now supplied by dbt Cloud via API, the user no
longer has to manually input anything; and this sudden lack of user
input rather obviates the need to validate user input.
* Add button loading state when saving dbt Cloud jobs
airbyte-webapp
This module contains the Airbyte Webapp. It is a React app written in TypeScript. It runs in a Docker container. A very lightweight nginx server runs in that Docker container and serves the webapp.
This project was bootstrapped with Create React App.
Available Scripts
In the project directory, you can run:
npm start
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
npm test
Launches the test runner in the interactive watch mode.
npm run build
Builds the app for production to the build folder.
VERSION=yourtag ./gradlew :airbyte-webapp:assemble
Builds the app and Docker image and tags the image with yourtag.
Note: needs to be run from the root directory of the Airbyte project.
Entrypoints
airbyte-webapp/src/App.tsxis the entrypoint into the OSS version of the webapp.airbyte-webapp/src/packages/cloud/App.tsxis the entrypoint into the Cloud version of the webapp.