Files
wehub-resource-sync a9cd7750f4
CI / unit-test (push) Has been cancelled
CI / detect-changes (push) Has been cancelled
CI / build (push) Has been cancelled
Publish docs via GitHub Pages / Deploy docs (push) Has been cancelled
CI / test-harness (push) Has been cancelled
CI / generate-e2e-matrix (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / build-ui (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
UI v2 Integration CI / E2E (Integration) (push) Has been cancelled
UI v2 CI / Lint, Format & Test (push) Has been cancelled
UI v2 CI / E2E (Mocked) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:37:56 +08:00

65 lines
2.5 KiB
Markdown

## Conductor UI
The UI is a standard `create-react-app` React Single Page Application (SPA). To get started, with Node 14 and `yarn` installed, first run `yarn install` from within the `/ui` directory to retrieve package dependencies.
For more information regarding CRA configuration and usage, see the official [doc site](https://create-react-app.dev/).
> ### For upgrading users
>
> The UI is designed to operate directly with the Conductor Server API. A Node `express` backend is no longer required.
### Development Server
To run the UI on the bundled development server, run `yarn run start`. Navigate your browser to `http://localhost:5000`.
To enable errors inspector module export env var: `REACT_APP_ENABLE_ERRORS_INSPECTOR=true`, then run `yarn start`.
#### Reverse Proxy Configuration
By default, the development server proxies requests to `http://localhost:8080/api`.
To use a different Conductor Server, set the `WF_SERVER` environment variable:
```
export WF_SERVER=http://localhost:8081
yarn run start
```
For additional customization (e.g., path rewriting), edit `setupProxy.js`. Note that this file is only used by the development server.
### Hosting for Production
There is no need to "build" the project unless you require compiled assets to host on a production web server. In this case, the project can be built with the command `yarn build`. The assets will be produced to `/build`.
Your hosting environment should make the Conductor Server API available on the same domain. This avoids complexities regarding cross-origin data fetching. The default path prefix is `/api`. If a different prefix is desired, `plugins/fetch.js` can be modified to customize the API fetch behavior.
See `docker/serverAndUI` for an `nginx` based example.
#### Different host path
The static UI would work when rendered from any host route.
The default is '/'. You can customize this by setting the 'homepage' field in package.json
Refer
- https://docs.npmjs.com/cli/v9/configuring-npm/package-json#homepage
- https://create-react-app.dev/docs/deployment/#building-for-relative-paths
### Customization Hooks
For ease of maintenance, a number of touch points for customization have been removed to `/plugins`.
- `AppBarModules.jsx`
- `AppLogo.jsx`
- `env.js`
- `fetch.js`
### Authentication
We recommend that authentication & authorization be de-coupled from the UI and handled at the web server/access gateway.
#### Examples (WIP)
- Basic Auth (username/password) with `nginx`
- Commercial IAM Vendor
- Node `express` server with `passport.js`