An experimental distribution of Temporal that runs as a single process

Overview

Temporalite

Go Reference ci codecov

⚠️ This project is experimental and not suitable for production use. ⚠️

Temporalite is a distribution of Temporal that runs as a single process with zero runtime dependencies.

Persistence to disk and an in-memory mode are both supported via SQLite.

Why

The primary goal of Temporalite is to make it simple and fast to run Temporal locally or in testing environments.

Features that align with this goal:

  • Easy setup and teardown
  • Fast startup time
  • Minimal resource overhead: no dependencies on a container runtime or database server
  • Support for Windows, Linux, and macOS

Getting Started

Download and Start Temporal Server Locally

Build from source using go install:

go install github.com/DataDog/temporalite/cmd/[email protected]

Start Temporal server:

temporalite start

Use CLI

Use Temporal's command line tool tctl to interact with the local Temporalite server.

tctl namespace list
tctl workflow list

Configuration

Use the help flag to see all available options:

temporalite start -h

Namespace Registration

Namespaces can be pre-registered at startup so they're available to use right away:

temporalite start --namespace foo --namespace bar

Registering namespaces the old-fashioned way via tctl --namespace foo namespace register works too!

Persistence Modes

File on Disk

By default temporalite persists state to a file in the current user's config directory. This path may be overridden:

temporalite start -f my_test.db

Ephemeral

An in-memory mode is also available. Note that all data will be lost on each restart.

