stubby
Version:
a lightweight server for stubbing external systems and endpoints
284 lines (168 loc) • 8.83 kB
Markdown
# Changelog
## 5.1.0
* You can now submit `DELETE /` to the admin endpoint to delete all configured stubbed endpoints (#89)
## 5.0.0
* __BREAKING CHANGES from 4.x__
* The exit code for the `stubby` bin script will reflect the expected/error
state of stubby.
* Dependencies have been updated to prevent vulnerabilities.
* `acorn` updated from 7.0.0 to 7.1.1
* updated node versions for testing
* lodash updated from 4.17.15 to 4.17.19
## 4.1.1
* Updates depenencies with reported vulnerabilities
## 4.1.0
* Adds support for POST forms as a hashmap
## 4.0.0
This project has been stable for some time, best we move to actual semver and
not prerelease versioning. This release on the old versioning system would have been release `0.4.0`. It is now `4.0.0` instead.
* __BREAKING CHANGES from 0.3.x__
* The `mute` option has been renamed `quiet` to be more consistent with other cli tools
* __New features__
* Adds `hits` to the endpoint data that is returned from the admin portal that represents the amount of times that endpoint has been hit from the stubs portal.
## 0.3.1
* Fixes `path` errors in Node 6
## 0.3.0
* __BREAKING CHANGES from 0.2.x__
* In `0.2.x` and below, you could pass `request.headers.authorization` as a `username:password` string to signify Basic auth and stubby would automatically prefix `Basic ` and base64-encode the user/pass string. This breaks other forms of web auth that uses the `Authorization` header.
```yaml
# Before
request:
headers:
authorization: 'username:password'
# Now
request:
headers:
authorization: 'Basic username:password'
```
Stubby will still base64-encode the `username:password` if it sees that `Basic ` is specified and the `:` character is present. Otherwise it will take it as-is.
* __New features__
* `json:` option for endpoints -- instead of using `post:` or `file:` for matching the body of incoming requests, you can specify `json: ` with a JSON string and its content will be deeply matched for incoming request bodies.
## 0.2.13
* fixes a crash when using `start()` without any options
## 0.2.12
* fixes array representations in query strings
## 0.2.11
* fixes several scope-binding issues caused by the JavaScript rewrite (sorry!)
* clarify use of `PUT` and the admin portal
* added `_httpsOptions` to pass through options to the underlying tls server.
## 0.2.10
* fix colorsafe console wrapper errors (Esco Obong)
## 0.2.9
* Rewrote library in JavaScript (was CoffeeScript)
## 0.2.8
* fixes the status page display (Hadi Michael)
## 0.2.7
* fixes unhelpful output when the location given cannot be bound to
## 0.2.6
* fixes an issue where identical URLs with different request methods may throw
an exception
## 0.2.5
* token replacement from regex capture groups is now usable for dynamic `file:`
usage
## 0.2.3
* added recording feature. If a `response` object uses a string in place of an object (or a sequence of objects/string) the strings will be interpreted as a url to record the response from. Details configured in the `request` object (such as `method`, `headers`, etc) will be used to make the recording request to the specified url
* improved CORS compliance with request/response headers
* added dynamic templating features for interpolating data captured in request regular expressions into response strings
## 0.2.2
* CORS compliance as per W3C specifications. Using `*` as the `--location` will instruct stubby to listen on all interfaces. Implemented by [Tomás Aparicio](https://github.com/h2non)
## 0.2.1
* bugfix for "Could not render headers to client" from `h2non`
## 0.2.0
* added cyclic responses. `response` can now be a yaml sequence of responses. Backward compatible, thus the minor version bump
* all string values for `response` criteria are matched as regular expressions against the incoming request
## 0.1.50
* bugfix: admin and programmatic APIs correctly parse incoming data
## 0.1.49
* updating styling of status page.
## 0.1.48
* fixed a bug with the latest version of node where status page was no longer showing.
## 0.1.47
* urls are now matched via regular expressions. If you want an exact match, remember to prefix your urls with `^` and postfix with `$`
## 0.1.46
* binary data files are working correctly when used as a response body
* fixed a bug were stubby's version number was appearing as `undefined` in the `Server` header
## 0.1.45
* fixed a bug involving recursive use of `process.nextTick`
## 0.1.44
* line endings are normalized to `\n` and trailing whitespace is trimmed from the end when matching request's post/file contents
## 0.1.43
* `response.file` and `request.file` are now relative paths from the root data.yaml instead of being relative from the source of execution
## 0.1.42
* `request.headers.authorization` can now take values such as `username:password` which will automatically be converted to `Basic dXNlcm5hbWU6cGFzc3dvcmQ=`.
* parameterized flags can now be combined with non-parameterized flags. Example: `-dw data.yaml` is equivalent to `--watch --data data.yaml`.
* switched from handlebars to underscore for client-side templating
## 0.1.41
* added `PATCH` to acceptable HTTP verbs.
* bugfix where `--watch` flag was always active.
* added `man` page support
## 0.1.40
* bugfixes related to command line parsing
* fixed bug where query params were not being saved
* added `status` endpoint on admin portal.
## 0.1.39
* main `stubby` module now correctly accepts all options availabel via the command line in it's first argument.
* added `-w, --watch` flag. Monitors the supplied `-d, --data` file for changes and reloads the file if necessary.
* for the `require('stubby')` module, a filename is passed as `options.watch` for the `start(options, callback)` function.
## 0.1.38
* made method definitions (`PUT`, `POST`, etc.) case insensitive. You could use `post`, `get`, etc. instead.
* made `response` object completely **optional**. Defaults to `200` status with an empty `body`.
* you can now specify an array of acceptible `method`s in your YAML:
```yaml
- request:
url: /anything
method: [get, head]
```
## 0.1.37
* added /ping endpoint to admin portal
## 0.1.36
* running stubs portal at both http and https by default
* addition of `-t, --tls` option to specifying https port for stubs portal
## 0.1.35
* added `file` parameter to `request` object. When matching a request, if it has `file` specified it will load it's contents from the filesystem as the `post` value. If the `file` cannot be found, it falls back to `post`.
## 0.1.34
* added `query` parameter for `request` objects to allow comparison by variable instead of static querystring
## 0.1.33
* fixed severe issue where request headers were not being matched by the stubs portal
* renamed "stub" option to "stubs"
* __NEW__: `request.file` can be used to specify a file whose contents will be used as the response body. If the file cannot be found, it falls back to whatever was specified in `response.body`
## 0.1.32
* stubby can now be muted
## 0.1.31
* removed coffee-script as a dependency
* errors and warnings for missing or unparsable data files have been improved
* re-write of code operating the command-line interface
## 0.1.30
* admin portal console logging for responses
* reworked API contract failures for admin portal. Upon BAD REQUEST server returns an array of errors describing the endpoint validations that were violated.
## 0.1.29
* logging messages fixes for stub portal
## 0.1.28
* fixed callback parameters for stubby interface
## 0.1.27
* you can now make as many instances of stubby as you want by: require("stubby").Stubby and var stubby = new Stubby()
## 0.1.26
* callbacks now give copies of endoints instead of refernces. This prevents unexpected changes to endpoints outside of stubby
## 0.1.25
* bug fixes. optional dependency js-yaml is now *really* optional
## 0.1.24
* serval bugs fixed that were found while experimenting with a main module
## 0.1.23beta
* fixed but with endpoints with undefined headers not being accepted
## 0.1.22beta
* added -k, --key and -c, --cert and -p, -pfx options for stating stubby as an https server
* retired -f, --file option in lieu of -d, --data to prevent confusion between suppling files for data files versus ssl key/certificate files
## 0.1.21beta
* added -l flag for starting stubby at a particular address
## 0.1.20beta
* added -v --version command line option
## 0.1.19beta
* gracefully exits on error when starting stubby
## 0.1.17beta
* removed node-inspector as a dependency
* removed jasmine-node as a dependency
## 0.1.16beta
* default stub portal is now 8882 (from 80)
* default admin portal is now 8889 (from 81)
## 0.1.15beta
* initial release