An experimental distribution of Temporal that runs as a single process

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/temporalite@latest

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/temporalite@latest 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/temporalite@latest

    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

  • 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

  • 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.

  • 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.

  • 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.

  • 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)

  • 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
  • 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?

  • 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.

  • 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
  • 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.

  • 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)
  • 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)
  • 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
  • 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)
  • 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

  • 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

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

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

Oct 11, 2021
Small proof of concept project to try temporal.io with Dispatch Incident Management from Netflix.
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

Nov 12, 2021
Temporal Server docker-compose files

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

Dec 24, 2021
Example project for Temporal microservice orchestarion.
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

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

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

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

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

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

Sep 12, 2022
Experimental code execution microservice based on Docker containers.
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

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.

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

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

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

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

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

Jan 3, 2023
A profiling tool to peek and profile the memory or cpu usage of a process
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

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

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

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

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

Jan 2, 2023