npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@temporalio/ui

v2.27.2

Published

Temporal.io UI

Downloads

2,539

Readme

Temporal UI

Prerequisites

Temporal must be running in development.

Temporal UI requires Temporal v1.16.0 or later.

Using Temporal CLI

You can install Temporal CLI using Homebrew:

brew install temporal

You can start a Temporal server in development using the following command:

temporal server start-dev

Development

Local Development

Setup

Once you have the prerequisites going, run the following:

pnpm install

Running pnpm install will attempt to download and install the most recent version of Temporal CLI into ./bin/cli/temporal. The development server will attempt to use use this version of this Temporal when starting up.

  • If that port is already in use, the UI will fallback to trying to talk to whatever process is running on that port.
  • If you do not have a version of Temporal CLI at ./bin/cli/temporal, the development server will look for a version of Temporal CLI in your path.
  • For Windows users, you will need to start Temporal using one of the methods listed above until we have sufficiently tested this functionality on Windows. (We would absolutely welcome a pull request.)
git submodule update

This clones the Temporal API Protos into the git submodule, which is required for local development of the UI when running against a local version of the UI server.

To run a local development version of the Svelte application via Vite, run pnpm dev. The application will run on http://localhost:3000 against a local ui-server running along with Temporal server from the temporal-cli.

pnpm dev

Alternatively, you can run pnpm dev:temporal-cli to run against the version of ui-server and Temporal server included temporal-cli.

pnpm dev:temporal-cli

Building the UI

The Temporal UI can be built for local preview. You must set the VITE_TEMPORAL_UI_BUILD_TARGET environment variable in order to build the assets. This will be set for you if you use either of the following pnpm scripts. The resulting assets will be placed in ./dist.

You can preview the built app with pnpm run preview, regardless of whether you installed an adapter. This should not be used to serve your app in production.

pnpm build:local

The Temporal UI can build assets for ui-server. The resulting assets will be placed in ./server/ui/assets.

pnpm build:server

Using Docker

After pulling down the lastest version of Temporal's docker-compose, you can access the UI by visiting http://localhost:8080.

If you want to point the development environment at the docker-compose version of Temporal, you can use the following command:

pnpm dev:docker
pnpn run build:docker
pnpn run preview:docker

Running UI and Temporal Server locally

  1. Build the ui-server image:

    cd server
    docker build -t my-ui-server .
  2. In temporal repo

    1. checkout feature branch or main

    2. edit ui-server image name in develop/docker-compose/docker-compose.yml

        temporal-ui:
          image: my-ui-server

    And start the server dependencies

    make start-dependencies
  3. Start the Temporal server

    make start
  4. Change Vite port due to Grafana being on port 3000

  server: {
    port: 3001,
  }

Testing

We use Playwright to interactively test the Temporal UI.

Running the E2E tests

The e2e tests run against the UI with workflows via the TypeScript SDK, a locally built version of the UI Server, a NodeJS/Express Codec Server, and a Temporal dev server via Temporal CLI

pnpm test:e2e

Running the Integration tests

The integration tests run against the UI using Mocks

pnpm test:integration

Both pnpm test:e2e and pnpm test:integration use the playwright.config.ts at the root of the repo. This file will run the UI via the vite development server with the correct configuration by running either pnpm serve:playwright:e2e or pnpm serve:playwright:integration. It will also invoke the default function in tests/globalSetup.ts, which instantiates all of the necessary dependencies (UI Server, Codec Server, Temporal Server, Temporl Workers, etc.) when running in e2e mode.

Configuration

Set these environment variables if you want to change their defaults

| Variable | Description | Default | Stage | | --------- | ---------------------------------------------------------------- | --------------------- | ----- | | VITE_API | Temporal HTTP API address. Set to empty `` to use relative paths | http://localhost:8322 | Build | | VITE_MODE | Build target | development | Build |

Releases

Our ui repo releases page (https://github.com/temporalio/ui/releases) is for managing our npm package. The package includes a copy of /lib directory with types. Our ui-server repo releases page (https://github.com/temporalio/ui-server/releases) is for managing docker images for the entire front-end app.