Changelog
2022.11.20
BREAKING CHANGES
- Stubs defined in a .yml file should ALWAYS have an id field defined, whereas it was automatically generated beforehand if it was not set (which caused some non stub files to get parsed as stub with weird behavior).
- At first, you could, by default, use the "file response writer" to specify a file anywhere on the OS. Right now, by default, HttPlaceholder will only look relative to the stub .yml files and the file storage location. This configuration value is set to "false" by default for all versions of HttPlaceholder, except for the Docker container.
2022.10.4
2022.10.2
2022.9.3
BREAKING CHANGES
- Minor one, but the YAML file stub contents are no longer logged when there are any YAML stub files and the logging is set to verbose.
2022.8.7
BREAKING CHANGES
- Update stub call now returns HTTP 404 if the stub ID in the URL does not exist. This was HTTP 204 before.
2022.6.11
BREAKING CHANGES
- Not really, besides the fact that the versioning is back at what it was before. I made the stupid decision in November 2021 to change the versioning from date (so
2021.11.11.123
) to semver (so 1.2.3.123
). This worked up to a certain point, but the .NET tool installation went wrong because a "newer" version was found every time, which meant you needed to de-install the old version and install the new version.
From this point on, the date format is used again for versioning and I try to make as few breaking changes as possible. Sometimes, I have no choice and have to enable a specific feature by default (which was off or non existent before), but try to make it as configurable as possible.
1.4.3
1.4.2
1.4.1
- Added license and logo to Nuget packages (https://github.com/dukeofharen/httplaceholder/issues/76 and https://github.com/dukeofharen/httplaceholder/issues/81).
- Added documentation to all classes of .NET client and HttPlaceholder (https://github.com/dukeofharen/httplaceholder/pull/213).
- When setting the scenario with an empty state; set the scenario state to the default state of "Start" (https://github.com/dukeofharen/httplaceholder/pull/214).
- Added icon at stub when stub is read-only (https://github.com/dukeofharen/httplaceholder/pull/215).
- When updating stub, make sure no read-only stub exists with the same ID (https://github.com/dukeofharen/httplaceholder/pull/215).
- Updated UI so the "Disable stubs", "Enable stubs" and "Delete stubs" do not work with "read-only" stubs (https://github.com/dukeofharen/httplaceholder/pull/215).
- Created a scheduled job that is used for cleaning old requests (https://github.com/dukeofharen/httplaceholder/issues/216).
- By default, this job is enabled. This means that the old requests will be cleaned once in every 5 minutes. When this job is enabled, the cleaning of requests does not occur anymore after any stub request.
- This job can, however, be turned off. Configuration parameter
cleanOldRequestsInBackgroundJob
has been added for this purpose.
- This configuration parameter has been added because some people host HttPlaceholder in a cloud environment with a serverless database. Performing a query every 5 minutes can crank up the costs. By cleaning the requests in the old way, no more SQL queries than necessary will be performed so the costs stay (relatively) low.
- Besides this, whenever a request could not be matched to a stub and the user interface is disable, an empty response will be returned instead of a basic HTML page.
- Replaced Vuex with Pinia for state storage in the frontend application (https://github.com/dukeofharen/httplaceholder/pull/218).
- Use Vite as build system and migrated all JavaScript to TypeScript (https://github.com/dukeofharen/httplaceholder/pull/219).
- Added badges that show the currently active filters and added a simple way to clear the filters (https://github.com/dukeofharen/httplaceholder/pull/220).
- Added stub validator to check that only 1 response writer is active in the stub (https://github.com/dukeofharen/httplaceholder/pull/221).
- Added a button to the stub element in the UI to download the stub as single .yml file (https://github.com/dukeofharen/httplaceholder/pull/222).
- Added date/time to stubs .yml after download (https://github.com/dukeofharen/httplaceholder/pull/223).
- Increased the character count where the CodeMirror editor automatically switches to the simple editor from 2000 to 4000 (https://github.com/dukeofharen/httplaceholder/pull/223).
- Added extra logic to JSON condition checker so boolean values can now also be checked by a regex (https://github.com/dukeofharen/httplaceholder/pull/223).
- Added CSS spinner to show when asynchronous (HTTP) calls are working (https://github.com/dukeofharen/httplaceholder/pull/223).
- Show validation error when stub response text is set and HTTP status code is 204 (https://github.com/dukeofharen/httplaceholder/pull/223).
- Added fix so it is now possible to also send YAML to the API which contains fields that are not in the schema (https://github.com/dukeofharen/httplaceholder/pull/223).
- When updating a stub and the ID has not changed, do not delete the stub as this is pointless (https://github.com/dukeofharen/httplaceholder/pull/225).
- Fixed indenting issue in CodeMirror editor (https://github.com/dukeofharen/httplaceholder/pull/226).
- Added docs to user interface (https://github.com/dukeofharen/httplaceholder/pull/227).
- Added separate form helper for enabling / disabling dynamic mode (https://github.com/dukeofharen/httplaceholder/pull/228).
- Added possibility to log a response per request (https://github.com/dukeofharen/httplaceholder/issues/229).
BREAKING CHANGES
- As mentioned before, the "clean old requests" job is now enabled by default. If you want HttPlaceholder to continue cleaning requests in the old way, set
cleanOldRequestsInBackgroundJob
to false
to not get a bigger bill on your serverless database than needed.
- Like described above, it is now not possible anymore to define more than 1 response writer. Before this, it would be useless to do this anyway because only 1 response body writer can be used, but it is now not possible anymore.
1.4.0
- Use Roboto Mono as font for user interface.
- Fixed bug in tenant filtering of requests and stubs screen.
- When a single stub has been generated and will be opened in the stub form, place it in the stub form as a single stub.
- Added separate stub form helpers for JSON, XML, HTML, plain text and Base64.
- Added CodeMirror editor input for response body helpers.
- When updating the response body using one of the response body helpers, immediately insert the body in the stub.
- Added placeholder text when there are no requests or stubs.
- Disable mutation buttons on stubs screen when no stubs are currently visible.
- Animate on routing.
- Renamed a few variable handlers to more logical names.
- Fixed spacing bug with sidebar and main content. The content now does not go outside of the main content anymore.
- When URL in request is too long, break it up instead of letting it go outside of the current view.
- Many changes to make the UI more mobile friendly (fixed the sidebar, fixed the stub form etc.)
- Small fixes for PWA.
1.3.0
- Small UI changes (https://github.com/dukeofharen/httplaceholder/pull/209)
- Added upload buttons to the "Import cURL command(s)" and "Import HTTP archive (HAR)" screens.
- Close the "How to" on the "Import cURL command(s)" and "Import HTTP archive (HAR)" screens when inserting the example.
- Added functionality to create stubs based on Swagger/OpenAPI file (https://github.com/dukeofharen/httplaceholder/issues/87).
- Also, when adding stubs based on cURL commands or HTTP archive; automatically fill in a short stub description.
- The "Import OpenAPI", "Import cURL commands" and "Import HAR" screens now have an option to fill in a tenant for easy grouping of stubs.
1.2.0
1.1.0
BREAKING CHANGES
- Since HttPlaceholder is now using .NET 6, you also need to install .NET 6 SDK on your PC if you use the .NET tool version. If you use the OS specific version of HttPlaceholder, you do not have to have the .NET SDK installed.
1.0.0
BREAKING CHANGES
- The verbose logging is turned off by default for the HttPlaceholder Docker image. If you relied on the verbose logging, you have to provide the
verbose
environment value with value true
now.
- Releases are now done based on the version in the CHANGELOG file instead of on the date the release was made.
2021.11.25.434
2021.11.7.392
2021.10.4.342
2021.8.15.305
2021.6.13.293
2021.5.16.265
- Added completely new .NET client for HttPlaceholder API.
- Don't log warnings which aren't actually warnings.
2021.5.1.256
- Added "json" (not JSONPath) condition checker.
- Added integration tests with Postman.
- Added stub validation for stubs added as .yaml files or through API.
2021.4.11.234
- Implemented several performance improvements.
- If a condition checker fails for a stub, do not execute the other condition checkers.
- Order condition checkers by priority. The quickest condition checkers are executed before the more complex ones.
- Added caching mechanism for use together with a relational database (MySQL, SQLite or MS SQL Server). The caching is implemented in such a way that whenever you run multiple instances of HttPlaceholder and you update stubs on one instance, the cache on the other instaces will also be invalidated so you don't have stale caches in the other instances.
2021.3.27.223
- Fixed multiple issues in UI.
- Fixed bug in generating stub based on request in BasicAuthenticationHandler.
- Made it possible to run HttPlaceholder on multiple HTTP(S) ports.
2021.3.13.194
- Upgraded NuGet packages.
- Fixed "feature" where stub with old ID was deleted when the ID of the stub was changed.
2020.12.29.179
- Added response writer for creating stub images.
- Added response writer for content type.
- Updated Docker image so it has a default value for "inputFile"
- Added possibility for disabling stub.
- Added some text that will be shown when HTTP 501 is returned if no stub was found.
2020.12.22.151
2020.12.11.114
- Fixed the previous bugged release. For some reason, the build succeeded, but the dotnet publish command resulted in an error. I've added additional error handling and fixed the actual build, so it (hopefully) never happens again.
2020.11.20.108
- Removed negative conditions from HttPlaceholder. They are not refined enough.
- The search functionality in the UI is now case insensitive.
- Return 501 (Not Implemented) instead of 500 (Internal Server Error) if no stub was configured for the request.
- Added lazy loading for requests and stubs in the user interface.
- Updated to .NET 5 and upgraded all NuGet packages.
2020.08.23.62
- Added reverse proxy response writer.
- REST API now returns JSON responses by default instead of YAML.
2020.8.8.156
- Added a complete form to the UI for adding stubs.
2020.7.6.155
- Fixed issue with IIS hosting.
2020.4.19.150
- Project upgrade to .NET Core 3.1.
- Upgrade and several bug fixes of user interface.
- Fixed login issues for UI.
- Make all config settings case insensitive.
- Allow command line arguments without values (e.g. you can now do "httplaceholder --usehttps" instead of "httplaceholder --usehttps true")
- Fixed issue where PowerShell would append double quotes to "inputFile" property when starting HttPlaceholder.
- Added SSL private key installation scripts for Windows, Linux and Mac.
- Also allow YAML stub files which are not in the form of an array.
2019.9.29.149
- Complete rewrite of UI to material design.
- Added stub examples to UI to insert when adding new stub.
2019.9.25.148
- Upgrade to ASP.NET Core 3.0
- If a collection is not set in a REST API post or put call, don't return the AutoMapper default of the collection (empty collection instead of null) after performing a GET.
- Added a possibility for disabling the user interface.
- Added some documentation about reverse proxies and fixed the displayed hostname in UI after a request through a reverse proxy is made to Httplaceholder.
- It is possible to configure the application using environment variables now.
2019.9.9.142
- Made it possible to see stubs and requests made for a specific tenant / category.
- Made it possible to download all stubs within a specific tenant / category.
- Did a SonarQube analysis and fixed some issues.
2019.8.24.141
- Added stub generation based on request.
- Refactored build procedure.
- Added "pretty print" for posted form values.
- Several bug fixes.
- Added response variable parsers for local and UTC date & time.
- Added update stub and delete all stubs call.
2019.6.2.127
- Complete restructure of .NET application.
2019.5.31.126
- Added SignalR to automatically refresh GUI if there are new requests.
- Change logo in dark and light mode.
- (Sadly) stupid bug fix to fix the integration unit tests. See https://github.com/microsoft/vstest/issues/2008
- Description for all API endpoints for Swagger file.
2019.4.16.123
- Fixed Windows installer
- Added possibility for adding description to stub
- Show query parameters in UI
- Fixed stub download from UI
2019.2.23.111
- Added the possibility to store your stubs and requests in a MySQL, SQLite or Microsoft SQL Server database.
- Added a way to make responses more dynamic by adding the possibility to use variable handlers (see https://github.com/dukeofharen/httplaceholder/blob/master/docs/RESPONSE.md).
- Added --configJsonLocation parameter for specifying the location to the config.json file yourself.
- Made HttPlaceholder cross-platform (it now runs on Windows, Linux and Mac OS).
2019.2.2.108-beta
- Updated scripts to also build binaries for cross platform usage.
- Added storage provider for SQLite.
- Added storage provider for Microsoft SQL Server.
2019.2.1.103-beta
- Added several response variable handlers.
2019.1.17.100-beta
- Dynamic mode: possibility to add variables to responses.
2019.1.5.98-beta
- Added connection to MySQL database.
2018.12.24.95
- Pack HttPlaceholder as dotnet global tool.
2018.12.22.92
- Upgrade to .NET Core 2.2 and added custom NuGet package for HttPlaceholder.
2018.12.16.87
- Added light and dark theme
- Added fancier confirm dialogs
- Added button for downloading stubs as .yml file
- Add / update stub when pressing Ctrl + S
- Fix problem with metadata in stub model
- Added possibility of deleting all stubs (from writable stub source) from within UI
- Don't show logout button if authentication is not required.
- Updated Ducode.Essentials references to NuGet packages.
- Added logout functionality.
- Added another separation character for multiple input files
- Added "Delete stub" button to UI
2018.12.14.85-beta
- Fix problem with metadata in stub model.
2018.12.10.83-beta
- Added possibility of deleting all stubs (from writable stub source) from within UI.
2018.12.7.81-beta
- Don't show logout button if authentication is not required.
- Updated Ducode.Essentials references to NuGet packages.
2018.11.30.77-beta
- Added logout functionality.
2018.11.30.75-beta
- Added another separation character for multiple input files.
2018.11.13.74-beta
- Replaced console functions with Ducode.Essentials equivalents.
2018.11.7.73-beta
2018.11.7.72-beta
- Moved a lot of generic code to Ducode.Essentials repository.
2018.11.2.68
- Fixed problem that YAML files wouldn't be loaded from the HttPlaceholder startup directory if --inputFile wasn't set.
2018.11.2.71-beta
- Added "Delete stub" button to UI.
2018.11.2.70-beta
- Added controller for retrieving metadata and show version in UI.
2018.11.2.69-beta
- Append version to installer when building.
0.4.0.56
- Rebuilt AddStub screen as code editor.
- Added all available pages to navigation bar.
0.4.0.54
- Fixed caching issue in API.
- Added possibility to assign tenants to stubs and added API endpoints for tenants.
- Added logic for determining which stub to choose if multiple conflicting stubs are found.
- It is now possible to add a stub without any conditions.
- Stub priority is 0 by default.
- Added page in UI to download all stubs.
0.4.0.45
- Implemented file storage; stubs are written to disk when they are added through the API and requests are also added to disk whenever a URL is called.
- Added several UI changes for management UI.
- Added login form to UI; shown when authentication is enabled on API.
- Added priority to stubs so HttPlaceholder can decide which stub to use if multiple stubs are found for one request.
- Added condition checker for form values.
0.3.0.35
- Added UI written with Vue.js for administering HttPlaceholder.
0.2.0.27
- Re-added lost private key for HTTPS
- Added condition checker for hostname
- Added HTML response writer
- Added "is HTTPS" condition checker
0.2.0.16
- Upgrade to .NET Core 2.1
- Added command line option to disable detailed request logging on the command line.
- Added response writer for JSON.
- Added response writer for XML.
- Added shorthand response writers for easy temporary and permanent redirects.
- Greatly improved request logging.
- Updated XPath condition checker so .NET's XPath implementation doesn't complain anymore if no namespaces are configured for an XML file that does have namespaces (some Regex trickery).
- Added condition checker for checking client IP address.
- Updated project so hosting in IIS through the .NET Core Hosting Bundle is now possible and also added installation instructions for this hosting scenario.
- Added a separate config.json file which can be used instead of providing command line arguments.
0.1.0.8
- Lots and lots of refactorings.
- Added several new condition checkers.
- Added several new response writers.
0.0.1.4-beta
- Improved logging.
- If multiple stubs are found, the first one is returned.
- Made it possible to set the HTTP port the application is assigned.
- Added X-Placeholder-Correlation header to every response.
- Added the possibility to add a file as response to the stub YAML file.