diff --git a/components/editors/xml-editor.tsx b/components/editors/xml-editor.tsx index 35683ca8..7c4045f6 100644 --- a/components/editors/xml-editor.tsx +++ b/components/editors/xml-editor.tsx @@ -1,6 +1,5 @@ import { xml } from '@codemirror/lang-xml'; import { linter } from '@codemirror/lint'; -import { Text } from '@uiw/react-codemirror'; import { XMLValidator } from 'fast-xml-parser'; import { FunctionComponent } from 'react'; import BaseEditor from './base-editor'; @@ -28,23 +27,6 @@ const xmlLinter = linter( { delay: 100 } ); -function getErrorPosition( - error: SyntaxError, - doc: Text -): { line?: number; column?: number; position?: number } { - let match; - if ((match = error.message.match(/at position (\d+)/))) - return { position: Math.min(+match[1], doc.length) }; - if ((match = error.message.match(/at line (\d+) column (\d+)/))) - return { - position: Math.min(doc.line(+match[1]).from + +match[2] - 1, doc.length) - }; - - return { - position: 1 - }; -} - const XmlEditor: FunctionComponent<{ value: string; showValidMsg?: boolean; diff --git a/components/footer.tsx b/components/footer.tsx index 6b35aec8..8d317b61 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -136,7 +136,7 @@ const Footer: FunctionComponent<{
{pricing.SOLO.templatesQuota}{' '} - AI-generated templates + AI-generated endpoints {' '} per month
@@ -506,7 +506,7 @@ const Plans: FunctionComponent<{ showFree: boolean; showTagline: boolean }> ={pricing.TEAM.templatesQuota}{' '} - AI-generated templates + AI-generated endpoints {' '} per month per seat
@@ -632,7 +632,7 @@ const Plans: FunctionComponent<{ showFree: boolean; showTagline: boolean }> ={pricing.ENTERPRISE.templatesQuota}{' '} - AI-generated templates + AI-generated endpoints {' '} per month per seat
diff --git a/content/docs/latest/admin-api/overview.md b/content/docs/latest/admin-api/overview.md index 9ab75fd1..abb397ce 100644 --- a/content/docs/latest/admin-api/overview.md +++ b/content/docs/latest/admin-api/overview.md @@ -31,7 +31,7 @@ In the desktop application, the admin API cannot be disabled. However, you can d To **disable** the admin API when running your mock with the CLI, use the `--disable-admin-api` flag: ```bash -mockoon start --disable-admin-api -d ./mock.json +mockoon-cli start --disable-admin-api -d ./mock.json ``` > 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) diff --git a/content/docs/latest/api-endpoints/crud-routes.md b/content/docs/latest/api-endpoints/crud-routes.md index 143415df..6294ec3f 100644 --- a/content/docs/latest/api-endpoints/crud-routes.md +++ b/content/docs/latest/api-endpoints/crud-routes.md @@ -18,7 +18,7 @@ A CRUD endpoint will automatically create a series of routes during runtime, all To create a CRUD route, click on the "CRUD route" entry in the add route menu: -![Add a new CRUD route{440x304}](docs-img:add-crud-route.png) +![Add a new CRUD route{498x304}](docs-img:add-crud-route.png) Then, set its path, usually a [resource name](/articles/api-guide-rest-api-components/#resource-url-request): diff --git a/content/docs/latest/api-endpoints/folders.md b/content/docs/latest/api-endpoints/folders.md index bc7c80f9..0c4f7a99 100644 --- a/content/docs/latest/api-endpoints/folders.md +++ b/content/docs/latest/api-endpoints/folders.md @@ -14,7 +14,7 @@ order: 230 You can organize your routes into folders and sub-folders: -![routes organized in folders and sub-folders{849x518}](docs-img:routes-nested-folder.png) +![routes organized in folders and sub-folders{849x521}](docs-img:routes-nested-folder.png) This new feature allows you to better organize your routes and make your APIs more readable and easier to navigate, with a clearer hierarchy. You can drag and drop to move or reorganize your routes and folders. diff --git a/content/docs/latest/api-endpoints/routing.md b/content/docs/latest/api-endpoints/routing.md index 93070c27..366e46c1 100644 --- a/content/docs/latest/api-endpoints/routing.md +++ b/content/docs/latest/api-endpoints/routing.md @@ -78,3 +78,15 @@ To pass arrays and objects in the query string of a request, you must use the fo - for objects: `?param1=test&obj[prop1]=value`. - for arrays: `?param1=test&array[]=value1&array[]=value2` or `?param1=test&array[0]=value1&array[1]=value2` or `?param1=test&array=value1,value2`. + +### Temporarily disable a route + +You can **disable a route** by clicking on the **Toggle route** entry in the route dropdown menu. The route will be marked with a red border and will not be accessible until you enable it again. + +![disable route entry in the route dropdown menu{647x322}](docs-img:route-menu-disable-route.png) + +You can also disable all routes in a folder by using the **Toggle direct child routes** entry in the folder dropdown menu. + +When running your mock API using the [CLI](/cli/), you can [disable routes using the `--disable-routes` flag](https://github.com/mockoon/mockoon/tree/main/packages/cli#disabling-routes) followed by a route UUID or keyword/name or a folder keyword/name: `mockoon start --disable-routes myroute folder2`. + +When using the [serverless package](/serverless/), you can [disable routes using the `disabledRoutes` option](https://github.com/mockoon/mockoon/tree/main/packages/serverless#disabling-routes). diff --git a/content/docs/latest/callbacks/overview.md b/content/docs/latest/callbacks/overview.md index a26a8bc0..5fcd6337 100644 --- a/content/docs/latest/callbacks/overview.md +++ b/content/docs/latest/callbacks/overview.md @@ -24,7 +24,7 @@ To create a new callback, open the **Callbacks** options by clicking on the tab Add a new callback by clicking on the "plus" button: -![Add a new callback by clicking on the plus button{1484x578}](docs-img:add-callback.png) +![Add a new callback by clicking on the plus button{1484x576}](docs-img:add-callback.png) ## Configure a callback diff --git a/content/docs/latest/data-buckets/overview.md b/content/docs/latest/data-buckets/overview.md index 0e4cebb3..156738e7 100644 --- a/content/docs/latest/data-buckets/overview.md +++ b/content/docs/latest/data-buckets/overview.md @@ -24,7 +24,7 @@ To create a new data bucket, open the **Data** options by clicking on the tab at Add a new data bucket by clicking on the "plus" button: -![Add a data bucket{1484x578}](docs-img:add-data-bucket.png) +![Add a data bucket{1484x576}](docs-img:add-data-bucket.png) You can change the data bucket title and content on the right part of the screen. Mockoon will automatically attribute a new **unique ID** to your data bucket. You can use this ID to reference the data using the [`data` helpers](docs:data-buckets/using-data-buckets#using-data-helpers). To retrieve a bucket's unique ID, look in the footer under the data bucket content or right-click on a bucket name in the list and click on "Copy ID to clipboard". diff --git a/content/docs/latest/mockoon-cloud/templates-and-ai-assistant.md b/content/docs/latest/mockoon-cloud/templates-and-ai-assistant.md index a2314070..03628909 100644 --- a/content/docs/latest/mockoon-cloud/templates-and-ai-assistant.md +++ b/content/docs/latest/mockoon-cloud/templates-and-ai-assistant.md @@ -1,28 +1,28 @@ --- -title: Templates and AI assistant +title: AI assistants meta: - title: Mockoon templates and AI assistant documentation - description: All you need to know about Mockoon's mock API ready to use JSON templates and AI assistant to generate your own dynamic and realistic templates. + title: Mockoon templates and AI assistants documentation + description: All you need to know about Mockoon's mock API ready to use JSON templates and AI assistants to generate your own dynamic and realistic templates. order: 900 --- -# Templates and AI assistantPRO +# Templates and AI assistantsPRO --- -## Overview +## JSON templates assistant Mockoon **templates** are pieces of JSON, often with [templating helpers](docs:templating/overview), that can be used in Mockoon to quickly prototype your mock APIs. They can be used in your [HTTP route's](docs:api-endpoints/routing#api-routes) body or as [data bucket](docs:data-buckets/overview) content to create realistic and dynamic data. Two types of templates are available: **pre-generated** and **AI-generated**. -## Use the pre-generated templates +### Use the pre-generated templates The pre-generated templates can be found in the desktop application. -To use a template in your routes, click on the "From template" entry in the route creation menu to open the templates dialog: +To use a template in your routes, click on the **"Assistants and templates"** entry in the route creation menu to open the templates dialog: -![modal with templates list{440x304}](docs-img:pre-generated-templates-modal.png) +![modal with templates list{498x304}](docs-img:pre-generated-templates-modal.png) Then, select the template you want to use and either copy-paste its content manually or click on one of the two buttons to create a new **GET endpoint** or a **CRUD endpoint with a data bucket**. @@ -30,17 +30,17 @@ Then, select the template you want to use and either copy-paste its content manu The "GET route" button will create a new HTTP GET route and copy the template content as the body. The "CRUD + data" button will create a new CRUD endpoint with a linked data bucket and copy the template content as the data bucket content. -> Starting with version 8.0.0 all the pre-generated templates are available for **free**. +> 💡 Starting with version 8.0.0 all the pre-generated templates are available for **free**. -## Use the AI assistant to generate realistic data +### Use the AI assistant to generate realistic templates You can also use our AI assistant to generate realistic mock data for your various endpoints by providing a custom prompt. This feature is available in the desktop application and is part of the [Mockoon Pro](/pro/) plans. -To generate a new template, click the "From template" button in the route creation menu (see above), and select the "Generate" tab: +To generate a new template, click the **"Assistants and templates"** button in the route creation menu (see above), and select the "Generate JSON templates" tab: ![AI assistant generate tab{860x801}](docs-img:ai-assistant-generate-template-tab.png) -Then, write a prompt (e.g. "list of users") and click the "Generate" button. +Then, **write a prompt** (e.g. "list of users") and click the "Generate" button. ![AI assistant generate button click{860x801}](docs-img:ai-assistant-generate-button.png) @@ -48,21 +48,32 @@ Finally, you can copy-paste the generated template manually or click on one of t ![create get route from template{860x801}](docs-img:templates-generate-get-route.png) -### Writing prompts +### HTTP endpoints assistant -Mockoon AI assistant wraps your prompt with various instructions to help you generate the most relevant template for your needs. It has been optimized for the JSON format but can also generate templates in XML, CSV, etc. -Several options are available to fine-tune the generated templates: +A second AI assistant is available in the [Mockoon Pro](/pro/) plans to generate **realistic HTTP endpoints**. This feature works similarly to the JSON templates assistant but generates a full HTTP route with a **response body**, a **path**, a **method** and a **documentation**, based on your prompt. -- **JSON**: the generated template will be a valid JSON object. -- **array**: the generated template root level will be a JSON array (usually used with the **JSON** option). -- **templating**: the generated template will contain Handlebars [templating helpers](docs:templating/overview) (e.g. `{{faker 'person.firstName'}}`). Please note that disabling this option usually results in longer templates. +To generate a new HTTP endpoint, click the **"Assistants and templates"** button in the route creation menu (see above), and select the "Generate HTTP endpoints" tab: -![prompt options buttons{860x801}](docs-img:ai-assistant-template-generate-options.png) +![AI assistant generate endpoint tab{860x801}](docs-img:ai-assistant-generate-endpoint-tab.png) + +Then, **write a prompt** (e.g. "Get a list of users") and click the "Generate" button. + +![AI assistant generate endpoint button click{860x801}](docs-img:ai-assistant-generate-endpoint-button.png) + +Finally, you can click on the **"Create HTTP route"** button to create a new endpoint from the generated data. + +![create full route from generated result{860x801}](docs-img:ai-assistant-generate-endpoint-create-button.png) + +## Writing prompts + +Mockoon AI assistants wrap your prompt with various instructions to help you generate the most relevant JSON templates or endpoints for your needs. It will **infer the structure** of the JSON you want to generate from your prompt (e.g. single object, array, etc.). You can enable or disable the use of Handlebars [templating helpers](docs:templating/overview) (e.g. `{{faker 'person.firstName'}}`) using the option next to the "Generate" button. + +![prompt templating option button{860x801}](docs-img:ai-assistant-template-generate-option.png) You will obtain best results with shorter prompts: "list of users", "JSON configuration for library X", etc. -If you want more freedom when generating templates (using a different data format, etc.), you can disable the various options. Our system will still manage your prompt to increase the relevance of the generated template. +We put a lot of effort into making the AI assistants as accurate as possible, but it may not always generate the expected results. If you encounter any issues, please let us know by [contacting us](/contact/). -### AI assistant quota +## AI assistants quota -Each use of the AI assistant will count as one credit towards your monthly quota. You can check your quota in your [account page](/account/subscription/). +Each use of the AI assistants will count as one credit towards your monthly quota. You can check your quota in your [account page](/account/subscription/). diff --git a/content/docs/latest/mockoon-data-files/data-storage-location.md b/content/docs/latest/mockoon-data-files/data-storage-location.md index 084aa1a0..e7f9475a 100644 --- a/content/docs/latest/mockoon-data-files/data-storage-location.md +++ b/content/docs/latest/mockoon-data-files/data-storage-location.md @@ -16,13 +16,13 @@ Since [v1.16.0](https://github.com/mockoon/mockoon/releases/tag/v1.16.0), Mockoo You can locate the folder in which the API data are stored by right-clicking on each environment and selecting **"Show data file in explorer/finder"**: -![click on show in folder in the context menu{515x346}](docs-img:environment-show-in-folder.png) +![click on show in folder in the context menu{547x349}](docs-img:environment-show-in-folder.png) ## Moving the files You can move the data files to another folder by right-clicking on an environment and selecting **"Move data file to folder"**: -![click on Move data file to folder in folder in the context menu{515x377}](docs-img:environment-move-to-folder.png) +![click on Move data file to folder in folder in the context menu{547x380}](docs-img:environment-move-to-folder.png) > 💡 Please note that the environment file will be copied to the new folder, and the original file will **not** be deleted. If you want to delete the original file, you will have to do it manually. diff --git a/content/docs/latest/mockoon-data-files/environment-clipboard-copy.md b/content/docs/latest/mockoon-data-files/environment-clipboard-copy.md index 3c6e68ce..f1f88771 100644 --- a/content/docs/latest/mockoon-data-files/environment-clipboard-copy.md +++ b/content/docs/latest/mockoon-data-files/environment-clipboard-copy.md @@ -14,7 +14,7 @@ order: 1120 To copy a specific environment or route's JSON data to the clipboard, right-click on the environment or route and select **Copy to clipboard (JSON)**: -![Right click on an environment and click on Copy to clipboard (JSON){715x365}](docs-img:export-clipboard-env.png) +![Right click on an environment and click on Copy to clipboard (JSON){747x368}](docs-img:export-clipboard-env.png) The resulting JSON can be saved in a file and directly opened in the desktop app or used with the CLI. @@ -30,6 +30,6 @@ You will be prompted to choose a save location for your new environment. To create a new route from data present in the clipboard, open the **Routes** menu and select **Add route from clipboard**: -![Create new route from clipboard{802x289}](/images/docs/shared/new-environment-from-clipboard.png) +![Create new route from clipboard{802x289}](/images/docs/shared/new-route-from-clipboard.png) The new route will be added to your active environment's routes. diff --git a/content/docs/latest/response-configuration/file-serving.md b/content/docs/latest/response-configuration/file-serving.md index a402b7c9..c02d19b2 100644 --- a/content/docs/latest/response-configuration/file-serving.md +++ b/content/docs/latest/response-configuration/file-serving.md @@ -24,7 +24,7 @@ To serve a file, you must provide a path in the file input field: You can either provide an absolute path like `/home/username/file.json` or a relative path. Starting with [v1.16.0](https://github.com/mockoon/mockoon/releases/tag/v1.16.0), relative paths are resolved from the environment's file location. You can check the environment's file location by right-clicking on an environment en select "Show in folder" in the contextual menu: -![show in folder menu entry{515x315}](docs-img:environment-show-in-folder.png) +![show in folder menu entry{547x349}](docs-img:environment-show-in-folder.png) > 💡 Prior to v1.16.0, relative file paths were resolved from the application executable. This is also supported by the CLI since its version [1.2.0](https://github.com/mockoon/cli/releases/tag/v1.2.0). diff --git a/content/docs/latest/route-responses/global-routes-with-rules.md b/content/docs/latest/route-responses/global-routes-with-rules.md index a946f34a..6b50f22c 100644 --- a/content/docs/latest/route-responses/global-routes-with-rules.md +++ b/content/docs/latest/route-responses/global-routes-with-rules.md @@ -18,7 +18,7 @@ Three parts are required to create a global route: To create a global route, you first need to create a new HTTP route that will match all the endpoints you want to protect. To do so, create a new route and select "All methods" in the method dropdown: -![wildcard route on all methods{649x318}](docs-img:create-wildcard-route.png) +![wildcard route on all methods{649x337}](docs-img:create-wildcard-route.png) In this example, the wildcard route is placed above the `GET /users` route, which is important as it will be [evaluated first](docs:api-endpoints/routing#routes-order) and catch all the requests. You can create it first or move it up in the routes list with a drag and drop. diff --git a/content/docs/latest/server-configuration/serving-over-tls.md b/content/docs/latest/server-configuration/serving-over-tls.md index 7790f512..d9fba890 100644 --- a/content/docs/latest/server-configuration/serving-over-tls.md +++ b/content/docs/latest/server-configuration/serving-over-tls.md @@ -47,7 +47,7 @@ You can disable TLS when running your mock with the [CLI](/cli/) or the [serverl To **disable** TLS when running your mock with the CLI, use the `--disable-tls` flag: ```bash -mockoon start --disable-tls -d ./mock.json +mockoon-cli start --disable-tls -d ./mock.json ``` > 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) diff --git a/content/docs/v5.0.0/server-configuration/serving-over-tls.md b/content/docs/v5.0.0/server-configuration/serving-over-tls.md deleted file mode 100644 index 882e5a1d..00000000 --- a/content/docs/v5.0.0/server-configuration/serving-over-tls.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: TLS -meta: - title: Serve a mock API over TLS - description: Need to mock a secured REST API server? Mockoon can also do this by serving over TLS with a self-signed certificate -order: 110 ---- - -# TLS - ---- - -Mockoon supports serving your mock API over TLS with a self-signed certificate by default. You can also provide your certificate and trusted CA certificates. - -## Activate the TLS option - -You can activate the TLSoption for each environment independently. Open the **Environment Settings** by clicking on the tab at the top of the window: - -![click on the settings tab{1034x160}](docs-img:open-environment-settings.png) - -Enable the **TLS option** by ticking the checkbox. The option was successfully activated if a yellow lock is displayed next to the environment name. - -![tick the TLS checkbox{807x343}](docs-img:enable-tls.png) - -> You may need to restart your environment for the change to take effect. - -Your mock API will now be available on `https://localhost:port` instead of `http://localhost:port`. - -Please note that Mockoon is using a self-signed certificate to serve your environment over TLS. - -## Provide your own certificate - -You can also provide your certificate in both PKCS12 or PEM formats by filling out the input fields with the path to the file(s). - -![add certificate path{1264x590}](docs-img:enable-tls-custom-certificate.png) - -Mockoon also supports passphrase-protected keys and custom-trusted CA certificates. As Mockoon is using Node.js' `tls`, you can refer to the [`tls.createSecureContext()` documentation](https://nodejs.org/dist/latest-v16.x/docs/api/tls.html#tlscreatesecurecontextoptions) for a full description of the available options. - -> All the path fields support both absolute and relative paths. Relative paths are resolved from the environment's file location. diff --git a/content/docs/v5.0.0/templating/fakerjs-helpers.md b/content/docs/v5.0.0/templating/fakerjs-helpers.md deleted file mode 100644 index 0fcf4226..00000000 --- a/content/docs/v5.0.0/templating/fakerjs-helpers.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Faker.js helpers -meta: - title: Create dynamic responses with templating Faker.js helpers - description: Create realistic mock data for your mock API servers with Mockoon's templating system including Faker.js -order: 540 ---- - -# Faker.js helpers - ---- - -Mockoon implements [Faker.js v7.6.0](https://fakerjs.dev/) library by wrapping most of the available helpers. -Faker.js offers lots of helpers: `address.zipCode`, `address.city`, `address.cityPrefix`, `name.firstName`, `name.lastName`, `datatype.number`, `datatype.float`, `internet.avatar`, `internet.email`, etc. Please have a look at [Faker.js documentation](https://fakerjs.dev/) to learn how to use them. - -## Usage - -All Faker.js helpers must be used with the following syntax: `{{faker 'namespace.method'}}`. -**Examples:** - -```js -{{faker 'address.zipCode'}} -{{faker 'address.city'}} -{{faker 'address.cityPrefix'}} -{{faker 'name.firstName'}} -... -``` - -Faker.js methods may use two different ways of passing parameters: ordered arguments or options objects. Wrapped in Handlebars helpers, this may result in two different ways of using them: - -```js -// named parameters -{{faker 'datatype.number' min=0 max=25}} - -// ordered arguments (here count=25) -{{faker 'random.alphaNumeric' 25}} -``` - -## Set Faker.js' locale and seed - -Faker.js locale and seed can be defined in the settings: - -![fakerjs settings{860x812}](docs-img:settings-faker.png) - -> 📝**A note on Faker.js seeding** -> By providing a seed value, you can generate repeatable **sequences** of fake data. Using seeding will not always generate the same value but rather a predictable sequence. diff --git a/content/docs/v8.1.0/admin-api/overview.md b/content/docs/v8.1.0/admin-api/overview.md index 9ab75fd1..abb397ce 100644 --- a/content/docs/v8.1.0/admin-api/overview.md +++ b/content/docs/v8.1.0/admin-api/overview.md @@ -31,7 +31,7 @@ In the desktop application, the admin API cannot be disabled. However, you can d To **disable** the admin API when running your mock with the CLI, use the `--disable-admin-api` flag: ```bash -mockoon start --disable-admin-api -d ./mock.json +mockoon-cli start --disable-admin-api -d ./mock.json ``` > 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) diff --git a/content/docs/v8.1.0/server-configuration/serving-over-tls.md b/content/docs/v8.1.0/server-configuration/serving-over-tls.md index 7790f512..d9fba890 100644 --- a/content/docs/v8.1.0/server-configuration/serving-over-tls.md +++ b/content/docs/v8.1.0/server-configuration/serving-over-tls.md @@ -47,7 +47,7 @@ You can disable TLS when running your mock with the [CLI](/cli/) or the [serverl To **disable** TLS when running your mock with the CLI, use the `--disable-tls` flag: ```bash -mockoon start --disable-tls -d ./mock.json +mockoon-cli start --disable-tls -d ./mock.json ``` > 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) diff --git a/content/docs/v5.0.0/about.md b/content/docs/v8.1.1/about.md similarity index 90% rename from content/docs/v5.0.0/about.md rename to content/docs/v8.1.1/about.md index f69ba4f7..709d663f 100644 --- a/content/docs/v5.0.0/about.md +++ b/content/docs/v8.1.1/about.md @@ -22,3 +22,5 @@ You will find the [CLI documentation](https://github.com/mockoon/mockoon/blob/ma ## Serverless documentation You will find the [serverless package documentation](https://github.com/mockoon/mockoon/blob/main/packages/serverless/README.md) in its dedicated readme file on the repository. It covers the package usage instructions and specific features. + +> 🎓 Discover our official online course designed to help you get started with API mocking and API design. Coming soon! [Learn more](/course/) diff --git a/content/docs/v8.1.1/admin-api/data-buckets.md b/content/docs/v8.1.1/admin-api/data-buckets.md new file mode 100644 index 00000000..2bd7a21b --- /dev/null +++ b/content/docs/v8.1.1/admin-api/data-buckets.md @@ -0,0 +1,24 @@ +--- +title: Data Buckets +meta: + title: 'Admin API: Reset the data buckets' + description: 'Learn how to reset the data buckets of a running environment to their initial state using the admin API' +order: 801 +--- + +# Admin API: Data Buckets + +> 🔌 **Base endpoint:** `/mockoon-admin/data-buckets` + +--- + +This endpoint allows you to reset the [data buckets](docs:data-buckets/overview) to their initial state without restarting the server. + +## Reset the data buckets + +To **reset** the data buckets to their **initial state**, call one of the following endpoints without payload: + +- `POST /mockoon-admin/data-buckets/purge`. +- `PURGE /mockoon-admin/data-buckets`. + +> ⚠️ The data buckets containing request helpers will be [generated again during the next request](docs:data-buckets/overview#data-buckets-generation). diff --git a/content/docs/v8.1.1/admin-api/environment-variables.md b/content/docs/v8.1.1/admin-api/environment-variables.md new file mode 100644 index 00000000..9bcb4a0c --- /dev/null +++ b/content/docs/v8.1.1/admin-api/environment-variables.md @@ -0,0 +1,39 @@ +--- +title: Environment Variables +meta: + title: 'Admin API: Manage the environment variables' + description: 'Learn how to manage your running mocks environment variables using the admin API: add, update and delete environment variables' +order: 802 +--- + +# Admin API: Environment variables + +> 🔌 **Base endpoint:** `/mockoon-admin/env-vars` + +--- + +This endpoint allows you to manage the [environment variables](docs:variables/environment-variables), without restarting the mock server or the application. + +## Set or update an environment variable + +To set or update an environment variable, call the `/mockoon-admin/env-vars` endpoint with the following parameters: + +- **Method:** `POST`, `PUT` or `PATCH` +- **URL:** `/mockoon-admin/env-vars` +- **Body:** JSON object with the following properties: + - `key`: the name of the variable, including the `MOCKOON_` prefix, or the [custom prefix](docs:variables/environment-variables#changing-or-removing-the-prefix) defined in the application settings. + - `value`: the value of the variable. + +**Example:** + +```http +POST /mockoon-admin/env-vars +Content-Type: application/json + +{ + "key": "MOCKOON_ENV_VAR", + "value": "myValue" +} +``` + +> ⚠️ This will only create or update the environment variable for the running mock server. It will **not** modify your system environment variables. diff --git a/content/docs/v8.1.1/admin-api/global-variables.md b/content/docs/v8.1.1/admin-api/global-variables.md new file mode 100644 index 00000000..5dcc2c0f --- /dev/null +++ b/content/docs/v8.1.1/admin-api/global-variables.md @@ -0,0 +1,44 @@ +--- +title: Global Variables +meta: + title: 'Admin API: Manage and Purge Global Variables' + description: 'Learn how to manage and purge global variables using the admin API: add, update and delete global variables' +order: 802 +--- + +# Admin API: Global variables + +> 🔌 **Base endpoint:** `/mockoon-admin/global-vars` + +--- + +This endpoint allows you to manage and purge [global variables](docs:variables/global-variables), without restarting the server. + +## Set or update a global variable + +To set or update a global variable, call the `/mockoon-admin/global-vars` endpoint with the following parameters: + +- **Method:** `POST`, `PUT` or `PATCH` +- **URL:** `/mockoon-admin/global-vars` +- **Body:** JSON object with the following properties: + - `key`: the name of the variable. + - `value`: the value of the variable. + +**Example:** + +```http +POST /mockoon-admin/global-vars +Content-Type: application/json + +{ + "key": "myGlobalVar", + "value": "myValue" +} +``` + +## Purge all global variables + +To delete all global variables, call one of the following endpoints without payload: + +- `POST /mockoon-admin/global-vars/purge`. +- `PURGE /mockoon-admin/global-vars`. diff --git a/content/docs/v8.1.1/admin-api/overview.md b/content/docs/v8.1.1/admin-api/overview.md new file mode 100644 index 00000000..abb397ce --- /dev/null +++ b/content/docs/v8.1.1/admin-api/overview.md @@ -0,0 +1,59 @@ +--- +title: Overview +meta: + title: Admin API overview + description: Learn how to use the admin API exposed by Mockoon to manage your environments, routes, and responses +order: 800 +--- + +# Admin API overview + +--- + +Each running mock server **exposes an admin API** that allows you to manage your environment. This API can be used to automate the management of your mock server, especially in a remote environment, without having to restart the application. + +## Admin API base endpoint + +The admin API **base endpoint** is the same as the mock server URL with the `/mockoon-admin` path appended. + +For example, if your mock server is running on `http://localhost:3000`, the admin API base endpoint will be `http://localhost:3000/mockoon-admin`. + +> 💡 The [API prefix](docs:server-configuration/port-prefix) is not applied to the admin API base endpoint. If your API endpoints are accessible on `http://localhost:3000/myprefix/{endpoint}`, the admin API base endpoint will still be `http://localhost:3000/mockoon-admin`. + +## Disable the admin API + +The admin API is **enabled by default**. + +In the desktop application, the admin API cannot be disabled. However, you can disable it when running your mock with the [CLI](/cli/) or the [serverless library](/serverless/). + +### Disable the admin API with the CLI + +To **disable** the admin API when running your mock with the CLI, use the `--disable-admin-api` flag: + +```bash +mockoon-cli start --disable-admin-api -d ./mock.json +``` + +> 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) + +### Disable the admin API with the serverless library + +To **disable** the admin API when running your mock with the serverless library, set the `enableAdminApi` option to `false` when building the `MockoonServerless` instance: + +```javascript +const mockoonServerless = new mockoon.MockoonServerless(mockEnv, { + enableAdminApi: false +}); +``` + +> 📘 Check the [serverless library dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/serverless#readme) + +## Admin API capabilities + +Currently, the admin API allows you to: + +- [Purge the state of a running environment](docs:admin-api/server-state) +- [Manage and purge the global variables](docs:admin-api/global-variables) +- [Manage the environment variables](docs:admin-api/environment-variables) +- [Fetch and purge the transaction logs](docs:admin-api/transaction-logs) +- [Reset the data buckets](docs:admin-api/data-buckets) diff --git a/content/docs/v8.1.1/admin-api/server-state.md b/content/docs/v8.1.1/admin-api/server-state.md new file mode 100644 index 00000000..297ff6fd --- /dev/null +++ b/content/docs/v8.1.1/admin-api/server-state.md @@ -0,0 +1,29 @@ +--- +title: Server state +meta: + title: 'Admin API: Server state' + description: Learn how to purge the state of a running environment using the admin API, resetting the request count and regenerating the data buckets +order: 804 +--- + +# Admin API: Server state + +> 🔌 **Base endpoint:** `/mockoon-admin/state` + +--- + +The `/mockoon-admin/state` endpoint allows you to purge the state of a running environment. This include **resetting the request count**, **regenerating the data buckets**, **clearing the global variables**, and **resetting the transaction logs**. + +### Purging the state of a running environment + +To purge the state of a running environment is done by calling one of the following endpoints: + +- `PURGE /mockoon-admin/state`. +- `POST /mockoon-admin/state/purge`. + +**Effects:** + +- Resets the [request counter](docs:route-responses/dynamic-rules#1-target) to 1 for each route. +- Regenerates the [data buckets](docs:data-buckets/overview) for the environment. The data buckets containing request helpers will be [generated again during the next request](docs:data-buckets/overview#data-buckets-generation). +- Clears all the [global variables](docs:variables/global-variables). +- Clears the [transaction logs](docs:logging-and-recording/requests-logging) for the environment. diff --git a/content/docs/v8.1.1/admin-api/transaction-logs.md b/content/docs/v8.1.1/admin-api/transaction-logs.md new file mode 100644 index 00000000..ba236840 --- /dev/null +++ b/content/docs/v8.1.1/admin-api/transaction-logs.md @@ -0,0 +1,76 @@ +--- +title: Logs +meta: + title: 'Admin API: fetch and purge transaction logs' + description: 'Learn how to fetch and purge transaction logs using the admin API' +order: 803 +--- + +# Admin API: transaction logs + +> 🔌 **Base endpoint:** `/mockoon-admin/logs` + +--- + +This endpoint allows you to fetch and purge the application's [transaction logs](docs:logging-and-recording/requests-logging) when using the desktop application, the CLI or the serverless library. + +## Retrieve the transaction logs + +To retrieve the transaction logs, call the following endpoint: + +- **Method:** `GET` +- **URL:** `/mockoon-admin/logs` +- **Query parameters:** + - `page` (optional): the page number to retrieve. Default is 1. + - `limit` (optional): the number of logs to retrieve per page. Default is 10. + +**Examples:** + +```http +GET /mockoon-admin/logs +GET /mockoon-admin/logs?page=2 +GET /mockoon-admin/logs?page=2&limit=20 +``` + +**Example of response ([data model](https://github.com/mockoon/mockoon/blob/main/packages/commons/src/models/server.model.ts#L27-L47)):** + +```json +[ + { + "request": { + "method": "get", + "urlPath": "/users/5", + "route": "/users/:id", + "params": [ + { + "name": "id", + "value": "5" + } + ], + "query": "", + "queryParams": {}, + "body": "", + "headers": [{ "key": "host", "value": "localhost:3000" }] + }, + "response": { + "statusCode": 200, + "statusMessage": "OK", + "headers": [{ "key": "content-type", "value": "application/json; charset=utf-8" }], + "body": "ok" + }, + "routeResponseUUID": "c0a61351-c542-4d80-902d-4305047aff17", + "routeUUID": "7e950e12-dc21-425a-930c-e84a381281ee", + "proxied": false, + "timestampMs": 1714399178682 + } +] +``` + +## Purge the transaction logs + +To purge the transaction logs, call one of the following endpoints: + +- `POST /mockoon-admin/logs/purge`. +- `PURGE /mockoon-admin/logs`. + +> ⚠️ This action will only purge the transaction logs stored in the memory of the running mock server. It will not update the [Logs view](docs:logging-and-recording/requests-logging) in the desktop application. diff --git a/content/docs/v5.0.0/api-endpoints/crud-routes.md b/content/docs/v8.1.1/api-endpoints/crud-routes.md similarity index 68% rename from content/docs/v5.0.0/api-endpoints/crud-routes.md rename to content/docs/v8.1.1/api-endpoints/crud-routes.md index 9fa30d64..143415df 100644 --- a/content/docs/v5.0.0/api-endpoints/crud-routes.md +++ b/content/docs/v8.1.1/api-endpoints/crud-routes.md @@ -18,11 +18,11 @@ A CRUD endpoint will automatically create a series of routes during runtime, all To create a CRUD route, click on the "CRUD route" entry in the add route menu: -![Add a new CRUD route{390x304}](docs-img:add-crud-route.png) +![Add a new CRUD route{440x304}](docs-img:add-crud-route.png) Then, set its path, usually a [resource name](/articles/api-guide-rest-api-components/#resource-url-request): -![Set the CRUD route path{1264x176}](docs-img:set-crud-route-path.png) +![Set the CRUD route path{1484x176}](docs-img:set-crud-route-path.png) > Your path can be more complex, and contains parameters or multiple sections. Remember that this will be the "prefix" of the different endpoints (see below). @@ -30,7 +30,7 @@ Then, set its path, usually a [resource name](/articles/api-guide-rest-api-compo After creating a CRUD endpoint, you need to link it to a data bucket: -![Link a data bucket to a CRUD route{1264x334}](docs-img:link-data-bucket-crud-route.png) +![Link a data bucket to a CRUD route{1484x334}](docs-img:link-data-bucket-crud-route.png) > Head over to our [data buckets](docs:data-buckets/overview) documentation to learn how to create a new data bucket. @@ -38,6 +38,8 @@ After creating a CRUD endpoint, you need to link it to a data bucket: The CRUD route will work with any content stored in your data bucket: valid JSON in the form of an array of objects, an object, a primitive, etc., or any non-valid JSON. The route behaviors will vary depending on the content stored in the bucket (see table below). +> 🛠️ Use our [JSON validator](/tools/json-validator/) to check if your content is valid JSON. + ### Resetting the data bucket content The data bucket content is generated when the server starts, and its state persists between calls. However, its state will not be saved in the [data file](docs:mockoon-data-files/data-storage-location), and you can reset it to its initial state by restarting the mock API. @@ -70,23 +72,82 @@ Mockoon will automatically translate a CRUD endpoint to multiple routes allowing | **DELETE** | `/resources` | Deletes the data bucket content | Deletes the data bucket content | Deletes the content | | **DELETE** | `/resources/:id` | Deletes an object by its `id` | Deletes an item at index | Deletes the content | -\* Supports [sorting and pagination](#sorting-and-pagination-on-the-main-get-route) +\* Supports [filtering, sorting and pagination](#filtering-sorting-and-pagination-on-the-main-get-route) -> ⚠️ _Note:_ You can expect the above results assuming that you are sending the same type of content that the one stored in the data bucket (array ↔ array, object ↔ object, etc.). However, the system is very permissive, and you may push any content in an array, ending up with mixted type contents or replacing content with data of a different type. +> ⚠️ _Note:_ You can expect the above results assuming that you are sending the same type of content as the one stored in the data bucket (array ↔ array, object ↔ object, etc.). However, the system is very permissive, and you may push any content in an array, ending up with mixed type contents or replacing content with data of a different type. ## Customizing the "id" property By default, CRUD endpoints will use the `id` property to identify objects in an array in all the routes manipulating a single resource (e.g. GET `/resource/:id`). However, you can change this property to anything you want, like `uuid`, `custom_id`, etc: -![Customize the CRUD id property{1264x334}](docs-img:customize-crud-id-property-key.png) +![Customize the CRUD id property{1484x334}](docs-img:customize-crud-id-property-key.png) ## Overriding a route You can easily override a CRUD operation route by declaring a regular HTTP route and putting it above the CRUD route (see [routes order](docs:api-endpoints/routing#routes-order)). This route will intercept the request allowing you to serve custom content for this operation. -## Sorting and pagination on the main GET route +## Filtering, sorting and pagination on the main GET route + +The main `GET /path` route supports **filtering**, **sorting** and **pagination** when working with an **array**. + +### Filtering + +To filter an array, you can use query parameters in the form `[property]_[operator]`. For instance, if you want to filter an array of objects by their `status` property, you can use: + +``` +GET /path?status_eq=success +``` + +Currently, the following operators are supported: + +| Operator | Description | Example | +| -------- | --------------------------------------------- | ------------------- | +| `eq` | Filters by equality | `status_eq=success` | +| `ne` | Filters by inequality | `status_ne=error` | +| `gt` | Filters by greater | `price_gt=10` | +| `gte` | Filters by greater or equal | `price_gte=10` | +| `lt` | Filters by lower | `price_lt=10` | +| `lte` | Filters by lower or equal | `price_lte=10` | +| `like` | Filters by partial match \* | `name_like=ohn do` | +| `start` | Filters properties that start with a value \* | `name_start=john` | +| `end` | Filters properties that end with a value \* | `name_end=doe` | -The main `GET /path` route supports **sorting** and **pagination** when working with an **array**. +\* Case insensitive + +Filters work on every primitive value (strings, numbers, booleans, etc.), so you can filter by `true` or `false` values, or even `null` values: + +``` +GET /path?is_active_eq=true +``` + +It also works on arrays of primitives, in which case using `_[operator]` is enough: + +``` +GET /path?_gte=10 +``` + +Moreover, nesting is supported: + +``` +GET /path?user.email_end=@example.com +``` + +The `like`, `start` and `end` operators support regex patterns: + +``` +GET /path?user.name_like=^john +GET /path?user.id_like=^(123|456|789)$ +``` + +#### Searching + +To search an array, you can use the `search` query parameter. Search is a special kind of filter that will look for a partial match in any values (with nesting) in the array. For instance, if you want to search for `john` in an array of users, you can use: + +``` +GET /path?search=john +``` + +> Searching also works on arrays of primitives (strings, numbers, etc.) ### Sorting @@ -125,10 +186,15 @@ Examples: GET /path?page=2 ``` -Pagination will be applied after sorting, both can be cumulated: +Filtering, sorting and pagination can work together and are applied in the order: filtering / searching, sorting, pagination. ``` -GET /path?sort=name&page=2&limit=25 +GET /path?search=j&email_end=@example.com&sort=name&page=2&limit=25 ``` -> When using pagination, a `X-Total-Count` header will be present in the response with the total number of items. +### Meta data + +When using CRUD endpoints, you can access meta data about the data bucket content through response headers: + +- `X-Total-Count`: total number of items in the bucket +- `X-Filtered-Count`: number of items after filtering (not taking into account pagination) diff --git a/content/docs/v5.0.0/api-endpoints/folders.md b/content/docs/v8.1.1/api-endpoints/folders.md similarity index 94% rename from content/docs/v5.0.0/api-endpoints/folders.md rename to content/docs/v8.1.1/api-endpoints/folders.md index 6705ca78..bc7c80f9 100644 --- a/content/docs/v5.0.0/api-endpoints/folders.md +++ b/content/docs/v8.1.1/api-endpoints/folders.md @@ -14,7 +14,7 @@ order: 230 You can organize your routes into folders and sub-folders: -![routes organized in folders and sub-folders{799x522}](docs-img:routes-nested-folder.png) +![routes organized in folders and sub-folders{849x518}](docs-img:routes-nested-folder.png) This new feature allows you to better organize your routes and make your APIs more readable and easier to navigate, with a clearer hierarchy. You can drag and drop to move or reorganize your routes and folders. diff --git a/content/docs/v5.0.0/api-endpoints/routing.md b/content/docs/v8.1.1/api-endpoints/routing.md similarity index 82% rename from content/docs/v5.0.0/api-endpoints/routing.md rename to content/docs/v8.1.1/api-endpoints/routing.md index c3babf6e..93070c27 100644 --- a/content/docs/v5.0.0/api-endpoints/routing.md +++ b/content/docs/v8.1.1/api-endpoints/routing.md @@ -16,11 +16,11 @@ In order to prefix all your mock API routes, Open the **Environment Settings** by clicking on the tab at the top of the window: -![click on the settings tab{767x160}](docs-img:open-environment-settings.png) +![click on the settings tab{921x160}](docs-img:open-environment-settings.png) Then, fill the **API prefix** input at the top of the **environment Settings**: -![fill the prefix input{995x298}](docs-img:environment-prefix.png) +![fill the prefix input{1128x298}](docs-img:environment-prefix.png) The prefix will appear under your environment name in the environments list. All your environment's routes will now be prefixed and available at the following address `http://localhost:port/myprefix/myroute` instead of `http://localhost:port/myroute`. @@ -32,7 +32,7 @@ Mockoon uses Express to run the mock servers. In general, most of the Express' d ### Routes order -Routes are declared in the server in the order displayed in the application (inside folders or not). It means that a the first ones takes precedence over the following ones. +Routes are declared in the server in the order displayed in the application (inside folders or not). This means that the first ones take precedence over the following ones. One consequence is that a route parameter will capture any value at the specific URL segment. For example, `/users/:id` or `/users/*` will intercept `/users/search`. The more specific "search" route should be declared first. You can always reorder routes by dragging and dropping them. @@ -45,21 +45,24 @@ Routes support certain patterns and a subset of regular expressions. Here are so - `/ab+cd` will match `abcd`, `abbcd`, `abbbcd`, and so on. - `/ab(cd)?e` will match `/abe` and `/abcde`. -![route pattern{956x74}](docs-img:route-patterns.png) +![route pattern{1123x74}](docs-img:route-patterns.png) For a complete overview of the patterns available, please refer to Express' [route paths documentation](https://expressjs.com/en/guide/routing.html#route-paths). +> 💡 To use parentheses in your path as a normal character, you can escape them by either using a backslashe `\` or square brackets `[]`: +> `/part1[(]part2[)]` > `/part1\(part2\)` + ### Route parameters Route parameters can be defined in routes by using a colon `:`. The name of a parameter can only contains the following characters `A-Za-z0-9_`. -![route parameter{956x74}](docs-img:route-params.png) +![route parameter{1123x74}](docs-img:route-params.png) For a complete overview on how to use and declare route parameters, please refer to Express' [route parameters documentation](https://expressjs.com/en/guide/routing.html#route-parameters). You can also retrieve the route parameters by using the `{{urlParam 'paramName'}}` [templating helper](docs:templating/mockoon-request-helpers#urlparam). -> To use a colon `:` in your route path as a normal character, you can escape it by either using double backslashes `\\` or square brackets `[]`: +> 💡 To use a colon `:` in your route path as a normal character, you can escape it by either using double backslashes `\\` or square brackets `[]`: > `/part1[:]part2` > `/part1\\:part2` ### Query parameters diff --git a/content/docs/v8.1.1/callbacks/overview.md b/content/docs/v8.1.1/callbacks/overview.md new file mode 100644 index 00000000..a26a8bc0 --- /dev/null +++ b/content/docs/v8.1.1/callbacks/overview.md @@ -0,0 +1,36 @@ +--- +title: Overview +meta: + title: Callbacks overview + description: Learn how to create callbacks in Mockoon to call webhooks or microservices and how to trigger them from your route responses +order: 650 +--- + +# Callbacks overview + +--- + +## What are callbacks? + +Callbacks are a way to **make one or more HTTP calls** after an entering request reaches your route. This is useful to **call other APIs or micro-services or to trigger a webhook**. + +Callbacks are fully configurable and are created at the environment level, like the [data buckets](docs:data-buckets/overview). + +## Create a callback + +To create a new callback, open the **Callbacks** options by clicking on the tab at the top of the window: + +![click on the callbacks tab at the top{1005x160}](docs-img:open-callbacks-view.png) + +Add a new callback by clicking on the "plus" button: + +![Add a new callback by clicking on the plus button{1484x578}](docs-img:add-callback.png) + +## Configure a callback + +The callback configuration interface is very similar to the route response interface. You can configure the callback's **name**, **description**, **method**, **URL**, **body**, and **headers**: + +- **URL**: the URL to call. Supports [templating helpers](docs:templating/overview). +- **Method**: the HTTP method to use for the call. Only some methods support a body (`POST`, `PUT`, and `PATCH`). +- **Body**: the body to send with the call. You can serve an inline body, a file, or the content of a [data bucket](docs:data-buckets/overview). They support templating too. Please refer to the [response body](docs:response-configuration/response-body) documentation for more details. +- **Headers**: the headers to send with the call. They support our [templating helpers](docs:templating/overview). diff --git a/content/docs/v8.1.1/callbacks/using-callbacks.md b/content/docs/v8.1.1/callbacks/using-callbacks.md new file mode 100644 index 00000000..d461e6fb --- /dev/null +++ b/content/docs/v8.1.1/callbacks/using-callbacks.md @@ -0,0 +1,25 @@ +--- +title: Using callbacks +meta: + title: Using callbacks + description: Learn how to use Mockoon's callbacks, link them to your route responses and delay their execution +order: 651 +--- + +# Using callbacks + +--- + +After [creating callbacks](docs:callbacks/overview), you can link them in your route responses and delay their execution. + +## Link a callback to a route response + +To link a callback to a route response, choose "Callbacks" in the route response menu: + +![click on the callbacks tab in the route response menu{1174x174}](docs-img:open-route-response-callbacks.png) + +Then, click on the "plus" button to add a new callback, and select the callback you want to link: + +![click on the plus button to add a new callback{1147x234}](docs-img:link-callback-response.png) + +> 💡 You can **delay a callback execution** by adding a delay in milliseconds in the "Callback latency" field. diff --git a/content/docs/v5.0.0/data-buckets/overview.md b/content/docs/v8.1.1/data-buckets/overview.md similarity index 64% rename from content/docs/v5.0.0/data-buckets/overview.md rename to content/docs/v8.1.1/data-buckets/overview.md index 76a1b6c9..0e4cebb3 100644 --- a/content/docs/v5.0.0/data-buckets/overview.md +++ b/content/docs/v8.1.1/data-buckets/overview.md @@ -20,11 +20,11 @@ The data buckets are defined at the **environment level** and are **generated wh To create a new data bucket, open the **Data** options by clicking on the tab at the top of the window: -![Open data bucket view{742x160}](docs-img:open-data-view.png) +![Open data bucket view{795x160}](docs-img:open-data-view.png) Add a new data bucket by clicking on the "plus" button: -![Add a data bucket{1264x578}](docs-img:add-data-bucket.png) +![Add a data bucket{1484x578}](docs-img:add-data-bucket.png) You can change the data bucket title and content on the right part of the screen. Mockoon will automatically attribute a new **unique ID** to your data bucket. You can use this ID to reference the data using the [`data` helpers](docs:data-buckets/using-data-buckets#using-data-helpers). To retrieve a bucket's unique ID, look in the footer under the data bucket content or right-click on a bucket name in the list and click on "Copy ID to clipboard". @@ -48,10 +48,14 @@ You can easily combine your data bucket contents by referencing other data bucke } ``` -> ⚠️ However, data buckets are generated in the order they are defined in the environment. As a consequence, you cannot reference a data bucket that is defined **after** the current one. +> ⚠️ Data buckets are generated in the order they are defined in the environment. As a consequence, you cannot reference a data bucket that is defined **after** the current one. You can easily reorder your data buckets by dragging and dropping them in the list. ## Data buckets generation -Data buckets are generated when the server starts in the order they are defined in the environment. Their state persist during all mock API calls. To regenerate a data bucket's content, restart the mock server. +Data buckets are generated when the **server starts** in the order they are defined in the environment. Their state persist during all mock API calls and are shared between all routes. -If a data bucket contains [request helpers](docs:templating/mockoon-request-helpers), Mockoon will generate the bucket content only after the first call made to a route using this data bucket (by referencing it directly or using a data helper). It allows you to create bucket "configuration" routes that you can call programmatically with the content you want to reuse in your bucket using the request helpers (`body`, `queryParams`, etc.). +If a data bucket contains [request helpers](docs:templating/mockoon-request-helpers), Mockoon will generate the bucket content only **after the first call** made to a route using this data bucket (by referencing it directly or using a data helper). It allows you to create bucket "configuration" routes that you can call programmatically with the content you want to reuse in your bucket using the request helpers (`body`, `queryParams`, etc.). + +## Resetting data buckets + +To regenerate a data bucket's content, you can restart the mock server or you can also use the [admin API state purge endpoint](docs:admin-api/server-state) or specific [data buckets endpoint](docs:admin-api/data-buckets). diff --git a/content/docs/v5.0.0/data-buckets/using-data-buckets.md b/content/docs/v8.1.1/data-buckets/using-data-buckets.md similarity index 82% rename from content/docs/v5.0.0/data-buckets/using-data-buckets.md rename to content/docs/v8.1.1/data-buckets/using-data-buckets.md index 1b87415e..789f02fb 100644 --- a/content/docs/v5.0.0/data-buckets/using-data-buckets.md +++ b/content/docs/v8.1.1/data-buckets/using-data-buckets.md @@ -24,14 +24,14 @@ Both helpers support retrieving the data bucket by its unique ID or name. It als {{data 'ID_or_name' 'object.path'}} ``` -> Retrieving data at a specific object path requires that the data bucket content is a valid JSON. +> 💡 Retrieving data at a specific object path requires that the data bucket content is a valid JSON. Head over to the [data helpers' documentation](docs:templating/mockoon-helpers#data) to see more examples. ## Referencing in a route response -A data buckets can also be directly linked to a route response. Linking a data bucket will serve the generated data bucket content "as-is". +A data bucket can also be directly linked to a route response. Linking a data bucket will serve the generated data bucket content "as-is". To link a data bucket to a route response, choose "Data" in the body selector and select your data bucket. -![Using data bucket in a route response{1002x464}](docs-img:link-data-bucket-response.png) +![Using data bucket in a route response{1172x464}](docs-img:link-data-bucket-response.png) diff --git a/content/docs/v5.0.0/gui-cheat-sheet.md b/content/docs/v8.1.1/gui-cheat-sheet.md similarity index 100% rename from content/docs/v5.0.0/gui-cheat-sheet.md rename to content/docs/v8.1.1/gui-cheat-sheet.md diff --git a/content/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording.md b/content/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording.md similarity index 81% rename from content/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording.md rename to content/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording.md index 9613b661..43098d17 100644 --- a/content/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording.md +++ b/content/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording.md @@ -2,8 +2,8 @@ title: Auto-mocking and recording meta: title: Automatic API mock creation - description: Learn how to automatically mock your API endpoints manually or by recording entering requests -order: 710 + description: Learn how to automatically mock your API endpoints manually or by recording all the entering requests made to an existing API +order: 701 --- # Automatically create mock routes @@ -16,17 +16,17 @@ You can automatically create mock routes from HTTP transactions (request/respons Mockoon offers the possibility to automatically create mocks for entering requests. Click on the "plus" icon on a record to create a route containing the same information (headers, body, etc.): -![create a route from a log{1214x632}](docs-img:logs-auto-mocking.png) +![create a route from a log{1384x633}](docs-img:logs-auto-mocking.png) ## Record your API calls Mockoon can also automatically create mock API endpoints every time a request is logged. To activate this feature, click on the "Record" button at the top of the logs view: -![click on the record button{1214x632}](docs-img:logs-start-recording.png) +![click on the record button{1384x633}](docs-img:logs-start-recording.png) You can record in multiple environments at the same time. A red blinking recording icon will appear next to the environment name to indicate that the recording is active: -![recording icon{964x432}](docs-img:logs-recording-in-progress.png) +![recording icon{1184x433}](docs-img:logs-recording-in-progress.png) The recording will only create a route once, based on the path and HTTP method. diff --git a/content/docs/v5.0.0/logging-and-recording/requests-logging.md b/content/docs/v8.1.1/logging-and-recording/requests-logging.md similarity index 74% rename from content/docs/v5.0.0/logging-and-recording/requests-logging.md rename to content/docs/v8.1.1/logging-and-recording/requests-logging.md index d84656e6..f1ac94b9 100644 --- a/content/docs/v5.0.0/logging-and-recording/requests-logging.md +++ b/content/docs/v8.1.1/logging-and-recording/requests-logging.md @@ -12,9 +12,11 @@ order: 700 ## Accessing the logs -For easier debugging, Mockoon records all entering requests and all the corresponding outgoing responses for each of your mock API. To access an environment's log, click on the "Logs" tab at the top of the window: +For easier debugging, Mockoon **records all entering requests** and all the corresponding **outgoing responses** for each of your mock API. To access an environment's log, click on the "Logs" tab at the top of the window: -![click the logs tab{801x160}](docs-img:open-logs.png) +![click the logs tab{963x160}](docs-img:open-logs.png) + +> 💡 You can also **retrieve the logs programmatically** using the [admin API](docs:admin-api/transaction-logs) when running your mock with the desktop application, the CLI or the serverless library. ## Logs content @@ -22,21 +24,15 @@ The list shows all intercepted requests and how Mockoon answered to them. Please note that all requests are intercepted, even the `/favicon` request made by the browser. Each record contains the entering request and the outgoing response information. This includes the complete list of headers, route params, query params, and body in raw format. -![view the request{1214x632}](docs-img:logs-request.png) - -![view the response{1214x632}](docs-img:logs-response.png) - -The interface is showing truncated bodies for both the request and the response (the truncation length can be adjusted in the settings). You can still view them in full in a separated editor by clicking on **View full body in editor**: - -![click on view full body in editor link{1214x632}](docs-img:logs-view-body.png) +![view the request{1384x633}](docs-img:logs-request.png) -![body content is showed in a modal{860x696}](docs-img:logs-view-body-modal.png) +![view the response{1384x633}](docs-img:logs-response.png) ## Logs metadata You can also easily see if a request has been caught by Mockoon (record shows a green tick) or has been passed to another URL if the [proxy mode](docs:server-configuration/proxy-mode) is activated (record shows a shield icon): -![view logs metadata{1214x632}](docs-img:logs-metadata.png) +![view logs metadata{1384x633}](docs-img:logs-metadata.png) ## File logging @@ -87,9 +83,7 @@ When using this option, logs will contain the full transaction (request and resp }, "response": { "body": "{}", - "headers": [ - { "key": "content-type", "value": "application/json; charset=utf-8" } - ], + "headers": [{ "key": "content-type", "value": "application/json; charset=utf-8" }], "statusCode": 200, "statusMessage": "OK" }, diff --git a/content/docs/v8.1.1/mockoon-cloud/data-synchronization-team-collaboration.md b/content/docs/v8.1.1/mockoon-cloud/data-synchronization-team-collaboration.md new file mode 100644 index 00000000..916812cd --- /dev/null +++ b/content/docs/v8.1.1/mockoon-cloud/data-synchronization-team-collaboration.md @@ -0,0 +1,118 @@ +--- +title: Data synchronization and team collaboration +meta: + title: Data synchronization and team collaboration + description: Learn how to use Mockoon Pro to synchronize your data across your team and collaborate on your mock API projects +order: 901 +--- + +# Data synchronization and team collaborationPRO + +--- + +[Mockoon Pro](/pro/) allows you to **synchronize your mock APIs in the cloud**, share them with your team, and **collaborate in real time**. This feature is available in the desktop application and is part of the Mockoon Pro paid plans. Read on to learn how to use it and the different features it offers. + +## Cloud vs local environments + +The **local environment** is the default environment in Mockoon. It is [stored on your local machine](docs:mockoon-data-files/data-storage-location) and not synchronized with the cloud. + +**Cloud environments** are stored on our servers, and a local copy is kept on each client's machine. You can easily **create a cloud copy** of your local environment or **convert an existing cloud environment** back to a local environment. + +![Cloud and local environments menus{200x231}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/cloud-sync-menu.png) + +## Managing your cloud environments + +### Create a cloud environment + +There are multiple ways to **create a cloud environment**. You can use the context menu in the local environments list to create a cloud environment from a local one using "Duplicate to the cloud" or create a new cloud environment from scratch using "New cloud environment" from the cloud environments menu. + +![context menus to create cloud environments{569x492}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/create-cloud-environment.png) + +The new cloud environment will be created and synchronized with the cloud, together with a local copy. It will be available on all your devices (solo plan) and for all your team members (team/enterprise plans) once they connect to the cloud. + +### Remove an environment from the cloud + +You can **remove an environment** from the cloud using the context menu in the cloud environments list and selecting "Convert to local" or "Delete from cloud": + +![context menu to convert a cloud environment to local{533x277}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/convert-cloud-to-local.png) + +After converting an environment to local, it will be **permanently removed from the cloud** and **converted to a local environment** on all your devices (solo plan) and for all your team members (team/enterprise plans). + +## Team collaboration and conflict handling + +This feature is designed to allow multiple users (Team and Enterprise plans) to work on the same environment at the same time. The application will handle conflicts on a **last-write-wins** basis, but many changes can be made simultaneously without conflicts, for example: + +- Editing different properties of the same entity (route, response, etc.). +- Adding the same kind of entity (route, response, etc.) or reordering them. +- Deleting different entities. + +However, some parts of the environment definition cannot be edited simultaneously and are considered as a single entity that cannot be merged and will be synchronized as a whole. Here are some examples: + +- The environment's or route response's headers list. +- The route response's rules or callbacks list. +- The various editors content (inline body, data bucket, callback, etc.). + +## Offline editing + +Mockoon's synchronization and collaboration features are primarily designed to work while being **online**. Offline editing works to some extent, but it is **not recommended to simultaneously edit** the same environment while being offline. + +When you are offline, a warning is shown in the cloud environments list: + +![#sub#Warning shown when the application is offline{391x209}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/offline-editing-warning.png) + +When you modify an environment while being offline and go back online, three scenarios can happen: + +- **You made local changes**, but **the cloud version was not modified**: your local changes will be automatically **pushed** to the cloud. +- **You did not make local changes**, but **the cloud version was modified**: the cloud version will be pulled automatically to your local environment. +- **You made local changes**, and **the cloud version was modified**: you will be prompted to **choose** between **keeping** your local changes or **discarding** them. + +![#sub#Dialog shown when the application detected a conflict{504x241}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/offline-conflict-warning.png) + +> ⚠️ If multiple users edit the same environment while offline, **only one version of the environment will be kept** and the others will be discarded. + +## Disconnection reasons + +If you are disconnected from the cloud, the application will display a warning in the cloud environments list in the form of a orange or red cloud icon. Hovering over the icon will display the reason for the disconnection (e.g. incompatible version, etc.). You can also click on the icon to try to reconnect: + +![#sub#Tooltip showing a regular disconnection{287x219}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/offline-reason-disconnected.png) + +![#sub#Tooltip showing a disconnection due to an incompatible version{288x221}](/images/docs/static/mockoon-cloud/data-synchronization-team-collaboration/offline-reason-incompatible-version.png) + +## Major versions migrations + +Future major versions of Mockoon may introduce **breaking changes to the data model** of your environments. When this happens, the **first device (or user) to connect to the cloud storage will trigger the migration process**. The migration will update the data model of the cloud environments to the new version. Once the migration is complete, older versions of Mockoon will no longer be able to synchronize with your cloud space and will have to be updated. + +Here are the steps to follow to migrate your environments to a new major version when working in a team: + +1. **Coordinate** with your team to ensure that all users are aware of the upcoming migration. +2. **Update** Mockoon desktop on one device to the new major version. This will trigger the migration process in you cloud space. +3. **Update** Mockoon desktop on all other devices. + +> ⚠️ We strongly recommend that major updates installations are **coordinated** across your team to avoid any disruption. + +## Plans quotas and limits + +The data synchronization feature is available in the Solo and Team/Enterprise plans. The feature's behaviors are similar in all plans, but some **quotas and limits apply**. Here are the main ones: + +- **Solo plan**: + - 5 environments synchronized. + - 5MB per environment. +- **Team plan**: + - 10 environments synchronized. + - 10MB per environment. +- **Enterprise plan**: + - 20 environments synchronized. + - 15MB per environment. + +For all users (Solo, Team, and Enterprise), the environments can be synchronized across an unlimited number of devices with a limit of 2 simultaneous devices per user. + +These quotas and limits are subject to change. Please refer to this documentation for the latest information. + +## Current limitations + +The data synchronization feature is still in its early stages and has some **limitations**: + +- The "presence" indicator is not yet implemented. You will be able to see how many users are currently connected to the cloud space, but you won't be able to see who is editing the environment and what they are editing. +- External files linked to the environment are not synchronized (e.g. environment's certificates or files used in the "File" response body type). +- The CLI and serverless package do not support access to cloud environments yet. +- Team and Enterprise plans are currently not offering a personal cloud space for each user. All environments are shared across the team. diff --git a/content/docs/v5.0.0/api-endpoints/templates-and-ai-assistant.md b/content/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant.md similarity index 89% rename from content/docs/v5.0.0/api-endpoints/templates-and-ai-assistant.md rename to content/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant.md index d1cdd99f..a2314070 100644 --- a/content/docs/v5.0.0/api-endpoints/templates-and-ai-assistant.md +++ b/content/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant.md @@ -3,11 +3,10 @@ title: Templates and AI assistant meta: title: Mockoon templates and AI assistant documentation description: All you need to know about Mockoon's mock API ready to use JSON templates and AI assistant to generate your own dynamic and realistic templates. -order: 220 -proBadge: true +order: 900 --- -# Templates and AI assistant +# Templates and AI assistantPRO --- @@ -23,7 +22,7 @@ The pre-generated templates can be found in the desktop application. To use a template in your routes, click on the "From template" entry in the route creation menu to open the templates dialog: -![modal with templates list{390x304}](docs-img:pre-generated-templates-modal.png) +![modal with templates list{440x304}](docs-img:pre-generated-templates-modal.png) Then, select the template you want to use and either copy-paste its content manually or click on one of the two buttons to create a new **GET endpoint** or a **CRUD endpoint with a data bucket**. @@ -31,7 +30,7 @@ Then, select the template you want to use and either copy-paste its content manu The "GET route" button will create a new HTTP GET route and copy the template content as the body. The "CRUD + data" button will create a new CRUD endpoint with a linked data bucket and copy the template content as the data bucket content. -> Some templates are offered for free, while most of them require a subscription to [Mockoon Pro](/pro/). The templates part of the Pro plans are marked with a small yellow corner. +> Starting with version 8.0.0 all the pre-generated templates are available for **free**. ## Use the AI assistant to generate realistic data @@ -56,7 +55,7 @@ Several options are available to fine-tune the generated templates: - **JSON**: the generated template will be a valid JSON object. - **array**: the generated template root level will be a JSON array (usually used with the **JSON** option). -- **templating**: the generated template will contain Handlebars [templating helpers](docs:templating/overview) (e.g. `{{faker 'name.firstName'}}`). Please note that disabling this option usually results in longer templates. +- **templating**: the generated template will contain Handlebars [templating helpers](docs:templating/overview) (e.g. `{{faker 'person.firstName'}}`). Please note that disabling this option usually results in longer templates. ![prompt options buttons{860x801}](docs-img:ai-assistant-template-generate-options.png) @@ -66,4 +65,4 @@ If you want more freedom when generating templates (using a different data forma ### AI assistant quota -Each use of the AI assistant will count as one credit towards your monthly quota. You can check your quota in your [account page](https://mockoon.com/account/info/). +Each use of the AI assistant will count as one credit towards your monthly quota. You can check your quota in your [account page](/account/subscription/). diff --git a/content/docs/v5.0.0/mockoon-data-files/data-storage-location.md b/content/docs/v8.1.1/mockoon-data-files/data-storage-location.md similarity index 75% rename from content/docs/v5.0.0/mockoon-data-files/data-storage-location.md rename to content/docs/v8.1.1/mockoon-data-files/data-storage-location.md index e3bdb75f..084aa1a0 100644 --- a/content/docs/v5.0.0/mockoon-data-files/data-storage-location.md +++ b/content/docs/v8.1.1/mockoon-data-files/data-storage-location.md @@ -3,7 +3,7 @@ title: Data storage location meta: title: Data storage location description: Learn where Mockoon's data storage files and application settings are located and how to move them to other folders -order: 900 +order: 1100 --- # Data storage location @@ -16,15 +16,15 @@ Since [v1.16.0](https://github.com/mockoon/mockoon/releases/tag/v1.16.0), Mockoo You can locate the folder in which the API data are stored by right-clicking on each environment and selecting **"Show data file in explorer/finder"**: -![click on show in folder in the context menu{455x312}](docs-img:environment-show-in-folder.png) +![click on show in folder in the context menu{515x346}](docs-img:environment-show-in-folder.png) ## Moving the files You can move the data files to another folder by right-clicking on an environment and selecting **"Move data file to folder"**: -![click on Move data file to folder in folder in the context menu{455x344}](docs-img:environment-move-to-folder.png) +![click on Move data file to folder in folder in the context menu{515x377}](docs-img:environment-move-to-folder.png) -> Please note that the environment file will be copied to the new folder, and the original file will **not** be deleted. If you want to delete the original file, you will have to do it manually. +> 💡 Please note that the environment file will be copied to the new folder, and the original file will **not** be deleted. If you want to delete the original file, you will have to do it manually. ## Enabling data file watching @@ -32,6 +32,11 @@ Mockoon can monitor data files' external changes and automatically reload the in ![enable file monitoring in the settings{860x812}](docs-img:enable-file-watching.png) +## Cloud environments + +If you are a Mockoon Pro user, you can also create cloud environments that are stored in the cloud and synchronized across all your devices. It also allows you to collaborate in real-time with your team members. +You can learn more about this feature in the [dedicated documentation](/docs/latest/mockoon-cloud/data-synchronization-team-collaboration/). + ## Old system (pre v1.16.0) Before version 1.16.0, all of your environments were stored in the same `environments.json` file in the **application data folder**. The file was located in your operating system's user folder: diff --git a/content/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy.md b/content/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy.md similarity index 95% rename from content/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy.md rename to content/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy.md index adeffe71..3c6e68ce 100644 --- a/content/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy.md +++ b/content/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy.md @@ -3,7 +3,7 @@ title: Copy data to the clipboard meta: title: Copy data to the clipboard description: Learn how to easily share your Mockoon's mock API JSON definitions with your team by copying them to the clipboard and importing them in the application -order: 920 +order: 1120 --- # Copy data to the clipboard @@ -14,7 +14,7 @@ order: 920 To copy a specific environment or route's JSON data to the clipboard, right-click on the environment or route and select **Copy to clipboard (JSON)**: -![Right click on an environment and click on Copy to clipboard (JSON){655x331}](docs-img:export-clipboard-env.png) +![Right click on an environment and click on Copy to clipboard (JSON){715x365}](docs-img:export-clipboard-env.png) The resulting JSON can be saved in a file and directly opened in the desktop app or used with the CLI. diff --git a/content/docs/v5.0.0/mockoon-data-files/settings-and-logs.md b/content/docs/v8.1.1/mockoon-data-files/settings-and-logs.md similarity index 98% rename from content/docs/v5.0.0/mockoon-data-files/settings-and-logs.md rename to content/docs/v8.1.1/mockoon-data-files/settings-and-logs.md index 4dc4b640..3442a4e2 100644 --- a/content/docs/v5.0.0/mockoon-data-files/settings-and-logs.md +++ b/content/docs/v8.1.1/mockoon-data-files/settings-and-logs.md @@ -3,7 +3,7 @@ title: Settings and logs meta: title: Settings and logs description: Learn where Mockoon's desktop application settings and log files are located for each operating system -order: 930 +order: 1130 --- # Settings and logs diff --git a/content/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files.md b/content/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files.md similarity index 57% rename from content/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files.md rename to content/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files.md index 7993674e..14eaedd5 100644 --- a/content/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files.md +++ b/content/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files.md @@ -3,21 +3,20 @@ title: Sharing your mock API files meta: title: Sharing your mock API files description: Learn how to easily share your mock API files with other mockoon users, or use them with the CLI, and setup a git repository -order: 910 +order: 1110 --- # Sharing your mock API files --- -> 🆕 Be among the first to experience our new cloud offering with **data synchronization** capabilities by [signing up for our waiting list](/pro/). +> ☁️ **Data synchronization and team collaboration** are available as part of our [Mockoon Pro subscription](/pro/). It allows you to share your environments with your team and collaborate in real-time. ### Sharing a mock API -Each file can be easily shared with other Mockoon's users, "as-is". Since [v1.16.0](https://github.com/mockoon/mockoon/releases/tag/v1.16.0), there is no need to export in Mockoon's format on one computer and re-import on another one (see [legacy export file](docs:mockoon-data-files/import-export-mockoon-format)). -After [locating your environment file](docs:mockoon-data-files/data-storage-location#locating-the-files), you can share it with your coworkers by using Git for example. You coworkers can then save the file in any folder and open it directly using the "Open environment" button: +Each file can be easily shared with other Mockoon's users, "as-is". After [locating your environment file](docs:mockoon-data-files/data-storage-location#locating-the-files), you can share it with your coworkers by using Git for example. You coworkers can then save the file in any folder and open it directly using the "Open environment" button: -![open an environment{449x235}](docs-img:open-environment.png) +![open an environment{639x299}](docs-img:open-environment.png) ### Use a Git-tracked folder diff --git a/content/docs/v5.0.0/openapi/import-export-openapi-format.md b/content/docs/v8.1.1/openapi/import-export-openapi-format.md similarity index 99% rename from content/docs/v5.0.0/openapi/import-export-openapi-format.md rename to content/docs/v8.1.1/openapi/import-export-openapi-format.md index ab3b4e37..e8ef62b9 100644 --- a/content/docs/v5.0.0/openapi/import-export-openapi-format.md +++ b/content/docs/v8.1.1/openapi/import-export-openapi-format.md @@ -3,7 +3,7 @@ title: Import/export in OpenAPI format meta: title: Import/export in OpenAPI format description: Learn how to easily import and export or share with your team your mock API servers and routes using the OpenAPI specification -order: 800 +order: 1000 --- # Import/export in OpenAPI format diff --git a/content/docs/v5.0.0/openapi/openapi-specification-compatibility.md b/content/docs/v8.1.1/openapi/openapi-specification-compatibility.md similarity index 99% rename from content/docs/v5.0.0/openapi/openapi-specification-compatibility.md rename to content/docs/v8.1.1/openapi/openapi-specification-compatibility.md index 34121e93..78815bf0 100644 --- a/content/docs/v5.0.0/openapi/openapi-specification-compatibility.md +++ b/content/docs/v8.1.1/openapi/openapi-specification-compatibility.md @@ -3,7 +3,7 @@ title: OpenAPI specification compatibility meta: title: OpenAPI specification compatibility description: Learn more about Mockoon compatibility with the OpenAPI specification and how to easily share your API definitions with your team -order: 810 +order: 1010 --- # OpenAPI specification compatibility diff --git a/content/docs/v5.0.0/response-configuration/file-serving.md b/content/docs/v8.1.1/response-configuration/file-serving.md similarity index 68% rename from content/docs/v5.0.0/response-configuration/file-serving.md rename to content/docs/v8.1.1/response-configuration/file-serving.md index bbd4296a..a402b7c9 100644 --- a/content/docs/v5.0.0/response-configuration/file-serving.md +++ b/content/docs/v8.1.1/response-configuration/file-serving.md @@ -16,17 +16,17 @@ Besides using the body editor, Mockoon allows you to serve different files for e To serve a file, you must provide a path in the file input field: -![fill the file input field{987x354}](docs-img:file-path.png) +![fill the file input field{1157x354}](docs-img:file-path.png) -> When a file path is provided, the body editor content will be ignored. +> 💡 When a file path is provided, the body editor content will be ignored. ## Absolute or relative paths You can either provide an absolute path like `/home/username/file.json` or a relative path. Starting with [v1.16.0](https://github.com/mockoon/mockoon/releases/tag/v1.16.0), relative paths are resolved from the environment's file location. You can check the environment's file location by right-clicking on an environment en select "Show in folder" in the contextual menu: -![show in folder menu entry{455x312}](docs-img:environment-show-in-folder.png) +![show in folder menu entry{515x315}](docs-img:environment-show-in-folder.png) -> Prior to v1.16.0, relative file paths were resolved from the application executable. This is also supported by the CLI since its version [1.2.0](https://github.com/mockoon/cli/releases/tag/v1.2.0). +> 💡 Prior to v1.16.0, relative file paths were resolved from the application executable. This is also supported by the CLI since its version [1.2.0](https://github.com/mockoon/cli/releases/tag/v1.2.0). ## Templating @@ -42,7 +42,7 @@ Templating can be disabled both for the body editor and the file content. Please > > Parsing the templating helpers inside big files can be a very intensive task (CPU and memory intensive). All the files in different formats than the one mentioned above will be streamed to improve performances. > If you need to send big files in one of the above formats but don't need to parse the templating, you can disable it in the route response settings. It will stream the file instead of parsing it and improve the performance. -> ![disable templating in route response{1066x181}](docs-img:route-response-disable-templating.png) +> ![disable templating in route response{1236x181}](docs-img:route-response-disable-templating.png) ### File input templating @@ -52,6 +52,14 @@ Templating is also supported directly in the **file input field**. It allows to By default, Mockoon will return an error in the body when a file is not found. It will still keep the status code you set up on your route response. You can instead choose to automatically return a 404 by activating an option in the route response settings: -![tick the 404 fallback checkbox{1066x231}](docs-img:enable-404-fallback.png) +![tick the 404 fallback checkbox{1236x231}](docs-img:enable-404-fallback.png) This option will also fall back to use the content present in the body editor. + +## Serving a range of bytes from a file + +Mockoon supports the `Range` header for files that are not parsed by the templating engine or when the templating is disabled on the response (see [above](#file-content-templating)). + +To use this feature, you must provide a `Range` header in your request. The header value must be in the form `bytes=start-end` where `start` and `end` are the byte positions of the file you want to return. For example, `bytes=0-100` will return the first 100 bytes of the file. + +The server will answer with a `206 Partial Content` status code and the `Content-Range` header containing the range of bytes returned. If the range is invalid, the server will answer with a `416 Range Not Satisfiable` status code. diff --git a/content/docs/v5.0.0/response-configuration/response-body.md b/content/docs/v8.1.1/response-configuration/response-body.md similarity index 83% rename from content/docs/v5.0.0/response-configuration/response-body.md rename to content/docs/v8.1.1/response-configuration/response-body.md index 47578ea9..49f03db1 100644 --- a/content/docs/v5.0.0/response-configuration/response-body.md +++ b/content/docs/v8.1.1/response-configuration/response-body.md @@ -14,13 +14,13 @@ Each [route response](docs:route-responses/multiple-responses) can serve a diffe You can choose each option using the body selector: -![body type toggle buttons{1264x541}](docs-img:body-type-toggle.png) +![body type toggle buttons{1484x547}](docs-img:body-type-toggle.png) ## Body editor (inline) You can use the body editor to directly create your response content. It supports all the [templating helpers](docs:templating/overview). -![inline body editor{1021x806}](docs-img:inline-body-editor.png) +![inline body editor{1254x800}](docs-img:inline-body-editor.png) > Mockoon will save the content of the inline body editor directly in your [data file](docs:mockoon-data-files/data-storage-location). > Using an external file could improve the performance for large content. @@ -29,7 +29,7 @@ You can use the body editor to directly create your response content. It support You can also choose to serve an external file, using the second option: -![external file linking input{1021x806}](docs-img:body-file-serving.png) +![external file linking input{1254x800}](docs-img:body-file-serving.png) Please refer to the [file serving documentation](docs:response-configuration/file-serving) for more information. @@ -37,6 +37,6 @@ Please refer to the [file serving documentation](docs:response-configuration/fil You can finally choose to serve the content of a data bucket using the third option: -![data bucket linking select menu{1021x806}](docs-img:body-data-bucket.png) +![data bucket linking select menu{1254x800}](docs-img:body-data-bucket.png) Please refer to the [data bucket documentation](docs:data-buckets/overview) for more information. diff --git a/content/docs/v5.0.0/response-configuration/response-headers.md b/content/docs/v8.1.1/response-configuration/response-headers.md similarity index 79% rename from content/docs/v5.0.0/response-configuration/response-headers.md rename to content/docs/v8.1.1/response-configuration/response-headers.md index 50df4da0..bd3eed2d 100644 --- a/content/docs/v5.0.0/response-configuration/response-headers.md +++ b/content/docs/v8.1.1/response-configuration/response-headers.md @@ -16,11 +16,11 @@ In Mockoon you can easily define **response headers** for **each route** but als To add response headers like `Content-Type` to your route, go to the route's **Headers tab** and fill the name and value fields: -![Complete route response header form{997x204}](docs-img:fill-route-header-form.png) +![Complete route response header form{1167x204}](docs-img:fill-route-header-form.png) You can add one or more headers by clicking on the "Add header" button at the bottom of the list: -![Add route response header{977x234}](docs-img:add-route-header.png) +![Add route response header{1147x234}](docs-img:add-route-header.png) ## Environment level response headers @@ -28,8 +28,8 @@ You can also add response headers at the environment level. Headers defined in a Open the **Environment Headers** by clicking on the tab at the top of the window: -![click on the headers tab{746x160}](docs-img:open-environment-headers.png) +![click on the headers tab{796x160}](docs-img:open-environment-headers.png) And add one or more headers by clicking on the "Add header" button at the bottom of the list: -![Add environment header{1177x137}](docs-img:add-environment-header.png) +![Add environment header{1347x137}](docs-img:add-environment-header.png) diff --git a/content/docs/v5.0.0/response-configuration/xml-support.md b/content/docs/v8.1.1/response-configuration/xml-support.md similarity index 78% rename from content/docs/v5.0.0/response-configuration/xml-support.md rename to content/docs/v8.1.1/response-configuration/xml-support.md index fc347358..964babb9 100644 --- a/content/docs/v5.0.0/response-configuration/xml-support.md +++ b/content/docs/v8.1.1/response-configuration/xml-support.md @@ -46,4 +46,6 @@ JSON equivalent (compacted): } ``` -> Please refer to [xml-js documentation](https://www.npmjs.com/package/xml-js) for more detail on how the XML is parsed. +> 📘 Please refer to [xml-js documentation](https://www.npmjs.com/package/xml-js) for more detail on how the XML is parsed. + +> 🛠️ Use our [XML to JSON converter](/tools/xml-to-json/) to get a preview of how Mockoon will convert your XML to JSON. You can also use our [XML validator](/tools/xml-validator/) to make sure your XML is valid. diff --git a/content/docs/v5.0.0/route-responses/dynamic-rules.md b/content/docs/v8.1.1/route-responses/dynamic-rules.md similarity index 60% rename from content/docs/v5.0.0/route-responses/dynamic-rules.md rename to content/docs/v8.1.1/route-responses/dynamic-rules.md index b3eae5c4..c72bc794 100644 --- a/content/docs/v5.0.0/route-responses/dynamic-rules.md +++ b/content/docs/v8.1.1/route-responses/dynamic-rules.md @@ -20,19 +20,19 @@ You can define an unlimited number of rules for each route. At each request, Moc To add a new rule to a response, go to the route response's **Rules tab**, click on "Add rule" and fill the fields: -![Click on add and fill the fields{987x311}](docs-img:add-route-response-rule.png) +![Click on add and fill the fields{1157x304}](docs-img:add-route-response-rule.png) ### Reordering rules By default, rules are interpreted in the order you added them. You can change their interpretation order by drag and dropping them: -![Drag and drop rules to reorder them{977x323}](docs-img:route-response-rule-reorder.png) +![Drag and drop rules to reorder them{1195x326}](docs-img:route-response-rule-reorder.png) ### Disabling rules You can temporarily disable the rules and serve the default response only. To activate this option, click on the "rules" icon next to the response list: -![Disable rules{1010x244}](docs-img:disable-rules.png) +![Disable rules{1220x244}](docs-img:disable-rules.png) > When this option is active, the default response will be always served and all the rules defined on this route will be ignored. Also, this option cannot be selected in addition to the random or sequential responses. @@ -40,7 +40,7 @@ You can temporarily disable the rules and serve the default response only. To ac Inside a route response, rules are interpreted by default with the OR logical operator. When you have more than one rule in a route response, you can easily switch the operator applied when interpreting the rules, by clicking on the `OR|AND` buttons at the left of the rules: -![Choose the rule operator OR AND{982x221}](docs-img:route-response-rules-operator.png) +![Choose the rule operator OR AND{1152x214}](docs-img:route-response-rules-operator.png) Rules have four parts: @@ -52,46 +52,52 @@ Rules have four parts: ### 1. Target -![Rule target{1007x211}](docs-img:route-response-rules-target.png) +![Rule target{1177x204}](docs-img:route-response-rules-target.png) In the dropdown menu you can choose between: -- the **body** value (full raw content or one of its properties if request's `Content-Type` is either `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `application/xml`, `application/soap+xml` or `text/xml`). -- the value of a **header**. -- the value of a **cookie**. -- the value of a **route parameter**. -- the value of a **query string field**. -- the **request number** index starting at 1. +- the **request body** value (full raw content or one of its properties if request's `Content-Type` is either `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `application/xml`, `application/soap+xml` or `text/xml`). +- the value of a **query parameter**. +- the value of a **request header**. +- the value of a **request cookie**. +- the value of a [**route parameter**](docs:api-endpoints/routing#route-parameters). +- the value of a [**global variable**](docs:variables/global-variables). +- the value of a [**data bucket content**](docs:data-buckets/overview). +- the **request number** index starting at 1 (you can reset the request number by using the [state purge admin API](docs:admin-api/server-state)). ### 2. Property name or path -![Rule property{1007x211}](docs-img:route-response-rules-property.png) +![Rule property{1177x204}](docs-img:route-response-rules-property.png) Depending on the **target**, the way to access properties may be different: -- **body**: +- **request body**: - keep empty to match against the full raw body content. - use a path to access one of its properties. Two syntaxes are supported, [object-path](https://www.npmjs.com/package/object-path) or [JSONPath Plus](https://www.npmjs.com/package/jsonpath-plus). When using object-path, properties containing dots are supported by escaping the dots: `key.key\.with\.dot`. Fetching object properties is compatible with request's bodies of `Content-Type` `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `application/xml`, `application/soap+xml` or `text/xml`. _Please note that XML bodies are parsed using [xml-js](https://www.npmjs.com/package/xml-js) package. Refer to this [page](docs:response-configuration/xml-support) or the package documentation for more information on how the XML is parsed and how to fetch specific properties._ _Please also note that `multipart/form-data` only supports fields. Uploaded files will be ignored._ +- **query parameter**: either provide a property name like `filter` or a path if the query parameter is an object `filter.primary`. - **headers**: a header name like `Accept` or `Content-Type`. - **cookies**: the cookie name like `Session-id`. -- **route param**: a route param name without the colon (":"), `:userId` becoming `userId`. -- **query string**: either provide a property name like `filter` or a path if the query string field is an object `filter.primary`. +- **route parameter**: a route parameter name without the colon (":"), `:userId` becoming `userId`. +- **global variable**: a [global variable](docs:variables/global-variables) name like `myVar`. You can use a path to access one of its properties if the variable is storing arrays or objects. Two syntaxes are supported, [object-path](https://www.npmjs.com/package/object-path) or [JSONPath Plus](https://www.npmjs.com/package/jsonpath-plus). When using object-path, properties containing dots are supported by escaping the dots: `myVar.key\.with\.dot`. Examples: `myVar.property.subProperty`, `myVar.property.0.subProperty` or `$.myVar.property`. +- **data bucket content**: a [data bucket](docs:data-buckets/overview) name like `myData`. You can use a path to access one of its properties if the bucket is storing arrays or objects. Two syntaxes are supported, [object-path](https://www.npmjs.com/package/object-path) or [JSONPath Plus](https://www.npmjs.com/package/jsonpath-plus). When using object-path, properties containing dots are supported by escaping the dots: `myData.key\.with\.dot`. Examples: `myData.property.subProperty`, `myData.property.0.subProperty` or `$.myData.property`. - **request number**: _nothing has to be provided here for the request number_. For **body** and **query string**, if the property is an array, Mockoon will automatically check in the array if at least one item matches the value. +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + ### 3. Invert operator You can invert the **comparison operator** (**!** equals, **!** regex match, etc.) by toggling on the exclamation mark button: -![Rule comparison operator{1007x211}](docs-img:route-response-rules-invert-operator.png) +![Rule comparison operator{1177x204}](docs-img:route-response-rules-invert-operator.png) ### 4. Comparison operator -![Rule comparison operator{1007x211}](docs-img:route-response-rules-comparison-operator.png) +![Rule comparison operator{1177x204}](docs-img:route-response-rules-comparison-operator.png) Multiple comparison operators are available in each rule: @@ -102,7 +108,7 @@ Multiple comparison operators are available in each rule: ### 5. Value -![Rule value{1007x211}](docs-img:route-response-rules-value.png) +![Rule value{1177x204}](docs-img:route-response-rules-value.png) Depending on the comparison operator chosen, **equals** or **regex match**, you can either set a simple text value like "expected value" or any kind of regex. To use a regex, you must write it without the leading and trailing slashes. @@ -112,4 +118,4 @@ You can also test for empty values with the following regex: `^$|\s+`. The **request number** supports simple entries like `1` or `2` but also regexes, allowing you to return a different response for the first 3 calls `^[1-3]$` or failing on odd request indexes `[13579]$`. -> 💡 The response rule values also support templating helpers to create dynamic rules. See the [templating helpers](docs:templating/overview) documentation for more information. +> 💡 The **response rule values also support templating helpers** to create dynamic rules. See the [templating helpers](docs:templating/overview) documentation for more information. diff --git a/content/docs/v5.0.0/route-responses/global-routes-with-rules.md b/content/docs/v8.1.1/route-responses/global-routes-with-rules.md similarity index 90% rename from content/docs/v5.0.0/route-responses/global-routes-with-rules.md rename to content/docs/v8.1.1/route-responses/global-routes-with-rules.md index cf6cd87e..a946f34a 100644 --- a/content/docs/v5.0.0/route-responses/global-routes-with-rules.md +++ b/content/docs/v8.1.1/route-responses/global-routes-with-rules.md @@ -18,7 +18,7 @@ Three parts are required to create a global route: To create a global route, you first need to create a new HTTP route that will match all the endpoints you want to protect. To do so, create a new route and select "All methods" in the method dropdown: -![wildcard route on all methods{599x329}](docs-img:create-wildcard-route.png) +![wildcard route on all methods{649x318}](docs-img:create-wildcard-route.png) In this example, the wildcard route is placed above the `GET /users` route, which is important as it will be [evaluated first](docs:api-endpoints/routing#routes-order) and catch all the requests. You can create it first or move it up in the routes list with a drag and drop. @@ -30,11 +30,11 @@ In this example, the wildcard route is placed above the `GET /users` route, whic The second step is to create one or more responses with rules. For example, you can create a response checking that the request contains an `Authorization` header and returning a `401` error if's not present. To follow this example, use the existing response or create a new one and set the status code to `401`: -![create response with status code 401{1006x261}](docs-img:response-status-code-401.png) +![create response with status code 401{1176x261}](docs-img:response-status-code-401.png) Add a new rule to this response by clicking on the "add rule" button and selecting the "Header" rule type. Then, set the rule to check that the `Authorization` header is null as we want to return a `401` error if it is not present: -![create rule to check that the Authorization header is null{987x311}](docs-img:response-rule-header-null.png) +![create rule to check that the Authorization header is null{1157x304}](docs-img:response-rule-header-null.png) > 💡 You can create more responses with associated rules to verify more criteria on the request and serve different responses accordingly (errors, etc.). @@ -42,7 +42,7 @@ Add a new rule to this response by clicking on the "add rule" button and selecti Once your route is created and your responses customized, activate the fallback mode by clicking on the "fallback" icon next to the response list: -![Activate fallback mode{999x174}](docs-img:activate-fallback-mode.png) +![Activate fallback mode{1289x174}](docs-img:activate-fallback-mode.png) This will automatically pass the request to the next route when none of the [responses' rules](docs:route-responses/dynamic-rules) match. diff --git a/content/docs/v5.0.0/route-responses/multiple-responses.md b/content/docs/v8.1.1/route-responses/multiple-responses.md similarity index 87% rename from content/docs/v5.0.0/route-responses/multiple-responses.md rename to content/docs/v8.1.1/route-responses/multiple-responses.md index d006a78c..7cf87c5d 100644 --- a/content/docs/v5.0.0/route-responses/multiple-responses.md +++ b/content/docs/v8.1.1/route-responses/multiple-responses.md @@ -16,11 +16,11 @@ For each route, multiple responses can be defined (status, body, and headers) an To **add** a new response to your route, click on the "plus" icon next to the responses list: -![Click on the icon to add a new response{987x164}](docs-img:add-route-response.png) +![Click on the icon to add a new response{1157x164}](docs-img:add-route-response.png) You can also **duplicate** an existing route response by clicking on the "copy" icon on the right: -![Click on the copy icon to duplicate a response{985x195}](docs-img:duplicate-route-response.png) +![Click on the copy icon to duplicate a response{1185x195}](docs-img:duplicate-route-response.png) Everything will be copied to the new response: documentation, file/body, headers and rules. @@ -28,13 +28,13 @@ Everything will be copied to the new response: documentation, file/body, headers Route responses order define the order in which the [rules are interpreted](docs:route-responses/dynamic-rules). You can easily change the default response by reordering the responses menu with a drag and drop: -![Reorder route responses{968x221}](docs-img:reorder-responses.png) +![Reorder route responses{1138x214}](docs-img:reorder-responses.png) ## Default route response Without rules or when a request does not match the one you defined, the default response will always be the one marked with the blue flag. You can easily change the default response by clicking on the grey flags in the menu: -![Define a new default route response{1033x216}](docs-img:change-route-responses-default.png) +![Define a new default route response{1183x216}](docs-img:change-route-responses-default.png) ## Random route response @@ -42,7 +42,7 @@ Mockoon can serve the route responses randomly (200, 500, 404) to simulate an un To activate this option, click on the "shuffle" icon next to the response list: -![Random route responses{1032x174}](docs-img:random-route-responses.png) +![Random route responses{1232x174}](docs-img:random-route-responses.png) > ⚠️ When this option is active, the [default response](#default-route-response) and all the rules defined on this route will be ignored. Also, this option cannot be selected in addition to the sequential responses option below. @@ -52,7 +52,7 @@ Mockoon can serve the route responses sequentially (200 → 500 → 404). Mockoo To activate this option, click on the "repeat" icon next to the response list: -![Sequential route responses{1021x174}](docs-img:sequential-route-responses.png) +![Sequential route responses{1221x174}](docs-img:sequential-route-responses.png) > ⚠️ When this option is active, the [default response](#default-route-response) and all the rules defined on this route will be ignored. Also, this option cannot be selected in addition to the random responses option above. @@ -62,7 +62,7 @@ When the **fallback mode** is enabled, Mockoon will automatically pass the reque To activate this option, click on the "fallback" icon next to the response list: -![fallback mode responses{999x174}](docs-img:fallback-mode-responses.png) +![fallback mode responses{1199x174}](docs-img:fallback-mode-responses.png) Behind the scene, the server will automatically jump to the next route in the [order](docs:api-endpoints/routing#routes-order) they were declared and, ultimately, to the proxied server. It allows to create complex setups where a wildcard or parameterized route contains rules to protect the access to other routes: diff --git a/content/docs/v5.0.0/server-configuration/cors.md b/content/docs/v8.1.1/server-configuration/cors.md similarity index 84% rename from content/docs/v5.0.0/server-configuration/cors.md rename to content/docs/v8.1.1/server-configuration/cors.md index e16708f3..f97611c2 100644 --- a/content/docs/v5.0.0/server-configuration/cors.md +++ b/content/docs/v8.1.1/server-configuration/cors.md @@ -3,7 +3,7 @@ title: CORS meta: title: Automatic handling of CORS preflight OPTIONS requests description: Front-end application and your JSON mock API are not on the same domain? Handle preflight OPTIONS requests automatically with Mockoon -order: 120 +order: 130 --- # CORS @@ -18,11 +18,11 @@ For your application to work, you can make Mockoon automatically answer to these Open the **Environment Settings** by clicking on the tab at the top of the window: -![click on the settings tab{1034x160}](docs-img:open-environment-settings.png) +![click on the settings tab{1198x160}](docs-img:open-environment-settings.png) Enable the **Automatically handle OPTIONS pre-flight requests ** by ticking the checkbox: -![tick the CORS checkbox{1061x537}](docs-img:enable-cors.png) +![tick the CORS checkbox{1098x509}](docs-img:enable-cors.png) You need to restart the environment for the change to take effect. @@ -42,12 +42,12 @@ You can also add the same CORS headers to all routes of a mock API with one clic Open the **Environment Headers** by clicking on the tab at the top of the window: -![click on the headers tab{1264x160}](docs-img:open-environment-headers.png) +![click on the headers tab{1484x160}](docs-img:open-environment-headers.png) Then, click on the **Add CORS headers** link: -![Click on the add CORS headers link{1264x137}](docs-img:add-cors-headers.png) +![Click on the add CORS headers link{1484x137}](docs-img:add-cors-headers.png) The above headers will be automatically added to your list of headers: -![view cors headers in the list{1264x233}](docs-img:view-cors-headers.png) +![view cors headers in the list{1484x237}](docs-img:view-cors-headers.png) diff --git a/content/docs/v5.0.0/server-configuration/listening-hostname.md b/content/docs/v8.1.1/server-configuration/listening-hostname.md similarity index 63% rename from content/docs/v5.0.0/server-configuration/listening-hostname.md rename to content/docs/v8.1.1/server-configuration/listening-hostname.md index 21166e03..7077d07d 100644 --- a/content/docs/v5.0.0/server-configuration/listening-hostname.md +++ b/content/docs/v8.1.1/server-configuration/listening-hostname.md @@ -3,7 +3,7 @@ title: Listening hostname/adapter meta: title: Listening hostname or adapter description: Learn how you can customize the hostname or network adapter your mock API will listen to in the desktop application or the CLI -order: 130 +order: 140 --- # Listening hostname/adapter @@ -14,12 +14,12 @@ By default, Mockoon's mock APIs will listen to all available network adapters on To configure each environment to listen on a specific hostname, open the **Environment Settings** by clicking on the tab at the top of the window: -![click on the settings tab{1034x160}](docs-img:open-environment-settings.png) +![click on the settings tab{1198x160}](docs-img:open-environment-settings.png) Add a **custom hostname** in the input field: -![field to set a custom hostname{1264x213}](docs-img:custom-hostname-setting.png) +![field to set a custom hostname{1484x213}](docs-img:custom-hostname-setting.png) -> You may need to restart your environment for the change to take effect. +> ⚠️ You may need to restart your environment for the change to take effect. -> When using the CLI, you can choose a specific adapter to listen to (e.g. `192.168.1.1`) by using the `--hostname` flag with the [`start` command](https://github.com/mockoon/mockoon/tree/main/packages/cli#mockoon-cli-start). +> 💡 When using the CLI, you can choose a specific adapter to listen to (e.g. `192.168.1.1`) by using the `--hostname` flag with the [`start` command](https://github.com/mockoon/mockoon/tree/main/packages/cli#mockoon-cli-start). diff --git a/content/docs/v8.1.1/server-configuration/port-prefix.md b/content/docs/v8.1.1/server-configuration/port-prefix.md new file mode 100644 index 00000000..60fe8449 --- /dev/null +++ b/content/docs/v8.1.1/server-configuration/port-prefix.md @@ -0,0 +1,25 @@ +--- +title: Port and prefix +meta: + title: Change port and API prefix + description: Learn how you can customize the localhost port and API prefix of your mock server. +order: 100 +--- + +# Port and prefix + +--- + +By default, Mockoon's new environments will listen on port `3000` and will have **no API prefix**. If you have multiple environments already opened, Mockoon will automatically increment the port number for each new environment. + +You can change the **port number** and the **API prefix** in the **Environment Settings** by clicking on the tab at the top of the window: + +![click on the settings tab{921x160}](docs-img:open-environment-settings.png) + +Then, change the port number and/or the API prefix in the corresponding input fields: + +![field to set a custom port{661x298}](docs-img:environment-custom-port.png) + +![field to set a custom prefix{1128x298}](docs-img:environment-custom-prefix.png) + +> 💡 The API prefix can contain multiple sections (e.g. `/api/v1/`) and will be applied to all your routes. diff --git a/content/docs/v5.0.0/server-configuration/proxy-mode.md b/content/docs/v8.1.1/server-configuration/proxy-mode.md similarity index 85% rename from content/docs/v5.0.0/server-configuration/proxy-mode.md rename to content/docs/v8.1.1/server-configuration/proxy-mode.md index 23a85d2d..69508e5d 100644 --- a/content/docs/v5.0.0/server-configuration/proxy-mode.md +++ b/content/docs/v8.1.1/server-configuration/proxy-mode.md @@ -3,7 +3,7 @@ title: Partial mocking with proxy mode meta: title: Partial API mocking with proxy mode description: Learn how to create a mock REST API to intercept traffic and proxy requests to another JSON REST server with Mockoon -order: 100 +order: 110 --- # Proxy mode @@ -16,11 +16,11 @@ Mockoon supports partial mocking of an API endpoints by forwarding the requests To activate the proxy mode, open the **Environment Proxy** options by clicking on the tab at the top of the window: -![click on proxy tab{887x160}](docs-img:open-proxy-options.png) +![click on proxy tab{1048x160}](docs-img:open-proxy-options.png) Enable the proxy mode by checking the box and enter the server URL to which you want to forward the calls. A small shield icon should appear on the right of your environment name indicating that the proxy mode has been enabled: -![tick the Proxy checkbox{1264x274}](docs-img:enable-proxy.png) +![tick the Proxy checkbox{1484x277}](docs-img:enable-proxy.png) From now on, all routes that have been defined in Mockoon will be intercepted, and any other request not matching any route path will be forwarded to the server URL you entered in the proxy mode setting. @@ -28,12 +28,12 @@ From now on, all routes that have been defined in Mockoon will be intercepted, a By default, the API prefix will be part of the path called on the proxied API. You can disable this behavior by ticking the "Remove prefix" checkbox: -![tick the Proxy no prefix forward checkbox{699x306}](docs-img:proxy-no-forward.png) +![tick the Proxy no prefix forward checkbox{746x320}](docs-img:proxy-no-forward.png) ## Proxy headers Proxy specific headers can also be added, both to the forwarded request and the response received from the target API. -![add proxy headers by filling the keys and values{1264x360}](docs-img:proxy-headers.png) +![add proxy headers by filling the keys and values{1484x379}](docs-img:proxy-headers.png) > **Proxy request headers** will be automatically added to the request sent to the proxied server, while **proxy response headers** are added to the response received from the proxied server. diff --git a/content/docs/v8.1.1/server-configuration/serving-over-tls.md b/content/docs/v8.1.1/server-configuration/serving-over-tls.md new file mode 100644 index 00000000..d9fba890 --- /dev/null +++ b/content/docs/v8.1.1/server-configuration/serving-over-tls.md @@ -0,0 +1,65 @@ +--- +title: TLS +meta: + title: Serve a mock API over TLS + description: Need to mock a secured REST API server? Mockoon can also do this by serving over TLS with a self-signed certificate +order: 120 +--- + +# TLS + +--- + +Mockoon supports serving your mock API over TLS with a self-signed certificate by default. You can also provide your certificate and trusted CA certificates. + +## Activate the TLS option + +You can activate the TLS option for each environment independently. Open the **Environment Settings** by clicking on the tab at the top of the window: + +![click on the settings tab{1198x160}](docs-img:open-environment-settings.png) + +Enable the **TLS option** by ticking the checkbox. The option was successfully activated if a yellow lock is displayed next to the environment name. + +![tick the TLS checkbox{854x343}](docs-img:enable-tls.png) + +> 💡 You may need to restart your environment for the change to take effect. + +Your mock API will now be available on `https://localhost:port` instead of `http://localhost:port`. + +Please note that Mockoon is using a self-signed certificate to serve your environment over TLS. + +## Provide your own certificate + +You can also **provide your certificate in both PKCS12 or PEM formats** by filling out the input fields with the path to the file(s). + +![add certificate path{1484x612}](docs-img:enable-tls-custom-certificate.png) + +Mockoon also supports passphrase-protected keys and custom-trusted CA certificates. As Mockoon is using Node.js' `tls`, you can refer to the [`tls.createSecureContext()` documentation](https://nodejs.org/dist/latest-v20.x/docs/api/tls.html#tlscreatesecurecontextoptions) for a full description of the available options. + +> 💡 All the path fields support both absolute and relative paths. Relative paths are resolved from the environment's file location. + +## Disable TLS at runtime with the CLI or serverless library + +You can disable TLS when running your mock with the [CLI](/cli/) or the [serverless library](/serverless/). + +### Disable TLS with the CLI + +To **disable** TLS when running your mock with the CLI, use the `--disable-tls` flag: + +```bash +mockoon-cli start --disable-tls -d ./mock.json +``` + +> 📘 Check the [CLI dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/cli#readme) + +### Disable TLS with the serverless library + +To **disable** TLS when running your mock with the serverless library, set the `disableTLS` option to `true` when building the `MockoonServerless` instance: + +```javascript +const mockoonServerless = new mockoon.MockoonServerless(mockEnv, { + disableTLS: true +}); +``` + +> 📘 Check the [serverless library dedicated documentation](https://github.com/mockoon/mockoon/tree/main/packages/serverless#readme) diff --git a/content/docs/v8.1.1/templating/fakerjs-helpers.md b/content/docs/v8.1.1/templating/fakerjs-helpers.md new file mode 100644 index 00000000..0c6785d4 --- /dev/null +++ b/content/docs/v8.1.1/templating/fakerjs-helpers.md @@ -0,0 +1,64 @@ +--- +title: Faker.js helpers +meta: + title: Create dynamic responses with templating Faker.js helpers + description: Create realistic mock data for your mock API servers with Mockoon's templating system including Faker.js +order: 504 +--- + +# Faker.js helpers + +--- + +Mockoon implements [Faker.js v8.1.0](https://fakerjs.dev/) library by wrapping most of the available helpers. +Faker.js offers lots of helpers: `location.zipCode`, `location.city`, `location.count`, `person.firstName`, `person.lastName`, `number.int`, `number.float`, `internet.avatar`, `internet.email`, etc. Please have a look at [Faker.js documentation](https://fakerjs.dev/) to learn how to use them. + +## Usage + +All Faker.js helpers must be used with the following syntax: `{{faker 'namespace.method'}}`. +**Examples:** + +```js +{{faker 'location.zipCode'}} +{{faker 'location.city'}} +{{faker 'location.county'}} +{{faker 'person.firstName'}} +... +``` + +Faker.js methods may use two different ways of passing parameters: **ordered arguments** or **option object** (with eventually a depth > 1). Wrapped in a Handlebars helper, this may result in different syntaxes: + +- **Ordered arguments**: `{{faker 'namespace.method' arg1 arg2 arg3}}` + +```handlebars +{{faker 'number.int' 100}} + +{{faker 'string.alphanumeric' 25}} +``` + +- **Option object** with **named parameters**: `{{faker 'namespace.method' arg1='value1' arg2='value2'}}` will be translated to an option object `{ arg1: 'value1', arg2: 'value2' }` + +```handlebars +{{faker 'number.int' min=10 max=100}} +{{faker 'string.alphanumeric' casing='mixed' length=50}} +``` + +- **Option object** with **named parameters** and **depth > 1**: `{{faker 'namespace.method' '{arg1: "value1", arg2: { prop1: "value2"}}'}}` will be translated to a complex option object `{ arg1: 'value1', arg2: { prop1: 'value2' } }`. Be sure to **escape** the single or double quotes inside your option string accordingly. + +```handlebars +{{faker 'number.int' '{min: 10, max: 100}'}} +{{faker 'string.alphanumeric' '{casing: "lower", length: { min: 1, max: 3}}'}} +``` + +> 📘 Please check Faker.js documentation to know which syntax to use for each helper. + +## Set Faker.js' locale and seed + +Faker.js locale and seed can be defined in the application settings: + +![fakerjs settings{860x812}](docs-img:settings-faker.png) + +The locale and seed can also be set when running your mock using the [CLI's flags](https://github.com/mockoon/mockoon/blob/main/packages/cli/README.md#fakerjs-options) or the [serverless package options](https://github.com/mockoon/mockoon/blob/main/packages/serverless/README.md#options). + +> 📝**A note on Faker.js seeding** +> By providing a seed value, you can generate repeatable **sequences** of fake data. Using seeding will not always generate the same value but rather a predictable sequence. diff --git a/content/docs/v5.0.0/templating/mockoon-helpers.md b/content/docs/v8.1.1/templating/mockoon-helpers.md similarity index 82% rename from content/docs/v5.0.0/templating/mockoon-helpers.md rename to content/docs/v8.1.1/templating/mockoon-helpers.md index a98b062e..c4d890d4 100644 --- a/content/docs/v5.0.0/templating/mockoon-helpers.md +++ b/content/docs/v8.1.1/templating/mockoon-helpers.md @@ -1,9 +1,9 @@ --- -title: Custom helpers +title: Helpers meta: title: Create dynamic responses with templating helpers description: "Create dynamic fake data for your mock server with Mockoon's templating helpers. All formats are supported: JSON, CSV, HTML, etc." -order: 510 +order: 501 --- # Mockoon templating helpers @@ -27,15 +27,15 @@ In addition to Handlebars' built-in helpers, Mockoon offers the following helper | [`len`](#len) | | | [`filter`](#filter) | | -| Math | | Variables | -| ----------------------- | --------------------- | ------------------- | -| [`add`](#add) | [`eq`](#eq) | [`setVar`](#setvar) | -| [`subtract`](#subtract) | [`gt`](#gt) | [`getVar`](#getvar) | -| [`multiply`](#multiply) | [`gte`](#gte) | | -| [`divide`](#divide) | [`lt`](#lt) | | -| [`modulo`](#modulo) | [`lte`](#lte) | | -| [`ceil`](#ceil) | [`toFixed`](#tofixed) | | -| [`floor`](#floor) | [`round`](#round) | | +| Math | | +| ----------------------- | --------------------- | +| [`add`](#add) | [`eq`](#eq) | +| [`subtract`](#subtract) | [`gt`](#gt) | +| [`multiply`](#multiply) | [`gte`](#gte) | +| [`divide`](#divide) | [`lt`](#lt) | +| [`modulo`](#modulo) | [`lte`](#lte) | +| [`ceil`](#ceil) | [`toFixed`](#tofixed) | +| [`floor`](#floor) | [`round`](#round) | | Strings | | Dates | Misc | | ------------------------- | ----------------------- | --------------------------------- | ------------------------------- | @@ -45,6 +45,7 @@ In addition to Handlebars' built-in helpers, Mockoon offers the following helper | [`uppercase`](#uppercase) | [`padStart`](#padstart) | [`time`](#time) | [`objectId`](#objectid) | | [`split`](#split) | [`padEnd`](#padend) | [`dateFormat`](#dateformat) | | | [`stringify`](#stringify) | [`eq`](#eq) | | | +| [`jsonParse`](#jsonparse) | | | | | [Faker.js](docs:templating/fakerjs-helpers) aliases | | | | --------------------------------------------------- | ----------------------------- | ----------------------- | @@ -59,7 +60,7 @@ In addition to Handlebars' built-in helpers, Mockoon offers the following helper | [`tld`](#tld) | [`phone`](#phone) | | | [`email`](#email) | [`color`](#color) | | -## `repeat` +## repeat Repeat the block content a random number of times if two arguments are provided, or a fixed amount of time if only one argument is provided. Set the `comma` parameter to `false` (default to `true`) to prevent the insertion of new lines and commas by the helper. @@ -83,7 +84,7 @@ test, test --> ``` -## `switch` +## switch Select some content depending on a variable. Behaves like a regular switch. @@ -101,7 +102,7 @@ Select some content depending on a variable. Behaves like a regular switch. {{/switch}} ``` -## `data` +## data Get the **stringified** value at a given `path` from a [data bucket](docs:data-buckets/overview) selected by **ID or name**. This helper is designed to retrieve data to be served in a response. To reuse the retrieved data with other helpers (`each`, `if`, etc.), use the [`dataRaw` helper](#dataraw) below. @@ -110,6 +111,8 @@ Get the **stringified** value at a given `path` from a [data bucket](docs:data-b - Full objects or arrays can be retrieved by the helper and will be stringified. - The full data bucket content can be fetched when the `path` is omitted (`{{data 'ID'}}`). +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------ | -------------------------------- | | 0 | string | ID or name of the data bucket | @@ -118,17 +121,17 @@ Get the **stringified** value at a given `path` from a [data bucket](docs:data-b **Examples** ```handlebars -{{data 'abcd'}} +{{data 'bucketNameOrId'}} -{{data 'abcd' 'path.to.property'}} -{{data 'abcd' 'deep.property\.with\.dot'}} +{{data 'bucketNameOrId' 'path.to.property'}} +{{data 'bucketNameOrId' 'deep.property\.with\.dot'}} -{{data 'abcd' '$.array.[*].property'}} +{{data 'bucketNameOrId' '$.array.[*].property'}} ``` -## `dataRaw` +## dataRaw Get the **raw** value (array, object, etc.) at a given `path` from a [data bucket](docs:data-buckets/overview) selected by **ID or name**. This "raw" helper is designed to work with other helpers (`each`, `if`, etc.). To directly use the retrieved data in the response, use [data buckets direct linking](docs:data-buckets/using-data-buckets#referencing-in-a-route-response) or the [`data` helper](#data) above. @@ -137,33 +140,35 @@ Get the **raw** value (array, object, etc.) at a given `path` from a [data bucke - Primitives and data structures can be retrieved by the helper and reused in other helpers (see example below). - The full data bucket content (array, object, etc.) can be fetched when the `path` is omitted (`{{dataRaw 'ID'}}`). +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------ | -------------------------------- | -| 0 | string | ID or name of the daa bucket | +| 0 | string | ID or name of the data bucket | | 1 | string | Path to the data bucket property | **Examples** ```handlebars -{{dataRaw 'abcd'}} +{{dataRaw 'bucketNameOrId'}} -{{dataRaw 'abcd' 'path.to.property'}} -{{dataRaw 'abcd' 'deep.property\.with\.dot'}} +{{dataRaw 'bucketNameOrId' 'path.to.property'}} +{{dataRaw 'bucketNameOrId' 'deep.property\.with\.dot'}} -{{dataRaw 'abcd' '$.array.[*].property'}} +{{dataRaw 'bucketNameOrId' '$.array.[*].property'}} -{{#each (dataRaw 'path.to.array.property')}} +{{#each (dataRaw 'bucketNameOrId' 'path.to.array.property')}} value {{/each}} -{{#if (dataRaw 'path.to.boolean.property')}} +{{#if (dataRaw 'bucketNameOrId' 'path.to.boolean.property')}} value {{/if}} ``` -## `array` +## array Create an array from the given items. This helper is mostly used with the following helpers: `oneOf`, `someOf`. @@ -177,7 +182,7 @@ Create an array from the given items. This helper is mostly used with the follow {{array 'item1' 'item2' 'item3'}} ``` -## `oneOf` +## oneOf Select a random item in the array passed in parameters. `oneOf` will return the actual value in the array. Set the `stringify` parameter to `true` (default to `false`) to get a JSON stringified result. @@ -193,16 +198,16 @@ Select a random item in the array passed in parameters. `oneOf` will return the result: item2 ``` -## `someOf` +## someOf -Return a random number of items from the array passed in parameters, concatenated as a string. Use it with triple curly braces to get a JSON representation. +Return an array containing a random number of items from the array passed in parameters, eventually stringified. Use it with triple curly braces to get a non-escaped JSON representation. | Arguments (ordered) | Type | Description | | ------------------- | ------- | ----------------------- | | 0 | any[] | Array of values | | 1 | number | Minimum number of items | | 2 | number | Maximum number of items | -| [3 = false] | boolean | Get result as an array | +| [3 = false] | boolean | Stringify the result | **Examples** @@ -210,12 +215,12 @@ Return a random number of items from the array passed in parameters, concatenate {{someOf (array 'item1' 'item2' 'item3') 1 2}} result: item1,item2 - + {{{someOf (array 'item1' 'item2' 'item3') x y true}}} -result: item1,item2 +result: ["item1","item2"] ``` -## `join` +## join Return a new string by concatenating all the elements in an array. @@ -231,7 +236,7 @@ Return a new string by concatenating all the elements in an array. result: item1#item2#item3 ``` -## `slice` +## slice Return a copy of a portion of an array from start to end indexes (not included). @@ -248,7 +253,7 @@ Return a copy of a portion of an array from start to end indexes (not included). result: ['item1', 'item2'] ``` -## `len` +## len Return an array or string length. @@ -266,7 +271,7 @@ result: 3 result: 5 ``` -## `filter` +## filter Return a filtered array. This helper can be used with data buckets, use the [dataRaw](#dataraw) for that. @@ -314,43 +319,26 @@ results: items that fit to (a1 AND a2 AND (x1 OR x2) ) OR (b1 AND b2 AND b3) result: 1,3 -{{filter - (array 'item1' 'item2' 'item3' 'item4' 'item3') - 'item1' - 'item2' - 'item3' -}} +{{filter (array 'item1' 'item2' 'item3' 'item4' 'item3') 'item1' 'item2' 'item3'}} result: item1,item2,item3,item3 {{filter (dataRaw 'Users') (object type='item1')}} -{{filter - (dataRaw 'Users') - (object type='item1') - (object type='item2') - (object type='item3') -}} +{{filter (dataRaw 'Users') (object type='item1') (object type='item2') (object type='item3')}} {{filter (dataRaw 'Users') (object type='item1' category='some-category')}} -{{filter - (dataRaw 'Users') - (array (object type='item1') (object category='some-category')) -}} +{{filter (dataRaw 'Users') (array (object type='item1') (object category='some-category'))}} -{{filter - (array 'item1' 'item2' (object type='type1') (object type='type2')) - 'item1' - (object type='type2') -}} +{{filter (array 'item1' 'item2' (object type='type1') (object type='type2')) 'item1' (object type='type2')}} ``` -## `object` +## object Return an object that can be used in other helpers. @@ -377,7 +365,7 @@ result: {type: [1,2,3]} result: {type: [1,3]} ``` -## `add` +## add Add the numbers passed as parameters to each others. Unrecognized strings passed as arguments will be ignored. @@ -398,7 +386,7 @@ result: '2' result: '2' ``` -## `subtract` +## subtract Subtract the numbers passed as parameters to the first parameter. Unrecognized strings passed as arguments will be ignored. @@ -419,7 +407,7 @@ result: '1' result: '1' ``` -## `multiply` +## multiply Multiply the numbers passed as parameters to each others. Unrecognized strings passed as arguments will be ignored. @@ -440,7 +428,7 @@ result: '6' result: '6' ``` -## `divide` +## divide Divide the first parameter by the other numbers passed as parameters. Unrecognized strings passed as arguments will be ignored. @@ -461,7 +449,7 @@ result: '2' result: '2' ``` -## `modulo` +## modulo Compute the modulo of the first parameter by the second. @@ -483,7 +471,7 @@ result: '1' result: '1' ``` -## `ceil` +## ceil Ceil the value of the number passed as parameter. @@ -501,7 +489,7 @@ result: '2' result: '2' ``` -## `floor` +## floor Floor the value of the number passed as parameter. @@ -519,7 +507,7 @@ result: '2' result: '2' ``` -## `eq` +## eq Verify if two numbers or strings are equal. Returns a boolean. Returns false if type of the value not equals. @@ -550,7 +538,7 @@ Result: false Result: true ``` -## `gt` +## gt Verify if the first number is greater than the second number. Returns a boolean. @@ -568,7 +556,7 @@ Verify if the first number is greater than the second number. Returns a boolean. Result: true ``` -## `gte` +## gte Verify if the first number is greater than or equal to the second number. Returns a boolean. @@ -586,7 +574,7 @@ Verify if the first number is greater than or equal to the second number. Return Result: true ``` -## `lt` +## lt Verify if the first number is lower than the second number. Returns a boolean. @@ -604,7 +592,7 @@ Verify if the first number is lower than the second number. Returns a boolean. Result: true ``` -## `lte` +## lte Verify if the first number is lower than or equal to the second number. Returns a boolean. @@ -622,7 +610,7 @@ Verify if the first number is lower than or equal to the second number. Returns Result: true ``` -## `toFixed` +## toFixed Format a number using fixed-point notation. @@ -638,7 +626,7 @@ Format a number using fixed-point notation. Result: 1.11 ``` -## `round` +## round Return the value of a number rounded to the nearest integer. @@ -653,7 +641,7 @@ Return the value of a number rounded to the nearest integer. Result: 0 ``` -## `newline` +## newline Add a newline `\n`. @@ -663,7 +651,7 @@ Add a newline `\n`. {{newline}} ``` -## `base64` +## base64 Encode the parameter as base64. This can be used as an inline helper or block helper (see examples below). @@ -679,14 +667,14 @@ Encode the parameter as base64. This can be used as an inline helper or block he {{#base64}} firstname,lastname,countryCode {{#repeat 10}} - {{faker 'name.firstName'}},{{faker 'name.lastName'}},{{faker - 'address.countryCode' - }} + {{faker 'person.firstName'}},{{faker 'person.lastName'}},{{faker 'address.countryCode'}} {{/repeat}} {{/base64}} ``` -## `base64Decode` +> 🛠️ Use our online [base64 encoder/decoder](/tools/base64-encode-decode/) to get a preview of the encoded content and validate a base64 string. + +## base64Decode Decode a base64 string. This can be used as an inline helper or block helper (see examples below). @@ -704,7 +692,9 @@ Decode a base64 string. This can be used as an inline helper or block helper (se {{/base64Decode}} ``` -## `objectId` +> 🛠️ Use our online [base64 encoder/decoder](/tools/base64-encode-decode/) to get a preview of the encoded content and validate a base64 string. + +## objectId Create a valid ObjectId. It can generates the ObjectId based on the specified time (in seconds) or from a 12 byte string that will act as a seed. Syntax is based on [bson-objectid package](https://www.npmjs.com/package/bson-objectid). @@ -719,58 +709,7 @@ Create a valid ObjectId. It can generates the ObjectId based on the specified ti {{objectId '54495ad94c934721ede76d90'}} ``` -## `setVar` - -Set a variable to be used later in the template. The value can be the result of another helper. To use it elsewhere in the template, refer to the variable with its name prefixed with an `@`: `{{@varname}}`. The variable can also be used as a helper parameter: `{{#repeat @varname}}...{{/repeat}}`. -Variables declared in a block helper will be scoped to the block and unavailable outside. - -| Arguments (ordered) | Type | Description | -| ------------------- | ------ | -------------- | -| 0 | string | Variable name | -| 1 | any | Variable value | - -**Examples** - -```handlebars -{{setVar 'varname' 'value'}} -{{setVar 'varname' (body 'id')}} - -usage: -{{@varname}} -{{#repeat @varname}}...{{/repeat}} - -declare a variable in a block helper: -{{#repeat 5}} - {{setVar 'random' (oneOf (array '1' '2' '3'))}} - {{@random}} -{{/repeat}} - -{{setVar 'myArray' (array '1' '2' '3')}} -{{#each @myArray}} - {{setVar 'eachIndex' @index}} - {{@eachIndex}} -{{/repeat}} -``` - -## `getVar` - -Dynamically get a variable set with [`setVar`](#setvar). - -| Arguments (ordered) | Type | Description | -| ------------------- | ------ | ------------- | -| 0 | string | Variable name | - -**Examples** - -```handlebars -{{setVar 'varname' 'value'}} - -{{getVar 'varname'}} -{{getVar (concat 'var' 'name')}} -{{getVar (body 'property')}} -``` - -## `includes` +## includes Search whether a string can be found in another string and returns the appropriate boolean. @@ -787,7 +726,7 @@ Search whether a string can be found in another string and returns the appropria result: true ``` -## `substr` +## substr Return a portion of a string starting at the specified index and extending for a given number of characters afterwards. @@ -804,7 +743,7 @@ Return a portion of a string starting at the specified index and extending for a result: 'data' ``` -## `lowercase` +## lowercase Return the first string parameter lowercased. @@ -820,7 +759,7 @@ Return the first string parameter lowercased. result: 'abcd' ``` -## `uppercase` +## uppercase Return the first string parameter uppercased. @@ -836,7 +775,7 @@ Return the first string parameter uppercased. result: 'ABCD' ``` -## `split` +## split Split a string and return an array containing the multiples substrings. This helper can be used within handlebars' iterative helpers such as `each`. (Default separator is " ") @@ -859,9 +798,9 @@ result: item1,item2,item3,item4 result: This,is,my,string, ``` -## `stringify` +## stringify -Return objects and arrays as a formatted JSON string indented with two spaces. +Return objects and arrays as a formatted JSON string indented with two spaces. This helper requires to be used with triple curly braces (`{{{stringify ...}}}`) to avoid escaping of the JSON string by Handlebars. | Arguments (ordered) | Type | Description | | ------------------- | ---- | --------------- | @@ -890,7 +829,37 @@ Considering an entering body: } ``` -## `concat` +## jsonParse + +Parse a valid JSON string. The result can be used with other helpers like `each`, `if`, `oneOf`, `lookup`, etc. + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | -------------------------- | +| 0 | string | Valid JSON string to parse | + +**Examples** + +```handlebars +{{#if (jsonParse 'true')}} + value +{{/if}} + +{{#if (eq (jsonParse '25') 25)}} + value +{{/if}} + +{{oneOf (jsonParse '[5, 56, 98]')}} +result: 5 or 56 or 98 + +{{lookup (jsonParse '{"data":"test"}') 'data'}} +result: test + + +{{lookup (jsonParse (queryParam 'json')) 'data'}} +result: test +``` + +## concat Concatenate multiple strings/numbers together. This helper can concatenate results from other helpers, or be used as a parameter of another helper (see examples below). @@ -906,7 +875,7 @@ Concatenate multiple strings/numbers together. This helper can concatenate resul {{#repeat (concat 1 2 3)}}...{{/repeat}} ``` -## `indexOf` +## indexOf Return the index of the searched 'data' inside the string. A last parameter (number) can be passed to start the search at a specific index. @@ -924,7 +893,7 @@ Return the index of the searched 'data' inside the string. A last parameter (num result: 5 ``` -## `parseInt` +## parseInt Parse a number from a string. @@ -932,7 +901,7 @@ Parse a number from a string. | ------------------- | ------ | --------------- | | 0 | string | String to parse | -## `padStart` +## padStart Pads a string with a given string (repeated, if needed) until the resulting string reaches the given length. The padding is applied from the start of the string. @@ -948,7 +917,7 @@ Pads a string with a given string (repeated, if needed) until the resulting stri result: 00005 ``` -## `padEnd` +## padEnd Pads a string with a given string (repeated, if needed) until the resulting string reaches the given length. The padding is applied from the end of the string. @@ -966,9 +935,9 @@ Pads a string with a given string (repeated, if needed) until the resulting stri result: 50000 ``` -## `now` +## now -Display the current time in the chosen format. Format syntax is based on [date-fns package (v2)](https://date-fns.org/v2.11.1/docs/format) and is optional (default to ISO string). +Display the current time in the chosen format. Format syntax is based on [date-fns v2 package format function](https://date-fns.org/v2.30.0/docs/format) and is optional (default to ISO string). | Arguments (ordered) | Type | Description | | ------------------- | ------ | ----------- | @@ -980,9 +949,9 @@ Display the current time in the chosen format. Format syntax is based on [date-f {{now 'YYYY-MM-DD'}} ``` -## `dateTimeShift` +## dateTimeShift -Shift a date by adding the number of `years`, `months`, etc. passed as parameters. The `date` and `format` parameters are optional. The helper will return the current date and time as an ISO string if omitted (`yyyy-MM-ddTHH:mm:ss.SSSxxx`). +Shift a date by adding the number of `years`, `months`, etc. passed as parameters. The `date` and `format` parameters are optional. The helper will return the current date and time as an ISO string if omitted (`yyyy-MM-ddTHH:mm:ss.SSSxxx`). The formatting uses [date-fns v2 package format function](https://date-fns.org/v2.30.0/docs/format). | Parameters (named) | Type | Description | | --------------------------------------- | ------ | -------------------------- | @@ -998,21 +967,12 @@ Shift a date by adding the number of `years`, `months`, etc. passed as parameter **Examples** ```handlebars -{{dateTimeShift - date='2021-01-01' - format='yyyy-MM-dd HH:mm:ss' - years=1 - months=1 - days=1 - hours=1 - minutes=1 - seconds=1 -}} +{{dateTimeShift date='2021-01-01' format='yyyy-MM-dd HH:mm:ss' years=1 months=1 days=1 hours=1 minutes=1 seconds=1}} ``` -## `date` +## date -Return a random formatted date (using [date-fns package format](https://date-fns.org/docs/format)) between a minimum and a maximum. Uses `faker 'date.between'` to generate the random date. +Return a random formatted date (using [date-fns v2 package format function](https://date-fns.org/v2.30.0/docs/format)) between a minimum and a maximum. Uses `faker 'date.between'` to generate the random date. | Arguments (ordered) | Type | Description | | ------------------- | ------ | ------------- | @@ -1026,9 +986,9 @@ Return a random formatted date (using [date-fns package format](https://date-fns {{date '2020-11-20' '2020-11-25' "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"}} ``` -## `time` +## time -Return a random formatted time (using [date-fns package format](https://date-fns.org/docs/format)) between a minimum and a maximum. Uses `faker 'date.between'` to generate the random time. +Return a random formatted time (using [date-fns v2 package format function](https://date-fns.org/v2.30.0/docs/format)) between a minimum and a maximum. Uses `faker 'date.between'` to generate the random time. | Arguments (ordered) | Type | Description | | ------------------- | ------ | ------------- | @@ -1042,9 +1002,9 @@ Return a random formatted time (using [date-fns package format](https://date-fns {{time '09:00' '10:00' 'HH:mm'}} ``` -## `dateFormat` +## dateFormat -Return a formatted date (using [date-fns package format](https://date-fns.org/docs/format)). +Return a formatted date (using [date-fns v2 package format function](https://date-fns.org/v2.30.0/docs/format)). | Arguments (ordered) | Type | Description | | ------------------- | -------------- | -------------- | @@ -1058,9 +1018,9 @@ Return a formatted date (using [date-fns package format](https://date-fns.org/do {{dateFormat (faker 'date.recent') 'yyyy'}} ``` -## `int` +## int -Return a random integer. Alias of `faker 'datatype.number`. +Return a random integer. Alias of `faker 'number.int`. | Arguments (ordered) | Type | Description | | ------------------- | ------ | ----------- | @@ -1073,9 +1033,9 @@ Return a random integer. Alias of `faker 'datatype.number`. {{int 0 100}} ``` -## `float` +## float -Return a random float. Alias of `faker 'datatype.number` with precision = 10. +Return a random float. Alias of `faker 'number.float` with precision = 10. | Arguments (ordered) | Type | Description | | ------------------- | ------ | ----------- | @@ -1088,7 +1048,7 @@ Return a random float. Alias of `faker 'datatype.number` with precision = 10. {{float 0 100}} ``` -## `boolean` +## boolean Return a random boolean. Alias of `faker 'datatype.boolean'`. @@ -1098,19 +1058,23 @@ Return a random boolean. Alias of `faker 'datatype.boolean'`. {{boolean}} ``` -## `title` +## title + +Return a random title. Alias of `faker 'name.prefix'`. -Return a random title. Alias of `faker 'name.title'`. +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | ----------- | +| 0 | string | Sex | **Examples:** ```handlebars -{{title}} +{{title 'male'}} ``` -## `firstName` +## firstName -Return a random first name. Alias of `faker 'name.firstName'`. +Return a random first name. Alias of `faker 'person.firstName'`. **Examples:** @@ -1118,9 +1082,9 @@ Return a random first name. Alias of `faker 'name.firstName'`. {{firstName}} ``` -## `lastName` +## lastName -Return a random last name. Alias of `faker 'name.lastName'`. +Return a random last name. Alias of `faker 'person.lastName'`. **Examples:** @@ -1128,7 +1092,7 @@ Return a random last name. Alias of `faker 'name.lastName'`. {{lastName}} ``` -## `company` +## company Return a random company name. Alias of `faker 'company.companyName'`. @@ -1138,7 +1102,7 @@ Return a random company name. Alias of `faker 'company.companyName'`. {{company}} ``` -## `domain` +## domain Return a random domain name. Alias of `faker 'internet.domainName'`. @@ -1148,7 +1112,7 @@ Return a random domain name. Alias of `faker 'internet.domainName'`. {{domain}} ``` -## `tld` +## tld Return a random top level domain. Alias of `faker 'internet.domainSuffix'`. @@ -1158,7 +1122,7 @@ Return a random top level domain. Alias of `faker 'internet.domainSuffix'`. {{tld}} ``` -## `email` +## email Return a random email address. Alias of `faker 'internet.email'`. @@ -1168,9 +1132,9 @@ Return a random email address. Alias of `faker 'internet.email'`. {{email}} ``` -## `street` +## street -Return a random address. Alias of `faker 'address.streetAddress'`. +Return a random address. Alias of `faker 'location.streetAddress'`. **Examples:** @@ -1178,9 +1142,9 @@ Return a random address. Alias of `faker 'address.streetAddress'`. {{street}} ``` -## `city` +## city -Return a random city name. Alias of `faker 'address.city'`. +Return a random city name. Alias of `faker 'location.city'`. **Examples:** @@ -1188,9 +1152,9 @@ Return a random city name. Alias of `faker 'address.city'`. {{city}} ``` -## `country` +## country -Return a random country name. Alias of `faker 'address.country'`. +Return a random country name. Alias of `faker 'location.country'`. **Examples:** @@ -1198,9 +1162,9 @@ Return a random country name. Alias of `faker 'address.country'`. {{country}} ``` -## `countryCode` +## countryCode -Return a random country code. Alias of `faker 'address.countryCode'`. +Return a random country code. Alias of `faker 'location.countryCode'`. **Examples:** @@ -1208,9 +1172,9 @@ Return a random country code. Alias of `faker 'address.countryCode'`. {{countryCode}} ``` -## `zipcode` +## zipcode -Return a random zip code. Alias of `faker 'address.zipCode'`. +Return a random zip code. Alias of `faker 'location.zipCode'`. **Examples:** @@ -1218,9 +1182,9 @@ Return a random zip code. Alias of `faker 'address.zipCode'`. {{zipcode}} ``` -## `postcode` +## postcode -Return a random zip code. Alias of `faker 'address.zipCode'`. +Return a random zip code. Alias of `faker 'location.zipCode'`. **Examples:** @@ -1228,9 +1192,9 @@ Return a random zip code. Alias of `faker 'address.zipCode'`. {{postcode}} ``` -## `lat` +## lat -Return a random latitude. Alias of `faker 'address.latitude'`. +Return a random latitude. Alias of `faker 'location.latitude'`. **Examples:** @@ -1238,9 +1202,9 @@ Return a random latitude. Alias of `faker 'address.latitude'`. {{lat}} ``` -## `long` +## long -Return a random longitude. Alias of `faker 'address.longitude'`. +Return a random longitude. Alias of `faker 'location.longitude'`. **Examples:** @@ -1248,9 +1212,9 @@ Return a random longitude. Alias of `faker 'address.longitude'`. {{long}} ``` -## `phone` +## phone -Return a random phone number. Alias of `faker 'phone.phoneNumber'`. +Return a random phone number. Alias of `faker 'phone.number'`. **Examples:** @@ -1258,9 +1222,9 @@ Return a random phone number. Alias of `faker 'phone.phoneNumber'`. {{phone}} ``` -## `color` +## color -Return a random color. Alias of `faker 'commerce.color'`. +Return a random color. Alias of `faker 'color.human'`. **Examples:** @@ -1268,7 +1232,7 @@ Return a random color. Alias of `faker 'commerce.color'`. {{color}} ``` -## `hexColor` +## hexColor Return a random hexadecimal color code. @@ -1278,9 +1242,9 @@ Return a random hexadecimal color code. {{hexColor}} ``` -## `guid` +## guid -Return a random GUID. Alias of `faker 'datatype.uuid'`. +Return a random GUID. Alias of `faker 'string.uuid'`. **Examples:** @@ -1288,9 +1252,9 @@ Return a random GUID. Alias of `faker 'datatype.uuid'`. {{guid}} ``` -## `ipv4` +## ipv4 -Return a random IP v4. Alias of `faker 'internet.ip'`. +Return a random IP v4. Alias of `faker 'internet.ipv4'`. **Examples:** @@ -1298,7 +1262,7 @@ Return a random IP v4. Alias of `faker 'internet.ip'`. {{ipv4}} ``` -## `ipv6` +## ipv6 Return a random IP v6. Alias of `faker 'internet.ipv6'`. @@ -1308,7 +1272,7 @@ Return a random IP v6. Alias of `faker 'internet.ipv6'`. {{ipv6}} ``` -## `lorem` +## lorem Return random lorem ipsum text. Alias of `faker 'lorem.sentence'`. diff --git a/content/docs/v5.0.0/templating/mockoon-request-helpers.md b/content/docs/v8.1.1/templating/mockoon-request-helpers.md similarity index 92% rename from content/docs/v5.0.0/templating/mockoon-request-helpers.md rename to content/docs/v8.1.1/templating/mockoon-request-helpers.md index 248acf1b..ab3cf2f9 100644 --- a/content/docs/v5.0.0/templating/mockoon-request-helpers.md +++ b/content/docs/v8.1.1/templating/mockoon-request-helpers.md @@ -3,7 +3,7 @@ title: Request helpers meta: title: Create dynamic responses with templating request helpers description: "Create dynamic fake mock data for your mock environments with Mockoon's templating request helpers. All formats are supported: JSON, CSV, HTML, etc." -order: 520 +order: 502 --- # Templating request helpers @@ -24,7 +24,7 @@ Mockoon offers the following helpers which can return information relative to th - [`method`](#method) - [`baseUrl`](#baseurl) -## `body` +## body Get the value at a given `path` from the request body if the entering `Content-Type` is set to `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `application/xml`, `application/soap+xml` or `text/xml`. This helper is designed to retrieve data to be served in a response. To reuse the retrieved data with other helpers (`each`, `if`, etc.), use the [`bodyRaw` helper](#bodyraw) below. @@ -36,6 +36,8 @@ Get the value at a given `path` from the request body if the entering `Content-T - If no value is present at the requested `path`, the default value will be used. - A third parameter (boolean) can be set to true to returns a stringified value even if it's a primitive. +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------- | -------------------------------------- | | 0 | string | Path to the body property | @@ -58,7 +60,7 @@ Get the value at a given `path` from the request body if the entering `Content-T {{body 'path' 'default value' true}} ``` -## `bodyRaw` +## bodyRaw Get the **raw** value at a given `path` from the request body if the entering `Content-Type` is set to `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `application/xml`, `application/soap+xml` or `text/xml`. This "raw" helper is designed to work with other helpers (`each`, `if`, etc.). To directly use the retrieved data in the response, use the [`body` helper](#body) above. @@ -70,6 +72,8 @@ Get the **raw** value at a given `path` from the request body if the entering `C - If no value is present at the requested `path`, the default value will be used. - This helper allows the use of `body` within handlebars' helpers such as `{{#each}}` and `{{#if}}`. +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------ | -------------------------------------- | | 0 | string | Path to the body property | @@ -98,7 +102,7 @@ Get the **raw** value at a given `path` from the request body if the entering `C {{/if}} ``` -## `queryParam` +## queryParam Get the value at a given `path` from the request's query string. Complex query strings with arrays and objects are supported. This helper is designed to retrieve data to be served in a response. To reuse the retrieved data with other helpers (`each`, `if`, etc.), use the [`queryParamRaw` helper](#queryparamraw) below. @@ -108,6 +112,8 @@ Get the value at a given `path` from the request's query string. Complex query s - If there is no value at the requested `path`, the default value will be used. - A third parameter (boolean) can be set to true to returns a stringified value even if it's a primitive. +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------- | -------------------------------------- | | 0 | string | Path to the query param property | @@ -130,7 +136,7 @@ Get the value at a given `path` from the request's query string. Complex query s {{queryParam 'path' 'default value' true}} ``` -## `queryParamRaw` +## queryParamRaw Get the **raw** value at a given `path` from the request's query string. Complex query strings with arrays and objects are supported. This "raw" helper is designed to work with other helpers (`each`, `if`, etc.). To directly use the retrieved data in the response, use the [`queryParam` helper](#queryparam) above. @@ -140,6 +146,8 @@ Get the **raw** value at a given `path` from the request's query string. Complex - If there is no value at the requested `path`, the default value will be used. - This helper allows the use of `queryParam` within handlebars' helpers such as `{{#each}}` and `{{#if}}`. +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + | Arguments (ordered) | Type | Description | | ------------------- | ------ | -------------------------------------- | | 0 | string | Path to the query param property | @@ -168,7 +176,7 @@ Get the **raw** value at a given `path` from the request's query string. Complex {{/if}} ``` -## `urlParam` +## urlParam Get a named parameter from the route `/:paramName1/:paramName2`. @@ -182,7 +190,7 @@ Get a named parameter from the route `/:paramName1/:paramName2`. {{urlParam 'paramName1'}} ``` -## `cookie` +## cookie Get the content of a cookie or returns a default value if the cookie is not present. @@ -197,7 +205,7 @@ Get the content of a cookie or returns a default value if the cookie is not pres {{cookie 'cookie_name' 'default value'}} ``` -## `header` +## header Get content from any request header or returns a default value if header is not present. @@ -212,7 +220,7 @@ Get content from any request header or returns a default value if header is not {{header 'Header-Name' 'default value'}} ``` -## `hostname` +## hostname Returns the request hostname. @@ -222,7 +230,7 @@ Returns the request hostname. {{hostname}} ``` -## `ip` +## ip Returns the request IP address. @@ -232,7 +240,7 @@ Returns the request IP address. {{ip}} ``` -## `method` +## method Returns the request method (GET, PUT, POST, etc.). @@ -242,7 +250,7 @@ Returns the request method (GET, PUT, POST, etc.). {{method}} ``` -## `baseUrl` +## baseUrl Returns the base URL of the request: protocol, host, port and API prefix. diff --git a/content/docs/v5.0.0/templating/mockoon-response-helpers.md b/content/docs/v8.1.1/templating/mockoon-response-helpers.md similarity index 87% rename from content/docs/v5.0.0/templating/mockoon-response-helpers.md rename to content/docs/v8.1.1/templating/mockoon-response-helpers.md index 066f2540..99a908ff 100644 --- a/content/docs/v5.0.0/templating/mockoon-response-helpers.md +++ b/content/docs/v8.1.1/templating/mockoon-response-helpers.md @@ -1,9 +1,9 @@ --- title: Response helpers meta: - title: Dynamically customize the response with with templating helpers + title: Dynamically customize your response with templating helpers description: "Dynamically customize your mock environments response with Mockoon's templating response helpers. All formats are supported: JSON, CSV, HTML, etc." -order: 530 +order: 503 --- # Templating response helpers @@ -14,7 +14,7 @@ Mockoon offers the following helpers which can customize the outgoing response: - [`status`](#status) -## `status` +## status Set the response status code. This helper does not return any content. diff --git a/content/docs/v8.1.1/templating/mockoon-variables-helpers.md b/content/docs/v8.1.1/templating/mockoon-variables-helpers.md new file mode 100644 index 00000000..b8380e84 --- /dev/null +++ b/content/docs/v8.1.1/templating/mockoon-variables-helpers.md @@ -0,0 +1,151 @@ +--- +title: Variables helpers +meta: + title: Dynamically customize your responses with variables templating helpers + description: "Dynamically customize your mock environments response with Mockoon's templating variables helpers. All formats are supported: JSON, CSV, HTML, etc." +order: 503 +--- + +# Templating variables helpers + +--- + +Mockoon offers the following helpers which can help you set **local or global variables**, and **access environment variables** in your templates: + +- [`setVar`](#setvar) +- [`getVar`](#getvar) +- [`setGlobalVar`](#setglobalvar) +- [`getGlobalVar`](#getglobalvar) +- [`getEnvVar`](#getenvvar) + +## setVar + +Set a variable to be used later in the template. The value can be the result of another helper. To use it elsewhere in the template, refer to the variable with its name prefixed with an `@`: `{{@varname}}`. The variable can also be used as a helper parameter: `{{#repeat @varname}}...{{/repeat}}`. +Variables declared in a block helper will be scoped to the block and unavailable outside. + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | -------------- | +| 0 | string | Variable name | +| 1 | any | Variable value | + +**Examples** + +```handlebars +{{setVar 'varname' 'value'}} +{{setVar 'varname' (body 'id')}} + +usage: +{{@varname}} +{{#repeat @varname}}...{{/repeat}} + +declare a variable in a block helper: +{{#repeat 5}} + {{setVar 'random' (oneOf (array '1' '2' '3'))}} + {{@random}} +{{/repeat}} + +{{setVar 'myArray' (array '1' '2' '3')}} +{{#each @myArray}} + {{setVar 'eachIndex' @index}} + {{@eachIndex}} +{{/repeat}} +``` + +## getVar + +Dynamically get a variable set with [`setVar`](#setvar). + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | ------------- | +| 0 | string | Variable name | + +**Examples** + +```handlebars +{{setVar 'varname' 'value'}} + +{{getVar 'varname'}} +{{getVar (concat 'var' 'name')}} +{{getVar (body 'property')}} +``` + +## setGlobalVar + +Set a global variable to be used anywhere templating is supported (body, headers, etc.). Global variables are available on all the routes of an environment and they are reset when the environment is restarted. + +- The variable name and values can be dynamically created using other helpers. +- The variable can store any kind of data (arrays, objects, string, etc.). +- To get the value of a global variable, use the [`{{getGlobalVar 'varName'}}` helper below](#getglobalvar). + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | -------------- | +| 0 | string | Variable name | +| 1 | any | Variable value | + +**Examples** + +```handlebars +{{setGlobalVar 'varName' 'value'}} +{{setGlobalVar 'varName' (bodyRaw 'id')}} +{{setGlobalVar (queryParam 'param1') (bodyRaw 'id')}} +``` + +## getGlobalVar + +Get a global variable's value set with [`setGlobalVar`](#setglobalvar). Global variables are available on all the routes of an environment and they are reset when the environment is restarted. + +- The variable name and path can be dynamically created using other helpers. +- The `path` supports two syntaxes, [object-path](https://www.npmjs.com/package/object-path) or [JSONPath Plus](https://www.npmjs.com/package/jsonpath-plus). When using object-path, properties containing dots are supported by escaping the dots: `key.key\.with\.dot`. + Please note that a value can be retrieved at the path if the variable contains valid JSON. +- Primitives and data structures can be retrieved by the helper and reused in other helpers (see example below). +- The full variable content (array, object, etc.) can be fetched when the `path` is omitted (`{{getGlobalVar 'varname'}}`). + +> 🛠️ Use our online [JSONPath and object-path evaluator](/tools/json-object-path-evaluator/) to test your JSONPath or object-path syntaxes and view the results in real-time. + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | -------------------------- | +| 0 | string | Variable name | +| 1 | string | Path to the value property | + +**Examples** + +```handlebars +{{getGlobalVar 'varname'}} +{{getGlobalVar (bodyRaw 'property')}} +{{getGlobalVar (urlParam 'id')}} + + +{{getGlobalVar 'varName' 'path.to.property'}} +{{getGlobalVar 'varName' 'deep.property\.with\.dot'}} + + +{{getGlobalVar 'varName' '$.array.[*].property'}} + +{{#repeat (getGlobalVar 'varname')}}...{{/repeat}} + +{{#each (getGlobalVar 'varName')}}...{{/each}} + + +{{{stringify (getGlobalVar 'varName')}}} +``` + +## getEnvVar + +Get an environment variable. If the environment variable is not set, the default value will be used. + +By default, only environment variables with the `MOCKOON_` prefix are available. Learn more in the [environment variables documentation](docs:variables/environment-variables). + +| Arguments (ordered) | Type | Description | +| ------------------- | ------ | ------------------------- | +| 0 | string | Environment variable name | +| 1 | any | Default value | + +**Examples** + +```handlebars +{{setVar 'varname' 'value'}} + +{{getEnvVar 'VARIABLE_NAME' 'default value'}} +{{getEnvVar 'VARIABLE_NAME'}} +{{getEnvVar (body 'property')}} +``` diff --git a/content/docs/v5.0.0/templating/overview.md b/content/docs/v8.1.1/templating/overview.md similarity index 87% rename from content/docs/v5.0.0/templating/overview.md rename to content/docs/v8.1.1/templating/overview.md index 5741bc3d..74c89eb9 100644 --- a/content/docs/v5.0.0/templating/overview.md +++ b/content/docs/v8.1.1/templating/overview.md @@ -10,7 +10,7 @@ order: 500 --- -Mockoon implements [Handlebars](https://handlebarsjs.com/), [Faker.js v7.6.0](https://fakerjs.dev/), and a set of custom helpers to create dynamic responses. This templating system is supported in the [**data buckets**](#content-of-a-data-bucket), [**response's body**](#body-and-file-content-templating), [**header values**](#headers-and-rule-values), [**file content**](#body-and-file-content-templating), [**file path**](#file-input-templating) and [**rule values**](#headers-and-rule-values). You will find below a global overview of how and where you can use helpers. You can also check the [available helpers](#available-helpers) on specific documentation pages. +Mockoon implements [Handlebars](https://handlebarsjs.com/), [Faker.js v8.1.0](https://fakerjs.dev/), and a set of custom helpers to create dynamic responses. This templating system is supported in the [**data buckets**](#content-of-a-data-bucket), [**response's body**](#body-and-file-content-templating), [**header values**](#headers-and-rule-values), [**file content**](#body-and-file-content-templating), [**file path**](#file-input-templating) and [**rule values**](#headers-and-rule-values). You will find below a global overview of how and where you can use helpers. You can also check the [available helpers](#available-helpers) on specific documentation pages. ## Helpers @@ -58,7 +58,7 @@ Here is an example of what you can do with this templating system: {{#repeat 2}} { "id": {{@index}}, - "name": "{{faker 'name.firstName'}} {{faker 'name.lastName'}}" + "name": "{{faker 'person.firstName'}} {{faker 'person.lastName'}}" } {{/repeat}} ], @@ -74,7 +74,7 @@ Here is an example of what you can do with this templating system: } ``` -![body editor content{963x543}](docs-img:body-templating.png) +![body editor content{1133x551}](docs-img:body-templating.png) The above template produces the following body with this request: @@ -122,9 +122,7 @@ This system is flexible enough to generate a lot of different contents like CSV ```handlebars firstname,lastname,countryCode {{#repeat 10}} - {{faker 'name.firstName'}},{{faker 'name.lastName'}},{{faker - 'address.countryCode' - }} + {{faker 'person.firstName'}},{{faker 'person.lastName'}},{{faker 'location.countryCode'}} {{/repeat}} ``` @@ -160,22 +158,24 @@ Block helper: {{# base64}} firstname,lastname,countryCode {{# repeat 10 }} -{{ faker 'name.firstName' }},{{ faker 'name.lastName' }},{{ faker 'address.countryCode' }} +{{ faker 'person.firstName' }},{{ faker 'person.lastName' }},{{ faker 'location.countryCode' }} {{/ repeat}} {{/ base64}} ``` +> 🛠️ Use our online [base64 encoder/decoder](/tools/base64-encode-decode/) to get a preview of the encoded content and validate a base64 string. + #### Disable body and file templating Templating can be disabled for the body and file content in each route response separately. Thus, no helper will be interpreted by the templating engine. First, open the **Route response settings**: -![click on route response fourth settings tab{1004x168}](docs-img:open-route-response-settings.png) +![click on route response fourth settings tab{1174x174}](docs-img:open-route-response-settings.png) Then, disable the templating by checking the box: -![check the disable templating box{1046x181}](docs-img:disable-route-response-templating.png) +![check the disable templating box{1216x181}](docs-img:disable-route-response-templating.png) ### File input templating @@ -187,7 +187,7 @@ If you have a set of files named `./file1.json` and `./file2.json`, a route para If you call this route with `/myroute/1`, `./file1.json` will be sent. -![add a templating helper in the file path{977x184}](docs-img:file-path-templating.png) +![add a templating helper in the file path{1147x184}](docs-img:file-path-templating.png) > For more information about absolute and relative file paths, please refer to our [file serving](docs:response-configuration/file-serving#absolute-or-relative-paths) documentation. @@ -195,8 +195,8 @@ If you call this route with `/myroute/1`, `./file1.json` will be sent. Templating helpers can also be used in the **headers values** both in route headers and environment headers: -![add a templating helper in the header value{1004x238}](docs-img:headers-templating.png) +![add a templating helper in the header value{1174x244}](docs-img:headers-templating.png) Finally, templating helpers can be used in the response **rule values** to create dynamic rules: -![screenshot showing a response rule with a template helper in the value field{997x171}](docs-img:template-helper-response-rule-value.png) +![screenshot showing a response rule with a template helper in the value field{1167x164}](docs-img:template-helper-response-rule-value.png) diff --git a/content/docs/v8.1.1/variables/environment-variables.md b/content/docs/v8.1.1/variables/environment-variables.md new file mode 100644 index 00000000..2f7b8a24 --- /dev/null +++ b/content/docs/v8.1.1/variables/environment-variables.md @@ -0,0 +1,38 @@ +--- +title: Environment variables +meta: + title: How to access environment variables + description: Avoid exposing your API keys and certificates by accessing environment variables in your mock server routes +order: 552 +--- + +# Environment variables + +--- + +Mockoon offers the possibility to access **environment variables** in your templates using the [`getEnvVar`](docs:templating/mockoon-variables-helpers#getenvvar) helper. This allows you to avoid exposing your API keys and certificates in your mock server configuration. + +## Environment variables support + +Environment variables are accessible [everywhere templating helpers are supported](docs:templating/overview). + +## Default prefix + +By default, only the environment variables prefixed with `MOCKOON_` are available, for example, `MOCKOON_MY_VARIABLE`. You can access the variable in your templates using the `getEnvVar` helper with or without the prefix: + +```handlebars +{{getEnvVar 'MOCKOON_MY_VARIABLE'}} +{{getEnvVar 'MY_VARIABLE'}} +``` + +> 📘 [Helper documentation](docs:templating/mockoon-variables-helpers#getglobalvar). + +## Changing or removing the prefix + +You can change the prefix or remove it entirely in the application settings: + +![application settings modal with the prefix input highlighted{860x812}](docs-img:settings-environment-variables-prefix.png) + +Removing the prefix will make **all the environment variables** accessible in your templates. + +> 💡 Both the [CLI](https://github.com/mockoon/mockoon/blob/main/packages/cli/README.md#customize-the-environment-variables-prefix) and the [serverless library](https://github.com/mockoon/mockoon/blob/main/packages/serverless/README.md#options) have specific options to customize the prefix. diff --git a/content/docs/v8.1.1/variables/global-variables.md b/content/docs/v8.1.1/variables/global-variables.md new file mode 100644 index 00000000..6ce87e32 --- /dev/null +++ b/content/docs/v8.1.1/variables/global-variables.md @@ -0,0 +1,74 @@ +--- +title: Global variables +meta: + title: How to use global variables + description: Simulate and mock complex API workflows by sharing data between your mock server routes using global variables +order: 551 +--- + +# Global variables + +--- + +Mockoon offers the possibility to **share data** between your routes using **global variables**. These variables can be set and accessed using the [`setGlobalVar`](docs:templating/mockoon-variables-helpers#setglobalvar) and [`getGlobalVar`](docs:templating/mockoon-variables-helpers#getglobalvar) helpers at runtime. + +## Global variables scope + +Global variables are **shared** between **all routes** of an environment. Their values are **reset** when the environment is **stopped or restarted**. + +> ⚠️These variables are **not shared between environments**. + +## Global variables support + +Global variables are available [everywhere templating helpers are supported](docs:templating/overview). However, it makes most sense to use them in the **response body** and **rules**. + +> 💡 While you can use global variables in data buckets, keep in mind that bucket content will be [generated when the server starts](docs:data-buckets/overview#data-buckets-generation), when global variables are not yet set. + +## Usage + +To set and access global variables, two templating helpers are available. + +### Set a global variable + +To set a global variable, use the `setGlobalVar` helper. This helper takes two arguments: the variable name and its value. You can **dynamically set the parameters** using other helpers. + +Some examples: + +```handlebars +{{setGlobalVar 'varName' 'value'}} +{{setGlobalVar 'varName' (bodyRaw 'id')}} +{{setGlobalVar (queryParam 'param1') (bodyRaw 'id')}} +``` + +> 📘 [Helper documentation](docs:templating/mockoon-variables-helpers#setglobalvar). + +### Get a global variable + +To get a global variable, use the `getGlobalVar` helper. This helper takes two arguments: the variable name and an optional path. You can **dynamically set the parameters** using other helpers and use the fetched data in other helpers. +Some examples: + +```handlebars +{{getGlobalVar 'varname'}} +{{getGlobalVar (bodyRaw 'property')}} +{{getGlobalVar (urlParam 'id')}} + + +{{getGlobalVar 'varName' 'path.to.property'}} +{{getGlobalVar 'varName' 'deep.property\.with\.dot'}} + + +{{getGlobalVar 'varName' '$.array.[*].property'}} + +{{#repeat (getGlobalVar 'varname')}}...{{/repeat}} + +{{#each (getGlobalVar 'varName')}}...{{/each}} + + +{{{stringify (getGlobalVar 'varName')}}} +``` + +> 📘 [Helper documentation](docs:templating/mockoon-variables-helpers#getglobalvar). + +### Clear the global variables + +To clear all the global variables, use the `PURGE /mockoon-admin/global-vars` or `POST /mockoon-admin/global-vars/purge` endpoints from the [admin API](docs:admin-api/global-variables). diff --git a/content/docs/v8.1.1/variables/local-variables.md b/content/docs/v8.1.1/variables/local-variables.md new file mode 100644 index 00000000..8ab4d193 --- /dev/null +++ b/content/docs/v8.1.1/variables/local-variables.md @@ -0,0 +1,58 @@ +--- +title: Local variables +meta: + title: How to use local template scoped variables + description: Simulate and mock complex API workflows by saving data in your templates using local template scoped variables +order: 550 +--- + +# Local (template-scoped) variables + +--- + +Using the [`setVar`](docs:templating/mockoon-variables-helpers#setvar) and [`getVar`](docs:templating/mockoon-variables-helpers#getvar) helpers you can create **template-scoped (or local) variables** to save some intermediate data in your templates and avoid repeating the same logic multiple times. + +## Local variables scope + +Unlike [global variables](docs:variables/global-variables) which are **shared** between **all routes** of an environment, local variables are **scoped to the template** they are used in. Their values are **regenerated** each time the template is **re-evaluated**. + +> ⚠️These variables are **not shared between routes or responses**. + +## Local variables support + +Local variables are available [everywhere templating helpers are supported](docs:templating/overview). + +## Usage + +To set and access local variables, two templating helpers are available. + +### Set a local variable + +To set a variable, use the `setVar` helper. This helper takes two arguments: the variable name and its value. You can **dynamically set the parameters** using other helpers. + +Some examples: + +```handlebars +{{setVar 'varname' 'value'}} +{{setVar 'varname' (body 'id')}} +``` + +> 📘 [Helper documentation](docs:templating/mockoon-variables-helpers#setvar). + +### Get a local variable + +To get a global variable, use the `getVar` helper or refer to the variable with its name prefixed with an `@`. The helper takes two arguments: the variable name and an optional path. You can **dynamically set the parameters** using other helpers and use the fetched data in other helpers. + +Some examples: + +```handlebars +# Set a variable +{{setVar 'varname' 'value'}} + +# Get a variable +{{@varname}} +{{getVar 'varname'}} +{{getVar (body 'property')}} +``` + +> 📘 [Helper documentation](docs:templating/mockoon-variables-helpers#getvar). diff --git a/content/releases/8.2.0.md b/content/releases/8.2.0.md new file mode 100644 index 00000000..9df9a744 --- /dev/null +++ b/content/releases/8.2.0.md @@ -0,0 +1,101 @@ +--- +meta: + title: Mockoon release v8.2.0 + description: Discover Mockoon applications new v8.2.0 release with UI improvements, a new AI assistant for endpoint generation, folder's routes toggling, previously selected environment saving and fixes. +date: '2024-06-03' +--- + +Welcome to this new release of Mockoon. It brings new exciting features: **UI improvements**, a new **AI assistant for endpoint generation**, **folder's routes toggling**, **last opened environment saving** and fixes. Read on to learn more about this release. + +--- + +## Our sponsors + +[![GitHub](https://mockoon.com/images/sponsors/github.png)](https://github.blog/2023-04-12-github-accelerator-our-first-cohort-and-whats-next/) +[![Localazy](https://mockoon.com/images/sponsors/localazy.png)](https://localazy.com/register?ref=a9CiDC61gOac-azO) + +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](https://github.com/mockoon/mockoon/blob/main/backers.md) who helped this project over time! + +[![sponsor button](https://mockoon.com/images/sponsor-btn-250.png?)](https://github.com/sponsors/mockoon) + +--- + +## Desktop UI improvements and polishings + +During this release, we decided to **remove the right-click context menus** from various parts of the application. We believe they are not ideal for accessibility and feature discoverability. Also, the options that were behind these menus were often not known by users. We replaced them with buttons in the UI and regular dropdowns + +![view of the new dropdown menu available by clicking on a three dots button{513x240}](/images/releases/8.2.0/new-dropdown-menus.png) + +We also **revamped all the application's lists** to make them more consistent and display more information at a glance, in a more consistent way. We hope you will like these changes! + +![view of all the application menus redesigned{1155x226}](/images/releases/8.2.0/new-menus-redesigned.png) + +The log entries action was moved to a new dropdown menu: + +![view of the new dropdown menu available on logs entries by clicking on a three dots button{480x220}](/images/releases/8.2.0/new-logs-dropdown-menu.png) + +Finally, the unique ID in the data bucket view is now clickable and will copy the ID to the clipboard: + +![view of the data bucket unique id with a tooltip indicating that the user can click to copy the id to the clipboard{437x209}](/images/releases/8.2.0/copy-unique-id.png) + +As always, with UX and design changes, there is no easy choice, and it may require a bit of adaptation. We are here to help if you have any questions or feedback. + +(Issue [#1370](https://github.com/mockoon/mockoon/issues/1370)) + +## New endpoint generation with the AI assistant (PRO) + +We are excited to introduce a new feature in Mockoon PRO: the **HTTP endpoint AI assistant**. This assistant will help you generate endpoints based on a prompt. It will save you time and help you to create your API mocks faster. + +The assistant will generate a coherent HTTP endpoint including, **path**, **method**, **body**, and **documentation** based on the prompt you provide: + +![animation showing http endpoints being generated with body method path and documentation{920x540}](/images/releases/8.2.0/ai-assistant-endpoint-generation.gif) + +We also simplified the AI assistant options, now **defaulting to JSON**. Only the templating option is now available, and the **differentiation between a single object or array is inferred from the prompt**. + +Before: + +![view of the previous ai assistant options{792x96}](/images/releases/8.2.0/ai-assistant-options-before.png) + +After: + +![view of the new ai assistant options{942x66}](/images/releases/8.2.0/ai-assistant-options-after.png) + +## Folder's child routes toggling + +A new entry to the folder's dropdown menu allows you to **toggle** (enable/disable) **all the routes** in a folder at once: + +![view of the new folder toggle menu entry{525x257}](/images/releases/8.2.0/folder-toggle.png) + +As a counterpart, you can toggle all the routes in a folder at runtime using the [CLI's `--disable-routes` flag](https://github.com/mockoon/mockoon/tree/main/packages/cli#disabling-routes) followed by the folder name or the [`disabledRoutes` option of the serverless package](https://github.com/mockoon/mockoon/tree/main/packages/serverless#disabling-routes). + +(Issue [#1188](https://github.com/mockoon/mockoon/issues/1188)) + +## Previously selected environment + +The **selected environment** is now **saved** by the desktop application and will be **restored** when you restart Mockoon. It should help you quickly resume your work where you left off. + +(Issue [#1396](https://github.com/mockoon/mockoon/issues/1396)) + +## Improvement to routes filtering + +The routes can now be **filtered by type**, either "http" or "crud": + +![screenshot of a route list filtered by crud keyword{319x145}](/images/releases/8.2.0/filter-routes-by-type-crud.png) + +## Default CORS headers + +The **CORS headers** are now **added by default** to all new environments. This should help you to avoid CORS issues when testing your APIs. + +![view of the environment headers showing the default cors headers{1143x232}](/images/releases/8.2.0/default-cors-headers.png) + +(Issue [#1392](https://github.com/mockoon/mockoon/issues/1392)) + +## Fixes + +- Mockoon's server is now able to detect if the **request body** was **already parsed** and act accordingly. Thus, requests containing a body are now correctly working with **Firebase or Google Cloud Functions** when using Mockoon's serverless package. (Issue [#1385](https://github.com/mockoon/mockoon/issues/1385)) + +### Thank you + +A big thank you to the following people who helped to make Mockoon better: + +- [@santiagocarod](https://github.com/santiagocarod): Folder toggling. (Issue [#1188](https://github.com/mockoon/mockoon/issues/1188)) diff --git a/firebase.json b/firebase.json index ac8843e6..f66ab113 100644 --- a/firebase.json +++ b/firebase.json @@ -18,7 +18,7 @@ }, { "source": "/weekly-meetup-event/", - "destination": "https://discord.com/events/789493376423952394/1230481297692950588", + "destination": "https://discord.com/events/789493376423952394/1242838028158894151", "type": 301 }, { @@ -33,7 +33,7 @@ }, { "source": "/releases{,/}", - "destination": "/releases/8.1.1/", + "destination": "/releases/8.2.0/", "type": 302 }, { diff --git a/pages/ai-powered-api-mocking.tsx b/pages/ai-powered-api-mocking.tsx index 0340b34d..5d1cca7b 100644 --- a/pages/ai-powered-api-mocking.tsx +++ b/pages/ai-powered-api-mocking.tsx @@ -7,7 +7,7 @@ import Layout from '../layout/layout'; const meta = { title: 'AI-powered API mocking', description: - 'Mockoon AI assistant helps you create realistic mock APIs in seconds for fast prototyping and learning' + 'Mockoon AI assistants help you create realistic mock APIs endpoints in seconds for fast prototyping and learning' }; const AIPoweredMocking = function () { @@ -17,7 +17,7 @@ const AIPoweredMocking = function () {+
+ +
diff --git a/public/images/ai-powered-api-mocking/ai-generated-mock-api-endpoint.gif b/public/images/ai-powered-api-mocking/ai-generated-mock-api-body-template.gif similarity index 100% rename from public/images/ai-powered-api-mocking/ai-generated-mock-api-endpoint.gif rename to public/images/ai-powered-api-mocking/ai-generated-mock-api-body-template.gif diff --git a/public/images/ai-powered-api-mocking/ai-generated-mock-api-http-endpoint.gif b/public/images/ai-powered-api-mocking/ai-generated-mock-api-http-endpoint.gif new file mode 100644 index 00000000..fd48374e Binary files /dev/null and b/public/images/ai-powered-api-mocking/ai-generated-mock-api-http-endpoint.gif differ diff --git a/public/images/docs/latest/api-endpoints/crud-routes/add-crud-route.png b/public/images/docs/latest/api-endpoints/crud-routes/add-crud-route.png index c85d9f7e..9cc73d0c 100644 Binary files a/public/images/docs/latest/api-endpoints/crud-routes/add-crud-route.png and b/public/images/docs/latest/api-endpoints/crud-routes/add-crud-route.png differ diff --git a/public/images/docs/latest/api-endpoints/crud-routes/customize-crud-id-property-key.png b/public/images/docs/latest/api-endpoints/crud-routes/customize-crud-id-property-key.png index 46b0a2d4..a0d11677 100644 Binary files a/public/images/docs/latest/api-endpoints/crud-routes/customize-crud-id-property-key.png and b/public/images/docs/latest/api-endpoints/crud-routes/customize-crud-id-property-key.png differ diff --git a/public/images/docs/latest/api-endpoints/crud-routes/link-data-bucket-crud-route.png b/public/images/docs/latest/api-endpoints/crud-routes/link-data-bucket-crud-route.png index 34060fad..8c843f21 100644 Binary files a/public/images/docs/latest/api-endpoints/crud-routes/link-data-bucket-crud-route.png and b/public/images/docs/latest/api-endpoints/crud-routes/link-data-bucket-crud-route.png differ diff --git a/public/images/docs/latest/api-endpoints/crud-routes/set-crud-route-path.png b/public/images/docs/latest/api-endpoints/crud-routes/set-crud-route-path.png index 0a16b162..083f49e0 100644 Binary files a/public/images/docs/latest/api-endpoints/crud-routes/set-crud-route-path.png and b/public/images/docs/latest/api-endpoints/crud-routes/set-crud-route-path.png differ diff --git a/public/images/docs/latest/api-endpoints/folders/routes-nested-folder.png b/public/images/docs/latest/api-endpoints/folders/routes-nested-folder.png index 3f157587..fff9ade8 100644 Binary files a/public/images/docs/latest/api-endpoints/folders/routes-nested-folder.png and b/public/images/docs/latest/api-endpoints/folders/routes-nested-folder.png differ diff --git a/public/images/docs/latest/api-endpoints/routing/environment-prefix.png b/public/images/docs/latest/api-endpoints/routing/environment-prefix.png index b7abb2ec..7cf21958 100644 Binary files a/public/images/docs/latest/api-endpoints/routing/environment-prefix.png and b/public/images/docs/latest/api-endpoints/routing/environment-prefix.png differ diff --git a/public/images/docs/latest/api-endpoints/routing/open-environment-settings.png b/public/images/docs/latest/api-endpoints/routing/open-environment-settings.png index fa69f2cc..6fc32d5c 100644 Binary files a/public/images/docs/latest/api-endpoints/routing/open-environment-settings.png and b/public/images/docs/latest/api-endpoints/routing/open-environment-settings.png differ diff --git a/public/images/docs/latest/api-endpoints/routing/route-menu-disable-route.png b/public/images/docs/latest/api-endpoints/routing/route-menu-disable-route.png new file mode 100644 index 00000000..3043bd2f Binary files /dev/null and b/public/images/docs/latest/api-endpoints/routing/route-menu-disable-route.png differ diff --git a/public/images/docs/latest/api-endpoints/routing/route-params.png b/public/images/docs/latest/api-endpoints/routing/route-params.png index 29f28a24..64f909cd 100644 Binary files a/public/images/docs/latest/api-endpoints/routing/route-params.png and b/public/images/docs/latest/api-endpoints/routing/route-params.png differ diff --git a/public/images/docs/latest/api-endpoints/routing/route-patterns.png b/public/images/docs/latest/api-endpoints/routing/route-patterns.png index 8049470a..a132040d 100644 Binary files a/public/images/docs/latest/api-endpoints/routing/route-patterns.png and b/public/images/docs/latest/api-endpoints/routing/route-patterns.png differ diff --git a/public/images/docs/latest/callbacks/overview/add-callback.png b/public/images/docs/latest/callbacks/overview/add-callback.png index 21d913b7..13ed3cf0 100644 Binary files a/public/images/docs/latest/callbacks/overview/add-callback.png and b/public/images/docs/latest/callbacks/overview/add-callback.png differ diff --git a/public/images/docs/latest/callbacks/overview/open-callbacks-view.png b/public/images/docs/latest/callbacks/overview/open-callbacks-view.png index 5ce7cc38..9e0fe97c 100644 Binary files a/public/images/docs/latest/callbacks/overview/open-callbacks-view.png and b/public/images/docs/latest/callbacks/overview/open-callbacks-view.png differ diff --git a/public/images/docs/latest/callbacks/using-callbacks/link-callback-response.png b/public/images/docs/latest/callbacks/using-callbacks/link-callback-response.png index 4342a9ab..fa237209 100644 Binary files a/public/images/docs/latest/callbacks/using-callbacks/link-callback-response.png and b/public/images/docs/latest/callbacks/using-callbacks/link-callback-response.png differ diff --git a/public/images/docs/latest/callbacks/using-callbacks/open-route-response-callbacks.png b/public/images/docs/latest/callbacks/using-callbacks/open-route-response-callbacks.png index ceac6ab9..dfc7f79d 100644 Binary files a/public/images/docs/latest/callbacks/using-callbacks/open-route-response-callbacks.png and b/public/images/docs/latest/callbacks/using-callbacks/open-route-response-callbacks.png differ diff --git a/public/images/docs/latest/data-buckets/overview/add-data-bucket.png b/public/images/docs/latest/data-buckets/overview/add-data-bucket.png index 82ecba67..f2702d81 100644 Binary files a/public/images/docs/latest/data-buckets/overview/add-data-bucket.png and b/public/images/docs/latest/data-buckets/overview/add-data-bucket.png differ diff --git a/public/images/docs/latest/data-buckets/overview/open-data-view.png b/public/images/docs/latest/data-buckets/overview/open-data-view.png index b46466fa..5a2e64a1 100644 Binary files a/public/images/docs/latest/data-buckets/overview/open-data-view.png and b/public/images/docs/latest/data-buckets/overview/open-data-view.png differ diff --git a/public/images/docs/latest/data-buckets/using-data-buckets/link-data-bucket-response.png b/public/images/docs/latest/data-buckets/using-data-buckets/link-data-bucket-response.png index 5843ea37..b2d7e61e 100644 Binary files a/public/images/docs/latest/data-buckets/using-data-buckets/link-data-bucket-response.png and b/public/images/docs/latest/data-buckets/using-data-buckets/link-data-bucket-response.png differ diff --git a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png index 7058dd9d..2dbbfee6 100644 Binary files a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png and b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png differ diff --git a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png index b6b05f1f..75e06a2d 100644 Binary files a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png and b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png differ diff --git a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png index 263e63f4..4f833531 100644 Binary files a/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png and b/public/images/docs/latest/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png differ diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/logs-metadata.png b/public/images/docs/latest/logging-and-recording/requests-logging/logs-metadata.png index 6f5d29f1..e36fed96 100644 Binary files a/public/images/docs/latest/logging-and-recording/requests-logging/logs-metadata.png and b/public/images/docs/latest/logging-and-recording/requests-logging/logs-metadata.png differ diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/logs-request.png b/public/images/docs/latest/logging-and-recording/requests-logging/logs-request.png index 49a6ccbe..96dae0ed 100644 Binary files a/public/images/docs/latest/logging-and-recording/requests-logging/logs-request.png and b/public/images/docs/latest/logging-and-recording/requests-logging/logs-request.png differ diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/logs-response.png b/public/images/docs/latest/logging-and-recording/requests-logging/logs-response.png index 472f06b6..eec3a6ab 100644 Binary files a/public/images/docs/latest/logging-and-recording/requests-logging/logs-response.png and b/public/images/docs/latest/logging-and-recording/requests-logging/logs-response.png differ diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/open-logs.png b/public/images/docs/latest/logging-and-recording/requests-logging/open-logs.png index abbcf844..d7cfa4e3 100644 Binary files a/public/images/docs/latest/logging-and-recording/requests-logging/open-logs.png and b/public/images/docs/latest/logging-and-recording/requests-logging/open-logs.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png index 581abc5d..a76ed593 100644 Binary files a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-button.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-button.png new file mode 100644 index 00000000..959d09dd Binary files /dev/null and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-button.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-create-button.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-create-button.png new file mode 100644 index 00000000..d4077164 Binary files /dev/null and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-create-button.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-tab.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-tab.png new file mode 100644 index 00000000..ebc4dbdc Binary files /dev/null and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-endpoint-tab.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png index 60a1ee64..d825abfe 100644 Binary files a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-option.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-option.png new file mode 100644 index 00000000..e44f3b99 Binary files /dev/null and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-option.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png index f0039c83..909551a1 100644 Binary files a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png index 18a4e513..8d987466 100644 Binary files a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png index a48cd5ed..3c5f9c08 100644 Binary files a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png and b/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png differ diff --git a/public/images/docs/latest/mockoon-data-files/data-storage-location/enable-file-watching.png b/public/images/docs/latest/mockoon-data-files/data-storage-location/enable-file-watching.png index 8930248d..aee77b7a 100644 Binary files a/public/images/docs/latest/mockoon-data-files/data-storage-location/enable-file-watching.png and b/public/images/docs/latest/mockoon-data-files/data-storage-location/enable-file-watching.png differ diff --git a/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-move-to-folder.png b/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-move-to-folder.png index 1b504ddb..68b5c86f 100644 Binary files a/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-move-to-folder.png and b/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-move-to-folder.png differ diff --git a/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-show-in-folder.png b/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-show-in-folder.png index 5bd3d4d1..1217bc98 100644 Binary files a/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-show-in-folder.png and b/public/images/docs/latest/mockoon-data-files/data-storage-location/environment-show-in-folder.png differ diff --git a/public/images/docs/latest/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png b/public/images/docs/latest/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png index 32586853..23352b13 100644 Binary files a/public/images/docs/latest/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png and b/public/images/docs/latest/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png differ diff --git a/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/open-environment.png b/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/open-environment.png index 57e6fd5d..5e1d66df 100644 Binary files a/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/open-environment.png and b/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/open-environment.png differ diff --git a/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png b/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png index d3445c68..5790355e 100644 Binary files a/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png and b/public/images/docs/latest/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png differ diff --git a/public/images/docs/latest/response-configuration/file-serving/enable-404-fallback.png b/public/images/docs/latest/response-configuration/file-serving/enable-404-fallback.png index f934a4dc..bdf7d275 100644 Binary files a/public/images/docs/latest/response-configuration/file-serving/enable-404-fallback.png and b/public/images/docs/latest/response-configuration/file-serving/enable-404-fallback.png differ diff --git a/public/images/docs/latest/response-configuration/file-serving/environment-show-in-folder.png b/public/images/docs/latest/response-configuration/file-serving/environment-show-in-folder.png index 907d7009..fd914f0d 100644 Binary files a/public/images/docs/latest/response-configuration/file-serving/environment-show-in-folder.png and b/public/images/docs/latest/response-configuration/file-serving/environment-show-in-folder.png differ diff --git a/public/images/docs/latest/response-configuration/file-serving/file-path.png b/public/images/docs/latest/response-configuration/file-serving/file-path.png index eebb36e7..1d5a4d60 100644 Binary files a/public/images/docs/latest/response-configuration/file-serving/file-path.png and b/public/images/docs/latest/response-configuration/file-serving/file-path.png differ diff --git a/public/images/docs/latest/response-configuration/file-serving/route-response-disable-templating.png b/public/images/docs/latest/response-configuration/file-serving/route-response-disable-templating.png index bfdbab41..382caaed 100644 Binary files a/public/images/docs/latest/response-configuration/file-serving/route-response-disable-templating.png and b/public/images/docs/latest/response-configuration/file-serving/route-response-disable-templating.png differ diff --git a/public/images/docs/latest/response-configuration/response-body/body-data-bucket.png b/public/images/docs/latest/response-configuration/response-body/body-data-bucket.png index 44a6204d..dab1abbb 100644 Binary files a/public/images/docs/latest/response-configuration/response-body/body-data-bucket.png and b/public/images/docs/latest/response-configuration/response-body/body-data-bucket.png differ diff --git a/public/images/docs/latest/response-configuration/response-body/body-file-serving.png b/public/images/docs/latest/response-configuration/response-body/body-file-serving.png index 01dcf0e4..2596c7f5 100644 Binary files a/public/images/docs/latest/response-configuration/response-body/body-file-serving.png and b/public/images/docs/latest/response-configuration/response-body/body-file-serving.png differ diff --git a/public/images/docs/latest/response-configuration/response-body/body-type-toggle.png b/public/images/docs/latest/response-configuration/response-body/body-type-toggle.png index e7b07006..945f87b9 100644 Binary files a/public/images/docs/latest/response-configuration/response-body/body-type-toggle.png and b/public/images/docs/latest/response-configuration/response-body/body-type-toggle.png differ diff --git a/public/images/docs/latest/response-configuration/response-body/inline-body-editor.png b/public/images/docs/latest/response-configuration/response-body/inline-body-editor.png index c6b91431..178966f9 100644 Binary files a/public/images/docs/latest/response-configuration/response-body/inline-body-editor.png and b/public/images/docs/latest/response-configuration/response-body/inline-body-editor.png differ diff --git a/public/images/docs/latest/response-configuration/response-headers/add-environment-header.png b/public/images/docs/latest/response-configuration/response-headers/add-environment-header.png index d5856a9f..adff8658 100644 Binary files a/public/images/docs/latest/response-configuration/response-headers/add-environment-header.png and b/public/images/docs/latest/response-configuration/response-headers/add-environment-header.png differ diff --git a/public/images/docs/latest/response-configuration/response-headers/add-route-header.png b/public/images/docs/latest/response-configuration/response-headers/add-route-header.png index d817f346..b5724bc6 100644 Binary files a/public/images/docs/latest/response-configuration/response-headers/add-route-header.png and b/public/images/docs/latest/response-configuration/response-headers/add-route-header.png differ diff --git a/public/images/docs/latest/response-configuration/response-headers/fill-route-header-form.png b/public/images/docs/latest/response-configuration/response-headers/fill-route-header-form.png index 882dcb4c..53e17ed4 100644 Binary files a/public/images/docs/latest/response-configuration/response-headers/fill-route-header-form.png and b/public/images/docs/latest/response-configuration/response-headers/fill-route-header-form.png differ diff --git a/public/images/docs/latest/response-configuration/response-headers/open-environment-headers.png b/public/images/docs/latest/response-configuration/response-headers/open-environment-headers.png index 427d9702..cced530f 100644 Binary files a/public/images/docs/latest/response-configuration/response-headers/open-environment-headers.png and b/public/images/docs/latest/response-configuration/response-headers/open-environment-headers.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/add-route-response-rule.png b/public/images/docs/latest/route-responses/dynamic-rules/add-route-response-rule.png index 5948c1a6..caf33726 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/add-route-response-rule.png and b/public/images/docs/latest/route-responses/dynamic-rules/add-route-response-rule.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/disable-rules.png b/public/images/docs/latest/route-responses/dynamic-rules/disable-rules.png index da03d8d8..de25b1e2 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/disable-rules.png and b/public/images/docs/latest/route-responses/dynamic-rules/disable-rules.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rule-reorder.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rule-reorder.png index fb615361..aa37967f 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rule-reorder.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rule-reorder.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-comparison-operator.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-comparison-operator.png index 38bb68fc..c2fb3892 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-comparison-operator.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-comparison-operator.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-invert-operator.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-invert-operator.png index 08b5cb8a..dab98495 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-invert-operator.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-invert-operator.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-operator.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-operator.png index 76c68fdc..9dc619b5 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-operator.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-operator.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-property.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-property.png index 3875e6fa..f0fbef8e 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-property.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-property.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-target.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-target.png index 941f21a7..8d1fd230 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-target.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-target.png differ diff --git a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-value.png b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-value.png index e6ba3258..e36ddc2a 100644 Binary files a/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-value.png and b/public/images/docs/latest/route-responses/dynamic-rules/route-response-rules-value.png differ diff --git a/public/images/docs/latest/route-responses/global-routes-with-rules/activate-fallback-mode.png b/public/images/docs/latest/route-responses/global-routes-with-rules/activate-fallback-mode.png index 5c874e19..2f383157 100644 Binary files a/public/images/docs/latest/route-responses/global-routes-with-rules/activate-fallback-mode.png and b/public/images/docs/latest/route-responses/global-routes-with-rules/activate-fallback-mode.png differ diff --git a/public/images/docs/latest/route-responses/global-routes-with-rules/create-wildcard-route.png b/public/images/docs/latest/route-responses/global-routes-with-rules/create-wildcard-route.png index cf51d4e7..a2493e78 100644 Binary files a/public/images/docs/latest/route-responses/global-routes-with-rules/create-wildcard-route.png and b/public/images/docs/latest/route-responses/global-routes-with-rules/create-wildcard-route.png differ diff --git a/public/images/docs/latest/route-responses/global-routes-with-rules/response-rule-header-null.png b/public/images/docs/latest/route-responses/global-routes-with-rules/response-rule-header-null.png index 9407bc08..d460a0d2 100644 Binary files a/public/images/docs/latest/route-responses/global-routes-with-rules/response-rule-header-null.png and b/public/images/docs/latest/route-responses/global-routes-with-rules/response-rule-header-null.png differ diff --git a/public/images/docs/latest/route-responses/global-routes-with-rules/response-status-code-401.png b/public/images/docs/latest/route-responses/global-routes-with-rules/response-status-code-401.png index 89d28245..5c2bbdb0 100644 Binary files a/public/images/docs/latest/route-responses/global-routes-with-rules/response-status-code-401.png and b/public/images/docs/latest/route-responses/global-routes-with-rules/response-status-code-401.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/add-route-response.png b/public/images/docs/latest/route-responses/multiple-responses/add-route-response.png index 6239b761..87615705 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/add-route-response.png and b/public/images/docs/latest/route-responses/multiple-responses/add-route-response.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/change-route-responses-default.png b/public/images/docs/latest/route-responses/multiple-responses/change-route-responses-default.png index 641551fe..1dafad6f 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/change-route-responses-default.png and b/public/images/docs/latest/route-responses/multiple-responses/change-route-responses-default.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/duplicate-route-response.png b/public/images/docs/latest/route-responses/multiple-responses/duplicate-route-response.png index 9c5bbb91..064e5538 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/duplicate-route-response.png and b/public/images/docs/latest/route-responses/multiple-responses/duplicate-route-response.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/fallback-mode-responses.png b/public/images/docs/latest/route-responses/multiple-responses/fallback-mode-responses.png index 5eee800e..a5eb8b50 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/fallback-mode-responses.png and b/public/images/docs/latest/route-responses/multiple-responses/fallback-mode-responses.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/random-route-responses.png b/public/images/docs/latest/route-responses/multiple-responses/random-route-responses.png index 8c8599a6..35822379 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/random-route-responses.png and b/public/images/docs/latest/route-responses/multiple-responses/random-route-responses.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/reorder-responses.png b/public/images/docs/latest/route-responses/multiple-responses/reorder-responses.png index 16415979..793f577f 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/reorder-responses.png and b/public/images/docs/latest/route-responses/multiple-responses/reorder-responses.png differ diff --git a/public/images/docs/latest/route-responses/multiple-responses/sequential-route-responses.png b/public/images/docs/latest/route-responses/multiple-responses/sequential-route-responses.png index b0715c68..191811da 100644 Binary files a/public/images/docs/latest/route-responses/multiple-responses/sequential-route-responses.png and b/public/images/docs/latest/route-responses/multiple-responses/sequential-route-responses.png differ diff --git a/public/images/docs/latest/server-configuration/cors/add-cors-headers.png b/public/images/docs/latest/server-configuration/cors/add-cors-headers.png index 13c25c1f..f600382a 100644 Binary files a/public/images/docs/latest/server-configuration/cors/add-cors-headers.png and b/public/images/docs/latest/server-configuration/cors/add-cors-headers.png differ diff --git a/public/images/docs/latest/server-configuration/cors/enable-cors.png b/public/images/docs/latest/server-configuration/cors/enable-cors.png index eb515827..8a1d9b01 100644 Binary files a/public/images/docs/latest/server-configuration/cors/enable-cors.png and b/public/images/docs/latest/server-configuration/cors/enable-cors.png differ diff --git a/public/images/docs/latest/server-configuration/cors/open-environment-headers.png b/public/images/docs/latest/server-configuration/cors/open-environment-headers.png index 5d2d8f59..c31c5238 100644 Binary files a/public/images/docs/latest/server-configuration/cors/open-environment-headers.png and b/public/images/docs/latest/server-configuration/cors/open-environment-headers.png differ diff --git a/public/images/docs/latest/server-configuration/cors/open-environment-settings.png b/public/images/docs/latest/server-configuration/cors/open-environment-settings.png index 22e8b87a..45c6b0c6 100644 Binary files a/public/images/docs/latest/server-configuration/cors/open-environment-settings.png and b/public/images/docs/latest/server-configuration/cors/open-environment-settings.png differ diff --git a/public/images/docs/latest/server-configuration/cors/view-cors-headers.png b/public/images/docs/latest/server-configuration/cors/view-cors-headers.png index 7132dbcd..0508f446 100644 Binary files a/public/images/docs/latest/server-configuration/cors/view-cors-headers.png and b/public/images/docs/latest/server-configuration/cors/view-cors-headers.png differ diff --git a/public/images/docs/latest/server-configuration/listening-hostname/custom-hostname-setting.png b/public/images/docs/latest/server-configuration/listening-hostname/custom-hostname-setting.png index 668f0b4b..38edc791 100644 Binary files a/public/images/docs/latest/server-configuration/listening-hostname/custom-hostname-setting.png and b/public/images/docs/latest/server-configuration/listening-hostname/custom-hostname-setting.png differ diff --git a/public/images/docs/latest/server-configuration/listening-hostname/open-environment-settings.png b/public/images/docs/latest/server-configuration/listening-hostname/open-environment-settings.png index 99b2329b..4cb1d580 100644 Binary files a/public/images/docs/latest/server-configuration/listening-hostname/open-environment-settings.png and b/public/images/docs/latest/server-configuration/listening-hostname/open-environment-settings.png differ diff --git a/public/images/docs/latest/server-configuration/port-prefix/environment-custom-port.png b/public/images/docs/latest/server-configuration/port-prefix/environment-custom-port.png index 1ab2b910..e6c5818a 100644 Binary files a/public/images/docs/latest/server-configuration/port-prefix/environment-custom-port.png and b/public/images/docs/latest/server-configuration/port-prefix/environment-custom-port.png differ diff --git a/public/images/docs/latest/server-configuration/port-prefix/environment-custom-prefix.png b/public/images/docs/latest/server-configuration/port-prefix/environment-custom-prefix.png index b7abb2ec..7cf21958 100644 Binary files a/public/images/docs/latest/server-configuration/port-prefix/environment-custom-prefix.png and b/public/images/docs/latest/server-configuration/port-prefix/environment-custom-prefix.png differ diff --git a/public/images/docs/latest/server-configuration/port-prefix/open-environment-settings.png b/public/images/docs/latest/server-configuration/port-prefix/open-environment-settings.png index fa69f2cc..6fc32d5c 100644 Binary files a/public/images/docs/latest/server-configuration/port-prefix/open-environment-settings.png and b/public/images/docs/latest/server-configuration/port-prefix/open-environment-settings.png differ diff --git a/public/images/docs/latest/server-configuration/proxy-mode/enable-proxy.png b/public/images/docs/latest/server-configuration/proxy-mode/enable-proxy.png index 2b281487..3595b5eb 100644 Binary files a/public/images/docs/latest/server-configuration/proxy-mode/enable-proxy.png and b/public/images/docs/latest/server-configuration/proxy-mode/enable-proxy.png differ diff --git a/public/images/docs/latest/server-configuration/proxy-mode/open-proxy-options.png b/public/images/docs/latest/server-configuration/proxy-mode/open-proxy-options.png index d7067370..e2e1d3b6 100644 Binary files a/public/images/docs/latest/server-configuration/proxy-mode/open-proxy-options.png and b/public/images/docs/latest/server-configuration/proxy-mode/open-proxy-options.png differ diff --git a/public/images/docs/latest/server-configuration/proxy-mode/proxy-headers.png b/public/images/docs/latest/server-configuration/proxy-mode/proxy-headers.png index cd35f5ad..b78da4c1 100644 Binary files a/public/images/docs/latest/server-configuration/proxy-mode/proxy-headers.png and b/public/images/docs/latest/server-configuration/proxy-mode/proxy-headers.png differ diff --git a/public/images/docs/latest/server-configuration/proxy-mode/proxy-no-forward.png b/public/images/docs/latest/server-configuration/proxy-mode/proxy-no-forward.png index 024ac8c1..e076ba6e 100644 Binary files a/public/images/docs/latest/server-configuration/proxy-mode/proxy-no-forward.png and b/public/images/docs/latest/server-configuration/proxy-mode/proxy-no-forward.png differ diff --git a/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls-custom-certificate.png b/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls-custom-certificate.png index 66803cb8..6a7bdbf6 100644 Binary files a/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls-custom-certificate.png and b/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls-custom-certificate.png differ diff --git a/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls.png b/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls.png index 863f17be..301eba73 100644 Binary files a/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls.png and b/public/images/docs/latest/server-configuration/serving-over-tls/enable-tls.png differ diff --git a/public/images/docs/latest/server-configuration/serving-over-tls/open-environment-settings.png b/public/images/docs/latest/server-configuration/serving-over-tls/open-environment-settings.png index 0086dbe4..f32656de 100644 Binary files a/public/images/docs/latest/server-configuration/serving-over-tls/open-environment-settings.png and b/public/images/docs/latest/server-configuration/serving-over-tls/open-environment-settings.png differ diff --git a/public/images/docs/latest/templating/fakerjs-helpers/settings-faker.png b/public/images/docs/latest/templating/fakerjs-helpers/settings-faker.png index d82ce2a7..280fe2fe 100644 Binary files a/public/images/docs/latest/templating/fakerjs-helpers/settings-faker.png and b/public/images/docs/latest/templating/fakerjs-helpers/settings-faker.png differ diff --git a/public/images/docs/latest/templating/overview/body-templating.png b/public/images/docs/latest/templating/overview/body-templating.png index 835da5eb..2ddcae71 100644 Binary files a/public/images/docs/latest/templating/overview/body-templating.png and b/public/images/docs/latest/templating/overview/body-templating.png differ diff --git a/public/images/docs/latest/templating/overview/disable-route-response-templating.png b/public/images/docs/latest/templating/overview/disable-route-response-templating.png index 55999f94..c6fbd366 100644 Binary files a/public/images/docs/latest/templating/overview/disable-route-response-templating.png and b/public/images/docs/latest/templating/overview/disable-route-response-templating.png differ diff --git a/public/images/docs/latest/templating/overview/file-path-templating.png b/public/images/docs/latest/templating/overview/file-path-templating.png index d6a5dfe1..8d3fae7f 100644 Binary files a/public/images/docs/latest/templating/overview/file-path-templating.png and b/public/images/docs/latest/templating/overview/file-path-templating.png differ diff --git a/public/images/docs/latest/templating/overview/headers-templating.png b/public/images/docs/latest/templating/overview/headers-templating.png index bd4da45b..ef6e5090 100644 Binary files a/public/images/docs/latest/templating/overview/headers-templating.png and b/public/images/docs/latest/templating/overview/headers-templating.png differ diff --git a/public/images/docs/latest/templating/overview/open-route-response-settings.png b/public/images/docs/latest/templating/overview/open-route-response-settings.png index 63708e97..ed172ca8 100644 Binary files a/public/images/docs/latest/templating/overview/open-route-response-settings.png and b/public/images/docs/latest/templating/overview/open-route-response-settings.png differ diff --git a/public/images/docs/latest/templating/overview/template-helper-response-rule-value.png b/public/images/docs/latest/templating/overview/template-helper-response-rule-value.png index 16cb1f96..9ced42dc 100644 Binary files a/public/images/docs/latest/templating/overview/template-helper-response-rule-value.png and b/public/images/docs/latest/templating/overview/template-helper-response-rule-value.png differ diff --git a/public/images/docs/latest/variables/environment-variables/settings-environment-variables-prefix.png b/public/images/docs/latest/variables/environment-variables/settings-environment-variables-prefix.png index 131194f3..d539d3b9 100644 Binary files a/public/images/docs/latest/variables/environment-variables/settings-environment-variables-prefix.png and b/public/images/docs/latest/variables/environment-variables/settings-environment-variables-prefix.png differ diff --git a/public/images/docs/v5.0.0/api-endpoints/crud-routes/add-crud-route.png b/public/images/docs/v5.0.0/api-endpoints/crud-routes/add-crud-route.png deleted file mode 100644 index 758a80bc..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/crud-routes/add-crud-route.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/crud-routes/customize-crud-id-property-key.png b/public/images/docs/v5.0.0/api-endpoints/crud-routes/customize-crud-id-property-key.png deleted file mode 100644 index db865cf0..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/crud-routes/customize-crud-id-property-key.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/crud-routes/link-data-bucket-crud-route.png b/public/images/docs/v5.0.0/api-endpoints/crud-routes/link-data-bucket-crud-route.png deleted file mode 100644 index 6e50c8ea..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/crud-routes/link-data-bucket-crud-route.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/crud-routes/set-crud-route-path.png b/public/images/docs/v5.0.0/api-endpoints/crud-routes/set-crud-route-path.png deleted file mode 100644 index 8ebf28e1..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/crud-routes/set-crud-route-path.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/folders/routes-nested-folder.png b/public/images/docs/v5.0.0/api-endpoints/folders/routes-nested-folder.png deleted file mode 100644 index bc78e356..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/folders/routes-nested-folder.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/routing/environment-prefix.png b/public/images/docs/v5.0.0/api-endpoints/routing/environment-prefix.png deleted file mode 100644 index 54081aba..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/routing/environment-prefix.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/routing/open-environment-settings.png b/public/images/docs/v5.0.0/api-endpoints/routing/open-environment-settings.png deleted file mode 100644 index 60fa1be7..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/routing/open-environment-settings.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/routing/route-params.png b/public/images/docs/v5.0.0/api-endpoints/routing/route-params.png deleted file mode 100644 index 2f76f074..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/routing/route-params.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/routing/route-patterns.png b/public/images/docs/v5.0.0/api-endpoints/routing/route-patterns.png deleted file mode 100644 index e6c15d6b..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/routing/route-patterns.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-button.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-button.png deleted file mode 100644 index 7d1399c4..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-button.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-template-tab.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-template-tab.png deleted file mode 100644 index 68870937..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-generate-template-tab.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-template-generate-options.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-template-generate-options.png deleted file mode 100644 index f4959a6f..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/ai-assistant-template-generate-options.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/pre-generated-templates-modal.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/pre-generated-templates-modal.png deleted file mode 100644 index b59a6923..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/pre-generated-templates-modal.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-create-get-route.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-create-get-route.png deleted file mode 100644 index 4dd83815..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-create-get-route.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-generate-get-route.png b/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-generate-get-route.png deleted file mode 100644 index bc7cb096..00000000 Binary files a/public/images/docs/v5.0.0/api-endpoints/templates-and-ai-assistant/templates-generate-get-route.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/data-buckets/overview/add-data-bucket.png b/public/images/docs/v5.0.0/data-buckets/overview/add-data-bucket.png deleted file mode 100644 index 20728f14..00000000 Binary files a/public/images/docs/v5.0.0/data-buckets/overview/add-data-bucket.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/data-buckets/overview/open-data-view.png b/public/images/docs/v5.0.0/data-buckets/overview/open-data-view.png deleted file mode 100644 index d8c24140..00000000 Binary files a/public/images/docs/v5.0.0/data-buckets/overview/open-data-view.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/data-buckets/using-data-buckets/link-data-bucket-response.png b/public/images/docs/v5.0.0/data-buckets/using-data-buckets/link-data-bucket-response.png deleted file mode 100644 index 0473353b..00000000 Binary files a/public/images/docs/v5.0.0/data-buckets/using-data-buckets/link-data-bucket-response.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png b/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png deleted file mode 100644 index 1c47f8c1..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png b/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png deleted file mode 100644 index a2cb2f17..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png b/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png deleted file mode 100644 index 27a5f2d3..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-metadata.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-metadata.png deleted file mode 100644 index 88b65483..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-metadata.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-request.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-request.png deleted file mode 100644 index 94f7a29f..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-request.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-response.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-response.png deleted file mode 100644 index 6253a198..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-response.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body-modal.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body-modal.png deleted file mode 100644 index 570cb600..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body-modal.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body.png deleted file mode 100644 index 3a47f707..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/logs-view-body.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/open-logs.png b/public/images/docs/v5.0.0/logging-and-recording/requests-logging/open-logs.png deleted file mode 100644 index 4a4f1305..00000000 Binary files a/public/images/docs/v5.0.0/logging-and-recording/requests-logging/open-logs.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/enable-file-watching.png b/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/enable-file-watching.png deleted file mode 100644 index 285be708..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/enable-file-watching.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-move-to-folder.png b/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-move-to-folder.png deleted file mode 100644 index dfeba834..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-move-to-folder.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-show-in-folder.png b/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-show-in-folder.png deleted file mode 100644 index 92b237b0..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/data-storage-location/environment-show-in-folder.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png b/public/images/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png deleted file mode 100644 index 00f9f136..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/open-environment.png b/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/open-environment.png deleted file mode 100644 index 6b6722a9..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/open-environment.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png b/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png deleted file mode 100644 index 6e46112c..00000000 Binary files a/public/images/docs/v5.0.0/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/file-serving/enable-404-fallback.png b/public/images/docs/v5.0.0/response-configuration/file-serving/enable-404-fallback.png deleted file mode 100644 index 0ca67e6d..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/file-serving/enable-404-fallback.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/file-serving/environment-show-in-folder.png b/public/images/docs/v5.0.0/response-configuration/file-serving/environment-show-in-folder.png deleted file mode 100644 index 04dd359e..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/file-serving/environment-show-in-folder.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/file-serving/file-path.png b/public/images/docs/v5.0.0/response-configuration/file-serving/file-path.png deleted file mode 100644 index 88a7fa05..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/file-serving/file-path.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/file-serving/route-response-disable-templating.png b/public/images/docs/v5.0.0/response-configuration/file-serving/route-response-disable-templating.png deleted file mode 100644 index a0fd902b..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/file-serving/route-response-disable-templating.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-body/body-data-bucket.png b/public/images/docs/v5.0.0/response-configuration/response-body/body-data-bucket.png deleted file mode 100644 index e6ba42d4..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-body/body-data-bucket.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-body/body-file-serving.png b/public/images/docs/v5.0.0/response-configuration/response-body/body-file-serving.png deleted file mode 100644 index 6a22e7d0..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-body/body-file-serving.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-body/body-type-toggle.png b/public/images/docs/v5.0.0/response-configuration/response-body/body-type-toggle.png deleted file mode 100644 index 7059c88a..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-body/body-type-toggle.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-body/inline-body-editor.png b/public/images/docs/v5.0.0/response-configuration/response-body/inline-body-editor.png deleted file mode 100644 index f7616c8d..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-body/inline-body-editor.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-headers/add-environment-header.png b/public/images/docs/v5.0.0/response-configuration/response-headers/add-environment-header.png deleted file mode 100644 index 09899ecb..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-headers/add-environment-header.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-headers/add-route-header.png b/public/images/docs/v5.0.0/response-configuration/response-headers/add-route-header.png deleted file mode 100644 index d6c9f30f..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-headers/add-route-header.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-headers/fill-route-header-form.png b/public/images/docs/v5.0.0/response-configuration/response-headers/fill-route-header-form.png deleted file mode 100644 index 3275f4e7..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-headers/fill-route-header-form.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/response-configuration/response-headers/open-environment-headers.png b/public/images/docs/v5.0.0/response-configuration/response-headers/open-environment-headers.png deleted file mode 100644 index 6d473572..00000000 Binary files a/public/images/docs/v5.0.0/response-configuration/response-headers/open-environment-headers.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/add-route-response-rule.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/add-route-response-rule.png deleted file mode 100644 index 0157857a..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/add-route-response-rule.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/disable-rules.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/disable-rules.png deleted file mode 100644 index f667eedb..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/disable-rules.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rule-reorder.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rule-reorder.png deleted file mode 100644 index f3909d8e..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rule-reorder.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-comparison-operator.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-comparison-operator.png deleted file mode 100644 index 77a28840..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-comparison-operator.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-invert-operator.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-invert-operator.png deleted file mode 100644 index 525b1504..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-invert-operator.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-operator.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-operator.png deleted file mode 100644 index ff5b3d47..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-operator.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-property.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-property.png deleted file mode 100644 index 93a8a06f..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-property.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-target.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-target.png deleted file mode 100644 index eb862d42..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-target.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-value.png b/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-value.png deleted file mode 100644 index d1cc112c..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/dynamic-rules/route-response-rules-value.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/activate-fallback-mode.png b/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/activate-fallback-mode.png deleted file mode 100644 index eb9d14bd..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/activate-fallback-mode.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/create-wildcard-route.png b/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/create-wildcard-route.png deleted file mode 100644 index 5126d5b6..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/create-wildcard-route.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-rule-header-null.png b/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-rule-header-null.png deleted file mode 100644 index 3d776a38..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-rule-header-null.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-status-code-401.png b/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-status-code-401.png deleted file mode 100644 index 924d049e..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/global-routes-with-rules/response-status-code-401.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/add-route-response.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/add-route-response.png deleted file mode 100644 index e2f55630..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/add-route-response.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/change-route-responses-default.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/change-route-responses-default.png deleted file mode 100644 index e5ab3b20..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/change-route-responses-default.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/duplicate-route-response.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/duplicate-route-response.png deleted file mode 100644 index 0a472a41..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/duplicate-route-response.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/fallback-mode-responses.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/fallback-mode-responses.png deleted file mode 100644 index 13c61373..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/fallback-mode-responses.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/random-route-responses.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/random-route-responses.png deleted file mode 100644 index 755da355..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/random-route-responses.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/reorder-responses.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/reorder-responses.png deleted file mode 100644 index bae6763b..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/reorder-responses.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/route-responses/multiple-responses/sequential-route-responses.png b/public/images/docs/v5.0.0/route-responses/multiple-responses/sequential-route-responses.png deleted file mode 100644 index faf45afc..00000000 Binary files a/public/images/docs/v5.0.0/route-responses/multiple-responses/sequential-route-responses.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/cors/add-cors-headers.png b/public/images/docs/v5.0.0/server-configuration/cors/add-cors-headers.png deleted file mode 100644 index 700f8b0e..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/cors/add-cors-headers.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/cors/enable-cors.png b/public/images/docs/v5.0.0/server-configuration/cors/enable-cors.png deleted file mode 100644 index e652fd85..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/cors/enable-cors.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/cors/open-environment-headers.png b/public/images/docs/v5.0.0/server-configuration/cors/open-environment-headers.png deleted file mode 100644 index b33c4cc0..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/cors/open-environment-headers.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/cors/open-environment-settings.png b/public/images/docs/v5.0.0/server-configuration/cors/open-environment-settings.png deleted file mode 100644 index 105904a5..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/cors/open-environment-settings.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/cors/view-cors-headers.png b/public/images/docs/v5.0.0/server-configuration/cors/view-cors-headers.png deleted file mode 100644 index 6b4fb754..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/cors/view-cors-headers.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/listening-hostname/custom-hostname-setting.png b/public/images/docs/v5.0.0/server-configuration/listening-hostname/custom-hostname-setting.png deleted file mode 100644 index 59ae4a85..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/listening-hostname/custom-hostname-setting.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/listening-hostname/open-environment-settings.png b/public/images/docs/v5.0.0/server-configuration/listening-hostname/open-environment-settings.png deleted file mode 100644 index cf12a986..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/listening-hostname/open-environment-settings.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/proxy-mode/enable-proxy.png b/public/images/docs/v5.0.0/server-configuration/proxy-mode/enable-proxy.png deleted file mode 100644 index 4de2c612..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/proxy-mode/enable-proxy.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/proxy-mode/open-proxy-options.png b/public/images/docs/v5.0.0/server-configuration/proxy-mode/open-proxy-options.png deleted file mode 100644 index 4b92a5cf..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/proxy-mode/open-proxy-options.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-headers.png b/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-headers.png deleted file mode 100644 index 601e0085..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-headers.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-no-forward.png b/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-no-forward.png deleted file mode 100644 index 9cbaf711..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/proxy-mode/proxy-no-forward.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls-custom-certificate.png b/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls-custom-certificate.png deleted file mode 100644 index f48c00b0..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls-custom-certificate.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls.png b/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls.png deleted file mode 100644 index a5a954d6..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/enable-tls.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/open-environment-settings.png b/public/images/docs/v5.0.0/server-configuration/serving-over-tls/open-environment-settings.png deleted file mode 100644 index 53595d37..00000000 Binary files a/public/images/docs/v5.0.0/server-configuration/serving-over-tls/open-environment-settings.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/fakerjs-helpers/settings-faker.png b/public/images/docs/v5.0.0/templating/fakerjs-helpers/settings-faker.png deleted file mode 100644 index 6e248c83..00000000 Binary files a/public/images/docs/v5.0.0/templating/fakerjs-helpers/settings-faker.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/body-templating.png b/public/images/docs/v5.0.0/templating/overview/body-templating.png deleted file mode 100644 index c94fee59..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/body-templating.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/disable-route-response-templating.png b/public/images/docs/v5.0.0/templating/overview/disable-route-response-templating.png deleted file mode 100644 index 7bb896b0..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/disable-route-response-templating.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/file-path-templating.png b/public/images/docs/v5.0.0/templating/overview/file-path-templating.png deleted file mode 100644 index dad45efb..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/file-path-templating.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/headers-templating.png b/public/images/docs/v5.0.0/templating/overview/headers-templating.png deleted file mode 100644 index effa18ad..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/headers-templating.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/open-route-response-settings.png b/public/images/docs/v5.0.0/templating/overview/open-route-response-settings.png deleted file mode 100644 index e9eaee3f..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/open-route-response-settings.png and /dev/null differ diff --git a/public/images/docs/v5.0.0/templating/overview/template-helper-response-rule-value.png b/public/images/docs/v5.0.0/templating/overview/template-helper-response-rule-value.png deleted file mode 100644 index 42f77fe0..00000000 Binary files a/public/images/docs/v5.0.0/templating/overview/template-helper-response-rule-value.png and /dev/null differ diff --git a/public/images/docs/v8.1.1/api-endpoints/crud-routes/add-crud-route.png b/public/images/docs/v8.1.1/api-endpoints/crud-routes/add-crud-route.png new file mode 100644 index 00000000..c85d9f7e Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/crud-routes/add-crud-route.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/crud-routes/customize-crud-id-property-key.png b/public/images/docs/v8.1.1/api-endpoints/crud-routes/customize-crud-id-property-key.png new file mode 100644 index 00000000..46b0a2d4 Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/crud-routes/customize-crud-id-property-key.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/crud-routes/link-data-bucket-crud-route.png b/public/images/docs/v8.1.1/api-endpoints/crud-routes/link-data-bucket-crud-route.png new file mode 100644 index 00000000..34060fad Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/crud-routes/link-data-bucket-crud-route.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/crud-routes/set-crud-route-path.png b/public/images/docs/v8.1.1/api-endpoints/crud-routes/set-crud-route-path.png new file mode 100644 index 00000000..0a16b162 Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/crud-routes/set-crud-route-path.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/folders/routes-nested-folder.png b/public/images/docs/v8.1.1/api-endpoints/folders/routes-nested-folder.png new file mode 100644 index 00000000..3f157587 Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/folders/routes-nested-folder.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/routing/environment-prefix.png b/public/images/docs/v8.1.1/api-endpoints/routing/environment-prefix.png new file mode 100644 index 00000000..b7abb2ec Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/routing/environment-prefix.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/routing/open-environment-settings.png b/public/images/docs/v8.1.1/api-endpoints/routing/open-environment-settings.png new file mode 100644 index 00000000..fa69f2cc Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/routing/open-environment-settings.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/routing/route-params.png b/public/images/docs/v8.1.1/api-endpoints/routing/route-params.png new file mode 100644 index 00000000..29f28a24 Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/routing/route-params.png differ diff --git a/public/images/docs/v8.1.1/api-endpoints/routing/route-patterns.png b/public/images/docs/v8.1.1/api-endpoints/routing/route-patterns.png new file mode 100644 index 00000000..8049470a Binary files /dev/null and b/public/images/docs/v8.1.1/api-endpoints/routing/route-patterns.png differ diff --git a/public/images/docs/v8.1.1/callbacks/overview/add-callback.png b/public/images/docs/v8.1.1/callbacks/overview/add-callback.png new file mode 100644 index 00000000..21d913b7 Binary files /dev/null and b/public/images/docs/v8.1.1/callbacks/overview/add-callback.png differ diff --git a/public/images/docs/v8.1.1/callbacks/overview/open-callbacks-view.png b/public/images/docs/v8.1.1/callbacks/overview/open-callbacks-view.png new file mode 100644 index 00000000..5ce7cc38 Binary files /dev/null and b/public/images/docs/v8.1.1/callbacks/overview/open-callbacks-view.png differ diff --git a/public/images/docs/v8.1.1/callbacks/using-callbacks/link-callback-response.png b/public/images/docs/v8.1.1/callbacks/using-callbacks/link-callback-response.png new file mode 100644 index 00000000..4342a9ab Binary files /dev/null and b/public/images/docs/v8.1.1/callbacks/using-callbacks/link-callback-response.png differ diff --git a/public/images/docs/v8.1.1/callbacks/using-callbacks/open-route-response-callbacks.png b/public/images/docs/v8.1.1/callbacks/using-callbacks/open-route-response-callbacks.png new file mode 100644 index 00000000..ceac6ab9 Binary files /dev/null and b/public/images/docs/v8.1.1/callbacks/using-callbacks/open-route-response-callbacks.png differ diff --git a/public/images/docs/v8.1.1/data-buckets/overview/add-data-bucket.png b/public/images/docs/v8.1.1/data-buckets/overview/add-data-bucket.png new file mode 100644 index 00000000..82ecba67 Binary files /dev/null and b/public/images/docs/v8.1.1/data-buckets/overview/add-data-bucket.png differ diff --git a/public/images/docs/v8.1.1/data-buckets/overview/open-data-view.png b/public/images/docs/v8.1.1/data-buckets/overview/open-data-view.png new file mode 100644 index 00000000..b46466fa Binary files /dev/null and b/public/images/docs/v8.1.1/data-buckets/overview/open-data-view.png differ diff --git a/public/images/docs/v8.1.1/data-buckets/using-data-buckets/link-data-bucket-response.png b/public/images/docs/v8.1.1/data-buckets/using-data-buckets/link-data-bucket-response.png new file mode 100644 index 00000000..5843ea37 Binary files /dev/null and b/public/images/docs/v8.1.1/data-buckets/using-data-buckets/link-data-bucket-response.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png new file mode 100644 index 00000000..7058dd9d Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-auto-mocking.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png new file mode 100644 index 00000000..b6b05f1f Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-recording-in-progress.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png new file mode 100644 index 00000000..263e63f4 Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/auto-mocking-and-recording/logs-start-recording.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-metadata.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-metadata.png new file mode 100644 index 00000000..6f5d29f1 Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-metadata.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-request.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-request.png new file mode 100644 index 00000000..49a6ccbe Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-request.png differ diff --git a/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-response.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-response.png new file mode 100644 index 00000000..472f06b6 Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-response.png differ diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/logs-view-body-modal.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-view-body-modal.png similarity index 100% rename from public/images/docs/latest/logging-and-recording/requests-logging/logs-view-body-modal.png rename to public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-view-body-modal.png diff --git a/public/images/docs/latest/logging-and-recording/requests-logging/logs-view-body.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-view-body.png similarity index 100% rename from public/images/docs/latest/logging-and-recording/requests-logging/logs-view-body.png rename to public/images/docs/v8.1.1/logging-and-recording/requests-logging/logs-view-body.png diff --git a/public/images/docs/v8.1.1/logging-and-recording/requests-logging/open-logs.png b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/open-logs.png new file mode 100644 index 00000000..abbcf844 Binary files /dev/null and b/public/images/docs/v8.1.1/logging-and-recording/requests-logging/open-logs.png differ diff --git a/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png new file mode 100644 index 00000000..581abc5d Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-button.png differ diff --git a/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png new file mode 100644 index 00000000..60a1ee64 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-generate-template-tab.png differ diff --git a/public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-options.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-options.png similarity index 100% rename from public/images/docs/latest/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-options.png rename to public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/ai-assistant-template-generate-options.png diff --git a/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png new file mode 100644 index 00000000..f0039c83 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/pre-generated-templates-modal.png differ diff --git a/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png new file mode 100644 index 00000000..18a4e513 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-create-get-route.png differ diff --git a/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png new file mode 100644 index 00000000..a48cd5ed Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-cloud/templates-and-ai-assistant/templates-generate-get-route.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/enable-file-watching.png b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/enable-file-watching.png new file mode 100644 index 00000000..8930248d Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/enable-file-watching.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-move-to-folder.png b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-move-to-folder.png new file mode 100644 index 00000000..1b504ddb Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-move-to-folder.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-show-in-folder.png b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-show-in-folder.png new file mode 100644 index 00000000..5bd3d4d1 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/data-storage-location/environment-show-in-folder.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png b/public/images/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png new file mode 100644 index 00000000..32586853 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/environment-clipboard-copy/export-clipboard-env.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/open-environment.png b/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/open-environment.png new file mode 100644 index 00000000..57e6fd5d Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/open-environment.png differ diff --git a/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png b/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png new file mode 100644 index 00000000..d3445c68 Binary files /dev/null and b/public/images/docs/v8.1.1/mockoon-data-files/sharing-mock-api-files/storage-pretty-printing.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/file-serving/enable-404-fallback.png b/public/images/docs/v8.1.1/response-configuration/file-serving/enable-404-fallback.png new file mode 100644 index 00000000..f934a4dc Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/file-serving/enable-404-fallback.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/file-serving/environment-show-in-folder.png b/public/images/docs/v8.1.1/response-configuration/file-serving/environment-show-in-folder.png new file mode 100644 index 00000000..907d7009 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/file-serving/environment-show-in-folder.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/file-serving/file-path.png b/public/images/docs/v8.1.1/response-configuration/file-serving/file-path.png new file mode 100644 index 00000000..eebb36e7 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/file-serving/file-path.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/file-serving/route-response-disable-templating.png b/public/images/docs/v8.1.1/response-configuration/file-serving/route-response-disable-templating.png new file mode 100644 index 00000000..bfdbab41 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/file-serving/route-response-disable-templating.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-body/body-data-bucket.png b/public/images/docs/v8.1.1/response-configuration/response-body/body-data-bucket.png new file mode 100644 index 00000000..44a6204d Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-body/body-data-bucket.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-body/body-file-serving.png b/public/images/docs/v8.1.1/response-configuration/response-body/body-file-serving.png new file mode 100644 index 00000000..01dcf0e4 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-body/body-file-serving.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-body/body-type-toggle.png b/public/images/docs/v8.1.1/response-configuration/response-body/body-type-toggle.png new file mode 100644 index 00000000..e7b07006 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-body/body-type-toggle.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-body/inline-body-editor.png b/public/images/docs/v8.1.1/response-configuration/response-body/inline-body-editor.png new file mode 100644 index 00000000..c6b91431 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-body/inline-body-editor.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-headers/add-environment-header.png b/public/images/docs/v8.1.1/response-configuration/response-headers/add-environment-header.png new file mode 100644 index 00000000..d5856a9f Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-headers/add-environment-header.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-headers/add-route-header.png b/public/images/docs/v8.1.1/response-configuration/response-headers/add-route-header.png new file mode 100644 index 00000000..d817f346 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-headers/add-route-header.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-headers/fill-route-header-form.png b/public/images/docs/v8.1.1/response-configuration/response-headers/fill-route-header-form.png new file mode 100644 index 00000000..882dcb4c Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-headers/fill-route-header-form.png differ diff --git a/public/images/docs/v8.1.1/response-configuration/response-headers/open-environment-headers.png b/public/images/docs/v8.1.1/response-configuration/response-headers/open-environment-headers.png new file mode 100644 index 00000000..427d9702 Binary files /dev/null and b/public/images/docs/v8.1.1/response-configuration/response-headers/open-environment-headers.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/add-route-response-rule.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/add-route-response-rule.png new file mode 100644 index 00000000..5948c1a6 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/add-route-response-rule.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/disable-rules.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/disable-rules.png new file mode 100644 index 00000000..da03d8d8 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/disable-rules.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rule-reorder.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rule-reorder.png new file mode 100644 index 00000000..fb615361 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rule-reorder.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-comparison-operator.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-comparison-operator.png new file mode 100644 index 00000000..38bb68fc Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-comparison-operator.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-invert-operator.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-invert-operator.png new file mode 100644 index 00000000..08b5cb8a Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-invert-operator.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-operator.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-operator.png new file mode 100644 index 00000000..76c68fdc Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-operator.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-property.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-property.png new file mode 100644 index 00000000..3875e6fa Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-property.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-target.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-target.png new file mode 100644 index 00000000..941f21a7 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-target.png differ diff --git a/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-value.png b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-value.png new file mode 100644 index 00000000..e6ba3258 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/dynamic-rules/route-response-rules-value.png differ diff --git a/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/activate-fallback-mode.png b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/activate-fallback-mode.png new file mode 100644 index 00000000..5c874e19 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/activate-fallback-mode.png differ diff --git a/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/create-wildcard-route.png b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/create-wildcard-route.png new file mode 100644 index 00000000..cf51d4e7 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/create-wildcard-route.png differ diff --git a/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-rule-header-null.png b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-rule-header-null.png new file mode 100644 index 00000000..9407bc08 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-rule-header-null.png differ diff --git a/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-status-code-401.png b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-status-code-401.png new file mode 100644 index 00000000..89d28245 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/global-routes-with-rules/response-status-code-401.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/add-route-response.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/add-route-response.png new file mode 100644 index 00000000..6239b761 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/add-route-response.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/change-route-responses-default.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/change-route-responses-default.png new file mode 100644 index 00000000..641551fe Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/change-route-responses-default.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/duplicate-route-response.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/duplicate-route-response.png new file mode 100644 index 00000000..9c5bbb91 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/duplicate-route-response.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/fallback-mode-responses.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/fallback-mode-responses.png new file mode 100644 index 00000000..5eee800e Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/fallback-mode-responses.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/random-route-responses.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/random-route-responses.png new file mode 100644 index 00000000..8c8599a6 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/random-route-responses.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/reorder-responses.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/reorder-responses.png new file mode 100644 index 00000000..16415979 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/reorder-responses.png differ diff --git a/public/images/docs/v8.1.1/route-responses/multiple-responses/sequential-route-responses.png b/public/images/docs/v8.1.1/route-responses/multiple-responses/sequential-route-responses.png new file mode 100644 index 00000000..b0715c68 Binary files /dev/null and b/public/images/docs/v8.1.1/route-responses/multiple-responses/sequential-route-responses.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/cors/add-cors-headers.png b/public/images/docs/v8.1.1/server-configuration/cors/add-cors-headers.png new file mode 100644 index 00000000..13c25c1f Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/cors/add-cors-headers.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/cors/enable-cors.png b/public/images/docs/v8.1.1/server-configuration/cors/enable-cors.png new file mode 100644 index 00000000..eb515827 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/cors/enable-cors.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/cors/open-environment-headers.png b/public/images/docs/v8.1.1/server-configuration/cors/open-environment-headers.png new file mode 100644 index 00000000..5d2d8f59 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/cors/open-environment-headers.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/cors/open-environment-settings.png b/public/images/docs/v8.1.1/server-configuration/cors/open-environment-settings.png new file mode 100644 index 00000000..22e8b87a Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/cors/open-environment-settings.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/cors/view-cors-headers.png b/public/images/docs/v8.1.1/server-configuration/cors/view-cors-headers.png new file mode 100644 index 00000000..7132dbcd Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/cors/view-cors-headers.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/listening-hostname/custom-hostname-setting.png b/public/images/docs/v8.1.1/server-configuration/listening-hostname/custom-hostname-setting.png new file mode 100644 index 00000000..668f0b4b Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/listening-hostname/custom-hostname-setting.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/listening-hostname/open-environment-settings.png b/public/images/docs/v8.1.1/server-configuration/listening-hostname/open-environment-settings.png new file mode 100644 index 00000000..99b2329b Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/listening-hostname/open-environment-settings.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-port.png b/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-port.png new file mode 100644 index 00000000..1ab2b910 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-port.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-prefix.png b/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-prefix.png new file mode 100644 index 00000000..b7abb2ec Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/port-prefix/environment-custom-prefix.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/port-prefix/open-environment-settings.png b/public/images/docs/v8.1.1/server-configuration/port-prefix/open-environment-settings.png new file mode 100644 index 00000000..fa69f2cc Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/port-prefix/open-environment-settings.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/proxy-mode/enable-proxy.png b/public/images/docs/v8.1.1/server-configuration/proxy-mode/enable-proxy.png new file mode 100644 index 00000000..2b281487 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/proxy-mode/enable-proxy.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/proxy-mode/open-proxy-options.png b/public/images/docs/v8.1.1/server-configuration/proxy-mode/open-proxy-options.png new file mode 100644 index 00000000..d7067370 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/proxy-mode/open-proxy-options.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-headers.png b/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-headers.png new file mode 100644 index 00000000..cd35f5ad Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-headers.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-no-forward.png b/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-no-forward.png new file mode 100644 index 00000000..024ac8c1 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/proxy-mode/proxy-no-forward.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls-custom-certificate.png b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls-custom-certificate.png new file mode 100644 index 00000000..66803cb8 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls-custom-certificate.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls.png b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls.png new file mode 100644 index 00000000..863f17be Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/enable-tls.png differ diff --git a/public/images/docs/v8.1.1/server-configuration/serving-over-tls/open-environment-settings.png b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/open-environment-settings.png new file mode 100644 index 00000000..0086dbe4 Binary files /dev/null and b/public/images/docs/v8.1.1/server-configuration/serving-over-tls/open-environment-settings.png differ diff --git a/public/images/docs/v8.1.1/templating/fakerjs-helpers/settings-faker.png b/public/images/docs/v8.1.1/templating/fakerjs-helpers/settings-faker.png new file mode 100644 index 00000000..d82ce2a7 Binary files /dev/null and b/public/images/docs/v8.1.1/templating/fakerjs-helpers/settings-faker.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/body-templating.png b/public/images/docs/v8.1.1/templating/overview/body-templating.png new file mode 100644 index 00000000..835da5eb Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/body-templating.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/disable-route-response-templating.png b/public/images/docs/v8.1.1/templating/overview/disable-route-response-templating.png new file mode 100644 index 00000000..55999f94 Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/disable-route-response-templating.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/file-path-templating.png b/public/images/docs/v8.1.1/templating/overview/file-path-templating.png new file mode 100644 index 00000000..d6a5dfe1 Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/file-path-templating.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/headers-templating.png b/public/images/docs/v8.1.1/templating/overview/headers-templating.png new file mode 100644 index 00000000..bd4da45b Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/headers-templating.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/open-route-response-settings.png b/public/images/docs/v8.1.1/templating/overview/open-route-response-settings.png new file mode 100644 index 00000000..63708e97 Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/open-route-response-settings.png differ diff --git a/public/images/docs/v8.1.1/templating/overview/template-helper-response-rule-value.png b/public/images/docs/v8.1.1/templating/overview/template-helper-response-rule-value.png new file mode 100644 index 00000000..16cb1f96 Binary files /dev/null and b/public/images/docs/v8.1.1/templating/overview/template-helper-response-rule-value.png differ diff --git a/public/images/docs/v8.1.1/variables/environment-variables/settings-environment-variables-prefix.png b/public/images/docs/v8.1.1/variables/environment-variables/settings-environment-variables-prefix.png new file mode 100644 index 00000000..131194f3 Binary files /dev/null and b/public/images/docs/v8.1.1/variables/environment-variables/settings-environment-variables-prefix.png differ diff --git a/public/images/releases/8.2.0/ai-assistant-endpoint-generation.gif b/public/images/releases/8.2.0/ai-assistant-endpoint-generation.gif new file mode 100644 index 00000000..fd48374e Binary files /dev/null and b/public/images/releases/8.2.0/ai-assistant-endpoint-generation.gif differ diff --git a/public/images/releases/8.2.0/ai-assistant-options-after.png b/public/images/releases/8.2.0/ai-assistant-options-after.png new file mode 100644 index 00000000..10858b7c Binary files /dev/null and b/public/images/releases/8.2.0/ai-assistant-options-after.png differ diff --git a/public/images/releases/8.2.0/ai-assistant-options-before.png b/public/images/releases/8.2.0/ai-assistant-options-before.png new file mode 100644 index 00000000..abae23f0 Binary files /dev/null and b/public/images/releases/8.2.0/ai-assistant-options-before.png differ diff --git a/public/images/releases/8.2.0/copy-unique-id.png b/public/images/releases/8.2.0/copy-unique-id.png new file mode 100644 index 00000000..fc029b4a Binary files /dev/null and b/public/images/releases/8.2.0/copy-unique-id.png differ diff --git a/public/images/releases/8.2.0/default-cors-headers.png b/public/images/releases/8.2.0/default-cors-headers.png new file mode 100644 index 00000000..f2e4cae9 Binary files /dev/null and b/public/images/releases/8.2.0/default-cors-headers.png differ diff --git a/public/images/releases/8.2.0/filter-routes-by-type-crud.png b/public/images/releases/8.2.0/filter-routes-by-type-crud.png new file mode 100644 index 00000000..9060b866 Binary files /dev/null and b/public/images/releases/8.2.0/filter-routes-by-type-crud.png differ diff --git a/public/images/releases/8.2.0/folder-toggle.png b/public/images/releases/8.2.0/folder-toggle.png new file mode 100644 index 00000000..197e3afb Binary files /dev/null and b/public/images/releases/8.2.0/folder-toggle.png differ diff --git a/public/images/releases/8.2.0/new-dropdown-menus.png b/public/images/releases/8.2.0/new-dropdown-menus.png new file mode 100644 index 00000000..1ef2553d Binary files /dev/null and b/public/images/releases/8.2.0/new-dropdown-menus.png differ diff --git a/public/images/releases/8.2.0/new-logs-dropdown-menu.png b/public/images/releases/8.2.0/new-logs-dropdown-menu.png new file mode 100644 index 00000000..23c0c8a9 Binary files /dev/null and b/public/images/releases/8.2.0/new-logs-dropdown-menu.png differ diff --git a/public/images/releases/8.2.0/new-menus-redesigned.png b/public/images/releases/8.2.0/new-menus-redesigned.png new file mode 100644 index 00000000..03688adf Binary files /dev/null and b/public/images/releases/8.2.0/new-menus-redesigned.png differ