All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- chore(deps): bump org.apache.maven.plugins:maven-jar-plugin
- test(vertxweb): improves coverage for kebab-case path param matching.
- test: adds test for kebab-case path params.
- fix(vertxweb): supports kebab-case path params.
- fix(soap): parse message part elements with anonymous inner types.
- fix(soap): applies message part filter from binding operation.
- feat(soap): improves support for element parts in composite messages.
- feat(soap): supports more combinations of binding style and messages.
- feat: support XML attributes in SOAP request body XPath
- refactor(soap): matches type message parts on operation name.
- refactor(soap): optimises document type lookup.
- refactor(soap): reuses parser schema type system instead of recompiling all schemas.
- refactor(soap): reuses schema type system and entity resolver for same WSDL.
- refactor(soap): simplifies synthetic schema generation.
- fix(soap): improves example generation logging.
- fix(soap): matches message element types by qualified name.
- fix(soap): sets namespace of RPC root response element from WSDL target namespace.
- feat(soap): SOAP response body uses typed message part names.
- feat(soap): adds support for RPC style bindings.
- feat(soap): adds support for messages with type attribute.
- feat(soap): working support for WSDL 1.1 messages specifying type not element.
- chore(deps): bump org.apache.maven.plugins:maven-jar-plugin
- docs: adds single-file WSDL 1 and SOAP 1.1 example.
- fix: restores previous config file location logging behaviour.
- docs: documents EntityResolver input stream lifecycle expectations.
- refactor(soap): reuses EntityResolver for the same WSDL file.
- refactor: uses instance-scoped EntityResolver for WSDL parsing and SOAP example generation.
- test: removes unneeded fork configuration.
- test: updates test file comment.
- fix: in SOAP plugin, support WSDL with XML schema include
- ci: includes imposter-all distro in integration tests.
- ci: integration tests verify scripted examples.
- docs: adds JavaScript example for HBase plugin.
- refactor: moves HBase to external plugin.
- test: improves coverage of form params matchers.
- test: improves coverage of path params matchers.
- test: improves coverage of query params matchers.
- test: improves coverage of request header matchers.
- build: includes js-graal plugin in all distro.
- feat: adds advanced path params, query params and form params matchers.
- feat: adds advanced request header matchers.
- feat: resource matchers and security conditions support all match operators.
- chore(deps): bump actions/setup-python from 5.0.0 to 5.1.0
- chore(deps): bump com.fasterxml.jackson.core:jackson-databind
- chore(deps): bump org.apache.maven.plugins:maven-compiler-plugin
- docs: aligns steps documentation with implementation.
- docs: clarifies behaviour of 'exists' operators.
- docs: clarifies steps introduction.
- docs: describes all supported operators for security conditions.
- docs: describes long form and operators for request matching.
- docs: documents Steps API.
- docs: improves step examples.
- refactor: generalises request match operators.
- refactor: moves conditional name-value pair parsing to companion.
- refactor: moves request pair matching to use common matcher logic.
- fix: upgrade com.fasterxml.jackson.core:jackson-databind from 2.16.1 to 2.16.2
- chore(deps): bumps base image to 11.0.22_7-jre-jammy.
- chore(deps): bumps CLI to 0.38.0.
- ci: quieten Gradle output.
- docs: adds GraalVM examples and instructions.
- docs: adds percentage based error response example.
- docs: improves AWS lambda bundle instructions.
- docs: improves CLI installation steps.
- docs: improves latency simulation example.
- docs: improves plugin install instructions.
- docs: lists version requirements in es6 documentation.
- docs: removes unneeded boilerplate from examples.
- docs: updates plugins.
- refactor(openapi): switches fallback response to method ref.
- refactor: makes behaviour handlers return a future.
- refactor: makes route handlers asynchronous.
- refactor: quietens disabled metrics logging.
- refactor: removes deprecated passthroughRoute function.
- refactor: renames ResourceService to HandlerService.
- refactor: simplifies handler wrapping.
- refactor: switches empty fallback response to method ref.
- refactor: unifies completion logging and setting exchange phase.
- fix(awslambda): includes SOAP plugin in builder plugin list.
- fix(awslambda): sets status code to 500 if unset when an exceptional failure occurs.
- fix: don't autocomplete future blocks for long-running tasks.
- fix: don't autocomplete future when forwarding upstream.
- fix: don't autocomplete futures for GraphQL queries.
- fix: don't block the event loop in Vert.x Web handlers.
- fix: moves completion log to after handler completion.
- feat: adds support for archive plugin files.
- feat: upgrades Graal to 22.3.5.
- build: switches graal plugin to archive format.
- docs: fixes example methods.
- feat: adds random.any() expression function.
- chore(deps): bump actions/github-script from 6 to 7
- chore(deps): bump actions/setup-java from 3 to 4
- chore(deps): bump actions/setup-python from 4.7.1 to 5.0.0
- chore(deps): bump org.apache.maven.plugins:maven-compiler-plugin
- chore(deps): bump org.apache.maven.plugins:maven-project-info-reports-plugin
- chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin
- fix: upgrade com.fasterxml.jackson.core:jackson-databind from 2.16.0 to 2.16.1
- ci: adds js-graal plugin to release binaries.
- docs: adds links to bundled config steps from config description.
- docs: adds usage example for IMPOSTER_OPENAPI_SPEC_PATH_PREFIX.
- docs: clarifies included plugins in imposter-core Docker image.
- docs: improves fake data section title.
- docs: improves nav.
- docs: links to recursive discovery from env vars table.
- docs: simplifies deployment patterns.
- docs: splits out and expands bundle documentation.
- test: adds local docs test script.
- build: fix shadow JAR publication for modules with Maven publications.
- ci: switch to prebuilt since binary.
- refactor: replaces openapi and rest distributions with core distribution.
- build: fix shadow JAR publication for mock-hbase module.
- build: fix shadow JAR publication for fake-data module.
- feat: adds system expression evaluator to config evaluator list.
- docs: describes system placeholders.
- docs: improves bundled Docker instructions.
- chore(deps): bump com.fasterxml.jackson.core:jackson-databind
- chore(deps): bump org.apache.maven.plugins:maven-surefire-plugin
- ci: splits out static site build step.
- docs: adds examples link.
- docs: adds mermaid plugin to static site generator.
- docs: improves description of Docker bundle steps.
- docs: improves description of deployment patterns and bundle steps.
- docs: switches config store C4 node to DB.
- test: adds dockerfile to preview docs.
- fix: use relative link to configuration documentation in CORS section.
- feat(openapi): allows the specification path prefix to be set.
- chore(deps): bump com.amazonaws:aws-java-sdk-bom
- chore(deps): bump com.amazonaws:aws-lambda-java-events
- chore(deps): bump org.apache.maven.plugins:maven-clean-plugin
- chore(deps): bumps shadow plugin to 7.1.2.
- ci: makes test check name unique.
- docs(openapi): improves instructions for OpenAPI responses.
- docs: adds Docker healthcheck example.
- refactor(openapi): moves plugin-specific env var config to Settings object.
- refactor: uses OpenApiPluginImpl in embedded builder instead of hard-coded paths.
- test: bumps Jakarta dep and adds jaxrs runtime dep.
- test: uses RestAssured get method instead of Kotlin shorthand.
- spike: adds Java 17 LTS CI build.
- chore(deps): bump com.amazonaws:aws-lambda-java-core from 1.2.2 to 1.2.3
- chore(deps): bump io.rest-assured:rest-assured from 5.3.0 to 5.3.2
- chore(deps): bumps CLI to v0.34.1.
- fix: updates CLI release URL.
- chore(deps): bumps CLI to v0.33.0.
- chore(deps): bump actions/setup-python from 4.7.0 to 4.7.1
- chore(deps): bump com.fasterxml.jackson.core:jackson-databind
- chore(deps): bump io.github.classgraph:classgraph
- chore(deps): bump version_vertx from 4.4.4 to 4.4.5
- docs: improves description of default and example values for IMPOSTER_CONFIG_DIR.
- fix: examples/junit-sample/pom.xml to reduce vulnerabilities
- chore(deps): bump actions/checkout from 3 to 4
- chore(deps): bump docker/setup-qemu-action from 2 to 3
- chore(deps): bumps coroutines to 1.7.3.
- chore(deps): bumps kotlin to 1.9.10.
- docs: fixes configDir flag name for JAR mode.
- refactor: switches response file serving to use Vert.x filesystem.
- test(lambda): improves coverage for openapi spec and examples.
- fix(lambda): resolves static index pages.
- fix: uses critical section for file cache I/O.
- docs: updates roadmap.
- fix: path parameter extraction shouldn't throw NPE for regex routes.
- feat(lambda): falls back to default Lambda bundle config dir if no config dir set.
- feat: supports IMPOSTER_CONFIG_DIR environment variable in all distributions.
- docs: improves configuration location instructions.
- refactor: deprecates IMPOSTER_S3_CONFIG_URL env var in favour of IMPOSTER_CONFIG_DIR.
- feat: precompiles inline script steps.
- feat: shortens script step file property name.
- docs: adds example Dockerfile and Compose config.
- docs: adds instructions for custom Docker images.
- docs: better signposts healthcheck endpoint.
- refactor: caches inline scripts.
- refactor: caches processing steps for all resources.
- refactor: moves resource config into step context.
- refactor: renames exchange finalisation logic.
- refactor: replaces custom step deserialisation with Jackson.
- refactor: uses dedicated remote expression evaluator.
- test: improves coverage for inline script steps.
- feat: adds support for inline script steps.
- chore(deps): bump version_groovy from 4.0.12 to 4.0.13
- chore(deps): bump version_junit_jupiter from 5.9.3 to 5.10.0
- docs: improves setup instructions for fake-data plugin.
- refactor: adds plumbing for inline script steps.
- refactor: renames nashorn-standalone module to nashorn.
- fix: adds option to improve robustness when encountering configuration errors.
- docs: describes interaction between OpenAPI server path and basePath.
- fix: improves logging of plugin config.
- refactor: adds description to match result.
- fix: improves logging of request body config.
- chore(deps): bump version_vertx from 4.4.1 to 4.4.4
- fix: body matching score should include weight of allOf/anyOf clauses.
- fix: don't propagate null through request body match branches
- fix: improves resource matching logging.
- fix: operator matching should use equality check not identity.
- feat: adds system template placeholders.
- build: removes separate Nashorn plugin.
- chore(deps): bumps swagger-models to 2.2.14, swagger-parser to 2.1.16 and swagger-request-validator to 2.35.2.
- fix(openapi): explicitly set parseOptions.resolveFully
- feat: adds request.path and request.uri template placeholders.
- docs: organises table of contents.
- feat: adds remote processing step.
- feat: adds response.statusCode expression.
- feat: adds script processing step.
- feat: adds syntactic sugar for scripted failure simulation.
- feat: allows remote URL to be templated.
- feat: passes through form params in remote step.
- feat: passes through remote query params.
- feat: passes through remote request headers and templates body content.
- feat: supports relative URLs in remote steps.
- chore(deps): bump actions/setup-python from 4.6.1 to 4.7.0
- docs: describes failure simulation effects and improves examples.
- refactor: adds syntactic sugar for remote context steps.
- refactor: narrows interface for step processor.
- refactor: removes unneeded step allocations.
- refactor: supports subset of capture config in remote steps.
- refactor: tidies remote request builder.
- fix: improves reliability of static content route detection.
- fix(openapi): tolerate absent responses block in operation.
- fix: don't treat wildcard routes as unique.
- chore: bumps Kotlin to 1.8.22.
- test: work-around for Mockito generic bounds issue with Kotlin 1.9.
- fix: trims entries when splitting comma-delimited config.
- feat: adds support for AWS temporary credentials via STS.
- docs: fixes transposed rows in plugins documentation.
- fix: [#430] swagger-parser update to v2.1.15 in line with jackson v2.15.2 update
- feat: security request header regex operator
- feat: supports Matches and NotMatches operators in security conditions.
- chore(deps): bump version_jackson from 2.14.2 to 2.15.2
- fix: don't set basepath for root path if empty or no response config.
- chore(deps): bump version_groovy from 4.0.8 to 4.0.12
- docs: describes body match operators.
- fix: workaround for 'getCallerClass' warning due to log4j repackaging.
- feat: adds basePath property to OpenAPI, REST and SOAP configuration.
- feat: reads config file from disk once.
- chore(deps): bump actions/setup-python from 4.6.0 to 4.6.1
- chore(deps): bump io.github.classgraph:classgraph
- chore(deps): bump maven-project-info-reports-plugin
- chore(deps): bump version_junit_jupiter from 5.9.2 to 5.9.3
- docs: describes configuration discovery and basePath.
- fix: do not require a root response configuration when applying base path.
- fix: don't initialise Redis client until first use.
- fix: improves error message when plugin is missing from configuration.
- fix: Revert "fix: sets Vert.x base cache directory on Windows."
- feat(soap): improves error detection for missing WSDL elements/attributes.
- test(lambda): adds test for duplicate SOAP endpoints.
- test(lambda): improves coverage for using SOAP plugin with Lambda adapter.
- test(lambda): removes dependency on mock S3 for most tests.
- fix(lambda): removes lazy delegates from single use properties.
- fix: don't initialise DynamoDB client until first use.
- fix: duplicate HTTP routes should replace existing ones.
- build: adds Docker ecosystem to Dependabot config.
- fix: sets Vert.x base cache directory on Windows.
- feat: bundles groovy-xml dependency.
- docs: adds form params example.
- docs: describes how to retrieve the configuration directory in a script.
- test: improves coverage of HTTP request matchers.
- build: bumps since to v0.13.0.
- build: ignores junit-sample changes from changelog.
- build: moves since hooks to config file.
- docs: adds example showing how to get the directory containing the config in a script.
- docs: describes how to add a JAR to Groovy classpath.
- docs: describes how to pin version.
- docs: describes how to use a local JAR with the CLI.
- docs: describes more expression types.
- docs: improves usage instructions.
- docs: moves Groovy classpath guidance to Groovy tips section.
- refactor: renames internal config dir variable.
- docs: fixes paths to example projects.
- docs: improves fake data examples.
- docs: improves fake data plugin description.
- fix: removes ambiguous 'name' fake property replacement.
- docs: describes fake data configuration.
- fix: adds fake-data plugin to 'all' distro.
- feat: adds expression support for fake data generator.
- feat: automatically registers plugins that are lifecycle listeners.
- feat(openapi): support schema 'types' as well as 'type' for OAS 3.1 compatibility.
- feat: adds Datafaker plugin.
- ci: adds workflow to test example project.
- docs: fixes JVM embedded dependencies.
- refactor(openapi): more idiomatic example building.
- feat: inherits Groovy scripting classloader from plugin classloader.
- build: adds since release config.
- chore(deps): bump actions/setup-python from 4.5.0 to 4.6.0 (#376)
- chore(deps): bump maven-project-info-reports-plugin (#374)
- ci: bumps version of since.
- docs(examples): adds single WSDL file example.
- docs: improves instructions for REST plugin.
- docs: splits Lambda deployment approaches into separate files.
- docs(lambda): documents support for ARM64 architecture.
- docs(lambda): adds troubleshooting step for anonymous URL access.
- fix: lowercases Lambda request header keys.
- feat: adds test for OpenAPI 3.1 specification containing JWT contentMediaType.
- fix(openapi): improves null safety of schema example generator via idiomatic Kotlin.
- docs(lambda): changes references from JAR file to ZIP.
- refactor(openapi): inlines trivial default value providers.
- feat: allows default YAML code point limit to be overridden using
IMPOSTER_YAML_CODE_POINT_LIMIT
environment variable.
- fix: returns engine version from Lambda status endpoint.
- fix: prevents resource match if all results have no config.
- feat: adds meaningful toString() functions to resources.
- fix: sets resource match result weight to zero if not matched.
- fix(soap): includes parent namespace declarations when parsing inline schemas. (#357)
- fix: improves handling of requests for nonexistent files.
- feat: Adds CORS support. (#366)
- feat: adds static directory response type.
- fix(lambda): don't send duplicate 'not found' response if no route matched.
- fix: don't call response.end() twice if sending string body.
- refactor: uses HTTP route to determine trailing wildcard matches.
- feat: allows XPath XML namespaces to be configured at the system level.
- feat: allows matching against one or more body matchers.
- feat: adds eval resource matching to SOAP plugin.
- feat: filter resource matches using score.
- fix: improves trapping of configuration file parsing exceptions.
- fix: corrects plugin path logging on unsupported plugin.
- refactor: separates script DSL from response behaviour.
- chore(deps): bump version_jackson from 2.14.1 to 2.14.2 (#346)
- chore(deps): bump version_vertx from 4.3.7 to 4.4.1 (#347)
- ci: sets release to draft until all assets uploaded.
- ci: switches to GITHUB_OUTPUT to set output parameter.
- feat: adds inline scripted resource matcher.
- fix(lambda): URL decodes form parameters.
- chore: bumps Kotlin to 1.8.10.
- chore: bumps Gradle to 7.6.1.
- chore(deps): bump com.amazonaws:aws-java-sdk-core (#344)
- feat: supports placeholders in response headers.
- feat: supports reading request form attributes.
- chore(deps): bump com.apurebase:kgraphql from 0.17.14 to 0.19.0 (#320)
- fix: appends request path to upstream path.
- fix: SOAP HTTP binding should use Envelope by default.
- chore: bumps CLI to 0.28.0.
- feat: supports trailing wildcards in resource paths.
- feat: allows requests to be proxied to an upstream server.
- feat: improves logging for request body matching.
- docs: adds instructions for Lambda deployment using CLI.
- fix: removes unnecessary non-null assertion.
- chore: bumps CLI to 0.27.1.
- chore(deps): bump actions/checkout from 2 to 3 (#313)
- chore(deps): bump com.amazonaws:aws-java-sdk-core (#317)
- ci: pins changelog parser version.
- ci: switches to changelog-parser.
- chore(deps): bump com.amazonaws:aws-java-sdk-core from 1.12.325 to 1.12.417
- feat: adds SOAP plugin to Lambda default plugins.
- test: improves coverage for response service, response file transmission, failure simulation and performance simulation.
- docs: adds CORS example.
- build: fixes target compatibility for nashorn plugin.
- build(deps): bump com.atlassian.oai:swagger-request-validator-core from 2.30.0 to 2.33.1 (#299)
- build(deps): bump swagger-parser to 2.1.9 (#299)
- feat: allows templates to access to stores via
stores.
prefix. - docs: adds end to end store/template example.
- docs: describes random placeholders.
- refactor: removes commons-io dependency.
- refactor: moves template logic to engine.
- test: defaults launch mode to java in dev convenience script.
- feat: includes SOAP plugin in core distribution and AWS Lambda distribution.
- feat(wiremock): adds support for fixed and uniform delays.
- build(deps): bump io.rest-assured:rest-assured from 5.2.0 to 5.3.0 (#298)
- build(deps): bump jaxen from 1.2.0 to 2.0.0 (#271)
- build(deps): bump version_groovy from 4.0.7 to 4.0.8 (#297)
- ci: generates changelog on release.
- feat: adds support for WireMock format mappings and WireMock response templates.
- feat: adds null-safe function for setting response headers.
- build(deps): bump version_vertx from 4.3.6 to 4.3.7 (#290)
- refactor: allows REST plugin to be extended.
- build(deps): bumps Kotlin to 1.7.22.
- build(deps): bump force-rest-api from 0.0.44 to 0.0.45 (#283)
- feat: adds failure simulation.
- feat: supports multiple request body matchers.
- feat: allows matching body based on existence of node at JsonPath/XPath expression.
- feat: adds string contains check and negative check for request body matching.
- feat: adds regex body matcher.
- feat: adds negative contains body matcher.
- feat: adds syntax to normalise XPath expressions.
- feat: adds random value expression evaluator.
- fix: improves error trapping in expression evaluator.
- refactor: moves performance delay to idiomatic Kotlin random generator.
- chore: bumps hamcrest to 2.2.
- feat: adds XPath query support to expressions.
- feat(lambda): loads additional plugins and modules via environment variables.
- test: improves coverage for XPath utils.
- feat: allows multiple config resolvers to handle a single path.
- docs: adds example for SOAP request body matching with XPath.
- docs: improves template store placeholder example.
- fix: improves error message when plugin cannot be found.
- fix(soap): quietens logging for XSD element resolution.
- fix: removes environment evaluator from default list.
- build(deps): bump version_groovy from 4.0.6 to 4.0.7 (#276)
- chore: bumps CLI to 0.24.1.
- fix: SOAP request body matching should work for XPath expressions.
- docs: adds description for template expressions.
- feat: allows expressions to be used in response templates.
- feat: adds support for expression fallback values.
- feat: removes commons-text dependency in favour of expression util.
- feat: only rebuffers template response if changed.
- refactor: simplifies request scoped store handling in templates.
- build(deps): bump aws-java-sdk-bom from 1.12.357 to 1.12.372 (#274)
- build(deps): bump testcontainers from 1.17.3 to 1.17.6 (#266)
- feat: adds support for SOAP HTTP binding transport type.
- feat: adds support for using SOAP 1.2 binding with WSDL 1.
- test: splits parser tests to support more combinations of WSDL1 and SOAP 1.1/1.2.
- build(deps): bump version_jackson from 2.13.4 to 2.14.1 (#261)
- build(deps): bump version_vertx from 4.3.5 to 4.3.6 (#267)
- build(deps): bump xmlbeans from 5.1.0 to 5.1.1 (#260)
- feat(soap): adds support for multiple schemas within a WSDL file.
- fix(soap): use message attribute to locate message element in WSDL1 parser.
- fix(soap): operation style should fall back to binding style in WSDL1 parser.
- feat: changed OpenAPI Docker image working directory to
/opt/imposter/config
so$ref
paths load correctly (thanks, Raymond Chin)
- build(deps): bump actions/setup-python from 4.2.0 to 4.3.0 (#228)
- build(deps): bump aws-java-sdk-core from 1.12.205 to 1.12.325 (#218,#239)
- build(deps): bump byte-buddy-agent from 1.12.10 to 1.12.17 (#217)
- build(deps): bump byte-buddy-dep from 1.12.7 to 1.12.19
- build(deps): bump classgraph from 4.8.54 to 4.8.149 (#229)
- build(deps): bump localstack from 1.17.3 to 1.17.6
- build(deps): bump micrometer-registry-prometheus from 1.9.2 to 1.9.4 (#219)
- build(deps): bump mockito-core from 3.10.0 to 4.9.0
- build(deps): bump redisson from 3.17.0 to 3.17.7 (#242)
- build(deps): bump rest-assured from 5.1.1 to 5.2.0 (#227)
- build(deps): bump s3mock-testcontainers from 2.4.10 to 2.8.0 (#223)
- build(deps): bump swagger-request-validator-core from 2.27.2 to 2.30.0 (#200)
- build(deps): bump version_graal from 22.2.0 to 22.2.0.1 (#232)
- build(deps): bump version_groovy from 4.0.4 to 4.0.6
- build(deps): bump version_jackson from 2.13.3 to 2.13.4 (#226)
- build(deps): bump version_vertx from 4.3.2 to 4.3.4 (#225)
- build(deps): jackson-databind to 2.13.4.2.
- refactor: fixes some deprecated method calls.
- test: adds recursive config scan option to dev convenience script.
- build(deps): bump version_commons_text from 1.9 to 1.10.0.
- refactor: renames
withData
script function towithContent
. Retains deprecated function name for backwards compatibility.
- fix(rest): skips adding route for root resource if response configuration is blank.
- refactor: renames
staticData
tocontent
in response config. Also adds an alias to ensure backwards compatibility. - refactor: renames
staticFile
tofile
in response config. Also adds an alias to ensure backwards compatibility.
- feat: enables script file configuration inheritance.
- feat: enables request and response body to be included in structured log entries.
- docs: describes proxy mode and updates getting started.
- docs: describes scaffolding and updates getting started.
- chore: bumps CLI to 0.21.0.
- build(deps): bump actions/setup-python from 4.1.0 to 4.2.0 (#198)
- build(deps): bump maven-project-info-reports-plugin (#203)
- build(deps): bumps CLI to 0.16.1.
- docs: improves build, capture and docker pages.
- build(deps): bumps CLI to 0.16.0.
- build(deps): bumps JRE to 11.0.16+8.
- build(deps): bumps Kotlin to 1.7.10.
- build(deps): bump swagger-parser from 2.0.32 to 2.1.1 (#183)
- build(deps): bump aws-java-sdk-bom from 1.12.205 to 1.12.272 (#187)
- build(deps): bump version_jackson from 2.13.2 to 2.13.3 (#188)
- build(deps): bump version_graal from 22.1.0.1 to 22.2.0 (#179)
- build(deps): bump testcontainers from 1.15.3 to 1.17.3 (#180)
- build(deps): bump localstack from 1.17.2 to 1.17.3 (#182)
- build(deps): bump version_log4j from 2.17.2 to 2.18.0 (#178)
- build(deps): bump xmlbeans from 5.0.3 to 5.1.0 (#181)
- build(deps): bump micrometer-registry-prometheus from 1.6.7 to 1.9.2 (#169)
- build(deps): bump nashorn-core from 15.3 to 15.4 (#175)
- build(deps): bump version_coroutines from 1.6.2 to 1.6.4 (#176)
- build: removes unused jcenter repo.
- build: moves restassured dependency and associated constraints to module.
- chore: bumps groovy to 4.0.4.
- chore: bumps restassured to 5.1.1.
- chore: bumps Vert.x to 4.3.2.
- build: bumps Maven example project dependencies.
- docs: improves getting started.
- build: removes package lock files from example projects.
- build(deps): bump localstack from 1.16.3 to 1.17.2 (#153)
- build(deps): bump byte-buddy-agent from 1.12.7 to 1.12.10 #152
- build(deps): bump version_graal from 22.0.0.2 to 22.1.0.1 #150
- feat: adds handler for API Gateway V2 and Function URL events.
- docs: adds serverless example and instructions for using Lambda Function URL.
- docs(docker): improves Docker documentation example.
- feat(openapi): allows spec and UI to be disabled.
- feat(openapi,rest): adds friendly 'not found' response for clients accepting HTML.
- feat: allows META-INF scan to be enabled in Lambda.
- feat: improves request logging.
- test: sets region in DynamoDB test.
- test: bumps S3Mock version to gain aarch64 support.
- fix(awslambda): handle base64 encoded request body.
- fix(openapi): removes server base path from serving prefix.
- fix(openapi): allows adding server entry with path only.
- fix(openapi): separates serving prefix from specification path prefix.
- fix: resource matching should require all config entries to be present in request.
- fix: uses plugin classloader for meta-detector plugin classpath scan.
- BREAKING CHANGE: drops support for Java 8. Imposter no longer supports Java 8, due to the complexity of maintaining multiple codepaths depending on target JVMs. If Java 8 support is required, Imposter 2.x is still available, but may no longer be maintained.
- BREAKING CHANGE: removes deprecated script context properties. As signalled in version 2.x, deprecated script context properties have been removed. Removal of legacy
context.params
map - usecontext.request.queryParams
instead. Removal of legacycontext.request.params
map - usecontext.request.queryParams
instead. Removal of legacycontext.uri
map - usecontext.request.uri
instead. - BREAKING CHANGE: makes request header keys lowercase by default. Effectively sets IMPOSTER_NORMALISE_HEADER_KEYS=true.
- BREAKING CHANGE: uses Query instead of Scan operation in DynamoDB store. Removes IMPOSTER_DYNAMODB_SCAN_TO_LIST_ALL and always uses Query operation to list items.
- BREAKING CHANGE: switches AWS Lambda distro to ZIP file.
- feat: removes UseCGroupMemoryLimitForHeap from container environment. Container aware memory allocation is enabled by default on Java 11.
- refactor: moves HTTP core into separate module.
- refactor: removes unneeded classgraph dep from core config.
- refactor(awslambda): moves inmem dependency up into Lambda adapter.
- refactor(awslambda): moves some logging dependencies to runtime scope.
- refactor: moves dynamic plugin discovery to separate module.
- refactor: improves S3 config resolver module name.
- refactor: moves config resolver properties to separate files.
- refactor: removes use of internal deprecated request accessors.
- build(deps): bump version_graal from 21.2.0 to 22.0.0.2 (#86)
- chore: bumps Groovy to 3.0.10.
- ci: always build dev docker image and run integration tests.
- ci: always publish test results, even on prior step failure.
- fix(awslambda): handle base64 encoded request body.
- fix(openapi): removes server base path from serving prefix.
- fix(openapi): allows adding server entry with path only.
- feat: allows META-INF scan to be enabled in Lambda.
- fix(openapi): separates serving prefix from specification path prefix.
- ci: reintroduces publishing for nashorn-standalone plugin.
- fix: resource matching should require all config entries to be present in request.
- fix: uses plugin classloader for meta-detector plugin classpath scan.
- feat: allows plugin arguments to be set using environment variables.
- feat: adds engine lifecycle hook for startup errors.
- feat: allows Lambda plugin discovery strategy to be set.
- refactor: moves runtime context hook to script lifecycle.
- build(deps): bump aws-java-sdk-core from 1.12.201 to 1.12.205 (#124)
- build(deps): bump aws-java-sdk-bom from 1.12.191 to 1.12.205 (#126)
- fix: sets version in Docker image for CLI consumption.
- ci: publishes nashorn standalone maven artifacts.
- docs: adds test logging configuration to JUnit sample.
- docs: adds example environment variable config for JUnit sample on Java 8.
- build: upgrades to Kotlin 1.6.
- build: upgrades to Vert.x 4. (#89)
- build(deps): bump aws-lambda-java-events from 3.9.0 to 3.11.0 (#96)
- build(deps): bump aws-lambda-java-log4j2 from 1.5.0 to 1.5.1 (#102) (#112)
- build(deps): bump aws-java-sdk-core from 1.11.656 to 1.12.201 (#119)
- build(deps): bump commons-io from 2.9.0 to 2.11.0 (#111)
- build(deps): bump guice from 4.2.3 to 5.1.0 (#99)
- build(deps): bump jaxb-api from 2.3.0 to 2.3.1 (#95)
- build(deps): bump redisson from 3.16.0 to 3.17.0 (#108)
- build(deps): bump swagger-parser from 2.0.25 to 2.0.32 (#98)
- build(deps): bump swagger-request-validator-core from 2.27.1 to 2.27.2 (#120)
- build(deps): bump version_coroutines from 1.6.0 to 1.6.1 (#105)
- chore: bumps Graal to 21.3.1.
- fix: prefer routes with exact matches over those with path placeholders.
- build: builds both arm64 and amd64 Docker images.
- fix: strips surrounding quotes from when determining plugin class.
- chore: bumps JRE to 8u322.
- chore: bumps log4j2 to 2.17.2.
- chore: bumps vert.x to 3.9.13.
- chore: bumps CLI to 0.12.6.
- chore: bumps jackson-databind to 2.13.2.2.
- chore: bumps JUnit to 2.13.1.
- fix: rewrites spec paths with base path in OpenAPI plugin.
- refactor: replaces Vert.x executeBlocking with coroutines at boot. This should reduce the logging noise on slow startup.
- chore: bumps CLI to 0.12.3.
- chore: bumps Jackson to 2.13.2.
- docs: switches CLI plugin install guidance to use 'save default' option.
- docs: improves formatting of .imposterignore example.
- feat: improves dynamic Groovy script loading.
- feat: adds graphql query support for stores.
- feat: adds support for '.imposterignore' file when scanning for config files.
- docs: adds future JVM version change to roadmap.
- docs: adds details about using path to set a prefix in the OpenAPI mock.
- feat: allows store queries by key prefix.
- feat: allows use of query operation in place of scan in DynamoDB store driver.
- feat: adds support for JSON parsing in Groovy scripts.
- refactor: simplifies plugin discovery and provider logic.
- feat: allows JsonPath queries in expressions.
- feat: allows pathless SOAP operation matches.
- feat: adds support for XPath request body capture.
- feat: adds XPath resource matching.
- feat: adds support for multiple resource configurations with the same path/method in REST plugin.
- refactor: moves initialisation logic from verticle to builder and engine.
- refactor: optimises JsonPath and XPath queries.
- fix: improves resource matching with multiple rules for the same path.
- fix: caches request and response wrappers in Vert.x adapter.
- fix: moves deferred capture and store cleanup to after response transmission to support delayed responses.
- feat: adds DynamoDB and Redis store drivers to 'all' distribution.
- fix: improves handling of nonexistent response files.
- fix: supports session token in DynamoDB store driver.
- fix: uses dedicated XSD parser for WSDL schemas.
- feat: adds SOAP mocks plugin. This is available as a plugin and in the 'all' distro. See the user documentation for plugin reference and examples.
- feat: allows resource matching without specifying an HTTP method.
- feat: allows capture of store items to be deferred to after request processing has completed.
- feat: adds support for capture of response headers and body.
- docs: improves expression description and examples.
- feat: response file cache now applies to all files, not just templates.
- docs: moves examples to top level directory.
- chore: bumps sample serverless dependency to 2.72.2.
- feat: allows store name to be set using a capture config.
- feat: allows use of expressions for store name.
- feat: allows constant values for key name.
- refactor: moves mock implementations to dedicated subdirectory.
- refactor: replaces HBase and SFDC distributions with plugins.
- chore: bumps CLI to 0.10.1.
- feat: adds map data type support to DynamoDB store.
- refactor: switches Lambda adapter to static plugin discovery to improve boot time.
- refactor: short-circuits in memory store creation if unmodified.
- refactor: defers in memory store instantiation until first use.
- fix: non-existent stores no longer throw an exception.
- feat: adds expressions for capture keys and values.
- refactor: splits embedded distro into submodules.
- refactor: adds Java version guard to standalone script service.
- fix: improves accuracy of Nashorn error line numbers.
- fix: improves error trapping in Vert.x Web error handler.
- feat: allows envfile resolution to be disabled.
- feat: adds envfile resolution relative to configuration files.
- feat: allows OpenAPI path prefix to be configured.
- feat: adds support for envfiles.
- fix: stops S3 config downloader from attempting to download directories.
- chore: bumps sample project dependency 'follow-redirects' to 1.14.7.
- feat: supports recursive configuration file discovery.
- feat: adds option to cache remote OpenAPI specifications on local filesystem.
- fix: ensures Redis and DynamoDB stores always indicate they exist.
- ci: removes Graal plugin release asset.
- chore: bumps CLI to 0.9.4.
- chore: bumps vert.x to 3.9.12.
- refactor: uses Nashorn APIs to instantiate script engine to disambiguate implementation.
- feat: adds standalone Nashorn JavaScript implementation.
- feat: allows Graal.js to be used as JavaScript implementation using plugin system.
- feat: automatically detects store driver plugins on the classpath.
- build: adds Java 11 build.
- refactor: removes support for legacy plugin package.
- chore: bumps CLI to 0.9.1.
- feat: allows plugin classloader strategy to be configured.
- feat: improves supported data types for DynamoDB store.
- feat: adds support for TTL in DynamoDB store.
- feat: denies recursive templating of untrusted response data by default.
- feat: increases speed of Groovy scripts by two orders of magnitude.
- feat: functionally aligns Graal with Nashorn for JavaScript engine.
- feat: introduces 'core' distribution supporting OpenAPI and REST plugins.
- build: replaces server-bundled store implementations with standalone plugins.
- refactor: routes all plugin-like classloading through dedicated ClassLoader.
- chore: bumps CLI to 0.8.2.
- feat: switches Lambda adapter logging to AWS Lambda appender.
- feat: improves file not found logging.
- fix: skips OpenAPI plugin setup if no compatible configuration files are provided.
- feat: sets explicit uid/gid for container user.
- chore: bumps log4j2 to 2.17.1.
- refactor: removes log4j S3 appender from lambda adapter.
- chore: bumps Groovy to 2.5.15.
- chore: bumps Guice to 4.2.3.
- refactor: removes unneeded Gson dependency from Lambda adapter.
- chore: bumps okhttp3 to 4.9.3.
- build: uses managed dependency versions in lambda adapter.
- feat: uses application specific user in Docker image.
- feat: hardens container image to remove alpine distro bin.
- chore: bumps CLI to 0.8.0.
- fix: bumps log4j2 to 2.17.0 to mitigate CVE-2021-45105.
- refactor: switches boot to direct invocation of unpacked wrapper script.
- chore: bumps CLI version to 0.7.7.
- fix: resolves placeholders when preparsing configuration files.
- fix: version should be reported by status endpoint.
- feat: prints summary on underlying adapter 404 responses.
- feat: allows individual capture configuration to be enabled/disabled.
- feat: adds structured logging with durations, request and response properties.
- fix: bumps log4j2 to 2.16.0 to mitigate CVE-2021-45046.
- feat: switches boot to CLI unpacked method.
- build: improves JAR naming for non-distribution archives.
- feat: adds DynamoDB store implementation.
- feat: adds DynamoDB store support to Lambda distro.
- feat: implements store-wide deletion in Redis and DynamoDB stores.
- fix: uses host header if available for Lambda adapter base URL.
- fix: captures Lambda path parameters explicitly instead of relying on request event.
- fix: disable unneeded file upload directory and interception in Vert.x Web.
- chore: bumps JRE base image to 8u312-b07.
- fix: bumps log4j2 to 2.15.0 to mitigate CVE-2021-44228.
- feat: adds multiple plugin support to embedded distro.
- feat: allows advanced customisation of engine settings in embedded distro.
- feat: adds Lambda adapter and distro.
- docs: adds Lambda example.
- refactor: moves vertx-web adapter implementation and dependency into separate module.
- refactor: moves api, config, engine and S3 config resolver modules under core.
- fix: correctly serialises security schemes in OpenAPI plugin.
- fix: resolves some compiler warnings.
- feat: adds a server entry to the combined OpenAPI spec for the mock endpoint.
- feat: adds support for CLI boot. CLI boot is currently experimental, but supports hot-reload of configuration and other CLI features.
- fix: resolves some compiler warnings.
- fix: initialises scripts once even if referenced multiple times.
- fix: restores behaviour of deprecated params property.
- feat: precompiles JavaScript scripts on startup to lower initial request latency.
- fix: improves error trapping when dynamic item name cannot be resolved.
- refactor: ports codebase to Kotlin.
- fix: stops path parameters being treated as query parameters during OpenAPI request validation.
- fix: stops path parameters being treated as query parameters during condition and resource matching.
- (docs) Links to example JUnit project.
- (build) Bumps Jackson to 2.12.5.
- (docs) Adds JUnit sample project.
- (ci) Publishes base distro Maven artifacts.
- (openapi) Logs full URI to OpenAPI specification UI at startup.
- (core) Quietens logging of unhandled errors for favicons to TRACE.
- (build) Upgrades Gradle to 6.8.1.
- (build) Increases granularity of module dependency scopes.
- (ci) Publishes embedded distro Maven artifacts.
- (ci) Uploads JAR release asset without version suffix.
- (core) Adds JS type support for stores.
- (core) Allows header keys to be forced to lowercase.
- (core) Quietens logs for core engine startup.
- (core) Adds support for scripts using
@imposter-js/types
. See https://github.com/gatehill/imposter-js-types
- (core) Caches script logger for improved lookup performance.
- (ci) Switches CI to GitHub Actions.
- (core) Adds support for dynamic capture names.
- (core) Adds support for constant capture values.
- (docs) Adds preloading documentation.
- (all) Applies license.
- (core) Adds embedded JVM distribution. This allows use of Imposter in JUnit tests. See JVM bindings.
- (docs) Adds links to Imposter CLI and JavaScript bindings.
- (openapi) Allows OpenAPI specification to be loaded from a URL.
- (openapi) Allows OpenAPI specification to be loaded from an S3 bucket.
- (core) Adds support for preloading stores from file or inline data.
- (core) Adds store item count and allows retrieval of object items from store REST API.
- (core) Allows inline data to be used as a response template.
- (openapi) Sets response content type from OpenAPI mime type.
- (core) Allows response file cache size to be configured.
- (core) Improves request ID logging in exception handlers.
- (core) Adds metric gauge for script cache.
- (core) Adds metric gauge for response file cache.
- (core) Adds metric timer for script execution duration.
- (core) Disables ordered execution, as responses should not block each other. This provides up to a 2x throughput improvement under load.
- (core) Increases default response file cache size to 20.
- (core) Adds support for OpenAPI style path parameter syntax.
- (rest) Adds REST plugin resource support for matching path parameters, query parameters and request headers.
- (core) Bumps base JRE image to 8u302.
- (openapi, rest) Allows root response to be used as defaults for resource responses.
- (core) Moves request scoped store cleanup to after routing context handler completes.
- (openapi) Fixes root resource being used instead of active resource when sending OpenAPI plugin response.
- (core) Determines content type for response files in the same way regardless of whether template is used.
- (openapi, rest) Allows resource matching against request body using JsonPath. See request matching.
- (docs) Improves documentation for data capture, response templates and advanced request matching.
- (core) Fixes JSON formatting of status response.
- (core) Forces header key insensitivity when evaluating security conditions.
- (core) Improves detection of missing configuration files
- (core) Allows store item lookup in response templates.
- (core) Enables capture of path parameters, query parameters and request headers for resources.
- (core) Enables capture of request body properties using JsonPath.
- (core) Enables response template interpolation using JsonPath.
- (core) Adds request scoped store.
- (core) Adds server response header.
- (core) Enables JVM metrics collection.
- (core) Improves trapping and request ID logging for unhandled errors.
- (openapi) Fixes OpenAPI spec path redirect.
- (openapi) Allows resource matching based on request headers.
- (openapi) Adds log-only option for OpenAPI validation.
- (openapi) Allows configuration of default OpenAPI validation issue behaviour.
- (core) Adds normalised headers map to script context request. This aids script portability, avoiding case-sensitivity for header keys.
- (core) Bumps base JRE image to 8u292.
- (core) Graduates Stores to GA.
- (docs) Improves metrics examples.
- (openapi) Enables full resolution of OpenAPI references.
- (openapi) Supports example references in OpenAPI specifications.
- (core) Switches in memory store implementation to concurrent map.
- (core) Adds Redis store implementation.
- (core) Adds support for store key prefixes.
- (core) Improves script execution time logging and URI logging.
- (core) Adds experimental Stores support.
- (core) Allows configuration driven and script driven latency simulation.
- (core) Adds environment variables to runtime context.
- (core) Deprecates confusing DSL method 'immediately()' in favour of a more descriptive name 'skipDefaultBehaviour()'. This is a non-breaking change, but will be removed in a future major release.
- (core) Allows log level to be set using environment variable.
- (core) Exposes Prometheus metrics endpoint.
- (core) Bumps Vert.x version to 3.7.1.
- (core) Compiles and caches scripts in the Nashorn script engine, substantially improving execution speed.
- (core) Matches security policy headers in a case-insensitive manner.
- (openapi, rest) Adds security policy support to resources.
- (openapi) Bumps Swagger UI version to 3.50.0.
- (core) Adds path parameter support to declarative config and script engines.
- (core) Adds query parameter support to security policy condition.
- (core) Renames params to queryParams in configuration and script engine.
- (core) Allows request security to be controlled via plugin configuration. This supports authentication using request header values.
- (core) Allows substitution of environment variables in plugin configuration.
- (openapi) Allows matching of response behaviours based on request parameters in static configuration.
- (openapi) Allows specification of example name in static configuration.
- (core) Exposes request path to scripts for easier conditional logic.
- (core) Allows request parameters to be accessed using Nashorn and Graal.js script engines.
- (openapi) Correctly validates request query parameters.
- (openapi) Allows OpenAPI validation levels to be configured.
- (openapi) Adds format-aware default value generators.
- (docs) Improves OpenAPI plugin documentation.
- (openapi) Fixes example collection for date and date-time schemas (thanks, zellerr).
- (openapi) Allows request validation to be enabled via OpenAPI plugin configuration.
- (openapi) OpenAPI plugin returns first status code for operation if none set explicitly.
- (openapi) Returns the first value of an enum when building an example from an OpenAPI schema.
- (openapi) Enables default status codes to be defined for OpenAPI paths.
- (openapi) Adds path specific response behaviours to OpenAPI plugin.
- (openapi) Enables response examples to be selected by name.
- (core) Adds GraalVM script engine as Nashorn is deprecated from Java 11. Nashorn is still the default.
- (docs) Improves scripting documentation.
- (openapi) Adds support for response refs.
- (openapi) Enables schema model ref lookup by default.
- (openapi) Improves array example serialisation.
- (openapi) Improves test coverage for object and schema examples, including YAML serialisations.
- (openapi) Adds experimental model example generator.
- (openapi) Improves base path handling to remove double slashes at the start of full paths.
- (openapi, rest) Allows static responses to specify headers and inline data.
- (rest) Allows HTTP method to be set on root REST plugin resource.
- (docs) Improves configuration documentation.
- (core) Enables plugins to be specified by their short name.
- (docs) Improves examples and documentation.
- (openapi) Sets OpenAPI base path on server URI instead of path.
- (openapi) Bumps Swagger UI to 3.24.3.
- (rest) Makes configuration enum deserialisation case insensitive.
- (rest) Sets default REST resource type to object.
- (core) Adds support for YAML-formatted configuration files.
- (rest) Improves REST plugin examples and enables non-string ID comparision.
- (openapi) Improves OpenAPI path parameter detection.
- (openapi) Improves error trapping when overriding OpenAPI scheme.
- (openapi) Adds OpenAPI v3 support. This means the OpenAPI plugin now supports both Swagger/OpenAPI v2 and OpenAPI v3 files.
- (openapi) Adds support for object response examples in the OpenAPI plugin.
- (core) Breaking change: Defaults HTTP listen port to 8080.
- (core) Slims distributions to include only the required dependencies.
- (core) Switches Docker base image to Alpine.
- (core) Enables cgroup-aware heap sizing JVM option.
- (core) Automatic plugin detection now works properly.
- (core) Adds extension point to allow custom HTTP server implementation.
- (core) More modules published for extension developers.
- (core) Verticle startup no longer blocks the main thread.
- (hbase) HBase plugin tests now included in test reports.
- (core) Moves core API into Maven-published 'api' module.
- (sfdc) Sets SFDC plugin content type to JSON (thanks, pauturner).
- (core) Exposes request headers to scripts (thanks, kareem-habib).
- (core) Adds withData response behaviour (thanks, yanan-l).
- (core) Adds withHeader response behaviour (thanks, benjvoigt).
- (docs) Adds documentation for new response behaviours.
- (core) Prints version in status response.
- (core) Switches to asynchronous request handling, which should improve performance under load.
- (openapi) Updates swagger-ui to version 3.0.21 (thanks, benjvoigt).
- (core) Bumps various dependency versions.
- (core) Adds JavaScript scripting support.
- (docs) Refactored documentation.
- (docs) Adds changelog (this document!)
- (core) Adds CLI support for loading multiple plugins.
- (core) Adds CLI and core support for specifying multiple config directories.
- (core) Now detects plugins based on provided configuration files. This means you no longer have to specify the plugin class explicitly.
- (core) Adds core support for specifying plugin class via META-INF properties file.
- (core) Breaking change: response files are now resolved relative to the plugin configuration file, not the core configuration directory.
- (hbase) Adds RecordInfo and record ID to context for HBase plugin.
- (openapi) Adds API sandbox using swagger-ui for OpenAPI plugin.
- (hbase) Adds HBase content negotiation. Supports JSON and protobuf serialisation/deserialisation.
- (core) Allows plugins to declare additional dependency modules.
- (openapi) Adds option to serve first example found if no exact match is found in OpenAPI plugin.
- (openapi) Adds OpenAPI (aka Swagger) API specification plugin.
- (core) Adds request method to script context for all plugins.
- (hbase) Adds table name to HBase plugin.
- (rest) Adds REST plugin support for ID field name (like HBase plugin).
- (rest) Adds REST plugin subresources to return objects or arrays of data.
- (core) Using args4j for command line arguments in place of system properties.
- (hbase) Support named ID field in HBase plugin.
- (hbase) Adds the ability to get a single row from an HBase table.
- (hbase, sfdc) Adds script support to other plugins.
- (rest) Adds support for Groovy scripting of REST response behaviour.
- Initial release.
- REST plugin.
- HBase mock plugin.
- SFDC plugin.