Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.

Overview



Mockoon

Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source. It has been built with Electron and can be used on Windows (exe), Linux (deb, rpm, Appimage and Snap) and MacOS (dmg or brew). You can download it here: mockoon.com

screenshot

Sponsors

If you like Mockoon, you can support the project with a one-time donation: Paypal Buy Me A Coffee

You can also sponsor the maintainer (255kb) on GitHub and join all the Sponsors and Backers who helped this project over time!

Features

Mockoon offers many features:

  • unlimited number of mock local servers and routes
  • complete control on routes definition: HTTP methods and statuses, regex paths, file serving, custom headers, etc.
  • OpenAPI compatibility
  • Record/logs of all entering and forwarded requests
  • JSON templating
  • proxy forwarding mode
  • HTTPS support

You can check the complete list on the website.

Download

You can get Mockoon latest release directly from this repository or on the official website. Mockoon is also available through Homebrew brew cask install mockoon, Snap store snap install mockoon, Chocolatey choco install mockoon or AUR yay -S mockoon-bin (or any other AUR helper).

Documentation

You will find the documentation on the official website. It covers Mockoon's most complex features. Feel free to contribute or ask for new topics to be covered.

Support/feedback

You can discuss all things related to Mockoon, and ask for help, on the official community. It's also a good place to discuss bugs and feature requests before opening an issue on this repository. For more chat-like discussions, you can also join our Discord server.

Contributing

If you are interested in contributing to Mockoon, please take a look at the contributing guidelines.

Please also take a look at our Code of Conduct.

Roadmap

If you want to know what will be coming in the next release you can check the global Roadmap.

New releases will be announced on Mockoon's Twitter account @GetMockoon and through the newsletter to which you can subscribe here.

Comments
  • Enviroment name/port prefix etc. will not be updatenetg

    Enviroment name/port prefix etc. will not be updatenetg

    Describe the bug If you change the env the top en data will no updated (name, port etc.) when changing env

    To Reproduce

    • start mockoon an switch between multiple env. This work fine.
    • click inside the result body of the currently displayed route
    • change env
    • the env data will not be updated anymore

    Expected behavior Always update the env data

    Mockoon version: seen in 1.11.0 + 1.12.0

    OS / OS version: Windows 10

    bug 
    opened by volkerrichert 24
  • Slow response time

    Slow response time

    Response time for a basic response sourcing the body from a file is at least 2 seconds! Which isn't great.

    I've timed a bunch of requests:

    • 1: 1157ms
    • 2: 923ms
    • 3 485ms
    • 4 631ms

    Server response time should be under 200ms

    My payload:

    [
    	{
    		"title": "Hello. Today is Thursday.",
    		"body": "Finally, it’s nearly the weekend - not quite yet. But we’re now over the hump-day, and have two more days to go! ",
    		"key": 1,
    		"submitData": "By Ozzie - Thursday, 26th of July, 2018."
    	},
    	{
    		"title": "Long title post components?",
    		"body": "This is a complex matter, I like the short and snappy title, but I will need longer titles to make it work. ",
    		"key": 2,
    		"submitData": "By Ozzie - Thursday, 26th of July, 2018."
    	},
    	{
    		"title": "This just keeps getting better",
    		"body": "Important posts tag. Yep, a new tag that will be sorted so that they are at the top of the page, they will be more obvious, and will get a neat litle tag saying they're important",
    		"key": 3,
    		"submitData": "By Ozzie - Friday, 27th of July, 2018.",
    		"important": false,
    		"pinned": false
    	},
    	{
    		"title": "Wanted to end today on a high.",
    		"submitData": "By Ozzie, Sunday, 19th of July, 2018",
    		"body": "The implementation for sorting pinned posts away from standard ordinary posts is simple: Pull them out, delete their entry in the main object, create a new array, and then just add them onto the start once the main array has been populated. But it's a tad slow.. And I don't know why :(",
    		"pinned": true,
    		"important": false,
    		"key": 4
    	},
    	{
    		"title": "What's to come...",
    		"submitData": "By Ozzie, Sunday, 19th of July, 2018",
    		"body": "Syntax highlighting and markdown support (either that or a custom language), a rewrite of the post generation components and general tidying up of the code base. Also, while it doesn't necessarily matter, post generation is a bit slow. Not sure why, but yeah it's not as quick as it is supposed to be, though I think I can address that with the rewrite.  ",
    		"pinned": false,
    		"important": false,
    		"key": 5
    	},
    	{
    		"title": "Hello World",
    		"submitData": "Not sure of the date, this is just a test",
    		"body": "Literally, this is just a test. I think the [There's More] button is broken",
    		"important": false,
    		"pinned": false,
    		"key": 7
    	},
    	{
    		"title": "Nearly finished the frontend!",
    		"submitData": "Thursday, 16th of August, 2018",
    		"body": "**This is just a test**\n Things that I need to complete:\n\n+ Post submit page \n\n+ The backend",
    		"important": false,
    		"pinned": false,
    		"key": 8
    	}
    ]
    
    need investigation 
    opened by ozzie1998 21
  • Ignore rules and default response, return selected response instead

    Ignore rules and default response, return selected response instead

    Is your feature request related to a problem? Please describe. -Setting the default route response when no rules are matched is not straightforward. A drag and drop is needed to move it to the top of the dropdown

    • There is no way to force Mockoon to select a route response without interpreting the rules. This response could also be different from the default one.

    Describe the solution you'd like We need to add a system (checkboxes, etc) to be able to easily tell Mockoon:

    • this is the default response when no rule is matched
    • this is the response I want to force from now on (without consideration of the default one)

    Additional context /!\ UI needs to be clever and easy to use


    Original message:

    Currently there is a possibility to set response as a default (by dragging item in the responses list), but I see very useful option to "Ignore rules and default response", and return currently selected response from requested route.

    Usage example: I have a lot of different responses from one route, but each response have the same rules. From my perspective, I want to be able to simply choose which response should be currently returned by route (IMO, the best option is currently selected response, not default).

    Currently to achieve this, I have to change default response each time. It would be awesome to have it simpler.

    Thx for a great tool I use almost each day!

    Originally posted by @aantoniv in https://github.com/mockoon/mockoon/issues/191#issuecomment-566263943

    feature documentation App: Desktop 
    opened by 255kb 19
  • Add request_number rule

    Add request_number rule

    Parent issue https://github.com/mockoon/mockoon/issues/459

    Closes https://github.com/mockoon/mockoon/issues/459

    Technical implementation details

    Implement a new 'request_number' as described on the issue.

    opened by davidvieiratrustly 17
  • Add response.statusMessage data information in environment logs

    Add response.statusMessage data information in environment logs

    Closes #852

    Technical implementation details I've been added a new property statusMessage in Transaction.response located in packages\commons\src\models\server.model.ts for getting the statusMessage in "Logs" tab and some other places:

    • function CreateTransaction in packages\commons-server\src\libs\utils.ts that converts a pair of Request and Response objects in a Transaction object
    • EnvironmentLogResponse in packages\desktop\src\renderer\app\models\environment-logs.model.ts for showing the information from modified Transaction in "Logs" tab
    • function formatLog in packages\desktop\src\renderer\app\services\data.service.ts for converting the Transaction object in EnvironmentLogResponse object.
    • added a new item in "General" section of "Response" tab in packages\desktop\src\renderer\app\components\environment-logs\environment-logs.component.html
    • updated existing tests for covering my changes.

    Disclaimer: I'm not an experienced open software contributor or at least a JS developer, but I want to help you, Mockoon supporters, to make Mockoon better.

    Checklist

    • [ ] data migration added (@mockoon/commons)
    • [ ] data migration automated tests added (@mockoon/commons)
    • [ ] CLI automated tests added (@mockoon/cli)
    • [ ] desktop automated tests added (@mockoon/desktop)
    opened by AndreiOrmanji 16
  • [Feedback] UI improvements ideas

    [Feedback] UI improvements ideas

    /!\ This issue is only here to gather feedback. Ideas will be translated into real issues. /!\

    I would like to improve the interface a bit. So, I am opening this ticket for a while to gather ideas. Please add one idea per comment (with a markdown title "## idea number - title") and vote on ideas with πŸ‘ only.


    Idea 5: This is done and will be in v1.7.0, see #213 @aantoniv

    need feedback 
    opened by 255kb 16
  • Update UI to reflect server binding on multiple network interfaces

    Update UI to reflect server binding on multiple network interfaces

    Is your feature request related to a problem? Please describe. I was trying to use Mockoon to mock an API to develop a mobile application, but my requests were being rejected because Mockoon is binding on localhost but I'm trying to reach it from outside my PC.

    Describe the solution you'd like It would be nice to be able to change the IP on which Mockoon binds so that it is possible to reach it from the local network.

    Describe alternatives you've considered I tried to see if it was possible to redirect al request from local network to the loopback interface, but I found nothing.

    opened by bracco23 15
  • Mockoon on Apple Silicon M1 quite unexpectedly

    Mockoon on Apple Silicon M1 quite unexpectedly

    Hello, I have spent a bit of time to test the app, I have tried the Universal, the Silicon and and the brew installation but the application quite unexpectedly as soon as I start it, I am using the latest version 1.21.0 and MacOS Monterey version 12.4.

    Do you have any suggestion?

    bug 
    opened by blackat 14
  • Add option to return a specific response on route response to use a specific response if file did not exist

    Add option to return a specific response on route response to use a specific response if file did not exist

    Is your feature request related to a problem? Please describe. We have setup our mocks in our directories like this:

    Users/

    • GET.json
    • POST.json
    • Xq138f/
      • GET.JSON
    • Pm5eR/
      • GET.JSON

    And have a rule matcher set for that in mockoon GET: users/:userId

    File: mocks/users/{{urlParam 'userId'}}/GET.json

    Now here's the issue:

    GET /users/Xq138f -> returns 200 with the GET.JSON file as body (all good) GET /users/doesnotexist -> returns 200 with Error while serving the file content: ENOENT: no such file or directory, open 'mocks/users/doesnotexist/GET.json' (could have been 404?)

    Describe the solution you'd like A checkbox under the Settings tab of the route response to use the response when the matcher got nothing GET /users/doesnotexist.

    image

    WebApp options:

    Fallback Response Return a different response when there were no files matched the template

    Response Model:

    {
        "uuid": "",
        "body": "{\n  \"id\": 1,\n  \"firstname\": \"John\",\n  \"Lastname\": \"Snow\",\n  \"status\": \"Learning things\"\n}",
        "latency": 0,
        "statusCode": 200,
        "label": "Get userId 1",
        "headers": [
            //...
        ],
        "filePath": "mocks/users/{{urlParam 'userId'}}/GET.json`",
        "fallbackResponseUuid": "",                   // <------------ This one
        "sendFileAsBody": true,
        "rules": [
            //...
        ],
        "disableTemplating": false,
        "rulesOperator": "OR"
    }
    

    Describe alternatives you've considered I've tried using the rules to handle 404s, but it's quite counter intuitive for that usecase as it becomes a whitelist. And the consumer now needs to be aware which requests patterns would respond a 404.

    Additional context

    feature 
    opened by louiealmeda 14
  • Add import/export for Swagger / OpenAPI format

    Add import/export for Swagger / OpenAPI format

    Implement feature to import/export JSON or YAML files in Swagger / OpenAPI format. Both v2.0 and 3.0 of the format will be supported.

    (OpenAPI format was chosen after a poll in #38)

    feature 
    opened by 255kb 14
  • Decode gzip/deflate automatically when mocking a proxied request

    Decode gzip/deflate automatically when mocking a proxied request

    Is your feature request related to a problem? Please describe. When the origin server that I'm proxying responses with gzip/deflate encoded body, mockoon just shows the raw content when mocking the request. This is annoying since it's impossible to quickly adjust the response in the mock. See https://github.com/mockoon/mockoon/discussions/453

    Describe the solution you'd like

    • mockoon should automatically decode these response bodies when creating a mock
    • the returned mocked response should then be encoded again
    • an icon could indicate that the original response was and and the mocked one will be gzipped
    • optionally there could be a way of switching back to the raw content, but I personally don't have a use case for that

    Describe alternatives you've considered

    • there also could be a checkbox in the proxy settings to disable this feature, but I would prefer the icon/toggle described above

    Additional context

    image

    I worked around it by setting a proxy request header, but that's not very intuitiv: image

    opened by jschroeter 12
  • Add Linux ARM64 binaries

    Add Linux ARM64 binaries

    Discussed in https://github.com/mockoon/mockoon/discussions/903

    Originally posted by ntraider January 1, 2023 I have an Apple M1 Mac and would like to install Mockoon on a Ubuntu 22.04 VM (for ARM). The Mockoon Downloads page doesn't specify if its Intel/Arm version for Linux. These downloads don't seem to work on my VM though so assuming they are for Intel. Does anyone know if Mockoon is available for Linux ARM64 distros? Thanks.

    feature App: Desktop 
    opened by 255kb 0
  • Bump json5 from 2.2.1 to 2.2.3 in /packages/cli

    Bump json5 from 2.2.1 to 2.2.3 in /packages/cli

    Bumps json5 from 2.2.1 to 2.2.3.

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • [Request] Add support for developing in remote environments (e.g. Dockerized)

    [Request] Add support for developing in remote environments (e.g. Dockerized)

    This is a separation/extension of #663 that requests a web UI. Instead, I think that adding remote server support to the UI would cover the desired use-cases.

    To reiterate my comment:

    What I am imagining when I read this is that the hard-coded 0.0.0.0 of the current app becomes something that can be pointed to a remote server (incl. a locally-run Docker service with a different hostname). The start/stop server button can be extended to also include "remote connect" functionality, but there would also need to be a way of disabling remote environments that we might want to keep around but aren't actually "up".

    Under the hood, you just stream the incoming log data (useful for mocking from recorded requests) and the obvious outgoing config changes as if it were running locally. When the connection drops, either display an error or automatically disable the service.

    With this implemented, additional documentation can be added providing instructions for remote debugging, docker-compose development, etc.

    Would absolutely love to see this! This is a really great tool at it is, but being able to use it in a docker-compose development workflow would be a dream.

    The design of this likely needs to consider #815 as well.

    opened by m-roberts 0
  • Silent mode

    Silent mode

    I'd be really happy for silent mode, can be introduec as flag `-s, --silent. I'm using mockoon-cli to run mocks parallel with my client. I'd want to see the output only from my client cli. Probably there are some workarounds to achieve this of course but a silent flag could be a good addition to cli.

    feature App: CLI 
    opened by vltansky 3
  • Add

    Add "status" request helper

    Technical implementation details

    I want to propose this new helper. The impact is very little and it is simple to be used, but can be very useful in many cases. The idea is to be able to set the response status inside the template.

    Imagine a route like this:

    test/:id
    

    and a data bucket with name testdata and the following content:

    {
      "data": {
        "001": {
          "id": "001",
          "name": "Item 1"
        },
        "002": {
          "id": "002",
          "name": "Item 2"
        }
      }
    }
    

    now using a template like this:

    {{setVar 'selection' (concat 'data.' (urlParam 'id'))}}
    {{#if (dataRaw 'testdata' @selection true)}}
    {{data 'testdata' @selection}}
    {{else}}
    {{status 404}}
    {
      "error": "NOT_EXISTS"
    }
    {{/if}}
    

    we have a routes where we can return 200 with data if the data exists in the bucket

    GET /test/001
    

    or 404 if the data does not exist.

    GET /test/003
    

    To be able to check the path selection I've also added an optional flag on dataRaw helper, that return an empty string "" when the selection path does not match any property.

    If you accept this proposal I can finish it with tests and docs :P

    Checklist

    • [x] data migration added (@mockoon/commons)
    • [x] data migration automated tests added (@mockoon/commons)
    • [x] CLI automated tests added (@mockoon/cli)
    • [x] desktop automated tests added (@mockoon/desktop)
    feature 
    opened by dashie 1
  • Access variables dynamically

    Access variables dynamically

    Add the possibility to access variables dynamically by string.

    getVar 'varName'
    

    Usage:

    
    {
        "value": "{{getVar 'varName'}}"
        "value": "{{getVar (someHelper 'someValue')}}"
    }
    

    Currently its not possible to access variables dynamically but its possible to set.

    Example:

    {
        <!-- I can set a var using my session cookie as key -->
        {{setVar (cookie 'SessionId' '0') 'true'}}
    
        <!-- but I can't access it, there's no way -->
        "value": "{{@(cookie 'SessionId' '0')}}"
    
        <!-- would be great if I could access a variable as string -->
        "value": "{{getVar (cookie 'SessionId' '0')}}"
    }
    
    feature 
    opened by traviops 0
Releases(v1.21.1)
  • v1.19.0(May 30, 2022)

    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


    CLI

    [BREAKING CHANGE] We removed the support for Node.js 12 as it is not maintained anymore. (Issue #702)

    Environment files change monitoring

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

    image

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

    image

    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:

    route-responses-default change-route-responses-default

    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:

    image

    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 that helped to make Mockoon better:

    • @barefootdeveloper: Improved default route response selection. (Issue #252)
    • @tsgodara: Logs crashing when malformed URI sent. (Issue #689)
    Source code(tar.gz)
    Source code(zip)
    mockoon-1.19.0.AppImage(87.73 MB)
    mockoon-1.19.0.deb(60.05 MB)
    mockoon-1.19.0.rpm(60.07 MB)
    mockoon-1.19.0.snap(75.05 MB)
    mockoon.1.19.0.appx(94.94 MB)
    mockoon.portable.1.19.0.exe(57.88 MB)
    mockoon.setup.1.19.0.arm64.dmg(87.14 MB)
    mockoon.setup.1.19.0.exe(58.04 MB)
    mockoon.setup.1.19.0.universal.dmg(154.77 MB)
    mockoon.setup.1.19.0.x64.dmg(86.91 MB)
  • v1.18.1(Mar 5, 2022)

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


    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

    Patch v1.18.1

    We temporarily disabled v1.18.0's automated file changes monitoring (see below) due do some unforeseen bugs (Issue #649). We will investigate and fix the issue in the next release.

    Environment files changes monitoring

    Mockoon now monitors for environment's files external changes and automatically reloads the interface with the new data. It's completely automated and will restart the running server if needed. (Issue #580)

    Import/export deprecation

    We removed the options to import/export your mock data in Mockoon's proprietary format. Since v1.16.0, importing and exporting in Mockoon's format was made mostly useless. Environment files are now easier to share "as-is" and they are supported out of the box by the CLI. Also, user feedback indicated that keeping this export option was rather confusing.

    Here are the consequences of this removal:

    • import/export in Mockoon's format options were removed.
    • Exporting environments and routes to the clipboard (in the right-click context menu) now copy the regular JSON data, without wrapping them in the old export format.

    The application and the CLI are still able to open old export files, but you won't be able to create them anymore.

    (Issue #626)

    Mock API samples

    To help you mock third party APIs in no time, we added more than 2000 new mock samples: 1Password, AWS, Giphy Mastercard, Slack, etc. You can run them directly in the application or the CLI: image

    ➑️Head over to our website to discover all the Mock Samples!

    Many thanks to the awesome folks at APIs.guru who maintains this list of public APIs!

    Enhancements

    • Mockoon now directly streams files that do not support templating, or when templating is disabled, to improve the performance, especially the memory usage. (Issue #605)
    • The query string display in the logs has been improved. It now shows the raw query and the parameters in a more structured way: image (Issue #635)

    Fixes

    • dateTimeShift helper's days, months, years, etc. parameters are now compatible with helpers returning strings (queryParam, etc.). (Issue mockoon/commons-server#39)
    • Using bodyRaw without a path is now compatible with other helpers like each and allows to retrieve root level arrays. (Issue mockoon/commons-server#41)
    • Using numbers as body and bodyRaw paths, like in {{#repeat 2}}{{body @index}}{{/repeat}}, now works and returns the correct values. (Issue mockoon/commons-server#42)
    • AppImage format should now correctly show the application icon in the dock.

    Thank you

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

    • @timon: Improved query string display in logs. (Issue #635)
    Source code(tar.gz)
    Source code(zip)
    mockoon-1.18.1.AppImage(102.65 MB)
    mockoon-1.18.1.deb(69.65 MB)
    mockoon-1.18.1.rpm(70.06 MB)
    mockoon-1.18.1.snap(86.68 MB)
    mockoon.1.18.1.appx(90.44 MB)
    mockoon.portable.1.18.1.exe(56.02 MB)
    mockoon.setup.1.18.1.arm64.dmg(90.35 MB)
    mockoon.setup.1.18.1.exe(56.18 MB)
    mockoon.setup.1.18.1.universal.dmg(160.18 MB)
    mockoon.setup.1.18.1.x64.dmg(87.89 MB)
  • v1.18.0(Feb 28, 2022)

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


    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 changes monitoring

    Mockoon now monitors for environment's files external changes and automatically reloads the interface with the new data. It's completely automated and will restart the running server if needed. (Issue #580)

    Import/export deprecation

    We removed the options to import/export your mock data in Mockoon's proprietary format. Since v1.16.0, importing and exporting in Mockoon's format was made mostly useless. Environment files are now easier to share "as-is" and they are supported out of the box by the CLI. Also, user feedback indicated that keeping this export option was rather confusing.

    Here are the consequences of this removal:

    • import/export in Mockoon's format options were removed.
    • Exporting environments and routes to the clipboard (in the right-click context menu) now copy the regular JSON data, without wrapping them in the old export format.

    The application and the CLI are still able to open old export files, but you won't be able to create them anymore.

    (Issue #626)

    Mock API samples

    To help you mock third party APIs in no time, we added more than 2000 new mock samples: 1Password, AWS, Giphy Mastercard, Slack, etc. You can run them directly in the application or the CLI: image

    ➑️Head over to our website to discover all the Mock Samples!

    Many thanks to the awesome folks at APIs.guru who maintains this list of public APIs!

    Enhancements

    • Mockoon now directly streams files that do not support templating, or when templating is disabled, to improve the performance, especially the memory usage. (Issue #605)
    • The query string display in the logs has been improved. It now shows the raw query and the parameters in a more structured way: image (Issue #635)

    Fixes

    • dateTimeShift helper's days, months, years, etc. parameters are now compatible with helpers returning strings (queryParam, etc.). (Issue mockoon/commons-server#39)
    • Using bodyRaw without a path is now compatible with other helpers like each and allows to retrieve root level arrays. (Issue mockoon/commons-server#41)
    • Using numbers as body and bodyRaw paths, like in {{#repeat 2}}{{body @index}}{{/repeat}}, now works and returns the correct values. (Issue mockoon/commons-server#42)
    • AppImage format should now correctly show the application icon in the dock.

    Thank you

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

    • @timon: Improved query string display in logs. (Issue #635)
    Source code(tar.gz)
    Source code(zip)
    mockoon-1.18.0.AppImage(102.65 MB)
    mockoon-1.18.0.deb(69.64 MB)
    mockoon-1.18.0.rpm(70.06 MB)
    mockoon-1.18.0.snap(86.69 MB)
    mockoon.1.18.0.appx(90.43 MB)
    mockoon.portable.1.18.0.exe(56.02 MB)
    mockoon.setup.1.18.0.arm64.dmg(90.35 MB)
    mockoon.setup.1.18.0.exe(56.18 MB)
    mockoon.setup.1.18.0.universal.dmg(160.18 MB)
    mockoon.setup.1.18.0.x64.dmg(87.89 MB)
  • v1.17.0(Nov 30, 2021)

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

    UI redesign

    To improve some features' discoverability and declutter the interface a bit, we redesigned the main header. We also polished the interface a bit here and there. Here are the most significant changes:

    (Issue #509)

    New header design

    We transformed the main header into a new menu with tabs to make the proxy mode and logs more easily discoverable. We also split the environment settings into three new sections: the environment headers, the proxy options, and the environment settings.

    image

    The environment's information previously available in the header are now in the "Settings" tab. You can edit the environment's name in both the "Settings" page and the environment menu (see below).

    Environment's menu improvements

    We made small adjustments to the environment menu:

    • You can edit the environment's name directly in the menu.

    • We removed the "CORS" icon as the option is always enabled and moved the "HTTPS" icon next to the URL.

    • The "Truncate long paths" option in the application settings (ctrl+comma) also applies now to the environment menu. If enabled, environment URLs won't be truncated anymore.

      new-api

    Headers and rules "click-to-confirm" delete button

    Headers and rules lists now uses a click-to-confirm delete button:

    clickconfirm

    Responses list improvements

    The route responses menu is now split into two lines as it was becoming too cluttered.

    image

    File and body information display improvements

    We reorganized the "Status & body" tab. More precisely, we removed the redundant Content-Type information and replaced it with a small "footer" under the body editor. This footer will always display the effective Content-Type taking the order of precedence into account: environment headers β†’ file mime type β†’ route headers

    image

    Ability to provide custom TLS certificate

    You can now provide a custom TLS certificate to serve your mocks over HTTPS. Mockoon still uses the same self-signed certificate as before if you don't provide a custom one.

    image

    (Issue #175)

    New response rules for cookies

    A new response rule is available to check a cookie's value or presence:

    image

    (Issue #475)

    New templating helpers

    • New Handlebar helpers are available: join, len, gt, lt, gte, lte, eq, toFixed, round, stringify, slice. Head over to the helpers documentation to learn how to use them. (Issues mockoon/commons-server#29, mockoon/commons-server#31, mockoon/commons-server#32)

    Misc

    • When creating a new environment, the default name won't be "New environment" anymore but will be taken from the chosen environment's file name. (Issue #598)
    • Cookie domains are now removed when forwarded with the proxy mode. (Issue #245)

    Bug fixes

    • Fixed setVar helper which could not handle Object, 0 or Arrays. (Issue mockoon/commons-server#33)
    • Fixed switch/case helpers which wouldn't work properly with number. (Issue mockoon/commons-server#37)
    • We switched from using a (heavy) icons font to using inline SVG to solve the icons flickering issue when loading the application. (Issue #509)

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.16.0(Oct 15, 2021)

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

    New storage system

    The main feature of this release is the new storage system that allows for more flexibility and easier API sharing. The new system works more or less like any other file editor. It stores environments separately and lets you close and open them from anywhere on your hard drive. So, what exactly happened during this update? Mockoon split Your existing data file located in the application data folder into as many files as you had environments. These files were created in the same storage folder with incremental names: environment-0.json, environment-1.json, etc.

    You can now move these files anywhere on your hard drive and open them from there.

    migration

    Multiple benefits from this change:

    • you can now more easily share your environments with your coworkers by saving them in a Git-tracked folder. There is no need to import/export every time there is a change anymore.
    • we added an environment schema validation to ensure that the environment you load is valid and does not break the application behavior.

    You can find out more about this feature in our blog post.

    Body files relative path resolving

    Mockoon will now try to resolve your body files relatively to the environment's file location. It allows you to store body files alongside the environment file and share them with your coworkers without having relative or absolute path issues.

    (Issue #531)

    New buttons and menu entries

    Following the new storage change, we added several new buttons and options to allow you to manage your environment files.

    • You can create a new environment or open an existing one using the two buttons at the top of the environment menu:

      image

    • You can now close one environment using the context menu:

      image

    • There is a new context menu entry you can use to locate the environment file on your computer:

      image

    Most of the actions tied to the environments also changed. You will now get prompted to choose a folder location for your new environment every time you create, duplicate, or import.

    New mock samples

    We added more API samples to help you start working in no time. You can find them on our website. Starting with this version (1.16.0), you can load them directly in Mockoon by clicking on the "Open" buttons on the page.

    image

    (issue #551)

    Environment menu redesign

    We reverted last year's change that made the environments' menu collapsible. This menu was only showing the first two letters of the environment's name. We listened to your feedback, and we decided to revert this change and go back to a resizable menu. We tried to keep it as compact as possible, considering that most users have no more than one or two environments. Let us know what you think!

    image

    (Issue #386)

    XML support

    Response rules and body templating helper now support XML in entering requests. See the documentation for more information.

    (Issue #208)

    New rules operators

    Two new rules operators, "null" and "empty array", were added to allow you to check against null values and empty arrays in bodies, query params, etc.

    image

    (Issue #255)

    Route filtering shortcuts

    We added some keyboard shortcuts to the route filtering: Cmd or Ctrl + Shift + F to focus, Esc to clear the field. (Issue #451)

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.15.0(Aug 14, 2021)

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

    Windows portable version

    Mockoon is now available as a portable version for Windows. You can download it from our website. When running the portable version, a data folder will automatically be created next to the executable. It contains Mockoon's application files and your settings and environments in ./mockoon-data/storage/environments|settings.json (these files are usually stored in c:/Users/xxx/AppData/Roaming/mockoon/storage for the non-portable application):

    image

    Localhost only

    You can now set up your mocks to listen to localhost only instead of all network adapters (0.0.0.0). This feature is also supported by the CLI's latest release to a greater extent as you can provide any hostname at runtime mockoon-cli ... --hostname 192.168.x.x. (Issue #469)

    image

    Preview compressed body in logs

    Compressed bodies (gzip, brotli and deflate) from proxied APIs are now automatically decompressed to be able to read the body content in the logs. (Issue #479)

    image

    Rules reordering

    Rules can now be reordered with a simple drag and drop. Check our documentation about rules order interpretation. (Issue #456)

    route-response-rule-reorder

    New templating helpers

    • We added some new math helpers: add, subtract, multiply, divide, modulo, ceil, floor. See the documentation for more information on how to use them. (Issue #499)

    • Two new helpers, bodyRaw and queryParamRaw, are available. They allow you to fetch part of the entering body or query parameters "as-is" (nothing will be stringified) and use the result (arrays, objects, etc.) in Handlebars' {{#each}} or {{#if}} helpers. See the documentation for more information. The body and queryParam helpers remain untouched. (Issue mockoon/commons-server#18)

    • A new split helper allows you to split string and use the resulting array in Handlebars' {{#each}} helpers. See the documentation for more information. (Issue mockoon/commons-server#22)

    404 fallback

    A new route response option has been added to automatically send a 404 status when a file was not found. It also reverts to the body present in the editor. (Issue #473)

    image

    Improvements:

    • You can now tune the number of logs entries in the settings. (Issue #267)

      image

    • We added a new and privacy friendly way to collect basic usage information (a.k.a. "telemetry"). This will collect a minimal amount of information anonymously. You can read more about this topic in our FAQ. We plan to remove Google Analytics completely in a near future. (Issue #518)

    Fixes:

    • The header helper does not return an error message anymore when no name is provided. (Issue mockoon/commons-server#14)

    • The dateTimeShift helper is now compatible with other helpers like queryParam for the date parameter: {{dateTimeShift date=(queryParam 'date') ...}}. (Issue mockoon/commons-server#15)

    • When duplicating a route to an unnamed environment, the hostname, port, and prefix has been added to the modal dialog. (Issue #532)

    Developer things

    • Electron's main process code is now built with Webpack to make code splitting easier. (Issue #495)
    • We updated Angular to v12 and Electron to v13. (Issue #524)

    Thank you

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

    • @barefootdeveloper: Server listening to localhost only, configurable number of log entries. (Issue #469 and #267)
    • @louiealmeda: File not found 404 fallback. (Issue #473)
    Source code(tar.gz)
    Source code(zip)
  • v1.14.1(May 19, 2021)

    V1.14.1 Changelog

    This patch addresses the following issue:

    • Allowing duplicated headers (issue #318) was causing some issues with the pre-flight OPTIONS calls and breaking the route headers precedence over environment headers. Duplicated headers are now limited to the Set-Cookie header. (Issue #480)

    V1.14.0 Changelog

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

    • With this release, we decided to take the CLI out of beta πŸŽ‰. There is still space for improvements, but it looks stable enough. One breaking change though: Node.js v10 is not supported anymore.

    • More users are joining Mockoon's community every day, spreading the word, contributing to the codebase, and giving us invaluable feedback. We are grateful for this. ❀ While we dedicate more and more time to this project, we are looking for sponsors to help us pursue this great endeavor.

    • We are interested to learn about specific use cases you or your company encountered. It could even become an article, like Impala's API UX research process we recently published. Contact us!

    And now the changelog:

    Features:

    Custom status codes (Issue #199)

    We added some missing status codes to the dropdown, but more importantly, you can now enter custom status codes. Even very invalid ones like 999.

    demo

    Sequential responses (Issue #459)

    A new option is now available to serve different responses sequentially. In the below example, Mockoon will answer with 200 β†’ 404 β†’ 500 β†’ 200 β†’ 404... and so on. The sequence gets reset after restarting the server.

    image

    Head over to the sequential responses documentation to learn more about this feature.

    Request number response rule (Issue #459)

    A new type of rule, "Request number", is now available. It allows you to serve a specific response depending on the index (number) of the entering requests. As for the sequential responses feature, it gets reset when restarting the server.

    This example returns a 500 error only for the first call:

    image

    While this one returns a 500 error for the first 9 calls:

    image

    Head over to the response rules documentation to learn more about this feature.

    Misc

    • A new baseUrl helper has been added which returns the request's base URL (without the route path): {protocol}://{hostname}:{port}/{prefix}. (Issue mockoon/commons-server#7)

    • A new option has been added to prevent forwarding of the API prefix when the proxy mode is enabled. (Issue #237)

      do-not-forward-prefix

    Improvements:

    • To improve the application stability, only one instance can run at a single time. Running a second instance of the application will focus the running instance if any. (Issue #455)

    • Multiple headers with the same name are now supported everywhere (route headers, environment headers, proxy request/response headers). This may be a non-standard way of sending the headers (vs comma-separated values) but a common one, especially for the Set-Cookie header. (Issue #318)

    • We added more suggestions to the header names and values dropdowns to help you mock faster!

    • Thanks to work on issue #199, we improved the look and feel of the HTTP methods dropdown with improved hype (and more accessible) pastel colors.

      demo2

    • "Port is invalid" message has been updated to "Port is invalid or access is denied" to give more hints about the potentially reserved ports on Windows. (Issue #463)

    Fixes:

    • We updated the Faker.js library to its latest version. This indirectly solved the issue with 'internet.avatar' URLs returning a 403. (Issue mockoon/commons-server#1)
    • Having a response with empty rules but an AND operator does not interrupt the rules evaluation and does not serve the wrong response anymore. (Issue mockoon/commons-server#6)
    • Route path and prefix duplicated slashes are now correctly deduplicated when running the server. (Issue mockoon/commons-server#9)

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.14.0(May 17, 2021)

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

    • With this release, we decided to take the CLI out of beta πŸŽ‰. There is still space for improvements, but it looks stable enough. One breaking change though: Node.js v10 is not supported anymore.

    • More users are joining Mockoon's community every day, spreading the word, contributing to the codebase, and giving us invaluable feedback. We are grateful for this. ❀ While we dedicate more and more time to this project, we are looking for sponsors to help us pursue this great endeavor.

    • We are interested to learn about specific use cases you or your company encountered. It could even become an article, like Impala's API UX research process we recently published. Contact us!

    And now the changelog:

    Features:

    Custom status codes (Issue #199)

    We added some missing status codes to the dropdown, but more importantly, you can now enter custom status codes. Even very invalid ones like 999.

    demo

    Sequential responses (Issue #459)

    A new option is now available to serve different responses sequentially. In the below example, Mockoon will answer with 200 β†’ 404 β†’ 500 β†’ 200 β†’ 404... and so on. The sequence gets reset after restarting the server.

    image

    Head over to the sequential responses documentation to learn more about this feature.

    Request number response rule (Issue #459)

    A new type of rule, "Request number", is now available. It allows you to serve a specific response depending on the index (number) of the entering requests. As for the sequential responses feature, it gets reset when restarting the server.

    This example returns a 500 error only for the first call:

    image

    While this one returns a 500 error for the first 9 calls:

    image

    Head over to the response rules documentation to learn more about this feature.

    Misc

    • A new baseUrl helper has been added which returns the request's base URL (without the route path): {protocol}://{hostname}:{port}/{prefix}. (Issue mockoon/commons-server#7)

    • A new option has been added to prevent forwarding of the API prefix when the proxy mode is enabled. (Issue #237)

      do-not-forward-prefix

    Improvements:

    • To improve the application stability, only one instance can run at a single time. Running a second instance of the application will focus the running instance if any. (Issue #455)

    • Multiple headers with the same name are now supported everywhere (route headers, environment headers, proxy request/response headers). This may be a non-standard way of sending the headers (vs comma-separated values) but a common one, especially for the Set-Cookie header. (Issue #318)

    • We added more suggestions to the header names and values dropdowns to help you mock faster!

    • Thanks to work on issue #199, we improved the look and feel of the HTTP methods dropdown with improved hype (and more accessible) pastel colors.

      demo2

    • "Port is invalid" message has been updated to "Port is invalid or access is denied" to give more hints about the potentially reserved ports on Windows. (Issue #463)

    Fixes:

    • We updated the Faker.js library to its latest version. This indirectly solved the issue with 'internet.avatar' URLs returning a 403. (Issue mockoon/commons-server#1)
    • Having a response with empty rules but an AND operator does not interrupt the rules evaluation and does not serve the wrong response anymore. (Issue mockoon/commons-server#6)
    • Route path and prefix duplicated slashes are now correctly deduplicated when running the server. (Issue mockoon/commons-server#9)

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.13.0(Apr 20, 2021)

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

    Features:

    • Routes can now be filtered by path and documentation (Issue #257):

      routes filtering

    • Three new string manipulation helpers are now available: indexOf, includes, substr. See documentation for more information. (Issue #413)

    Fixes:

    • Fix setVar helper not working in block helpers like repeat. (Issue #429)
    • Add a new third parameter (boolean) to the body helper to returns the stringified value even if it's a primitive. (Issue #397)
    • Add a new third parameter (boolean) to the queryParam helper to returns the stringified value. (Issue #418)
    • Proxied binary bodies are no longer converted to UTF-8 strings and are now forwarded "as-is". (Issue mockoon/commons-server#3)
    • When switching route responses the body undo state does not contain other routes' body content anymore. (Issue #309)
    • Adding a trailing slash to the API prefix do not returns 404s on all endpoints anymore. (Issue #422)

    Misc:

    • Mockoon is now more secure by a combination of enabling Chrome sandboxing and Electron context isolation. We also disabled Node.js integration and stopped using the remote module in Electron's renderer process. These best practices have been pushed and enabled by default by Electron's team in the most recent versions. We took it on ourselves to try to follow them all and rewrote part of the application architecture. Aside from the improved security and prevention of future vulnerabilities like XSS and RCE, we also saw slightly better performances overall. (Issue #349)
    • max-http-header-size which was limited to 8kb is now limited to 16kb thanks to an update to Node.js v14. (Issue #442)

    Thank you

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

    • @mauriceackel: New stringify parameter for body and queryParam helpers. (Issue #397, Issue #418)
    • @SimonPStevens: New string manipulation helpers. (Issue #413)
    Source code(tar.gz)
    Source code(zip)
  • v1.12.0(Mar 4, 2021)

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

    • The CLI is finally available πŸ₯³ It allows you to easily run your mocks on a server or CI environment. This was our little 2020 challenge and you can learn more about it in this blog post.
    • We have a new Discord server. You can use it to ask for help or discuss ideas and improvements (or just say hi πŸ‘‹), alongside the discussions tabs on the application repository or the CLI repository.
    • Our founder @255kb is now full time on the project! 2021 is going to be an exciting year for Mockoon πŸš€

    And now the changelog:

    New features

    • Three new helpers are available:

      • concat to create string from multiple strings and variables. (Issue #391) {{ concat 'value1' 2 'value3' ... }}

      • setVar to create string values to be reused elsewhere in the template. (Issue mockoon/commons#8). {{ setVar 'varname' 'value' }} {{ varname }}

      • dateTimeShift to shift a date from x days, months, etc. (Issue #355) {{ dateTimeShift date='2021-01-01' format='yyyy-MM-dd' years=1 months=1 days=1 hours=1 minutes=1 seconds=1 }}

      Please check the documentation for more information on how to use these helpers.

    • Body response rules can now be used to match against the entire raw body. To use this feature, just keep the modifier empty. (Issue #271)

      image

    • You can now duplicate routes from one environment to another. (Issue #308)

      image

    Improvements

    • Route headers and rules tabs now show the totals of each. (Issue #299)
    • OpenAPI default responses are now considered as 200 and will get a body example from the available schema. (Issue #378)
    • OpenAPI parser is now compatible with Content-type that contains a charset application/json; charset=utf-8. (Issue #379)

    Bug fixes

    • Fixed a crash when importing OpenAPI specification files with no servers property. (Issue #415)
    • Fixed a bug when importing or duplicating an environment with no routes. (Issue #416)
    • Some users reported a bug where the main window cannot be maximized in Debian with XFCE. We weren't able to reproduce the issue but we tried to fix it anyway with some black magic. Let us know if things improved or not. (Issue #357)
    • Fixed a bug in the response rules interpreter when comparing against null values. (Issue mockoon/commons#16)
    • Fixed API prefix and endpoint paths leading and duplicated slashes not being sanitized anymore. (Issue #421)
    • The splash screen transparency issue on Linux is no longer there due to use of a new splash screen. (Issue #364)

    Misc

    • Fine tune some settings to improve the performance. (Issue #376)
    • Migrated from Angular 8 (😱) to 11. (Issue #358)

    Thank you

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

    • @bykof: Rules full body match. (Issue #271)
    • @izerozlu: Duplicate routes to another environment. (Issue #308)
    • @TheDartCode: Rules and headers tabs count. (Issue #299)
    Source code(tar.gz)
    Source code(zip)
  • v1.11.0(Nov 12, 2020)

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

    • There is a new tutorials section on the website, where you will be able to learn new mocking tricks.
    • The development of the CLI started and is progressing well (we already have a basic version working internally, yay!). It required some heavy refactoring tackled in this version.
    • We can now say "we" for real as a second maintainer joined the team for twice the throughput πŸš€. You can follow Fabrice on GitHub πŸŽ‰.

    And now the changelog:

    New features

    • Route responses can now be randomized. This option available next to the route responses list will have priority over the rules. As a consequence, the CORS icon changed to reuse the "shuffle" icon for this feature. (Issue #269)
    • Valid MongoDB ObjectIds can now be generated with a new objectId helper. See the templating documentation for more information. (Issue #342)
    • The export menu has a new option to export the currently selected environment only. (Issue #251)
    • Environments can now be started/stopped all at once with a new menu option (Action -> Start/stop/reload all environments). (Issue #90)

    Improvements

    • When auto-mocking from the environment logs, the API prefix is no longer part of the newly created route path. (Issue #333)

    Bug fixes

    • Fix automated tests not running correctly due to the newly added splash screen. (Issue #341)
    • Fix broken layout in some rare cases due to usage of responsive row/col. (Issue #365)

    Misc

    • Update Mockoon to Electron 10. (Issue #350)
    • Update automated tests to Spectron 12 to improve the tests stability. (Issue #350)
    • Project was migrated from TSlint to ESlint, in order to reuse the configuration for the commons library and the future CLI. (Issue #360)
    • Current application and future CLI's shared code have been extracted in a new library. (Issue mockoon/commons#1).

    Thank you

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

    • @codingcircus: Start all environments menu entry. (Issue #90)
    • @gVirtu: Export current environment option. (Issue #251)
    • @lukefx: objectId helper. (Issue #342)
    • @sleepypikachu: newline and base64 helpers. (Issue #333)
    • @Thanakorn-ki: Randomized route responses. (Issue #269)
    Source code(tar.gz)
    Source code(zip)
  • v1.10.0(Sep 14, 2020)

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

    New features

    • A JSON body sample is now generated during a Swagger/OpenAPI file import when a schema is present. (Issue #288)
    • Response rules can now be interpreted as OR or AND. (Issue #201)
    • Rules can now check JSON bodies number and boolean values. (Issue #321)
    • Two new helpers are available in the templating system: newline, which inserts the newline character "\n", and base64 inline or block helper to encode all your stuffs. For more information, please refer to the official documentation. (Issue #331)

    Bug fixes

    • Fix an issue where some helpers (queryParam, body, etc) couldn't be used as switch helper value. (Issue #325)
    • Fix crash when importing Swagger files where the host property is missing. (Issue #326)
    • Binary files are now properly sent instead of being converted to strings. (Issue #324)
    • Windows-like file path (with backslashes) are now compatible with templating helpers C:\Users\username\Desktop\{{ urlParam 'id' }}.json. (Issue #323)
    • The environment's logs layout is not broken anymore when displaying long binary bodies. (Issue #335)
    • Fixed a silent error when export dialog was canceled. (Issue #337)

    UI improvements

    • Export menu items are now disabled when there is no environment to export. (Issue #336)
    • Route path input now autofocus after adding a new route. (Issue #334)
    • Mockoon has a new fancy loading screen πŸ‘€ to avoid content flickering during load.

    Misc

    • Work has started on the CLI (mainly refactoring), but shhh 🀫 don't say it too loud, there is still a long way to go!

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.9.0(Jul 23, 2020)

    Welcome to this new version we hope you will like. It brings some new features and many new improvements to the templating system and error reporting. The application also has a new documentation section on the official website, which replaces the old tutorials section.

    Templating system

    • Dummy JSON helpers ({{firstName}}, {{date}}, etc) that could be used in the body have been replaced by Faker.js. This brings a lot more helpers together with many locales that can be selected in the settings. All the old helpers remain compatible and are automatically linked to their Faker.js equivalent. Faker.js helpers use the following syntax: {{faker 'company.companyName'}}, {{faker 'name.firstName'}}, etc (Issue #293)
    • Improvements to the body helper:
      • JSON Objects and arrays can now be retrieved from the entering request's body with templating helpers and added to the response body. (Issue #291)
      • The full request's body can now be retrieved with the body helper used with no parameter: {{body}}. This is compatible with any Content-Type. (Issue #276)
      • The body helper has been improved for x-www-url-encoded bodies. Objects and arrays are now supported. (Issue #290)
    • Improvements to the queryParam helper: as for the body helper, the queryParam helper can now retrieve paths, arrays, objects, or the full query params object. (Issue #265 )
    • Templating can now be disabled for bodies and files content. Head up to the new route response's "Settings" tab. (Issue #129)

    For more information about the templating system, please refer to the official documentation.

    Errors feedback

    Application errors feedback has been greatly improved especially for JSON content (Issue #253):

    • All errors, including templating errors, are now reported in the response body.
    • Erroneous JSON bodies are now sent in the response to make debugging easier.
    • Incoming and outgoing bodies can now be easily viewed in an editor with linting activated in the environment logs ("clock" icon, in the upper right corner). This is especially useful to view the outgoing body built with the templating helpers.
    • Templating system errors are now better reported, including for templating used in headers or file path.

    Other improvements

    Features

    • Route responses can now be duplicated by clicking on the "copy" button next to the route response's tabs. (Issue #250)

    UI improvements

    • Routes and environment logs menus can now be resized. These preferences are automatically saved. (Issue #104)
    • Scrollbars now have a lighter color to make them more visible. (Issue #297)
    • The "Open in browser" button next to the route path is now always visible but disabled for non GET routes. (Issue #287)
    • The file browsing button use has been clarified by adding a tooltip. (Issue #254)
    • Scrolling of environments and routes menu has been disabled when duplicating. (Issue #296)

    Bug fixes

    • Data storage has been improved to better handle crashes and report errors. (Issue #313)
    • When serving a file, the environment's Content-Type could override the file's detected mime type. A route Content-Type can still override the detected mime type. Order of precedence: Route's Content-Type > File's mime type > Environment's Content-Type. (Issue #295)
    • Application was crashing when using some templating helpers ({{boolean}}). (Issue #285)
    • Fixed a bug when binary bodies were truncated for environment logs. (Issue #294)
    • The route responses dropdown is now scrollable should you have a lot of items. (Issue #305)
    • Environment logs response and request tabs do not scroll with the content anymore. (Issue #311)
    • Body editor's tab size is now set to 2 spaces by default. It was previously set to 4, which was inconsistent with other options using 2 spaces. (Issue #312)

    Misc

    • Demo environment has been updated to better show Mockoon's capabilities. (Issue #300)
    • Release notes are now shown on startup after an update. (Issue #302)
    • The official website has a new versioned documentation regrouping the old "tutorials". It will be frequently updated to reflect the application evolution and add new topics.

    Code enhancements/developer experience

    • Environment logs system have been refactored to easier future developments.

    Thank you

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

    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Apr 16, 2020)

    Mockoon is now compatible with Swagger/OpenAPI formats both for import and export. This release also packs lots of improvements and some new features:

    Features:

    • Add support for import/export of Swagger and OpenAPI formats #86
    • Environments menu is now smaller and collapsed by default #173 Thanks to @JoshMLeslie
    • Specific proxy headers can now be sent to proxied servers and added to their responses #223 Thanks @neocodegs

    Improvements:

    • A new setting is available to show the complete route path in the menu instead of a truncated version #227 Thanks @johnwest80
    • Add a templating helper to read cookies content #235 Thanks @sleepypikachu
    • Duplicated routes and environments are now inserted after the original instead of the end of the list #239 Thanks @sleepypikachu
    • 404s now returns global environment headers #136 Thanks @abiodunjames
    • Proxied responses returning a 404 now correctly propagate proxied environment headers and proxy headers #240 Thanks @abiodunjames
    • Etag header has been removed to avoid browser caching #244
    • ExpressJS x-powered-by header has been removed
    • Environment logs body section is now opened by default #200
    • Some application logs can now be found in the Mockoon data folder (available from the Help menu) in the logs folder #262
    • Add missing HTTP status code 418 #270
    • Increase route responses dropdown width #249

    Bugfixes:

    • Content-Type was fetched in a case sensitive manner which could lead to JSON parse errors when the route's Content-Type was different from environment's #243
    • Using native actions menu could crash the application when no environment was present #233
    • Environment logs menu icons are not hidden anymore when long routes are displayed #238 Thanks @sotcha
    • Increase server timeout to 1 hour to allow the setup of long latencies #258
    • Fix rules always returning true for regexes when the target (body, ...) was undefined #259
    • Fix bug with automatically mocked routes hanging when Set-Cookie header was involved #229
    • Fix race conditions between environments migration and settings loading #283

    Code enhancements/developer experience:

    • A Docker image has been created to easier Arch Linux repository updates #231 Thanks @Spissable
    • Update application dependencies, review imports, add missing types #275
    • Reduce the number of events sent to Google Analytics to avoid exceeding the free tier #277
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Dec 13, 2019)

    During this iteration, the import/export system has been revamped. Exports are now independent of Mockoon's version and migrations are played after an import on each environment independently. Which will make data exports easier to share. As before, a single route exported with the "copy to clipboard" feature cannot be imported on a different version.

    Features:

    • Migrations are now played on each imported environment independently #21
    • File export is now fully compatible with a clipboard export (clipboard content can be pasted in a JSON file and imported) #102

    Improvements:

    • Added a label to better identify route responses #170
    • Data are now exported without UUIDs to easier sharing #216
    • Avoid possible crashes by preventing using a migrated environment on an older Mockoon version #218
    • Added a link in the help menu to open the application data folder #184
    • Added a keyboard shortcut to export all environments to JSON #134

    Bugfixes:

    • Fixed a bug where data were wiped on the second launch of a fresh install #217
    • Support Content-Type with charsets (or any additional information after a ;) that were preventing rules to be triggered #214

    Development:

    • Add Prettier for better code formatting
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Nov 13, 2019)

    Special thanks to @gabrielperes97 who worked on most of these great additions πŸŽ‰

    Mockoon is now available on Arch Linux repository thanks to @Spissable πŸ‘ Install it with yay -S mockoon-bin (or any other AUR helper).

    Features:

    • Create mock routes from environment logs entries (proxied or not) #139 Thanks @gabrielperes97
    • Add possibility to enable/disable a route #106 Thanks @gabrielperes97
    • Environment log's bodies from entering request and outgoing responses can now be truncated to desired length in the settings #186 Thanks @gabrielperes97

    Improvements:

    • Add an icon next to the first route response to better indicate the default one #171
    • Update to Electron 7 #183
    • New environments (created or duplicated) get next available port or a random one instead of default 3000 #192 Thanks @gabrielperes97
    • Mockoon is now available on Arch Linux repository #202 Thanks to @Spissable

    Bugfixes:

    • Fixes a bug where UI wasn't refreshing after selecting a file to serve #189
    • Fixes a bug where adding/removing a route wasn't displaying the "restart needed" indicators #187
    • Hide two macOS specific menu entries on Windows and Linux #193

    Development:

    • Automate binaries build for the 3 targeted platforms #181
    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Oct 16, 2019)

  • v1.5.0(Oct 7, 2019)

    /!\ This release has a bug causing duplicated routes to share the same route responses. Please choose v1.5.1 which solves it. /!\


    Mockoon is now available to download through Snap store, together with deb and rpm formats!

    Features:

    • Add multiple responses per route with possibility to set triggering rules #75
    • Add Mockoon's responses log side by side with entering requests #155 & #138 Thanks @gabrielperes97
    • Linux users can now download Mockoon in deb and rpm formats alongside AppImage. Mockoon is also available on Snap Store. #168

    Improvements:

    • Update UI to reflect server binding on multiple network interfaces #99
    • Update "someOf" helper to return a string or an array #131
    • Make documentation field less confusing by moving it down and rewriting the placeholder #140
    • Replace old deprecated wiki "help" menu link with Spectrum community link #135
    • MacOS binary has been notarized, which should easier the installation on macOS Mojave #71

    Bugfixes:

    • Correct bug where body formatting option was not propagating the changes immediately #147

    Misc:

    • Add multiple responses tutorial on the official website https://mockoon.com/tutorial/multiple-route-responses
    • Update request logs to reflect new responses log feature https://mockoon.com/tutorial/incoming-requests-logs

    Development:

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(May 14, 2019)

    Mockoon has moved on a GitHub organization and a new member joined the team. Welcome to @axc450 !

    Improvements:

    • Add warning next to the path input to prevent accidental declaration with query params #88
    • Allow environment headers to override automatic OPTIONS CORS headers #85
    • Add JSON pretty print in body #103 (Thanks @vankeer)
    • Support Hide / Hide Others / Settings standard shortcuts on macOS #93 (Thanks @axc450)
    • Add support for current date time in templating helpers (with now helper) #96
    • Add support for x-www-form-urlencoded params in body templating helper #116
    • Improve JSON export formatting #123 (Thanks @axc450)

    Bugfixes:

    • Fixed bug where an error would appear if a user cancels a file select during export #107 (Thanks @axc450)

    Misc:

    • Application was completely rewritten to use custom Redux-like state management. With this, Mockoon is more stable and app behavior is more predictable #95

    Development:

    • Use local test data in ./tmp folder instead of default user folder #109
    • Add more functional tests
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Dec 16, 2018)

    Features:

    • Add new environment's headers that are applied to all routes #56
    • Add route documentation field #63
    • Some files with specific mime types will get their content parsed for templating #80 ( See templating tutorial )

    Improvements:

    • File input field is now editable and supports templating #52 ( See templating tutorial )
    • Add search box in body editor #79
    • Automatically select the first item in autocomplete list and correct some display and usability bugs
    • New environments will be created with global JSON Content-Type but no Content-Type for routes
    • Make routes with spaces work when request in encoded #73
    • Added option to add CORS headers to new environment headers #56
    • Some minor improvements to the interface mainly for readability
    • Allow relative path for files thanks to editable file input #84

    Bugfixes:

    • Correct crash when declaring routes with invalid regex syntax
    • Remove links in changelog modal which were loaded inside Electron's main window
    • Solve Linux AppImage icon not showing #72

    Misc:

    • Start adding functional tests with Spectron for more stability
    • Add more tutorials on the official website: templating and headers
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Oct 27, 2018)

    Improvements:

    • Update all dependencies (Electron 3 shipping with Chrome 66 and Node.js 10, Angular 6)
    • Allow parsing of entering request's body event if Content-Type has not been set to JSON #64 & #65 Thanks @alonbhaim
    • Enable templating in header values #51 and on any body types (text, HTML, JSON, etc)
    • Display version changelog in a modal when clicking on version number

    Bugfixes:

    • Routes reordering wasn't saved if no other update occured on an environment
    • Routes weren't assigned an UUID upon creation which resulted in reordering errors
    • Correct bug where body helpers were outputting[object object] when no default value were provided #66
    • Display a proper error message and alert when using a templating helper that does not exists instead of failing silently

    Misc:

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Sep 25, 2018)

    Improvements:

    • Allow text selection in request logs #54
    • Make UI a little bit lighter to improve readability #46

    Bugfixes:

    • Correct body helper parsing error when request body was not JSON #59
    • Correct body not being sent in proxy mode #60
    • Correct typos #57 Thanks @mivanov
    • Correct bug when trying to pass an invalid Content-Type
    • Correct broken analytics tracking since release v1.0.0
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Aug 24, 2018)

    Mockoon is now out of beta in a big release with some long awaited features. I hope you will enjoy it πŸ˜„

    Changelog:

    Features:

    • Import/Export: All environments can now be imported and exported in a file and each environment and route can be "exported" to clipboard and imported from clipboard (#7) Wiki Page
    • Requests log: All entering requests are now logged in each environment (#15) Wiki Page

    Improvements:

    • Support for OPTIONS requests has been added together with a new environment setting to toggle automatic CORS handling (#40) Wiki Page
    • Content-Type handling has been completely rewritten and is now managed by the Headers tab which allows full control (#34) Wiki Page
    • Environments and routes can now be reordered with a simple drag and drop (#41)
    • Some new helpers were added to the JSON templating (oneOf #36, someOf #36, switch #35 and body #47) Wiki Page
    • queryParam and header templating helpers can now have a default value (#44 thanks @nrdobie)
    • Multiple consecutive slashes are now rewritten to single slash (no redirection occurs) (#45)

    Bugfixes:

    • Corrected jumping cursor bug for some fields (route path) (#39)

    New pages in the wiki:

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Aug 7, 2018)

    Mockoon is now open source! πŸŽ‰You can contribute to the development of your favorite tool.

    Also I started writing a little wiki to cover Mockoon's most complex / obscure features πŸ˜„. Do not hesitate to contribute or ask for specific topics to be covered.

    Changelog:

    Features:

    • JSON body has a new templating system (#3).
    • which can also react to request parameters with specific helpers (#4)

    Check here for documentation of both features.

    Improvements:

    • Body length now extends to full height #30
    • JSON parsing errors are not better reported

    Bugfixes:

    • Error handling when serving deleted files has been corrected
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Aug 7, 2018)

    Changelog:

    Features:

    • Proxy mode (#17): if activated all non defined routes are redirected to the specified URL
    • HTTPS support (#10): Mockoon now support HTTPS with a self signed certificate
    • Added an environment settings tab to set up proxy and HTTPS modes
    • Added a welcome screen with analytics opt out (#14 #18)
    • Added an application settings screen (currently only with analytics opt out)

    Improvements:

    • Mockoon have now better and more visible tooltips (#13)

    Bugfixes:

    • Deleting / adding routes now triggers the "environment needs refresh warning" (#19)
    • File download improvement, should correct corrupted files bug (#22)
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Aug 7, 2018)

    Changelog:

    • move route deletion buttons in context menus #11
    • add duplicate environment/route feature #1
    • add keyboard shortcuts #5
    • Add custom headers autocomplete #2
    • Correct navigation bug when removing environments/routes
    • automatically scroll when adding custom headers at bottom
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Aug 7, 2018)

    Changelog:

    • UI small improvements
    • rework environments menu to make route prefix more obvious
    • prevent page scrolling when using mouse wheel in number inputs
    • enable copy paste on MacOS
    • auto scroll envs and routes menu to bottom when adding items
    Source code(tar.gz)
    Source code(zip)
Owner
mockoon
Creating the best mock API tools
mockoon
Automatically mock your HTTP interactions to simplify and speed up testing

VCR.py ?? This is a Python version of Ruby's VCR library. Source code https://github.com/kevin1024/vcrpy Documentation https://vcrpy.readthedocs.io/ R

Kevin McCarthy 2.3k Jan 1, 2023
Automatically mock your HTTP interactions to simplify and speed up testing

VCR.py ?? This is a Python version of Ruby's VCR library. Source code https://github.com/kevin1024/vcrpy Documentation https://vcrpy.readthedocs.io/ R

Kevin McCarthy 1.8k Feb 7, 2021
User-interest mock backend server implemnted using flask restful, and SQLAlchemy ORM confiugred with sqlite

Flask_Restful_SQLAlchemy_server User-interest mock backend server implemnted using flask restful, and SQLAlchemy ORM confiugred with sqlite. Backend b

Austin Weigel 1 Nov 17, 2022
a socket mock framework - for all kinds of socket animals, web-clients included

mocket /mΙ”ΛˆkΙ›t/ A socket mock framework for all kinds of socket animals, web-clients included - with gevent/asyncio/SSL support ...and then MicroPytho

Giorgio Salluzzo 249 Dec 14, 2022
Aioresponses is a helper for mock/fake web requests in python aiohttp package.

aioresponses Aioresponses is a helper to mock/fake web requests in python aiohttp package. For requests module there are a lot of packages that help u

null 402 Jan 6, 2023
a socket mock framework - for all kinds of socket animals, web-clients included

mocket /mΙ”ΛˆkΙ›t/ A socket mock framework for all kinds of socket animals, web-clients included - with gevent/asyncio/SSL support ...and then MicroPytho

Giorgio Salluzzo 208 Jan 31, 2021
Thin-wrapper around the mock package for easier use with pytest

pytest-mock This plugin provides a mocker fixture which is a thin-wrapper around the patching API provided by the mock package: import os class UnixF

pytest-dev 1.5k Jan 5, 2023
Cornell record & replay mock server

Cornell: record & replay mock server Cornell makes it dead simple, via its record and replay features to perform end-to-end testing in a fast and isol

HiredScoreLabs 134 Sep 15, 2022
Mock smart contracts for writing Ethereum test suites

Mock smart contracts for writing Ethereum test suites This package contains comm

Trading Strategy 222 Jan 4, 2023
frwk_51pwn is an open-sourced remote vulnerability testing and proof-of-concept development framework

frwk_51pwn Legal Disclaimer Usage of frwk_51pwn for attacking targets without prior mutual consent is illegal. frwk_51pwn is for security testing purp

51pwn 4 Apr 24, 2022
The (Python-based) mining software required for the Game Boy mining project.

ntgbtminer - Game Boy edition This is a version of ntgbtminer that works with the Game Boy bitcoin miner. ntgbtminer ntgbtminer is a no thrills getblo

Ghidra Ninja 31 Nov 4, 2022
The evaluator covering all of the metrics required by tasks within the DUE Benchmark.

DUE Evaluator The repository contains the evaluator covering all of the metrics required by tasks within the DUE Benchmark, i.e., set-based F1 (for KI

DUE Benchmark 4 Jan 21, 2022
Repository for JIDA SNP Browser Web Application: Local Deployment

JIDA JIDA is a web application that retrieves SNP information for a genomic region of interest in Homo sapiens and calculates specific summary statist

null 3 Mar 3, 2022
A command-line tool and Python library and Pytest plugin for automated testing of RESTful APIs, with a simple, concise and flexible YAML-based syntax

1.0 Release See here for details about breaking changes with the upcoming 1.0 release: https://github.com/taverntesting/tavern/issues/495 Easier API t

null 909 Dec 15, 2022
This is a simple software for fetching new changes to remote repositories automatically.

Git Autofetch Git Autofetch is a simple software for fetching new changes from a repo to local repositories after a set time interval. This program is

Shreyas Ashtamkar 10 Jul 21, 2022
FaceBot is a script to automatically create a facebook account using the selenium and chromedriver modules.

FaceBot is a script to automatically create a facebook account using the selenium and chromedriver modules. That way, we don't need to input full name, email and password and date of birth. All will be helped by this FaceBot.

Fadjrir Herlambang 2 Jun 17, 2022
MultiPy lets you conveniently keep track of your python scripts for personal use or showcase by loading and grouping them into categories. It allows you to either run each script individually or together with just one click.

MultiPy About MultiPy is a graphical user interface built using Dear PyGui Python GUI Framework that lets you conveniently keep track of your python s

null 56 Oct 29, 2022
Run ISP speed tests and save results

SpeedMon Automatically run periodic internet speed tests and save results to a variety of storage backends. Supported Backends InfluxDB v1 InfluxDB v2

Matthew Carey 9 May 8, 2022