temporalite start --ephemeral
Comments
  • package dependency error when installing temporalite

    package dependency error when installing temporalite

    Expected Behavior

    the go install github.com/DataDog/temporalite/cmd/[email protected] command should produce the binary for temporalite without any errors.

    Actual Behavior

    Getting this error when trying to install temporalite as suggested in Getting started page

    ../pkg/mod/go.temporal.io/[email protected]/common/metrics/config.go:31:2: ambiguous import: found package github.com/cactus/go-statsd-client/statsd in multiple modules:
    	github.com/cactus/go-statsd-client v3.1.1+incompatible (~/go/pkg/mod/github.com/cactus/[email protected]+incompatible/statsd)
    	github.com/cactus/go-statsd-client/statsd v0.0.0-20200423205355-cb0885a1018c (~/go/pkg/mod/github.com/cactus/go-statsd-client/[email protected])
    

    Steps to Reproduce the Problem

    1. Execute this command go install github.com/DataDog/temporalite/cmd/[email protected]

    Specifications

    • Version: go1.16.3
    • Platform: darwin/amd64

    Potential Solution

    Add this statement to go.mod file solved the problem on my side:

    replace github.com/cactus/go-statsd-client => github.com/cactus/go-statsd-client v3.2.1+incompatible

    opened by larrymjordan 11
  • Expose a new --codec-endpoint flag to start command

    Expose a new --codec-endpoint flag to start command

    This allows starting a temporalite instance with a remote data converter endpoint preconfigured.

    What changed?

    Adds a new --ui-codec-endpoint flag to temporalite start.

    Why?

    Exposing the flag allows to send a single command to run to users that can rely on a remote data converter hosted somewhere instead of telling them to run 2 processes on their laptop.

    How did you test it?

    Manually

    Potential risks

    None

    Is hotfix candidate?

    No

    opened by lminaudier 9
  • Upgrade Temporal and Temporal Web UI.

    Upgrade Temporal and Temporal Web UI.

    What changed?

    Temporal and Temporal Web UI versions upgraded.

    Why?

    To benefit from the improved web UI.

    How did you test it?

    Ran locally and in gitpod.

    Potential risks

    None.

    Is hotfix candidate?

    No.

    opened by robholland 8
  • Bump temporal sdk and server to v1.19.0

    Bump temporal sdk and server to v1.19.0

    What changed? This bumps the Temporal sdk and server packages to v1.19.0.

    Why? The Temporal SDK has made a breaking change to its NewServer interface, and as such consumers of temporalite are unable to use it with the latest Temporal SDK.

    How did you test it? Ran unit tests locally.

    Potential risks I am not a temporalite expert, only a user who was motivated to fix this issue to unblock my own work.

    Is hotfix candidate? No, although the presence of upstream breaking changes and unstable cross-package dependencies which impact the community may suggest there is additional work here for the temporalio maintainers' release processes.

    In case it helps, here's an example of a breaking change that affects SDK consumers, this removal (proto, go) of EVENT_TYPE_WORKFLOW_UPDATE_REQUESTED used by go.temporal.io/[email protected] was made in a non-breaking manner. Could consider enabling breaking change detection or adding proto fields rather than renaming (breaking) them.

    opened by anth0d 7
  • Support for user specified server/sdk versions

    Support for user specified server/sdk versions

    Is your feature request related to a problem? Please describe. Hi,

    First of all, thank you for all the great work on Temporal and Temporalite; I am "sort of" new here and am looking forward to incorporating Temporal framework into my project!

    Would it be possible to use Temporalite to support the testing of different server and/or sdk versions? For example, if I have a project that was running sdk version 1.6 and server version 1.13; would it be possible to start Temporalite with those specifications for unit testing purposes?

    Describe the solution you'd like Ability to start Temporalite with a configuration file or add command line arguments to specify server and sdk version.

    Describe alternatives you've considered The only alternative I am aware of is to use docker-compose to run an actual dev Temporal server cluster with a specified version.

    Additional context I had evaluated Temporal.io a couple of years back with sdk 1.2 (Temporal's Java sdk) and really liked how Temporal as a micro-service orchestration framework. Due to other priorities, I had to switch my focus and only recently started to revisit/incorporate Temporal into my project. I was pleasantly surprised and encouraged to see the tremendous progress the team had made, obviously, the evaluation code I wrote can simply be updated to work on the latest versions. As I proceed to refresh my old dev cluster with updated docker-compose, I saw Temporalite as an alternative to running a dev cluster and decided to give it a try. I think Temporalite is an extremely valuable tool for developers to test their workflow locally (and run CI) but I couldn't stop thinking what if a team's production environment is running a slightly older version, how could we make it easier for development teams to use Temporalite across server/sdk versions.

    enhancement 
    opened by datoslabs 6
  • Tag releases

    Tag releases

    Is your feature request related to a problem? Please describe.

    It seems goreleaser is setup, but there are no tags to trigger releases to build binaries. Having downloadable binaries helps users of Temporalite who don't want to build. For my use case in particular, the Python SDK would love to download and run Temporalite instead of building it in CI.

    Describe the solution you'd like

    Tag releases. Granted I can't figure out what the best release numbering scheme would be considering this is also a Go library so must remain on semver, but it may make sense to align with server version.

    (this is obviously non-urgent as building Temporalite is trivial)

    packaging 
    opened by cretz 6
  • Temporalite fails to start when file persistence is configured in nonexistent directory

    Temporalite fails to start when file persistence is configured in nonexistent directory

    Expected Behavior

    Temporalite could create the directory first, then start writing to the database file.

    Actual Behavior

    User sees an error message like

    2022/04/04 18:57:43 error setting up schema: unable to create SQLite admin DB: unable to open database file: no such file or directory
    

    The error text doesn't include the file path that is being opened, which makes understanding the issue a bit more difficult.

    Steps to Reproduce the Problem

    1. temporalite start -f some_dir_that_does_not_exist/foo.db

    Specifications

    • Version: main
    • Platform: Any
    good first issue user experience 
    opened by jlegrone 6
  • Update github.com/temporalio/ui-server

    Update github.com/temporalio/ui-server

    What changed?

    Updates ui-server to the latest ~tagged release~ commit. ~Dependabot should be able to start tracking new versions going forward.~

    Update: We're still unable to use a tagged release until a new version is cut now that https://github.com/temporalio/ui/pull/267 is merged.

    Why?

    How did you test it?

    Potential risks

    Is hotfix candidate?

    opened by jlegrone 5
  • Add support for search attributes

    Add support for search attributes

    What changed?

    This adds support for search attributes:

    Defines two new startup flags to pre-register search attributes: search-attributes-type & search-attributes-key. If the user gives values for these flags (multiple values must be separated by a comma), then temporalite will initialize the custom search attributes as defined in the user input. In addition to this, we also give the ability to pre-register search attributes on a temporalite TestServer.

    How did you test it?

    Tests are included.

    opened by MarcosCela 5
  • Temporalite v0.2.0 fails to install

    Temporalite v0.2.0 fails to install

    Expected Behavior

    Temporalite installs successfully using go install

    Actual Behavior

    Installation fails with the following error:

    go: github.com/temporalio/temporalite/cmd/[email protected] (in github.com/temporalio/[email protected]):
    	The go.mod file for the module providing named packages contains one or
    	more replace directives. It must not contain directives that would cause
    	it to be interpreted differently than if it were the main module.
    

    Steps to Reproduce the Problem

    1. Run go install github.com/temporalio/temporalite/cmd/[email protected]
    2. Installation fails with mentioned error

    Specifications

    • Version: 0.2.0
    • Platform: darwin-amd64
    opened by joelmarty 4
  • allow web UI to be configured when using mTLS in API

    allow web UI to be configured when using mTLS in API

    What changed?

    Two changes:

    1. Allow temporal web/ui to be configured from a yaml file so that the web UI does not break when the API is configured for mTLS.
    2. Since the UI cannot be run via HTTPS, allow the UI to be bound to a different IP than the API. This can facilitate the API with mTLS being exposed to non-local clients, while keeping the UI available to localhost.

    Why?

    Temporalite is great, and I want to use it safely in situations where I'm experimenting with mTLS in temporal, especially while implementing mTLS in workers, without the UI being broken.

    How did you test it?

    Ran temporalite locally without any TLS, and with TLS certificates created by a self-signed root CA. The latter required the creation of temporalite.yaml and temporalite-ui.yaml files in a configuration directory, to allow mTLS to be set up for temporal API components, and allow the UI to make requests to the API via mTLS.

    Updated the ui unit test to verify that it can still create a valid configuration when the temporalite-ui.yaml file is absent even though a config directory has been provided, and that it loads the file when it is present.

    Updated the mtls test to verify proper integration between the UI and the API when mtls is enabled.

    temporalite.yaml

    global:
      tls:
        internode:
          server:
            certFile: dist/local.dev+2-client.pem
            keyFile: dist/local.dev+2-client-key.pem
            requireClientAuth: true
            clientCaFiles:
              - dist/rootCA.pem
          client:
            serverName: local.dev
            rootCaFiles:
              - dist/rootCA.pem
        frontend:
          server:
            certFile: dist/local.dev+2-client.pem
            keyFile: dist/local.dev+2-client-key.pem
            requireClientAuth: true
            clientCaFiles:
              - dist/rootCA.pem
          client:
            serverName: local.dev
            rootCaFiles:
              - dist/rootCA.pem
    
    # dummy values, required by yaml parser
    # replaced at runtime by temporalite
    persistence:
      defaultStore: default
      numHistoryShards: 1
    

    temporalite-ui.yaml

    tls:
      caFile: dist/rootCA.pem
      certFile: dist/client.pem
      keyFile: dist/client-key.pem
      serverName: local.dev
    

    Potential risks

    Applications with existing command line configuration will still work as advertised.

    Is hotfix candidate?

    No.

    opened by tomcz 4
  • Bump github.com/temporalio/ui-server/v2 from 2.8.3 to 2.9.1

    Bump github.com/temporalio/ui-server/v2 from 2.8.3 to 2.9.1

    Bumps github.com/temporalio/ui-server/v2 from 2.8.3 to 2.9.1.

    Release notes

    Sourced from github.com/temporalio/ui-server/v2's releases.

    v2.9.1

    ui-server

    ui

    • 2022-12-15 - c7182477 - Update accordion to use the type button (#1004)
    • 2022-12-15 - da29f251 - fix cancel enabled checks (#1005)
    • 2022-12-15 - 1f1fd0b0 - disable cancel for legacy cloud (#1003)
    • 2022-12-14 - f7e2bdf8 - Bump version to 2.1.96 (#1001)
    • 2022-12-14 - ce1839a3 - Revert to 0.11.8 (#1000)
    • 2022-12-13 - ec2a4040 - Bump version (#996)
    • 2022-12-13 - b8cd75a6 - Add types and tests for isLocalActivityMarkerEvent (#994)
    • 2022-12-13 - 579348a9 - [DT-56] Fix CodeBlock overflow and spacing (#991)
    • 2022-12-13 - 6b5ee1fd - Add type and use correct syntax for json-bigint (#992)
    • 2022-12-13 - 89eff4ce - Fix "cancel in progress" alert on event history page (#990)
    • 2022-12-13 - 4e38380a - Add Stylelint check and autofix styles (#989)
    • 2022-12-13 - 78b9f117 - Fix all lint issues that are not no-explicit-any (#993)
    • 2022-12-12 - 25679056 - Update width on resize (#986)
    • 2022-12-12 - fad2aaa3 - Prevent pending activity negative attempts / max attempts (#987)
    • 2022-12-09 - f0ef6d1c - Move workflow run loading store to it's own file so it can be imported (#985)
    • 2022-12-09 - bc21f1ef - Refactor event history routing (#984)
    • 2022-12-09 - 6079d46a - [DT-190] Reveal all workflow ID (#981)
    • 2022-12-08 - f2f0e7c3 - Event summary table updates (#983)
    • 2022-12-08 - 38c31c08 - forward props for Accordion (#970)
    • 2022-12-08 - c3ec9554 - Fix wrapping and spacing for recent runs (#982)
    • 2022-12-07 - 5551bf37 - Use reactive routeParameters for tabs (#979)
    • 2022-12-06 - a76d7994 - Check for value of encodedAttribute and better payload safety checks (#978)
    • 2022-12-06 - 61ef88bf - 2.1.89 (#977)
    • 2022-12-06 - 86427eeb - [DT-147] Add new workflow task failed error copy (#965)
    • 2022-12-06 - ba6a9b17 - Remove truncating compact view label (#976)
    • 2022-12-06 - d20807aa - Decode encodedAttributes field, update and add tests (#975)
    • 2022-12-05 - 02143646 - fix colspan on workflows-with-new-search empty/loading state (#973)
    • 2022-12-05 - 48119143 - Clear workflowQuery when no workflowSort and workflowFilters (#971)
    • 2022-12-05 - 6a0953e6 - DT-143 - batch cancel workflows on Recent Workflows page (#959)
    • 2022-12-02 - cd9d776e - Improve ux of compact view left side links (#969)
    • 2022-12-02 - 3ee32f18 - DT-131 - improve keyboard navigation for modals (#966)
    • 2022-11-30 - 54132830 - 2.1.88 (#967)
    • 2022-11-30 - 58fdddcd - DT-152 - batch terminate (#952)
    • 2022-11-30 - 3df46876 - Advanced Visibility Guard with New Filters (#958)
    • 2022-11-28 - 45d5261c - Remove check for failed to show heartbeat details (#964)
    • 2022-11-28 - 26b86960 - add ability to toggle off cancel (#963)

    Full Changelog: https://github.com/temporalio/ui-server/compare/v2.9.0...v2.9.1

    v2.9.0

    Changes

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump github.com/urfave/cli/v2 from 2.23.5 to 2.23.7

    Bump github.com/urfave/cli/v2 from 2.23.5 to 2.23.7

    Bumps github.com/urfave/cli/v2 from 2.23.5 to 2.23.7.

    Release notes

    Sourced from github.com/urfave/cli/v2's releases.

    v2.24.0

    What's Changed

    Full Changelog: https://github.com/urfave/cli/compare/v2.23.6...v2.24.0

    v2.23.6

    What's Changed

    Full Changelog: https://github.com/urfave/cli/compare/v2.23.5...v2.23.6

    Commits
    • a6194b9 Merge pull request #1618 from dearchap/issue_1617
    • 659672b Fix docs issue
    • badc19f Fix:(issue_1617) Fix Bash completion for subcommands
    • f9652e3 Merge pull request #1608 from dearchap/issue_1591
    • ab2bf3c Fix:(issue_1591) Use AppHelpTemplate instead of SubCommandHelpTemplate
    • 5f57616 Merge pull request #1588 from feedmeapples/disable-slice-flag-separator
    • 9b0812c Update godoc v2 spacing
    • ceb75a1 godoc
    • 377947f replace test hardcode with defaultSliceFlagSeparator
    • 0f8707a Allow disabling SliceFlag separator altogether
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Misleading error is raised when host address is already binded locally.

    Misleading error is raised when host address is already binded locally.

    Expected Behavior

    The error that is being raised is super misleading when the address is already binded to another process. Ideally we should get something like

    : Address already in use - bind(2) for "127.0.0.1" port 3001 (Errno::EADDRINUSE)
    ... backtrace ...
    

    Actual Behavior

    Panic error with no context in it.

    ❯ ./spec/support/go_server/main 3000 s                                                                                                                    [3.1.2]
    2022/12/07 22:55:29 Let's do this!
    2022/12/07 22:55:29 Starting server on port 3000 for namespace s
    panic: Client must be created with client.Dial() or client.NewLazyClient()
    
    goroutine 203 [running]:
    go.temporal.io/sdk/internal.NewWorker(...)
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/internal/worker.go:233
    go.temporal.io/sdk/worker.New({0x0?, 0x0?}, {0x300c11c?, 0x23?}, {0xa, 0x0, 0x0, 0x0, 0x0, 0x8, ...})
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/worker/worker.go:223 +0xdd
    go.temporal.io/server/service/worker/scanner.(*Scanner).Start(0xc00030d8f0)
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/service/worker/scanner/scanner.go:153 +0x7a6
    go.temporal.io/server/service/worker.(*Service).startScanner(0xc0002d8180)
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/service/worker/service.go:472 +0x22a
    go.temporal.io/server/service/worker.(*Service).Start(0x0?)
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/service/worker/service.go:374 +0x3dc
    go.temporal.io/server/service/worker.ServiceLifetimeHooks.func1.1({0x34d8248?, 0xc0002d8180?}, 0xc000368880?)
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/service/worker/fx.go:155 +0x2c
    created by go.temporal.io/server/service/worker.ServiceLifetimeHooks.func1
            /Users/laertipapa/go/pkg/mod/go.temporal.io/[email protected]/service/worker/fx.go:153 +0x98
    

    Steps to Reproduce the Problem

    1. Compile the server running here: https://github.com/temporalio/sdk-ruby/tree/main/spec/support/go_server
    2. Start which ever process you like locally in port X
    3. Try to run the go server in port X: ./main 3001 s
    opened by laertispappas 0
  • Bump go.uber.org/zap from 1.23.0 to 1.24.0

    Bump go.uber.org/zap from 1.23.0 to 1.24.0

    Bumps go.uber.org/zap from 1.23.0 to 1.24.0.

    Release notes

    Sourced from go.uber.org/zap's releases.

    v1.24.0

    Enhancements:

    • #1148[]: Add Level to both Logger and SugaredLogger that reports the current minimum enabled log level.
    • #1185[]: SugaredLogger turns errors to zap.Error automatically.

    Thanks to @​Abirdcfly, @​craigpastro, @​nnnkkk7, and @​sashamelentyev for their contributions to this release.

    #1148: uber-go/zap#1148 #1185: uber-go/zap#1185

    Changelog

    Sourced from go.uber.org/zap's changelog.

    1.24.0 (30 Nov 2022)

    Enhancements:

    • #1148[]: Add Level to both Logger and SugaredLogger that reports the current minimum enabled log level.
    • #1185[]: SugaredLogger turns errors to zap.Error automatically.

    Thanks to @​Abirdcfly, @​craigpastro, @​nnnkkk7, and @​sashamelentyev for their contributions to this release.

    #1148: https://github.coml/uber-go/zap/pull/1148 #1185: https://github.coml/uber-go/zap/pull/1185

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • github.com/temporalio/ui-server/v2-v2.8.3: 2 vulnerabilities (highest severity is: 6.1)

    github.com/temporalio/ui-server/v2-v2.8.3: 2 vulnerabilities (highest severity is: 6.1)

    Vulnerable Library - github.com/temporalio/ui-server/v2-v2.8.3

    Golang Server for https://github.com/temporalio/ui

    Library home page: https://proxy.golang.org/github.com/temporalio/ui-server/v2/@v/v2.8.3.zip

    Found in HEAD commit: fdc0165780ae650730a59957dc8b227794444190

    Vulnerabilities

    | CVE | Severity | CVSS | Dependency | Type | Fixed in (github.com/temporalio/ui-server/v2-v2.8.3 version) | Remediation Available | | ------------- | ------------- | ----- | ----- | ----- | ------------- | --- | | WS-2021-0461 | Medium | 6.1 | github.com/temporalio/ui-server/v2-v2.8.3 | Direct | swagger-ui - 4.1.3;swagger-ui-dist - 4.1.3 | ❌ | | CVE-2018-25031 | Medium | 4.3 | github.com/temporalio/ui-server/v2-v2.8.3 | Direct | swagger-ui - 4.1.3;swagger-ui-dist - 4.1.3 | ❌ |

    Details

    WS-2021-0461

    Vulnerable Library - github.com/temporalio/ui-server/v2-v2.8.3

    Golang Server for https://github.com/temporalio/ui

    Library home page: https://proxy.golang.org/github.com/temporalio/ui-server/v2/@v/v2.8.3.zip

    Dependency Hierarchy:

    • :x: github.com/temporalio/ui-server/v2-v2.8.3 (Vulnerable Library)

    Found in HEAD commit: fdc0165780ae650730a59957dc8b227794444190

    Found in base branch: main

    Vulnerability Details

    SwaggerUI supports displaying remote OpenAPI definitions through the ?url parameter. This enables robust demonstration capabilities on sites like petstore.swagger.io, editor.swagger.io, and similar sites, where users often want to see what their OpenAPI definitions would look like rendered.

    However, this functionality may pose a risk for users who host their own SwaggerUI instances. In particular, including remote OpenAPI definitions opens a vector for phishing attacks by abusing the trusted names/domains of self-hosted instances.

    Resolution: We've made the decision to disable query parameters (#4872) by default starting with SwaggerUI version 4.1.3. Please update to this version when it becomes available (ETA: 2021 December). Users will still be able to be re-enable the options at their discretion. We'll continue to enable query parameters on the Swagger demo sites.

    Publish Date: 2021-12-09

    URL: WS-2021-0461

    CVSS 3 Score Details (6.1)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: None
      • User Interaction: Required
      • Scope: Changed
    • Impact Metrics:
      • Confidentiality Impact: Low
      • Integrity Impact: Low
      • Availability Impact: None

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://github.com/advisories/GHSA-qrmm-w75w-3wpx

    Release Date: 2021-12-09

    Fix Resolution: swagger-ui - 4.1.3;swagger-ui-dist - 4.1.3

    CVE-2018-25031

    Vulnerable Library - github.com/temporalio/ui-server/v2-v2.8.3

    Golang Server for https://github.com/temporalio/ui

    Library home page: https://proxy.golang.org/github.com/temporalio/ui-server/v2/@v/v2.8.3.zip

    Dependency Hierarchy:

    • :x: github.com/temporalio/ui-server/v2-v2.8.3 (Vulnerable Library)

    Found in HEAD commit: fdc0165780ae650730a59957dc8b227794444190

    Found in base branch: main

    Vulnerability Details

    Swagger UI before 4.1.3 could allow a remote attacker to conduct spoofing attacks. By persuading a victim to open a crafted URL, an attacker could exploit this vulnerability to display remote OpenAPI definitions.

    Publish Date: 2022-03-11

    URL: CVE-2018-25031

    CVSS 3 Score Details (4.3)

    Base Score Metrics:

    • Exploitability Metrics:
      • Attack Vector: Network
      • Attack Complexity: Low
      • Privileges Required: None
      • User Interaction: Required
      • Scope: Unchanged
    • Impact Metrics:
      • Confidentiality Impact: Low
      • Integrity Impact: None
      • Availability Impact: None

    For more information on CVSS3 Scores, click here.

    Suggested Fix

    Type: Upgrade version

    Origin: https://github.com/advisories/GHSA-qrmm-w75w-3wpx

    Release Date: 2022-03-11

    Fix Resolution: swagger-ui - 4.1.3;swagger-ui-dist - 4.1.3

    security vulnerability 
    opened by mend-for-github-com[bot] 0
  • Set buildvcs flag to false in docker build.

    Set buildvcs flag to false in docker build.

    What changed?

    I added a -buildvcs=false flag to the go build step inside the dockerfile.

    Why?

    This is a workaround to https://github.com/temporalio/temporalite/issues/156 I'm not sure if this is the best way to do this, but it does work.

    How did you test it?

    I ran docker build . before and after the change.

    Potential risks

    This may strip VCS information that someone is using, I am not sure if it is necessary to use this flag in the docker image.

    Is hotfix candidate?

    No

    opened by psigen 1
Releases(v0.3.0)
  • v0.3.0(Dec 7, 2022)

    Changelog

    • b63108d Bump github.com/temporalio/ui-server/v2 from 2.6.2 to 2.7.0 (#151)
    • 61fc4f3 Bump github.com/temporalio/ui-server/v2 from 2.7.0 to 2.7.1 (#152)
    • 63d8a73 Bump github.com/temporalio/ui-server/v2 from 2.7.1 to 2.8.0
    • ab84ca1 Bump github.com/temporalio/ui-server/v2 from 2.8.0 to 2.8.1
    • fdc0165 Bump github.com/temporalio/ui-server/v2 from 2.8.1 to 2.8.3 (#170)
    • 4540ae4 Bump github.com/urfave/cli/v2 from 2.16.3 to 2.17.1 (#146)
    • 4143c94 Bump github.com/urfave/cli/v2 from 2.17.1 to 2.19.2 (#149)
    • 81d76ce Bump github.com/urfave/cli/v2 from 2.19.2 to 2.20.2 (#153)
    • d041238 Bump github.com/urfave/cli/v2 from 2.20.2 to 2.23.0 (#164)
    • 03d0be1 Bump github.com/urfave/cli/v2 from 2.23.0 to 2.23.4 (#167)
    • 162f3f5 Bump github.com/urfave/cli/v2 from 2.23.4 to 2.23.5 (#171)
    • faebcf9 Bump go.temporal.io/server from 1.18.0 to 1.18.1 (#150)
    • 13e73ae Expose Panel port 8233 (#166)
    • 902abe4 Expose a new --codec-endpoint flag to start command (#174)
    • 4d2846e Merge pull request #159 from temporalio/dependabot/go_modules/github.com/temporalio/ui-server/v2-2.8.0
    • 93862e5 Merge pull request #162 from temporalio/dependabot/go_modules/github.com/temporalio/ui-server/v2-2.8.1
    • 4514df3 Remove "go install" README instructions (#145)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(624 bytes)
    temporalite_0.3.0_darwin_amd64.tar.gz(23.61 MB)
    temporalite_0.3.0_darwin_arm64.tar.gz(23.00 MB)
    temporalite_0.3.0_linux_amd64.tar.gz(22.78 MB)
    temporalite_0.3.0_linux_arm64.tar.gz(21.12 MB)
    temporalite_0.3.0_windows_amd64.tar.gz(22.92 MB)
    temporalite_0.3.0_windows_arm64.tar.gz(21.25 MB)
  • v0.2.0(Sep 29, 2022)

    Temporal Server Version: 1.18.0

    Release Highlights

    This release updates Temporal server to the latest major version 1.18.0.

    It also includes:

    • A new --dynamic-config-value flag for specifying dynamic config outside of a configuration yaml file
    • Support for using mTLS with the web UI
    • Bugfixes related to configuration file loading (#141) and getting started documentation (#122)
    • Updated web UI with bugfixes including support for special characters in workflow IDs #118

    Changelog

    • 69f30b5 Add vscode debug script (#116)
    • 06b1f4a Allow web UI to be configured when using mTLS in API (#138)
    • a28601a Bump github.com/temporalio/ui-server/v2 from 2.5.1 to 2.6.0 (#129)
    • 95e8a9d Bump github.com/temporalio/ui-server/v2 from 2.6.0 to 2.6.1
    • 56f2fec Bump github.com/temporalio/ui-server/v2 from 2.6.1 to 2.6.2 (#133)
    • fbe9874 Bump github.com/urfave/cli/v2 from 2.11.2 to 2.14.1 (#123)
    • 76d4124 Bump github.com/urfave/cli/v2 from 2.14.1 to 2.16.3 (#126)
    • 649f085 Bump go.temporal.io/server from 1.17.4 to 1.17.5 (#119)
    • f3d6054 Bump go.temporal.io/server from 1.17.5 to 1.18.0 (#134)
    • 0090afc Bump go.uber.org/zap from 1.22.0 to 1.23.0 (#115)
    • a3d9d73 Dynamic config values and default search attribute cache as disabled (#136)
    • 8833863 Ensure default directory path to db file exists (#140)
    • 9a56995 FIx base config loading and add TLS integration test (#141)
    • 42dab08 Fix UI escaping special symbols (#118)
    • 7800181 Fix copyright header verification mode (#137)
    • d2ec434 Merge pull request #131 from temporalio/dependabot/go_modules/github.com/temporalio/ui-server/v2-2.6.1
    • f974733 Test creating default db directory (#144)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(624 bytes)
    temporalite_0.2.0_darwin_amd64.tar.gz(23.61 MB)
    temporalite_0.2.0_darwin_arm64.tar.gz(23.00 MB)
    temporalite_0.2.0_linux_amd64.tar.gz(22.78 MB)
    temporalite_0.2.0_linux_arm64.tar.gz(21.12 MB)
    temporalite_0.2.0_windows_amd64.tar.gz(22.91 MB)
    temporalite_0.2.0_windows_arm64.tar.gz(21.25 MB)
  • v0.1.1(Aug 23, 2022)

    Temporal Server Version: 1.17.4

    Release Highlights

    This release brings in bugfixes and miscellaneous improvements to the Temporal server and UI.

    Changelog

    • 0b360ba Bump github.com/temporalio/ui-server/v2 from 2.5.0 to 2.5.1 (#112)
    • 2f3019e Bump github.com/urfave/cli/v2 from 2.11.1 to 2.11.2 (#111)
    • 3c541f8 Bump go.temporal.io/server from 1.17.2 to 1.17.4 (#113)
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(624 bytes)
    temporalite_0.1.1_darwin_amd64.tar.gz(22.74 MB)
    temporalite_0.1.1_darwin_arm64.tar.gz(22.23 MB)
    temporalite_0.1.1_linux_amd64.tar.gz(21.91 MB)
    temporalite_0.1.1_linux_arm64.tar.gz(20.34 MB)
    temporalite_0.1.1_windows_amd64.tar.gz(21.99 MB)
    temporalite_0.1.1_windows_arm64.tar.gz(20.42 MB)
  • v0.1.0(Aug 11, 2022)

    Temporal Server Version: 1.17.2

    Release Highlights

    🎉 This is the first official release of Temporalite! 🎉

    To get started, install Temporalite with go install github.com/temporalio/temporalite/cmd/[email protected], or import the github.com/temporalio/temporalite/temporaltest package to write an integration test in Go.

    Changelog

    • 80ecd27 Add --metrics-port flag. (#87)
    • 1cccf14 Add WithUpstreamOptions server option (#10)
    • 715fc8d Add log level support (#58)
    • 6070027 Add optional flag to bind frontend ip address (#17)
    • 9a1915a Add sqlite pragma support (#30)
    • 583fa90 Add ui-server (#29)
    • 593da1a Added methods to create new test workers with custom options (#81)
    • 02655c7 Adding Dockerfile (#16)
    • 349fdfc Allow overriding base Temporal server config and client options (#75)
    • e9d2bf9 Automatically stop server after test completion via T.Cleanup (#25)
    • ff12777 Bump Temporal server and Go SDK versions (#13)
    • 3d927c0 Bump github.com/benbjohnson/clock from 1.1.0 to 1.2.0 (#14)
    • 10b2d2a Bump github.com/temporalio/ui-server from 0.13.0 to 0.13.1 (#67)
    • c93d79b Bump github.com/temporalio/ui-server/v2 from 2.3.0 to 2.4.0 (#98)
    • ba35649 Bump github.com/temporalio/ui-server/v2 from 2.4.0 to 2.5.0 (#103)
    • dcd539d Bump github.com/urfave/cli/v2 from 2.10.2 to 2.10.3 (#85)
    • 418cc39 Bump github.com/urfave/cli/v2 from 2.10.3 to 2.11.0 (#88)
    • 95467df Bump github.com/urfave/cli/v2 from 2.11.0 to 2.11.1 (#92)
    • 037b599 Bump github.com/urfave/cli/v2 from 2.3.0 to 2.4.0 (#53)
    • 0797d11 Bump github.com/urfave/cli/v2 from 2.4.0 to 2.5.1 (#63)
    • 2c4fe1a Bump github.com/urfave/cli/v2 from 2.5.1 to 2.6.0 (#65)
    • 0f25777 Bump github.com/urfave/cli/v2 from 2.6.0 to 2.8.1 (#78)
    • 2cabcd1 Bump github.com/urfave/cli/v2 from 2.8.1 to 2.10.2 (#83)
    • 86a3b8e Bump go.temporal.io/sdk from 1.13.0 to 1.13.1 (#45)
    • 2094b2e Bump go.temporal.io/sdk from 1.9.0 to 1.10.0
    • 5d2482f Bump go.temporal.io/server from 1.14.0 to 1.14.1 (#32)
    • 701f0b2 Bump go.temporal.io/server from 1.14.1 to 1.14.2 (#36)
    • de413af Bump go.temporal.io/server from 1.14.2 to 1.14.4 (#38)
    • 1169750 Bump go.temporal.io/server from 1.15.0 to 1.15.1 (#50)
    • cd8b273 Bump go.temporal.io/server from 1.15.1 to 1.15.2 (#51)
    • 0e51713 Bump go.temporal.io/server from 1.16.1 to 1.16.2 (#68)
    • c55def0 Bump go.temporal.io/server from 1.16.2 to 1.17.1 (#89)
    • 15c4892 Bump go.temporal.io/server from 1.17.1 to 1.17.2 (#102)
    • 48d19ba Bump go.uber.org/zap from 1.19.1 to 1.20.0 (#35)
    • 9561b1a Bump go.uber.org/zap from 1.20.0 to 1.21.0 (#41)
    • 338c014 Bump go.uber.org/zap from 1.21.0 to 1.22.0 (#107)
    • 41343b6 Check if the db file path dir exists before setting up schema (#99)
    • 95f1070 Deprecate Worker() and Client() in favor of NewWorker() DefaultClient() (#95)
    • 493a727 Disable web UI via build tag or runtime flag (#47)
    • 50d4a31 Do not override existing FrontendPort config (#15)
    • 1ecb757 Expose frontend host:port (#11)
    • cf5e093 Initial commit
    • e046f4e Link to Temporalite intro video (#27)
    • bd41b41 Merge pull request #1 from DataDog/jlegrone/copyright
    • b8bddfb Merge pull request #2 from DataDog/jlegrone/license-check
    • 627e05e Merge pull request #24 from DataDog/jlegrone/upgrade-temporal
    • 195c46d Merge pull request #3 from DataDog/jlegrone/ci
    • 4b74777 Merge pull request #4 from DataDog/dependabot/go_modules/go.temporal.io/sdk-1.10.0
    • 7986b5b Merge pull request #5 from DataDog/jlegrone/pre-create-namespaces
    • c9203bf Merge pull request #6 from DataDog/jlegrone/no-cgo
    • 3b71bff Merge pull request #7 from DataDog/jlegrone/test-logger
    • b2bcb51 Merge pull request #9 from DataDog/jlegrone/upstream-driver
    • bfe0432 Note that Go 1.17+ is required for installation
    • 65c2369 Remove deprecated Worker and Client methods (#109)
    • a04abd3 Rename module to github.com/temporalio/temporalite (#96)
    • 1cf0b61 Revert "Upgrade Temporal and Temporal Web UI. (#86)" (#91)
    • 94be8e0 Skip migrations when db file already exists
    • 399cfa1 Switch to upstream SQLite driver
    • 08e491b UI bump (#93)
    • 4c73c85 Update github.com/temporalio/ui-server (#40)
    • c19371c Update goreleaser config and stamp binaries with semantic version (#104)
    • a4b633d Update license & copyright headers (#97)
    • ac001ab Update tally to v4.1.0 (#20)
    • a678942 Upgrade Temporal
    • 5eaf107 Upgrade Temporal and Temporal Web UI. (#86)
    • 0507fa8 Upgrade temporal to v1.16.1 and Go to 1.18 (#66)
    • 5a5ad37 Use dynamic ports from CLI (#48)
    • 81d9847 add CGO_ENABLED=0 to test matrix
    • 7803589 add CLI flag to pre-create namespaces
    • 44a4997 add CLI to update license headers
    • 779f518 add Datadog, Inc. to existing copyright headers
    • c8518eb add badges for godoc, ci, code coverage
    • 8794ecc add ci and release workflows
    • 11e139d add contributing docs
    • 0bebba6 add dependabot config
    • f81b595 add temporaltest package
    • b179c5a add temporaltest usage example
    • 0719c32 allow passing additional options when configuring client
    • aa66d7e de-duplicate default frontend port references
    • 8c75a9f format sql files
    • 0d97753 generate default test namespace
    • 0836de4 go run ./internal/copyright
    • 893eae8 license to Datadog, Inc.
    • 793d9ed move server library to top level package
    • 011f820 pre-create namespaces during database initialization
    • b54068f remove namespace waiting logic
    • e5ba2aa remove queue_metadata.data NOT NULL constraint
    • e9784c1 shorten test timeout
    • 76ee46d support custom test logger
    • d84802f support manual overrides when third party licenses cannot be parsed
    • 97ee5b7 support non-cgo builds
    • 9cbf0fb track third party code licenses
    • 4a4117c update temporal version
    • 2f33df8 update third party licenses
    • afbf824 upgrade temporal-server to 1.15.0 (#44)
    • c0be89d use shared helloworld worker implementation
    Source code(tar.gz)
    Source code(zip)
    checksums.txt(624 bytes)
    temporalite_0.1.0_darwin_amd64.tar.gz(22.73 MB)
    temporalite_0.1.0_darwin_arm64.tar.gz(22.22 MB)
    temporalite_0.1.0_linux_amd64.tar.gz(21.90 MB)
    temporalite_0.1.0_linux_arm64.tar.gz(20.33 MB)
    temporalite_0.1.0_windows_amd64.tar.gz(21.98 MB)
    temporalite_0.1.0_windows_arm64.tar.gz(20.41 MB)
Owner
Datadog, Inc.
Datadog, Inc.
This is a simple project for demonstrating Temporal with the Go SDK.

This is a simple project for demonstrating Temporal with the Go SDK.

null 0 Oct 11, 2021
Small proof of concept project to try temporal.io with Dispatch Incident Management from Netflix.

temporal-dispatch-poc Small POC project to try out the Temporal workflow engine together with Netflix's Dispatch Incident Management System. Supported

Jørgen 1 Nov 12, 2021
Temporal Server docker-compose files

Temporal Server docker-compose files This repository provides docker-compose fil

Adeyemi Ademola 0 Dec 24, 2021
Example project for Temporal microservice orchestarion.

Temporal Microservice Introduction This project is created to understand Temporal's Microservice approachment. The repo contains: Example Temporal Mic

Engin Sefa Güngör 1 Oct 4, 2022
The temporal cloud cli.

tcld (Beta) A cli tool for managing Temporal Cloud namespaces. This cli tool is currently in beta and access to Temporal Cloud via the cli is restrict

temporal.io 18 Nov 1, 2022
:runner:runs go generate recursively on a specified path or environment variable and can filter by regex

Package generate Package generate runs go generate recursively on a specified path or environment variable like $GOPATH and can filter by regex Why wo

Go Playgound 28 Sep 27, 2022
A limited Flow Access API which runs outside of the Flow Network using the DPS

Access API Flow DPS implements the Flow Access API Specification, except for the following endpoints: SendTransaction GetLatestProtocolStateSnapshot G

optakt 3 Jul 28, 2022
Terraform Provider for cascading runs across multiple workspaces.

Terraform Multispace Provider The multispace Terraform provider implements resources to help work with multi-workspace workflows in Terraform Cloud (o

Mitchell Hashimoto 140 Oct 25, 2022
Initiate Chainlink job runs from external sources.

External Initiator Initiate Chainlink job runs from external sources. Installation go install Configuration Environment variables Key Description Exam

PlugIn (PLI) 1 Sep 12, 2022
Experimental code execution microservice based on Docker containers.

ranna ランナー - Experimental code runner microservice based on Docker containers. ⚠ PLEASE READ BEFORE USE First of all, this project is currently work i

ranna 31 Dec 9, 2022
Lithia is an experimental functional programming language with an implicit but strong and dynamic type system.

Lithia is an experimental functional programming language with an implicit but strong and dynamic type system. Lithia is designed around a few core concepts in mind all language features contribute to.

Valentin Knabel 9 Dec 24, 2022
Experimental Monika After Story persistent data loader written in Go

Go Persistent Loader This project is an experiment on loading/deserializing Monika After Story persistent (save) file into memory. Currently it contai

Friends of Monika 2 May 10, 2022
An experimental vulkan 3d engine for linux (raspberry 4)

protomatter an experimental vulkan 3d engine for linux (raspberry 4).

Torben Schinke 0 Nov 14, 2021
An experimental programming language.

crank-lang An experimental & interpreted programming language written in Go. Features C like syntax Written in Golang Interpreted Statically Typed Dis

inmicro 2 Dec 6, 2021
Simple 'UserKit' for Malware written in Go. Startup, Hidden Files, Critical Process and Registry Watcher

GoUserKit Simple UserKit for Malware written in Go Features Makes Process Critical (NtSetInformationProcess) Hides Files Simple Add to Startup (HKCU R

SaturnsVoid 10 Jan 3, 2023
A profiling tool to peek and profile the memory or cpu usage of a process

Peekprof Get the CPU and Memory usage of a single process, monitor it live, and extract it in CSV and HTML. Get the best out of your optimizations. Us

Apostolis A. 8 Jan 9, 2023
Coding Challenge for Fullstacklabs Hiring Process

Cuboids Challenge This API manages bags and cuboids. A cuboid is a three-dimensional rectangular box. Each face of a cuboid is a rectangle and adjacen

Guido Mauricio Mantilla Tarazona 1 Mar 31, 2022
Proc-peepin - Capture process cpu and memory and send it off to influx

proc-peepin Capture process cpu and memory and send it off to influx Running loc

Brennon Loveless 0 Feb 13, 2022
🦉 Docuowl generates a static single-page documentation from Markdown files

?? Docuowl generates a static single-page documentation from Markdown files

Docuowl 1.2k Jan 2, 2023