# cadence_001

> cadence_001 Web UI

Latest version **3.30.0** (published 2022-05-12) · 0 weekly downloads

## Install

```sh
npm install cadence_001
pnpm add cadence_001
yarn add cadence_001
bun add cadence_001
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.30.0 |
| Published | 2022-05-12 |
| First published | 2022-05-12 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | 10.22.1 |
| Dependencies | 60 |
| Unpacked size | 1.7 MB |
| Known vulnerabilities | 0 (+5 in 3 direct dependencies) |
| Install scripts | yes |
| Author | Nathan Black |
| Maintainers | liyao123 |
| Keywords | uber, workflow, cadence, asynchronous |

## Links

- npm: https://www.npmjs.com/package/cadence_001
- npm.io page: https://npm.io/package/cadence_001

## Dependencies (60)

- [koa](https://npm.io/package/koa.md) ^2.3.0
- [vue](https://npm.io/package/vue.md) ^2.5.13
- [long](https://npm.io/package/long.md) ^3.2.0
- [napa](https://npm.io/package/napa.md) ^3.0.0
- [vuex](https://npm.io/package/vuex.md) ^3.5.1
- [moment](https://npm.io/package/moment.md) ^2.19.1
- [stylus](https://npm.io/package/stylus.md) ^0.54.5
- [prismjs](https://npm.io/package/prismjs.md) ^1.14.0
- [webpack](https://npm.io/package/webpack.md) ^3.12.0
- [koa-send](https://npm.io/package/koa-send.md) ^4.1.1
- [tchannel](https://npm.io/package/tchannel.md) 3.10.1
- [vis-data](https://npm.io/package/vis-data.md) ^7.1.0
- [cytoscape](https://npm.io/package/cytoscape.md) 3.16.0
- [deepmerge](https://npm.io/package/deepmerge.md) ^2.0.0
- [lodash-es](https://npm.io/package/lodash-es.md) ^4.17.4
- [css-loader](https://npm.io/package/css-loader.md) ^0.28.7
- [koa-router](https://npm.io/package/koa-router.md) ^7.2.1
- [koa-static](https://npm.io/package/koa-static.md) ^4.0.1
- [lodash.get](https://npm.io/package/lodash.get.md) ^4.4.2
- [vue-loader](https://npm.io/package/vue-loader.md) ^13.0.1
- [vue-router](https://npm.io/package/vue-router.md) ^3.0.1
- [vue-select](https://npm.io/package/vue-select.md) ^3.11.2
- [@babel/core](https://npm.io/package/@babel/core.md) ^7.8.3
- [file-loader](https://npm.io/package/file-loader.md) ^1.1.5
- [html-loader](https://npm.io/package/html-loader.md) ^0.5.5
- [koa-onerror](https://npm.io/package/koa-onerror.md) ^3.1.0
- [koa-webpack](https://npm.io/package/koa-webpack.md) ^2.0.3
- [babel-loader](https://npm.io/package/babel-loader.md) ^8.0.6
- [is-ipv4-node](https://npm.io/package/is-ipv4-node.md) ^1.0.6
- [jsonwebtoken](https://npm.io/package/jsonwebtoken.md) ^8.5.1
- [koa-compress](https://npm.io/package/koa-compress.md) ^2.0.0
- [vis-timeline](https://npm.io/package/vis-timeline.md) ^7.4.0
- [vue-js-modal](https://npm.io/package/vue-js-modal.md) ^1.3.18
- [vuex-connect](https://npm.io/package/vuex-connect.md) ^2.2.0
- [vuex-persist](https://npm.io/package/vuex-persist.md) ^3.1.3
- [lossless-json](https://npm.io/package/lossless-json.md) ^1.0.2
- [stylus-loader](https://npm.io/package/stylus-loader.md) ^3.0.1
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.26.0
- [koa-bodyparser](https://npm.io/package/koa-bodyparser.md) ^4.2.0
- [lodash.isequal](https://npm.io/package/lodash.isequal.md) ^4.5.0
- [@babel/polyfill](https://npm.io/package/@babel/polyfill.md) ^7.8.3
- [vue-split-panel](https://npm.io/package/vue-split-panel.md) ^1.0.4
- [vue2-datepicker](https://npm.io/package/vue2-datepicker.md) ^3.4.1
- [babel-preset-env](https://npm.io/package/babel-preset-env.md) ^1.7.0
- [vue-style-loader](https://npm.io/package/vue-style-loader.md) ^3.1.2
- [vuex-router-sync](https://npm.io/package/vuex-router-sync.md) ^5.0.0
- [@babel/preset-env](https://npm.io/package/@babel/preset-env.md) ^7.8.3
- [html-webpack-plugin](https://npm.io/package/html-webpack-plugin.md) ^2.30.1
- [vue-infinite-scroll](https://npm.io/package/vue-infinite-scroll.md) ^2.0.2
- [vue-prism-component](https://npm.io/package/vue-prism-component.md) ^1.0.1
- [friendly-querystring](https://npm.io/package/friendly-querystring.md) ^0.2.0
- [vue-js-toggle-button](https://npm.io/package/vue-js-toggle-button.md) ^1.3.3
- [vue-virtual-scroller](https://npm.io/package/vue-virtual-scroller.md) ^1.0.0-rc.2
- [html-webpack-template](https://npm.io/package/html-webpack-template.md) ^6.1.0
- [vue-template-compiler](https://npm.io/package/vue-template-compiler.md) ^2.5.2
- [koa-better-error-handler](https://npm.io/package/koa-better-error-handler.md) ^1.3.0
- [promise.prototype.finally](https://npm.io/package/promise.prototype.finally.md) ^3.1.0
- [extract-text-webpack-plugin](https://npm.io/package/extract-text-webpack-plugin.md) ^3.0.1
- [babel-plugin-module-resolver](https://npm.io/package/babel-plugin-module-resolver.md) ^4.0.0
- [@babel/plugin-transform-regenerator](https://npm.io/package/@babel/plugin-transform-regenerator.md) ^7.8.7

## Alternatives

- [@commercetools/sync-actions](https://npm.io/package/@commercetools/sync-actions.md) — 25.1K weekly downloads
- [cwait](https://npm.io/package/cwait.md) — 21.4K weekly downloads
- [@ledgerhq/hw-app-cosmos](https://npm.io/package/@ledgerhq/hw-app-cosmos.md) — 4.2K weekly downloads
- [@financial-times/o-loading](https://npm.io/package/@financial-times/o-loading.md) — 2.8K weekly downloads
- [fa](https://npm.io/package/fa.md) — 185 weekly downloads

## Recent versions

- 3.30.0 (latest) — 2022-05-12

## README

# Cadence Web UI

[![Build Status](https://github.com/uber/cadence-web/actions/workflows/build.yml/badge.svg)](https://github.com/uber/cadence-web/actions/workflows/build.yml) [![Docker Status](https://github.com/uber/cadence-web/actions/workflows/docker_publish.yml/badge.svg)](https://hub.docker.com/r/ubercadence/web/tags)

Cadence is a distributed, scalable, durable, and highly available orchestration engine we developed at Uber Engineering to execute asynchronous long-running business logic in a scalable and resilient way.

This web UI is used to view workflows from [Cadence][cadence], see what's running, and explore and debug workflow executions.

![Demo Usage](https://s3-us-west-2.amazonaws.com/uber-common-public/svc-cadence-web/cadence-web.demo.gif)

## Getting Started

### Configuration

Set these environment variables if you need to change their defaults

| Variable                  | Description                                   | Default           |
| ------------------------- | --------------------------------------------- | ----------------- |
| CADENCE_TCHANNEL_PEERS    | Comma-delmited list of tchannel peers         | 127.0.0.1:7933    |
| CADENCE_TCHANNEL_SERVICE  | Name of the cadence tchannel service to call  | cadence-frontend  |
| CADENCE_WEB_PORT          | HTTP port to serve on                         | 8088              |
| CADENCE_EXTERNAL_SCRIPTS     | Addtional JavaScript tags to serve in the UI  |                |
| ENABLE_AUTH          | Enable auth feature                                | false             |
| AUTH_TYPE          | concurrently supports ADMIN_JWT                      | ''                |
| AUTH_ADMIN_JWT_PRIVATE_KEY          | JWT signing private key for ADMIN_JWT type  | ''        |

### Running locally

`cadence-web` requires node `v10.22.1` or greater to be able to run correctly. `cadence-web` uses all the standard [npm scripts](https://docs.npmjs.com/misc/scripts) to install dependencies, run the
server, and run tests. Additionally to run locally with webpack hot reloading and other conveniences, use

```
npm run dev
```

For development and contributing to `cadence-web`, please see the [contributing guide](https://github.com/uber/cadence-web/blob/master/CONTRIBUTING.md).

You may also use docker by pulling [ubercadence/web](https://hub.docker.com/r/ubercadence/web/). It is also included in the Cadence server's [local docker setup](https://github.com/uber/cadence/tree/master/docker).

### API

If you need to extend `cadence-web` to add middleware to the server, you can install `cadence-web` as a dependecy, and it will export the [Koa](http://koajs.com/) web server that has not yet been started or configured. It includes an additional `init` function that will then compose the built-in middleware. This gives you an option to add middleware before or after you call `init` so it will add the middleware at the beginning or the end of the chain, respectively.

#### `init(options)`

All options are optional.

`useWebpack`: If `true`, starts webpack and adds the middleware, otherwise if `false`, it assumes the UI bundle was already built and serves it statically. Defaults to `process.env.NODE_ENV === 'production'`.

`logErrors`: If `true`, thrown errors are logged to `console.error`. Defaults to `true`.

For example, here is how you would add a request count metric using `uber-statsd-client`:

```javascript
var app = require('cadence-web')
var createStatsd = require('uber-statsd-client')
var sdc = createStatsd({
    host: 'statsd.example.com'
})

app.use(async function(ctx, next) {
  sdc.increment('http.request')
  await next()
})
.init()
.listen(7000)
```


The [webpack](https://webpack.js.org/) configuration is also exported as `webpackConfig`, and can be modified before calling `init()`.

### Licence

MIT License, please see [LICENSE](https://github.com/uber/cadence-web/blob/master/LICENSE) for details.

[cadence]: https://github.com/uber/cadence

---
_Source: https://npm.io/package/cadence_001 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
