All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- ci: bump docker actions to resolve Node.js 20 deprecation
- ci: use native ARM runners instead of QEMU for multi-arch Docker builds
- ci: use ubuntu-24.04-arm runner for ARM64 Docker builds
- ci: increase docker job timeout for multi-platform builds
- build: add multi-platform Docker support and set version in image
- docs: rename embed.md to sdk.md and expand SDK documentation
- refactor: change Go module path to github.com/imposter-project/imposter-cli
- fix: bump google.golang.org/grpc to v1.79.3 (CVE-2026-33186)
- fix: update Go module path in Dockerfile
- ci: move Docker job into CI workflow and push latest tag on release
- build: add Dockerfile and .dockerignore
- build: use scratch base image and add Docker CI workflow
- chore(deps): bump github.com/docker/docker from 28.5.1 to 28.5.2
- chore(deps): bump github.com/olekukonko/tablewriter from 1.0.9 to 1.1.4
- chore(deps): bump github.com/testcontainers/testcontainers-go from 0.36.0 to 0.41.0
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.35.0 to 1.40.0
- chore(deps): bump the spf13 group with 2 updates
- docs: describe golang engine
- feat: add --all flag to ls and down commands (#106)
- test: use jvm or golang engine type in latest version case
- fix: use modern format when scaffolding config
- fix(linux): fix cross-device link error when downloading engine binaries (#98)
- chore(deps): bump github.com/sirupsen/logrus from 1.9.3 to 1.9.4
- chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 (#97)
- chore(deps): bump goreleaser/goreleaser-action from 6 to 7
- chore: group dependabot updates for viper and cobra
- chore: update Go version to 1.25.0 for CI compatibility
- refactor: migrate AWS SDK from v1 to v2 (#95)
- feat: add WSDL support to scaffold command
- feat: update documentation to mention WSDL scaffolding
- build: disable cgo in release script
- build: disable unneeded cgo
- chore: bumps engine test version to 4.9.1
- chore: update go-wsdl-parser to published v0.1.0
- chore(deps): bump actions/checkout from 5 to 6
- chore(deps): bump actions/setup-go from 5 to 6
- chore(deps): bump github.com/aws/aws-sdk-go from 1.55.7 to 1.55.8
- chore(deps): bump github.com/docker/docker
- chore(deps): bump github.com/docker/go-connections from 0.5.0 to 0.6.0
- refactor: align mocks cloud naming
- chore(deps): bump actions/checkout from 4 to 5
- chore(deps): bump actions/setup-java from 4 to 5
- chore(deps): bump github.com/docker/docker
- chore(deps): bump github.com/olekukonko/tablewriter from 1.0.8 to 1.0.9
- chore(deps): bump sigs.k8s.io/yaml from 1.5.0 to 1.6.0
- refactor(golang): support automatic plugin install.
- chore(deps): bump github.com/olekukonko/tablewriter from 0.0.5 to 1.0.8
- chore(deps): bump github.com/shirou/gopsutil/v4 from 4.25.5 to 4.25.6
- chore(deps): bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0
- refactor: make table renderer compatible with latest dep version.
- fix: windows golang plugin file template should include extension.
- test: fix platform dependent test case.
- feat: add plugin uninstall command.
- feat: version lookup depends on engine type.
- refactor: remove redundant platform package
- refactor: use templates for plugin file name config.
- fix: escape metacharacters in plugin file pattern.
- refactor: make full mode optional in version command.
- feat: adds golang to engine type option description.
- feat: version command can output just the CLI version.
- chore(deps): bump github.com/docker/docker
- chore(deps): bump github.com/shirou/gopsutil/v4 from 4.25.4 to 4.25.5
- test: bumps imposter-go version.
- fix: temp pattern should handle file extensions with multiple parts.
- build: adds since config.
- chore: ignore tool config.
- chore: update Go version to 1.23.8.
- refactor(golang): standardise environment creation and add plugin support.
- refactor: aligns go binary naming to expected platform format.
- refactor: maps plugin config to engine type.
- refactor: moves plugin filename prefix to const.
- refactor: plugin downloads are engine type aware.
- refactor: support extracting both zip and tar.gz archives.
- refactor: use a temp file when downloading binaries.
- chore(deps): bump github.com/aws/aws-sdk-go from 1.55.6 to 1.55.7
- chore(deps): bump github.com/shirou/gopsutil/v4 from 4.25.3 to 4.25.4
- fix(docker): don't prefix docker.io when a custom registry is set.
- chore(deps): bump github.com/docker/docker
- fix: update Docker API references for v28.1.1 compatibility
- chore(deps): bump github.com/shirou/gopsutil/v4 from 4.25.1 to 4.25.3
- chore(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1
- docs: updates brew tap repo.
- fix: JVM engine environment should include path.
- ci: updates brew formula repo.
- fix: update format_overrides to use formats array in goreleaser config
- fix: update goreleaser config to fix deprecation warnings
- fix: update goreleaser config to v2 standards
- feat: allow container registry to be set. (#40)
- build: ignore dev guide.
- fix: mirror upstream status code in client response.
- refactor: updates GitHub org to imposter-project.
- ci: splits release into separate job.
- refactor: moves packages to internal.
- chore(deps): bump github.com/shirou/gopsutil/v4 from 4.24.12 to 4.25.1
- ci: reworks release binary names and download script.
- fix: golang engine start should await healthcheck.
- test: improves coverage of OpenAPI discovery.
- test: improves coverage of OpenAPI parsing.
- test: improves coverage of fileutil.
- test: improves coverage of library.
- test: improves coverage of string utils.
- build: first stable release.
- chore(deps): bump github.com/aws/aws-sdk-go from 1.55.5 to 1.55.6
- chore(deps): bump github.com/google/uuid from 1.4.0 to 1.6.0
- build: updates org name.
- feat: adds golang engine.
- feat: golang engine should use binary cache.
- feat: golang engine supports list and stop.
- chore: bumps gopsutil to v4.
- refactor: aligns golang binary naming.
- fix: searches golang engine environment for port.
- build: ignore tool versions config.
- chore(deps): bump github.com/spf13/cobra from 1.4.0 to 1.8.1
- chore(deps): bump github.com/spf13/viper from 1.10.0 to 1.19.0
- chore(deps): bump goreleaser/goreleaser-action from 5 to 6
- refactor: place jvm binaries under their own subdirectory.
- feat: proxy can capture request body and headers.
- chore(deps): bump github.com/shirou/gopsutil/v3 from 3.22.2 to 3.24.5
- chore(deps): bump golang.org/x/mod from 0.8.0 to 0.22.0
- chore: bumps engine test version to 4.2.2.
- docs: describes request body and header capture flags.
- refactor: removes dependency on golang.org/x/mod package for semver comparison.
- test: improves coverage of media type detector.
- test: improves coverage of proxy recorder.
- build: adds dependabot config.
- build: sets package ecosystem to gomod.
- chore(deps): bump github.com/docker/go-connections from 0.4.0 to 0.5.0
- chore(deps): bump github.com/stretchr/testify from 1.7.0 to 1.9.0
- chore(deps): bumps golang to 1.23.3.
- feat(awslambda): allows S3 object key to be set.
- feat(awslambda): awaits version publish completion.
- feat(awslambda): supports bucket upload.
- feat(awslambda): supports publishing version, creating alias and enabling snapstart.
- feat: adds support for docker-distroless image.
- chore: bumps engine test version to 3.44.1.
- build(deps): bump github.com/docker/docker
- chore: bumps golang to 1.22.4.
- docs: describes debug mode flag.
- refactor: improves logging if plugins or file cache are enabled.
- feat: adds support for starting in debug mode.
- fix: default plugin install tip should only display if flag is false.
- chore(deps): bumps actions/checkout to v4 and actions/setup-go to v4.
- chore(deps): bumps actions/setup-go to v5.
- chore(deps): bumps actions/setup-java to v4.
- chore(deps): bumps go to 1.21.
- chore(deps): bumps goreleaser/goreleaser-action to v5.
- ci: replaces deprecated Goreleaser config.
- test: bumps engine to 3.38.2.
- refactor: adds init as alias for scaffold command.
- refactor: improves REST and OpenAPI scaffolding.
- feat: allows minimum CLI version to be specified.
- feat: allows required plugins to be set in local CLI config file.
- feat: supports specification of environment variables in config files.
- build(deps): bump golang.org/x/net from 0.18.0 to 0.23.0
- feat: allow plugins to be specified in CLI config.
- docs: adds changelog.
- fix: don't quieten the default logger if trace is enabled.
- feat: allows lambda binary path to be configured.
- feat: adds support for archive format plugins.
- feat: adds support for linux/aarch64 to install script.
- test: improves coverage of Docker bundle builder.
- feat: adds bundle support for Docker engine.
- feat: improves default docker bundle image name.
- refactor: removes unneeded method from function signature.
- build: reinstates dependency updates.
- ci: pins Java version to last successful.
- build: reverts module updates to address test regression.
- ci: bumps runner size.
- ci: sets workflow timeout.
- test: bumps test engine version.
- test: disabled flaky test.
- build(deps): bump golang.org/x/net from 0.7.0 to 0.17.0
- build(deps): bump gopkg.in/yaml.v3
- chore(deps): refresh dependencies.
- feat: adds local config writer command.
- build(deps): bump github.com/docker/distribution
- test: improves coverage for command line argument parser.
- feat(jvm): fall back to default listen port when listing mocks, if unspecified.
- feat: adds awslambda to bundle command engine type flag completions.
- feat: adds quiet option to list command.
- docs: improves explanation of list command.
- fix: removes goreleaser replacements config.
- refactor: makes exclusion of hidden files when listing files explicit.
- feat: adds bundle command.
- feat: adds log level flag completions.
- refactor: moves config validation to subpackage.
- build(deps): bump github.com/docker/docker
- feat: adds command to undeploy from remote.
- chore(deps): bumps aws-sdk-go to v1.44.248.
- feat: allows lambda architecture to be set.
- docs: adds upgrade instructions.
- feat: read CLI config file from mock config dir.
- feat: setting CLI log level also sets engine log level.
- Merge pull request #4 from gatehill/dependabot/go_modules/golang.org/x/net-0.7.0
- fix: enables default plugin retrieval to differ based on engine type.
- feat: adds shell completions for engine type flag.
- feat: adds 'all' distro engine type.
- feat: splits remote endpoint retrieval from deployment.
- fix(awslambda): reports AWS error details.
- refactor: separates command to set remote type.
- fix(awslambda): max function name check should allow shorter values.
- fix: added warning when installing plugins as non-defaults.
- feat: enables plugin list command to enumerate all installed versions.
- feat: adds plugin list command.
- fix(proxy): empty response body should skip writing a response file.
- docs: improves readme.
- fix: improves uniqueness of proxy response file names.
- feat: infers status code when scaffolding from OpenAPI.
- feat: adds suggested workspace names as shell completions.
- feat: improves relevance of doctor hints.
- feat: shows remote provider type in workspace show output.
- fix: removes leading and trailing quotes when setting remote config.
- feat: adds AWS Lambda deployment.
- feat: adds alias for workspace command.
- feat: adds workspace show command.
- feat: allows engine version to be specified in lambda deployments.
- feat: allows lambda memory and URL access to be configured.
- feat: improves remote configuration.
- docs: improves scaffold description.
- fix: tolerate empty token when showing remote.
- feat: adds sealed distro library type.
- fix: prevents resolution of latest version in version command.
- fix: removes unnecessary arg from rewrite debug log.
- feat: version command uses cached engines instead of pulling.
- feat: adds URL rewrite to proxy.
- feat: adds hierarchical response file structure to proxy.
- feat: adds option to ignore recording of duplicate requests in proxy.
- feat: adds option to record only certain response headers.
- feat: adds proxy recording.
- feat: adds reverse proxy.
- feat: adds shorthand -c flag for cli-only in version command.
- feat: allows proxy transport to be configured.
- feat: deduplicates response files in proxy.
- feat: generates single config file for proxies.
- feat: supports additional JS media types for proxy URL rewrite.
- feat: switches to impostermodel for config generation for proxies.
- build: bumps golang to 1.19.
- docs: adds missing copyright headers.
- docs: describes proxy command.
- test: improves coverage for proxy recorder.
- fix: passes through query string to proxy upstream.
- fix: removes early exit in install script.
- feat: adds ls alias for engine list and workspace list commands.
- feat: adds rest mock scaffolding.
- feat: adds JSON output format and CLI-only mode to version command.
- fix: detects unpacked JVM mock processes.
- feat: adds argument to enable recursive config scan in up command.
- feat: adds ls alias for mock list command.
- feat: detects listen port for JVM mocks.
- fix: makes java process detection more robust.
- feat: allows list command exit code to be set based on mock health.
- feat: adds port and health to mock list.
- fix: quietens mock list logs.
- fix: removes unnecessary client close.
- feat: adds mock list command.
- feat: adds support for ARM64 on macOS to install script.
- docs: updates JVM version.
- feat: moves to dedicated logger instance in place of default.
- chore: bumps docker to 20.10.17.
- test: bumps distro version to 3.0.2.
- test: finds free port for engine tests.
- refactor: moves engine build into provider.
- chore: bumps dependencies for docker, gopsutil and cobra.
- ci: uses go 1.17 compatibility for module pruning.
- fix: deduplicates environment variables when provided and present in parent.
- refactor: logs engine type at trace level.
- refactor: switches lifecycle state from active to live.
- feat: adds remote status command.
- refactor: shortens workspace metadata dir name.
- feat: adds cloudmocks remote deployment.
- feat: adds workspaces.
- feat: allows workspace path to be specified.
- docs: adds plugin install save default.
- refactor: allows prefs file name to be set.
- refactor: renames meta package to prefs.
- fix: checks if path is a dir when ensuring it exists.
- feat: allows installed plugins to be enabled by default.
- docs: describes log level argument.
- feat: adds short form directory mount format.
- feat: allows log level to be set using argument.
- feat: validates directory mounts before binding.
- feat: allows additional bind-mounts to be passed to Docker engine type.
- feat: improves healthcheck failure logging.
- fix: debounces dir watcher over longer duration.
- feat: installs missing default plugins on engine start.
- feat: adds support for recursive configuration file scanning.
- feat: injects explicit environment variables into config scope.
- docs: adds plugins to configuration file reference.
- fix: work-around for comma-separated plugins in environment variable.
- feat: allows multiple plugins to be installed.
- ci: pins Java version for jvm engine tests.
- docs: updates plugin install usage.
- test: bumps engine version.
- test: improves coverage for ensuring plugin dir and file cache dir.
- fix: removes empty local library file on download failure.
- feat: adds support for remote file cache.
- refactor: moves fallback engine filename to calling function.
- refactor: renames engine binary dir.
- test: improves cleanup for meta store.
- test: improves coverage for engine build util functions.
- test: improves coverage for engine builder.
- test: improves coverage for ensuring plugin dir.
- feat: adds meta store.
- feat: resolves 'latest' version string to actual version via cached lookup.
- fix: passes HOME environment variable to JVM engine.
- refactor: changes Java discovery to prefer PATH before JAVA_HOME.
- feat: uses IMPOSTER_PLUGIN_DIR as plugin store if set.
- refactor: improves plugin base directory config key.
- refactor: moves providers inside library.
- feat: allows explicit environment variables to be passed to engine.
- feat: adds plugin install command.
- ci: switches dependency fetch to use mod download.
- refactor: moves cache management and binary download to separate package.
- fix: shows usage if root command invoked with no arguments.
- feat: adds engine list command.
- feat: enables container user to be set.
- chore: bumps engine version to 2.4.13.
- chore: bumps engine version to 2.4.12.
- refactor: switches configuration directory from mount to bind.
- feat: unpacked engine now uses direct java command invocation with classpath.
- refactor: supports JAVA_TOOL_OPTIONS over JAVA_OPTS environment variable.
- refactor: CLI version falls back to dev if unset.
- refactor: returns outcome when starting engine.
- feat: stops healthcheck wait on sigterm.
- chore: bumps dependencies.
- feat: improves API when used as an embedded library.
- feat: adds support for version flag in root command.
- fix: improves locking of debouncer IDs.
- feat: passes through JAVA_OPTS environment variable.
- feat: adds support for unpacked distributions.
- feat: discovers JAVA_HOME when using unpacked engine type.
- refactor: bumps log level of dir watch event.
- feat: allows JVM engine binary cache and JAR path to be specified.
- feat: passes through Imposter environment variables to engine.
- build: use posix uname flag to determine architecture.
- docs: updates homepage link.
- docs: updates links to documentation.
- tests: bumps engine version.
- test: improves coverage of JVM engine pull.
- feat: allow use of 'latest' tag with JVM engine.
- docs: updates usage for pull
- refactor: return engine errors instead of panic
- refactor: determines version consistently
- feat: gets version output from engine, if possible
- feat: adds JVM support to 'down' command
- ci: adds release dry run if revision is not tagged
- fix: bumps go-ole dep for windows_arm64 support
- feat: adds 'down' command with Docker engine support.
- chore: bumps fallback version.
- docs: updates pull documentation
- refactor: simplifies config fallback.
- fix: restores default engine type of Docker.
- Adds engine pull command.
- Catches binary download errors more reliably.
- Improves deduplication logging.
- Enables customisation of deduplication hash.
- Removes unused block until stopped function.
- Removes unused notify on stop function.
- Updates doctor output with engine type instructions.
- Replaces running containers with identical port and config directory.
- Improves Docker doctor output.
- Improves up scaffold flag description.
- Switches to better test assertions.
- Adds doctor command.
- Adds documentation about different mock engines.
- Improves error message for invalid engine type.
- Enables automatic scaffolding of missing configuration.
- Use release token.
- Adds CI workflow.
- Adds Java binary file extension on Windows.
- Allows CLI configuration file to be specified.
- Start now waits for healthy engine.
- Sets environment variable prefix.
- Bumps fallback version.
- Enables engine version to be set using configuration file.
- Improves test coverage for engines, scaffold and version commands.
- Enables engine type to be set using configuration file.
- Moves event dispatch to separate package.
- Enables auto-restart in JVM engine.
- Adds JVM engine implementation.
- Adds JavaScript script engine argument shorthand.
- Makes script path generation absolute.
- Separates resource generation from mock config generation.
- Simplifies scaffold file path generation.
- Abstracts engine implementation behind interface.
- Adds shorthand for overwrite and script engine args.
- Adds license headers.
- Automatically restart if config directory contents change.
- Updates documentation.
- Generates Imposter resources based on OpenAPI specification.
- Moves engine start options to struct and allows log level to be customised.
- Moves engine management functions to separate package.
- Adds version subcommand.
- Adds scaffold command.
- Ensures config directory path is absolute.
- Allows image download to be forced.
- Bumps Go to 1.17.
- Adds Homebrew instructions.
- Adds Homebrew tap configuration.
- Improves documentation.
- build(deps): bump golang.org/x/net
- Only pulls image if not already present.
- Removes mock engine container on stop.
- Renames 'mock' subcommand to 'up'.
- Passes through log level to mock engine.
- Sets default log level to info.
- Initial commit.