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