Desktop application releases

1.23.0

Welcome to this new release of Mockoon. There are several bug fixes and new features in this version that we hope you will like.


 Our platinum sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 CRUD routes

We are excited to release a new long-awaited feature: the CRUD endpoint. Where Mockoon routes are independent and stateless, CRUD endpoints can generate multiple routes to perform CRUD operations (Create, Read, Update, Delete) on data buckets. Data buckets are generated when the server start, their state persisting between calls. It makes them the perfect tool to simulate small databases.

Head over to the CRUD routes documentation to learn everything you need to make the most of them.

crud route in the routes menu

 Default listening IP addresses

Mockoon desktop and CLI now listen by default to both IPv4 (0.0.0.0) and IPv6 (::) default addresses. You can also override the hostname in the desktop application in the environment settings tab:

input field to override the hostname

(Issue #930)

 Add support for OpenAPI's examples

Mockoon can now create responses from OpenAPI examples during import. Considering this partial OpenAPI YAML specification file:

/activities:
  get:
    summary: List of activities
    responses:
      '200':
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/Activity'
            examples:
              Sports:
                value:
                  - id: 1
                    name: Basketball
                  - id: 2
                    name: Volleyball
              Music:
                value:
                  - id: 3
                    name: Guitar
                  - id: 4

Mockoon will automatically create multiple responses from the schema and the examples:

mockoon interface showing 3 responses with examples created after an openapi import

(Issue #967)

 WebDAV HTTP methods

Mockoon now supports WebDAV's HTTP methods for distributed authoring as specified in the RFC2518 Section 8:

mockoon interface showing webdav specific http methods

(Issue #937)

 Auto-start environments

We added a new setting to auto-start the environments when the application launches:

checkbox to enable environments auto-start

(Issue #121)

 Improved logs interface

We improved the logs interface to clarify the purpose of the delete button:

Logs delete button

(Issue #686)

 Small improvements and fixes

  • The Docker image now exposes port 3000 by default when you cannot specify a port to expose (e.g. GitLab CI). You can still override the default exposed port using -p at runtime or ports inside a docker-compose configuration file. (Issue #932)
  • Fixed data buckets request helpers not being detected when imbricated in other helpers. (Issue #928)
  • A missing text/markdown content type was added to the headers auto-completion.

 Thank you

A big thank you to the following people who helped to make Mockoon better:

1.22.0

Welcome to this new release of Mockoon. There are several bug fixes and new features in this version that we hope you will like.


 Our platinum sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 ⚠️ Breaking changes

  • The faker templating helper is no longer stringifying arrays and objects. It can now be used with other helpers like each. (Issue #880)
  • The data and dataRaw helpers do not return the full data bucket anymore when nothing was found at a specific path. (Issue #918)

 Routes folders

You can now organize your routes into folders and sub-folders:

routes organized in folders and sub-folders

This new feature allows users to better organize their routes and make their APIs more readable and easier to navigate, with a clearer hierarchy. During the development, we also reworked how the drag and drop and the filtering are handled, which should result in an overall better experience. Head over to our folders documentation to learn more about this feature. (Issue #97)

 Cloud functions and serverless environments

We published a new @mockoon/serverless package to help you run your mocks in cloud functions and serverless environments (AWS Lambda, GCP/Firebase Functions, etc.). Head over to the dedicated documentation to learn more.

(Issue #861)

 Improvements

  • The full helpers list have been added to the autocomplete menu in the body editor. (Issue #289)
  • A new dateFormat helper has been added. (Issue #873)
  • The HTTP status message (404 - Not Found) is now visible in the logs tab. (Issue #852)
  • A new status templating helper is available. It lets you customize the response status code inside a template. (Issue #894)

 Fixes

  • The faker templating helper is now compatible with some helpers like queryParam. (Issue #887)
  • The data and dataRaw helpers do not return the full data bucket anymore when nothing was found at a specific path. (Issue #918)
  • Templating errors are now correctly reported in the response body when they occurs during the generation of a data bucket. (Issue #866)

 Thank you

A big thank you to the following people who helped to make Mockoon better:

1.21.1

 Patch 1.21.1 fixes the following issues:

  • Data buckets containing JSON data are now correctly returned when linked to a route response. (Issue #841)
  • The dataRaw helper now correctly returns the data at the object path. Falsy values at path are also supported. (Issue #842)

 Our platinum sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 Version 1.21.0 Release changelog

 ⚠️ Breaking change

  • setVar helper has been reworked and is not breaking anymore when used inside an each. The usage of variables is also uniformized and now requires an @. See the updated documentation for more information. (Issue #793)

 New data buckets

We added a new feature called "Data buckets". It's a key-value store available in each environment. Each data bucket is persistent and generated when the server starts. Data buckets can be directly linked to a route response or using one of the two new helpers: data and dataRaw. Read the documentation to learn more.

data buckets interface screenshot

This first step will make the development of CRUD and GraphQL routes easier.

(Issue #783)

 Dialogs default directory

Until now, the save and open dialogs were pointing by default to Mockoon's binary folder. It could result in data loss as the folder could be wiped on some systems during an update. The dialogs now open to the application's data folder and save their current working directory as it should. (Issue #756)

 Templating helpers

  • We added a new parseInt helper. (Issue #766)
  • We updated Faker.js from version 6.3.0 to version 7.6.0.

 Fixes

  • The date helper is now compatible with other helpers like queryParam. (Issue #781)
  • The objectId helper is now an alias for Faker.js' mongodbObjectId method. (Issue #829)
  • Serving a file with an unknown mime type now correctly revert to the environment Content-Type. (Issue #785)
  • Duplicating a route to an environment now correctly save the new route in the environment JSON file. (Issue #790)
  • ⚠️ Breaking change: setVar helper has been reworked and is not breaking anymore when used inside an each. The usage of variables is also uniformized and now requires an @. See the updated documentation for more information. (Issue #793)

 Improvements

  • We improved the menus resizer visibility. (Issue #729)
  • text/xml content type is now suggested in the header autocomplete menu and is correctly enabling the editor's XML syntax highlighting. (Issue #798)

1.21.0

Welcome to this new release of Mockoon. There are several bug fixes and new features in this version that we hope you will like.


 Our platinum sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 ⚠️ Breaking change

  • setVar helper has been reworked and is not breaking anymore when used inside an each. The usage of variables is also uniformized and now requires an @. See the updated documentation for more information. (Issue #793)

 New data buckets

We added a new feature called "Data buckets". It's a key-value store available in each environment. Each data bucket is persistent and generated when the server starts. Data buckets can be directly linked to a route response or using one of the two new helpers: data and dataRaw. Read the documentation to learn more.

data buckets interface screenshot

This first step will make the development of CRUD and GraphQL routes easier.

(Issue #783)

 Dialogs default directory

Until now, the save and open dialogs were pointing by default to Mockoon's binary folder. It could result in data loss as the folder could be wiped on some systems during an update. The dialogs now open to the application's data folder and save their current working directory as it should. (Issue #756)

 Templating helpers

  • We added a new parseInt helper. (Issue #766)
  • We updated Faker.js from version 6.3.0 to version 7.6.0.

 Fixes

  • The date helper is now compatible with other helpers like queryParam. (Issue #781)
  • The objectId helper is now an alias for Faker.js' mongodbObjectId method. (Issue #829)
  • Serving a file with an unknown mime type now correctly revert to the environment Content-Type. (Issue #785)
  • Duplicating a route to an environment now correctly save the new route in the environment JSON file. (Issue #790)
  • ⚠️ Breaking change: setVar helper has been reworked and is not breaking anymore when used inside an each. The usage of variables is also uniformized and now requires an @. See the updated documentation for more information. (Issue #793)

 Improvements

  • We improved the menus resizer visibility. (Issue #729)
  • text/xml content type is now suggested in the header autocomplete menu and is correctly enabling the editor's XML syntax highlighting. (Issue #798)

1.20.0

Welcome to this new release of Mockoon. There are several bug fixes and new features in this version that we hope you will like.


 Our platinum sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 Disabled rules

There is a new mode alongside randomized and sequential responses: disabled rules. It will always serve the default response and ignore the rules.

image

(Issue #498)

 Invert the response rule operator

You can now invert the response rules' operators by clicking on the toggle button with an exclamation mark:

route-response-rules-invert-operator

After enabling this option, you can read the operators like this: not a regex match, not equals, etc.

(Issue #690)

 multipart/form-data support

Templating helpers (body and bodyRaw) and response rules are now compatible with multipart/form-data. Entering requests containing multipart data with the correct Content-Type will be automatically parsed. You can then retrieve any variable or use them in the rules like you would do with a JSON body.

(Issue #347)

 Support for properties with dots

Properties with dots are now supported in the body and bodyRaw templating helpers and in the rules. Escape the dots when you want to reach values contained in a property with dots:

Copy
{ "property.with.dot": "value" }

rule accessing property with dots

body helper accessing property with dots

(Issue #338)

 Fixes

  • We fixed a race conditions where settings were accessed before being loaded. (Issue #751)

 Improvements

  • The route responses menu now takes the full available width (Issue #719)
  • We enabled XML support for the application/soap+xml content type. (Issue #757)

 Misc

We started working on a new internal release system that relies more on our own infrastructure rather than GitHub releases (Issue #769). This is a long-term plan that will allow us to offer more release channels in the future.

1.19.0

Welcome to this new release of Mockoon. There are several bug fixes and new features in this version that we hope you will like.

We also started working on the GraphQL mocking. As we want to deliver the right feature, we would be glad to gather more feedback on what you expect. Feel free to reach us on our Discord server, or comment on the issue.


 Our sponsor

Appwrite

Mockoon is an open-source project built by volunteer maintainers. If you like our application, please consider sponsoring us and join all the Sponsors and Backers who helped this project over time!

sponsor button


 Environment files change monitoring

After temporarily disabling the new environment files watcher in v1.18.1 due to an issue (#649), we reworked this feature from the ground up. It must now be manually activated in the settings and offers more choices:

enable file monitoring in settings

You can now activate the file watcher and reload the environments after validating a confirmation prompt, or automatically.

preview of file monitoring prompt

(Issue #649)

 Improved default route response selection

Defining the default response is now easier. Before this change, the default response was always the first one. Now, the blue flag indicates the default response and you can change it by clicking on the grey flags:

a default route response

change the default route response

(Issue #252)

 New templating helpers and Faker.js update

We added new templating helpers: lowercase, uppercase, and base64Decode. (Issues #655 and #625)

We also updated Faker.js to version 6. It offers some new helpers and locales. (Issue #716)

 Copy an endpoint full path

A new context menu entry is available to copy the full API endpoint path:

context menu with copy path to clipboard option

(Issue #633)

 Google Analytics removal

Following the introduction of a custom privacy-friendly telemetry system last year, we removed Google Analytics from the desktop application. (Issue #713)

 Fixes

  • The API prefix is now correctly removed when forwarding (using the proxy mode) to a prefixed endpoint. (Issue #585)
  • Logs are now properly displayed even when Mockoon is called with malformed URIs. (Issue #689)
  • The setVar helper is now correctly working inside block helpers. (Issue #706)
  • The faker helper now returns the correct value and not only strings. It makes this helper compatible with other helpers that requires numbers, arrays or booleans to work (e.g. int, if, each, etc.). (Issue #699)

 Misc

We moved the project to a monorepo to accelerate the development and reduce the amount of manipulation we have to do when working on features. (Issue #640)
We also updated the CI workflows to always test the packaged desktop application when opening PRs. It will greatly reduce the amount of testing needed during a release.

 Docs

We updated the OpenAPI documentation to explain the discrepancies between the specification and Mockoon's features.

 Thank you

A big thank you to the following people who helped to make Mockoon better: