-
Notifications
You must be signed in to change notification settings - Fork 4
/
CHANGELOG
530 lines (443 loc) · 41.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
[2024.9.7]
- Did a complete code cleanup and refactoring in the .NET project (https://github.com/dukeofharen/httplaceholder/pull/346/files).
- Added option to allow JSON value replacing using JSONPath in the response body (https://github.com/dukeofharen/httplaceholder/pull/347).
- Replaced the ImageSharp library with Magick.NET due to licensing (https://github.com/dukeofharen/httplaceholder/pull/348).
- Fixed bug where starting HttPlaceholder under Windows would cause the YML file watcher to crash (https://github.com/dukeofharen/httplaceholder/pull/381).
[2024.2.24]
- Upgraded application to .NET 8 (https://github.com/dukeofharen/httplaceholder/pull/338).
- Use file watches to check if the .yml stub files are updated on disk (https://github.com/dukeofharen/httplaceholder/pull/339).
- When using YAML stubs; show the file location of the YAML stub in the user interface (https://github.com/dukeofharen/httplaceholder/pull/340).
- Whenever a YAML file is updated, the change should be reflected in the user interface using web sockets (https://github.com/dukeofharen/httplaceholder/pull/340).
- Fixed behavior in the frontend that, when uploading stubs through the upload button, the API is not DDOSed (which some stub sources like the SQLite stub source did not like) (https://github.com/dukeofharen/httplaceholder/pull/342).
- Several fixes in the handling of form data within HttPlaceholder (https://github.com/dukeofharen/httplaceholder/pull/343).
- Update form helpers so it is much easier to update a stub using the UI (https://github.com/dukeofharen/httplaceholder/pull/344).
# BREAKING CHANGES
- If you installed HttPlaceholder as .NET tool, you need to have the .NET 8 SDK installed on your machine. If you download the compiled version of HttPlaceholder for your OS, you do not need to have .NET installed so you will notice no changes.
- In an ideal situation, you will not notice any difference. If your OS, however, does not have enough file watches or something else goes wrong so you can't use file watches, you can default to the "classic" situation where the .yml files are checked with every request. You need to provide the "--disableFileWatcher" option when starting HttPlaceholder.
[2023.11.25]
- Fixed small oversight in dark mode in the UI (https://github.com/dukeofharen/httplaceholder/pull/326).
- Fixed bug in the caching of the index.html of the UI (https://github.com/dukeofharen/httplaceholder/pull/327).
- Show IPs when starting the application (https://github.com/dukeofharen/httplaceholder/pull/328).
- HttPlaceholder can now internally make use of "distribution keys". This makes it easier in the future to split stubs, requests, responses etc. in several compartments (https://github.com/dukeofharen/httplaceholder/pull/331).
- Replaced Postman examples with plain cURL examples in documentation, since Postman's scratchpad is being phased out (https://github.com/dukeofharen/httplaceholder/pull/332).
- Scenarios are now saved in the stub source, so the scenarios will survive a restart now (https://github.com/dukeofharen/httplaceholder/pull/333).
- Added Postgres stub storage (https://github.com/dukeofharen/httplaceholder/pull/334).
- Added functionality to export a request, both through the API, the .NET client and the UI. It is possible to export the request as cURL request (so you can perform the request directly in your terminal) or as HTTP Archive (or HAR) (https://github.com/dukeofharen/httplaceholder/pull/337).
# BREAKING CHANGES
- The logging of the Microsoft components is set to "warning and up" so the logging is a lot cleaner when running the application. If you also want to see this logging from info and down, enable verbose logging.
- If you, for some reason, expect the scenario's to be cleared when restarting the application; you now need to clear it yourself using the API. If you use the "in memory" source, of course, everything is cleared on application restart, so here nothing changed.
[2023.8.27]
- Fixed bug where HttPlaceholder would insert an incorrect value in the response if the "scenario_state" or the "scenario_hitcount" were used (https://github.com/dukeofharen/httplaceholder/pull/318).
- Made several infrastructure changes to the code (https://github.com/dukeofharen/httplaceholder/pull/320).
- Added AuditBehavior which logs all the interactions between the web API and the application layer using MediatR (only in verbose logging mode) (https://github.com/dukeofharen/httplaceholder/pull/320).
- Added new `publicUrl` property which makes it possible to assign a root URL for both HttPlaceholder and the UI. Useful if you run HttPlaceholder behind a reverse proxy (https://github.com/dukeofharen/httplaceholder/pull/321).
- Re-added `Ctrl+X` functionality to delete lines in the code editor in the UI (https://github.com/dukeofharen/httplaceholder/pull/323).
- Fixed bug where UI was not packaged in the .NET tool (https://github.com/dukeofharen/httplaceholder/pull/324).
[2023.7.22]
- Fixed bug where an exception was thrown when running a proxy and an HTTP 204 was returned by the (https://github.com/dukeofharen/httplaceholder/pull/317).
[2023.7.7]
- Fixed bug where some header values were not accepted by the .NET HttpClient when a reverse proxy was used. An example is the `User-Agent` value `WordPress/6.2.2; http://localhost:8010` (https://github.com/dukeofharen/httplaceholder/pull/314).
- The self-signed certificate for HTTPS traffic has been replaced (https://github.com/dukeofharen/httplaceholder/pull/315).
- Fixed bug in mapping of request (https://github.com/dukeofharen/httplaceholder/pull/316).
# BREAKING CHANGES
- If you, for some reason, depend on the SSL certificate, you might need to do an update on your side.
[2023.6.30]
- Split form helper buttons into 4 separate buttons (https://github.com/dukeofharen/httplaceholder/pull/305).
- Updated the CodeMirror editor from 5 to 6 (https://github.com/dukeofharen/httplaceholder/pull/305).
- Added filter for variable handlers in the UI (https://github.com/dukeofharen/httplaceholder/pull/305).
- Only show "simple editor" button in UI if the stub is very large (https://github.com/dukeofharen/httplaceholder/pull/305).
- Build HttPlaceholder and all its dependencies in a Docker container (https://github.com/dukeofharen/httplaceholder/pull/305).
- Save binary request body as Base64 string (https://github.com/dukeofharen/httplaceholder/pull/306).
- Make it possible to download binary request body from the UI (https://github.com/dukeofharen/httplaceholder/pull/306).
- Render a posted image request body in the UI (https://github.com/dukeofharen/httplaceholder/pull/306).
- Render the response body in the UI the same way as the request body (https://github.com/dukeofharen/httplaceholder/pull/307).
- If a PDF is sent as request or returned as response, the PDF will be rendered in the UI (https://github.com/dukeofharen/httplaceholder/pull/307).
- Fixed requests bug: whenever the request parameters were not saved (may happen in some rare cases when HttPlaceholder is DDOS'ed), the API returned an HTTP 500 (https://github.com/dukeofharen/httplaceholder/pull/308).
- Added string / regex replacement response writer (https://github.com/dukeofharen/httplaceholder/pull/309).
- Added SignalR connection for stubs (https://github.com/dukeofharen/httplaceholder/pull/310).
- When generating a stub based on a request, also take the saved saved response (if there is one) into account (https://github.com/dukeofharen/httplaceholder/pull/311).
- When using the file response writer and no specific content type is set; determine the content type based on the file extension (https://github.com/dukeofharen/httplaceholder/pull/312).
- Show executing stub ID when hovering over a request in the UI (https://github.com/dukeofharen/httplaceholder/pull/312).
- Updated redirect response writer. `permanentRedirect` now returns HTTP 308 (HTTP 301) before and `movedPermanently` returns HTTP 301 (https://github.com/dukeofharen/httplaceholder/pull/312).
- Small fix in UI: when copying the request / response body, copy either the raw or "rendered" body based on your selection. At first, only the raw contents were copied (https://github.com/dukeofharen/httplaceholder/pull/312).
- Added paging to requests endpoints and the UI for more responsive UI (https://github.com/dukeofharen/httplaceholder/pull/312).
# BREAKING CHANGES
- `permanentRedirect` now returns HTTP 308 instead of HTTP 301. Use `movedPermanently` to return HTTP 301 instead.
- The way requests are stored when using the file store is slightly changed. This means that when you update to this version, the requests in the API and UI are not returned in the right order. New requests are returned in the right order though.
[2023.4.25]
- Upgraded to .NET 7 (https://github.com/dukeofharen/httplaceholder/pull/293).
- Added "show more" button to request body for when the request body is very long (https://github.com/dukeofharen/httplaceholder/pull/294).
- Added text file response writer (https://github.com/dukeofharen/httplaceholder/pull/295).
- Updated request body variable parser to also support regular expressions to insert part of request body in the response body (https://github.com/dukeofharen/httplaceholder/pull/296).
- An option was added to user the display URL variable parser with a regular expression, to parse only a part of the URL as part of your response (https://github.com/dukeofharen/httplaceholder/pull/297).
- Updated the HTTP method condition checker so it is now possible to provide multiple HTTP methods if needed (https://github.com/dukeofharen/httplaceholder/issues/298).
- Pressing "Cmd + S" now saves the stub form, instead of calling the browser save functionality (https://github.com/dukeofharen/httplaceholder/pull/300).
- It is now possible, when importing a stub through the UI or the API, to also provide a stub ID prefix. All stubs imported in this batch will have this ID prefixed with the string you've provided (https://github.com/dukeofharen/httplaceholder/pull/302).
# BREAKING CHANGES
- If you use any of the pre-built binaries of HttPlaceholder, you won't notice anything with upgrading. If you use the .NET tool version of HttPlaceholder, you need to have [.NET 7](https://dotnet.microsoft.com/en-us/) installed from now on.
- The interface of the import methods (`CreateCurlStubsAsync`, `CreateHarStubsAsync` and `CreateOpenApiStubsAsync`) changed. Instead of providing the parameters separately, you now need to pass a model. Updating the client will break the current calls to this method.
[2022.11.20]
- Updated loading of stubs from .yml files. An 'id' field should now ALWAYS be set, 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) (https://github.com/dukeofharen/httplaceholder/pull/284).
- Added CancellationToken support to .NET client (https://github.com/dukeofharen/httplaceholder/pull/284).
- Detect light or dark theme from the users browser when opening the user interface (https://github.com/dukeofharen/httplaceholder/pull/284).
- Lots of refactorings in the C# code base (https://github.com/dukeofharen/httplaceholder/pull/284).
- The loading ring in the UI is now visible in both light and dark themes in the UI (https://github.com/dukeofharen/httplaceholder/pull/284).
- Log application startup time (https://github.com/dukeofharen/httplaceholder/pull/285).
- Make it possible to update settings through API (only "storeResponses" for now) (https://github.com/dukeofharen/httplaceholder/pull/286).
- Added option to set "storeResponses" in UI (https://github.com/dukeofharen/httplaceholder/pull/286).
- Fixed bug where a lot of file watches were placed which were not necessary (https://github.com/dukeofharen/httplaceholder/pull/289).
- Fixed small issue where explicitly defined response header would be overwritten when using the reverse proxy functionality (https://github.com/dukeofharen/httplaceholder/pull/290).
- Added better error handling for the reverse proxy response writer (https://github.com/dukeofharen/httplaceholder/pull/291).
- Fixed small bug where form helper would not close correctly in "Add request / response value" menu (https://github.com/dukeofharen/httplaceholder/pull/292).
- Fixed small bug in reverse proxy response writer where root URL would be replaced incorrectly (https://github.com/dukeofharen/httplaceholder/pull/292).
- When using the reverse proxy response writer, take a look at the response and determine if it is binary or not (https://github.com/dukeofharen/httplaceholder/pull/292).
- Added stub validation on response headers (https://github.com/dukeofharen/httplaceholder/pull/292).
- Added configuration value for "allowGlobalFileSearch" which enables or disables whether users can use the "file response writer" to look for files in the whole OS or only for files relative to the stub .yml files or the file storage location (https://github.com/dukeofharen/httplaceholder/pull/292).
# 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]
- Fixed bug where passing "extraDuration" as integer in JSON would throw an exception (https://github.com/dukeofharen/httplaceholder/issues/281).
[2022.10.2]
- If stub is executed, return "X-HttPlaceholder-ExecutedStub" header with stub ID (https://github.com/dukeofharen/httplaceholder/pull/269).
- Show the configuration as "read only" values in the user interface (https://github.com/dukeofharen/httplaceholder/issues/261).
- Fixed bug where "headersSize" in "request" in HAR can not be null (https://github.com/dukeofharen/httplaceholder/issues/271).
- Install scripts do not have to be called as sudo (https://github.com/dukeofharen/httplaceholder/pull/272).
- Added stub request validation to .NET client (https://github.com/dukeofharen/httplaceholder/pull/279).
[2022.9.3]
- Fixed link to API docs (https://github.com/dukeofharen/httplaceholder/pull/256).
- The YAML file stub contents are no longer logged when there are any YAML stub files and the logging is set to verbose (https://github.com/dukeofharen/httplaceholder/pull/256).
- When setting verbose logging on with environment variable, it now also logs the configuration (https://github.com/dukeofharen/httplaceholder/pull/256).
- Removed .NET client doc generation. Not that interesting, we already have an example project and the code is already documented for anyone interested (https://github.com/dukeofharen/httplaceholder/pull/256).
- Make it possible to select multiple examples when you are inserting a variable parsing handler in the stub response (https://github.com/dukeofharen/httplaceholder/issues/262).
- Make it possible to insert fake data in the stub response using [Bogus](https://github.com/bchavez/Bogus) (https://github.com/dukeofharen/httplaceholder/issues/72).
- Update UI whenever a scenario is added, updated or deleted (https://github.com/dukeofharen/httplaceholder/issues/259).
- Added 3 more string checker options: minlength, maxlength and exactlength (https://github.com/dukeofharen/httplaceholder/issues/257).
- Add response option to return "connection reset" (https://github.com/dukeofharen/httplaceholder/issues/258).
- Added extra options to "extra duration" response writer so a "min" and "max" value can be provided (https://github.com/dukeofharen/httplaceholder/issues/260).
# 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]
- Order stub execution results in UI alphabetically (https://github.com/dukeofharen/httplaceholder/pull/250).
- Sort and group configuration items in help page in terminal (https://github.com/dukeofharen/httplaceholder/pull/250).
- Added option to response body helper to format JSON and XML strings (https://github.com/dukeofharen/httplaceholder/pull/250).
- Updated YAML input formatting so a neat error message is returned if the YAML is invalid (https://github.com/dukeofharen/httplaceholder/pull/250).
- Added option to go to stub when viewing stub execution result under request (https://github.com/dukeofharen/httplaceholder/pull/250).
- Updated form body viewer in UI to correctly show request body if the sent body isn't actually a valid form body (https://github.com/dukeofharen/httplaceholder/pull/250).
- Updated "request to stub" handler for form body. When form handler yields no results (e.g. form body is invalid) the handler will not be executed (https://github.com/dukeofharen/httplaceholder/pull/250).
- Updated "update stub" endpoint so an HTTP 404 is returned when the stub ID in the URL does not exist (https://github.com/dukeofharen/httplaceholder/pull/250).
- Fixed logging for condition checkers (https://github.com/dukeofharen/httplaceholder/pull/250).
- Added response body parsers for scenario state and hit count (https://github.com/dukeofharen/httplaceholder/issues/182).
- Added MkDocs project for the documentation. Release documentation as separate artifact and also package the documentation with the HttPlaceholder user interface (https://github.com/dukeofharen/httplaceholder/pull/254).
# 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]
- Clear form helper filter if form helper is selected (https://github.com/dukeofharen/httplaceholder/pull/248).
- Changed versioning again (to a format that `dotnet tool` accepts) (https://github.com/dukeofharen/httplaceholder/pull/249).
# 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]
- Fixed a bug where you could not specify the `fileStorageLocation` as environment variable (https://github.com/dukeofharen/httplaceholder/issues/234).
- Several small changes (https://github.com/dukeofharen/httplaceholder/pull/238):
- When using the "response body form helper" and the type is changed, the type is now immediately changed in the stub contents.
- Prevent non-numeric fields from being filled in in the hit count in the scenario form.
- When not logged in or authentication is disabled, immediately redirect to requests overview page if the login page is visited.
- Added delay for showing loader.
- Added the possibility to select an example when creating a stub (https://github.com/dukeofharen/httplaceholder/issues/239).
- Added variable handler for inserting root URL in stub response (https://github.com/dukeofharen/httplaceholder/issues/241).
- Changes stub caching logic, so stub cache is not cleared after every mutation (https://github.com/dukeofharen/httplaceholder/issues/244).
- Introduce more flexibility in the stub request conditions, by letting users select more specific keywords when configuring request stub conditions (https://github.com/dukeofharen/httplaceholder/issues/246).
[1.4.2]
- Fixed a bug where HttPlaceholder would create a `.httplaceholder` folder in the user home directory even if the `fileStorageLocation` configuration value was set (https://github.com/dukeofharen/httplaceholder/issues/232).
- Added possibility for providing a list of safe IPs to HttPlaceholder for reading and using the `X-Forwarded-For`, `X-Forwarded-Host` and `X-Forwarded-Proto` headers (https://github.com/dukeofharen/httplaceholder/pull/235).
- Fixed bug where updating stub would not work anymore (https://github.com/dukeofharen/httplaceholder/pull/236).
[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]
- Added new RequestToStubConditions handler to generate JSON conditions based on a request (https://github.com/dukeofharen/httplaceholder/pull/205).
- Added possibility to import HAR (HTTP Archive) files and creating stubs of those files (https://github.com/dukeofharen/httplaceholder/issues/206).
[1.1.0]
- Updated HttPlaceholder to .NET 6 (https://github.com/dukeofharen/httplaceholder/issues/202).
- Added possibility to manage scenarios through the user interface.
# 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]
- Changed release of HttPlaceholder to determine version based on the latest version in the changelog instead of on the current date (https://github.com/dukeofharen/httplaceholder/pull/201).
- Disable verbose logging in HttPlaceholder Docker image by default (https://github.com/dukeofharen/httplaceholder/pull/195).
- Add possibility to create stubs based on cURL commands (https://github.com/dukeofharen/httplaceholder/issues/197).
- Made a change in cleaning old request if file storage is used (https://github.com/dukeofharen/httplaceholder/pull/199).
- Fix in simple stub editor. Copy/paste and deletion of whole words (Ctrl + Backspace) now lead to correct stub input (https://github.com/dukeofharen/httplaceholder/pull/200).
# 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]
- Added possibility to resize stub editor panel (https://github.com/dukeofharen/httplaceholder/issues/185)
- Added separate editor for editing large stubs (simple editor) (https://github.com/dukeofharen/httplaceholder/issues/186)
- Insert spaces when pressing tab in the stub editor (https://github.com/dukeofharen/httplaceholder/issues/186)
- Added separate text boxes for tenant helper and scenario helper in stub form helpers (https://github.com/dukeofharen/httplaceholder/issues/186)
- Only update state / hit count through scenario API if those values are actually set (https://github.com/dukeofharen/httplaceholder/issues/184)
- Added separate "enable stubs", "disable stubs" and "delete stubs" button to only update the currently filtered stubs in the user interface (https://github.com/dukeofharen/httplaceholder/issues/188)
- Copy docs to release folder so they are released together with the HttPlaceholder binaries (https://github.com/dukeofharen/httplaceholder/issues/189)
- Updated docs: merged all docs into one document and made many other small changes (https://github.com/dukeofharen/httplaceholder/issues/190)
- Removed old UI from code base (https://github.com/dukeofharen/httplaceholder/issues/191)
- Updated and fixed Vagrant boxes (https://github.com/dukeofharen/httplaceholder/issues/192)
- Updated Dockerfile: use .NET runtime image instead of SDK image and use Node.js 16 (LTS) (https://github.com/dukeofharen/httplaceholder/issues/193)
[2021.11.7.392]
- Implemented stateful behavior in HttPlaceholder for stubs: https://github.com/dukeofharen/httplaceholder/issues/179
- Several UI changes: https://github.com/dukeofharen/httplaceholder/issues/169
- When default HTTP(S) port is taken, pick another random one: https://github.com/dukeofharen/httplaceholder/issues/171
- Strip "Content-Length" header in reverse proxy response writer: https://github.com/dukeofharen/httplaceholder/issues/172
- Add JSONPath variable handler: https://github.com/dukeofharen/httplaceholder/issues/174
- Fixed "close button" in response body helper in UI: https://github.com/dukeofharen/httplaceholder/issues/175
- Persist stub and request filter states across screens in UI: https://github.com/dukeofharen/httplaceholder/issues/176
- Show correct request time in UI: https://github.com/dukeofharen/httplaceholder/issues/180
- Close form helper list on escape press: https://github.com/dukeofharen/httplaceholder/issues/181
[2021.10.4.342]
- Upgraded UI to Vue 3 (https://github.com/dukeofharen/httplaceholder/issues/164). When starting HttPlaceholder, the old UI is still served. You can force the new UI by providing "--useNewUi true" to the command line arguments (see https://github.com/dukeofharen/httplaceholder/blob/master/docs/CONFIG.md).
[2021.8.15.305]
- Updated JSONPath condition checker so query and expected value can be split in 2 separate declarations (https://github.com/dukeofharen/httplaceholder/issues/153).
- Updated NuGet packages.
[2021.6.13.293]
- Added feature for deleting single request.
- Fix in database schema (https://github.com/dukeofharen/httplaceholder/issues/147).
- Added possibility for enabling health check on root URL (https://github.com/dukeofharen/httplaceholder/issues/142).
- Several UI refactorings.
[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]
- Deleted full stub form and added form helper to the stub YAML form (https://github.com/dukeofharen/httplaceholder/issues/57).
- Added possibility to enforce Windows or Unix line endings (https://github.com/dukeofharen/httplaceholder/issues/55).
- Fixed bug where finding a file would not work if multiple stub paths are provided (https://github.com/dukeofharen/httplaceholder/issues/50).
- Use "," for separator for "inputFile" (https://github.com/dukeofharen/httplaceholder/issues/53).
- Made configJsonLocation case insensitive (https://github.com/dukeofharen/httplaceholder/issues/47).
[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]
- Fixed application.
[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.