Back to Conductor

README

ui/README.md

2019-04-12-13002.5 KB
Original Source

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.

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

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