Repository  -  API  -  Source


October 16, 2014
  • NEW: The configurable request pipeline allows to limit the number of HTTP requests made in parallel.

  • Configuration options can now also be set with environment variables (e.g. API_COPILOT_LOG=debug).

  • Configuration options can now be read from multiple configuration files with the --config option..

  • Configuration options are now validated before running the scenario. If an option has an invalid value (e.g. unknown log level, non-numeric or negative request cooldown), the scenario will not start running.

  • Runtime parameters have new options:

    • default sets the default value of the parameter when not configured;

    • processor allows to provide a function to process parameter values (e.g. parseInt to cast integers).

  • Flag runtime parameters now have the value false instead of undefined if not activated. Also, the required option has no effect on them (even if required, flag parameters can still be omitted when running the scenario).

  • Runtime parameter values are now displayed before running the steps of a scenario with the debug log level. An obfuscate parameter option has been added for those parameters that you might not want to log in cleartext. This option is turned on by default for parameters whose name contains the words password, secret or authToken (case-insensitive).

  • BUGFIX: the log level option could not be set in the scenario object because the command line program would always override it to the info level.

  • BUGFIX: the scenario listing would unnecessarily be displayed when using the run or info commands with an argument and a loading error occurred (e.g. due to an invalid scenario object).


May 2, 2014
  • BREAKING! Runtime parameters have been completely overhauled.

  • NEW: The listing sub-command lists available API scenarios in your project.

  • NEW: The info sub-command prints detailed information about an API scenario. You can also add your own documentation by listening to the scenario:info event.

    Also check out:

  • The run and the info commands support auto-completion of scenario names when prompting to select a scenario.

  • Custom error messages can now be specified when expecting an HTTP response to have a certain value.

  • HTTP requests can be run in parallel by passing them to the all method.

  • BUGFIX: steps were numbered starting from 2 in the command line output.


April 24, 2014
  • BREAKING! Request options are now merged with default request options instead of overriding them. For example, if there are headers in both the default request options and the request options, they will be merged instead of only the latter being used.

  • NEW: An expected status code can now be specified when making HTTP requests.

  • NEW: The scenario can be completed before reaching the final step with the new complete method.

  • Additional request options can be merged without overriding other options with the deepmerge library.

  • Allow custom error message for required parameters. See runtime parameters.

  • BUGFIX: setting a base URL and providing no URL when making an HTTP request would cause an undefined string to be appended to the constructed URL.

  • BUGFIX: skipping a step did not work with a falsy message.


April 16, 2014
  • BUGFIX: undefined strings were logged due to missing colors dependency.


April 15, 2014
  • Experimental run command (undocumented).


April 9, 2014
  • Required request options (method and url) are now validated after request filters are run. This allows the method or URL to be set by filters.


April 9, 2014


April 3, 2014
  • NEW: Configuration options can be changed at runtime with the configure method.

  • The new showFullUrl option causes full URLs to be displayed instead of paths only when a base URL is configured.


March 31, 2014
  • BREAKING! Request filters must now return the request options object instead of modifying it by reference.

  • NEW: When an error occurs, set the log level to trace to see the stack trace.

  • Request filters can be made asynchronous by returning a promise for the request options.


March 26, 2014
  • Fixed the scenario completion message.

  • BUGFIX: request filters did not receive the request options as first argument.


March 26, 2014
  • NEW: Scenario options can be given through an api-copilot.yml file in the current working directory:

    • the -c, --config [file] command line option sets another path for this configuration file.
  • The run method of scenario objects returns a promise.

  • Process exits with status 2 if the scenario fails.

  • BUGFIX: success would only forward its first argument to the next step.


March 21, 2014
  • BREAKING! Request filters are no longer passed a store object.

  • NEW: Scenario options:

    • log sets the log level ("trace", "debug" or "info"; "info" by default);
    • showTime prints the date and time with each logs;
    • showRequest prints the options of each HTTP request (if the log level is debug or trace);
    • showResponseBody prints the body of each HTTP response (if the log level is debug or trace).
  • NEW: Command line options:

    • -l, --log [level] sets the log level (trace, debug or info; info by default);
    • -u, --base-url [url] overrides the base URL of the scenario;
    • -t, --show-time prints the date and time with each logs;
    • -q, --show-request prints the options of each HTTP request (if the log level is debug or trace);
    • -b, --show-response-body prints the body of each HTTP response (if the log level is debug or trace).
  • The body of HTTP responses is now hidden by default. Use the new showResponseBody scenario option or the -b, --show-response-body command line option to print it.


March 21, 2014
  • BREAKING! Scenario files must export the Scenario object instead of running it.


March 20, 2014
  • Proof of concept.