From b8faee33039ea31f57be65de2ba403d1d6e8c050 Mon Sep 17 00:00:00 2001
From: AndyHale
Date: Fri, 1 Nov 2024 11:43:24 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Ensono/a?=
=?UTF-8?q?mido.github.io@0281e68cb8ec8cf9d8a086831854fec3c810d0d5=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
404.html | 2 +-
assets/js/1a451233.bcae360f.js | 1 +
assets/js/1a451233.bfeeffa6.js | 1 -
...n.09bd2f69.js => runtime~main.43d0c789.js} | 2 +-
docs.html | 2 +-
docs/assets.html | 2 +-
docs/code_of_conduct.html | 2 +-
docs/contributions.html | 2 +-
docs/developer/developer_patterns_readme.html | 2 +-
.../java/patterns/java_app_layering.html | 2 +-
.../java/patterns/java_mapstruct_mapping.html | 2 +-
.../patterns/java_swagger_annotations.html | 2 +-
.../azure-container-apps.html | 2 +-
.../azure-node/app-insights-deployment.html | 2 +-
.../azure-node/app-insights.html | 2 +-
.../azure-node/ensono-stacks-azure-node.html | 2 +-
.../ensono-stacks-azure-react.html | 2 +-
.../generator-app-insights-web.html | 2 +-
...ensono-stacks-create-stacks-workspace.html | 2 +-
.../cypress/accessibility.html | 2 +-
.../cypress/ensono-stacks-cypress.html | 2 +-
docs/getting_started/cypress/executor.html | 2 +-
docs/getting_started/cypress/init.html | 2 +-
.../logger/ensono-stacks-logger.html | 2 +-
docs/getting_started/logger/winston.html | 2 +-
.../next/ensono-stacks-next.html | 2 +-
docs/getting_started/next/init.html | 2 +-
docs/getting_started/next/next-auth.html | 2 +-
docs/getting_started/next/storybook.html | 2 +-
.../playwright/accessibility.html | 2 +-
.../playwright/ensono-stacks-playwright.html | 2 +-
docs/getting_started/playwright/executor.html | 2 +-
docs/getting_started/playwright/init.html | 2 +-
.../playwright/visual-regression.html | 2 +-
.../ensono-stacks-[plugin-name].html | 2 +-
.../executor-generator-template.html | 2 +-
.../rest-client/bump-version.html | 2 +-
.../rest-client/client-endpoint.html | 2 +-
.../ensono-stacks-rest-client.html | 2 +-
.../rest-client/http-client.html | 2 +-
.../rest-client/openapi-client.html | 2 +-
docs/getting_started/setup.html | 2 +-
.../workspace/ensono-stacks-workspace.html | 2 +-
docs/getting_started/workspace/init.html | 2 +-
docs/getting_started_dev.html | 2 +-
docs/glossary.html | 2 +-
.../azure/core_infrastructure.html | 2 +-
.../azure/pipelines/azure_devops.html | 2 +-
docs/infrastructure/introduction.html | 2 +-
docs/linting/eslint.html | 2 +-
docs/module_federation/nextjs_plugin.html | 2 +-
docs/nextjs/authentication.html | 2 +-
docs/nextjs/infrastructure.html | 2 +-
docs/nx/nx_stacks.html | 2 +-
docs/stackscli/about.html | 2 +-
docs/stackscli/examples.html | 2 +-
docs/stackscli/project_settings.html | 2 +-
docs/stackscli/runtime_config.html | 2 +-
docs/stackscli/troubleshooting.html | 2 +-
docs/stackscli/usage.html | 2 +-
docs/storybook/storybook_stacks.html | 2 +-
docs/testing/accessibility_testing.html | 2 +-
docs/testing/contract_testing_pact.html | 2 +-
docs/testing/performance_testing_gatling.html | 2 +-
docs/testing/testing_dotnet_selenium.html | 2 +-
.../cypress_accessibility_testing.html | 2 +-
.../testing_in_nx/frontend_testing_in_nx.html | 2 +-
.../playwright_accessibility_testing.html | 2 +-
.../playwright_visual_testing.html | 2 +-
...wright_visual_testing_applitools_eyes.html | 2 +-
.../testing_in_nx/testing_with_cypress.html | 2 +-
.../testing_with_playwright.html | 2 +-
docs/testing/testing_java_serenity_bdd.html | 2 +-
docs/testing/testing_static_analysis.html | 2 +-
docs/workloads.html | 2 +-
.../dependency_dynamodb_java.html | 2 +-
.../architecture/dependency_sqs_java.html | 2 +-
.../backend/java/define_aws_secrets_java.html | 2 +-
.../setting_up_dynamodb_locally_java.html | 2 +-
.../setting_up_xray_daemon_locally_java.html | 2 +-
.../architecture/dependency_cosmos_java.html | 2 +-
.../dependency_servicebus_java.html | 2 +-
.../backend/java/infrastructure_java.html | 2 +-
.../azure/backend/java/pipeline_java.html | 2 +-
.../azure/backend/java/quickstart_java.html | 2 +-
.../azure/backend/java/requirements_java.html | 2 +-
.../setting_up_cosmos_db_locally_java.html | 2 +-
.../testing/execute_karate_api_tests.html | 2 +-
.../testing/execute_serenity_api_tests.html | 2 +-
.../backend/java/testing/testing_java.html | 2 +-
.../architecture_overview_netcore.html | 2 +-
.../data_storage_cosmosdb_netcore.html | 2 +-
...events_exceptions_correlation_netcore.html | 2 +-
.../project_structure_netcore_cqrs.html | 2 +-
...ect_structure_netcore_function_worker.html | 2 +-
.../project_structure_netcore_simple_api.html | 2 +-
.../repository_overview_netcore.html | 2 +-
.../configure_swagger_netcore.html | 2 +-
.../configure_swagger_ui_netcore.html | 2 +-
.../testing/testing_scope_netcore.html | 2 +-
.../netcore/infrastructure_netcore.html | 2 +-
.../backend/netcore/introduction_netcore.html | 2 +-
.../backend/netcore/logging_netcore.html | 2 +-
.../backend/netcore/pipeline_netcore.html | 2 +-
.../build_and_run_project_netcore.html | 2 +-
.../web_api/create_project_netcore.html | 2 +-
.../build_and_run_project_netcore.html | 24 +++++++++----------
.../configure_project_netcore.html | 2 +-
.../web_api_cqrs/create_project_netcore.html | 2 +-
.../backend/netcore/requirements_netcore.html | 2 +-
.../backend/netcore/security_netcore.html | 2 +-
.../testing/functional_testing_netcore.html | 2 +-
.../architecture/architecture_data_azure.html | 2 +-
.../infrastructure_data_azure.html | 2 +-
.../architecture/security_data_azure.html | 2 +-
.../data_engineering_intro_azure.html | 2 +-
.../data_engineering/data_processing.html | 2 +-
.../data_engineering/data_quality_azure.html | 2 +-
.../data/data_engineering/datastacks.html | 2 +-
.../data_engineering/ingest_data_azure.html | 2 +-
.../stacks_data_utilities.html | 2 +-
.../data_engineering/testing_data_azure.html | 2 +-
.../workloads/azure/data/getting_started.html | 2 +-
.../core_data_platform_deployment_azure.html | 2 +-
.../dev_quickstart_data_azure.html | 2 +-
.../getting_started/example_data_source.html | 2 +-
.../fabric_deployment_guide.html | 2 +-
.../getting_started/generate_project.html | 2 +-
.../ingest_pipeline_deployment_azure.html | 2 +-
.../processing_pipeline_deployment_azure.html | 2 +-
.../requirements_data_azure.html | 2 +-
.../shared_resources_deployment_azure.html | 2 +-
.../azure/data/intro_data_azure.html | 2 +-
.../architecture/dependency_api_java.html | 2 +-
.../architecture/dependency_commons_java.html | 2 +-
.../architecture/dependency_cqrs_java.html | 2 +-
.../dependency_messaging_java.html | 2 +-
.../architecture/dependency_parent_java.html | 2 +-
.../java_cqrs/architecture_java_cqrs.html | 2 +-
.../java_cqrs/structure_java_cqrs.html | 2 +-
.../java/architecture/maven_modules_java.html | 2 +-
.../web_api/architecture_java.html | 2 +-
.../architecture/web_api/structure_java.html | 2 +-
.../common/backend/java/ide_java.html | 2 +-
.../common/backend/java/intro_java.html | 2 +-
.../backend/java/maven_spring_profiles.html | 2 +-
.../common/backend/java/scaffolding_java.html | 2 +-
index.html | 2 +-
148 files changed, 157 insertions(+), 159 deletions(-)
create mode 100644 assets/js/1a451233.bcae360f.js
delete mode 100644 assets/js/1a451233.bfeeffa6.js
rename assets/js/{runtime~main.09bd2f69.js => runtime~main.43d0c789.js} (99%)
diff --git a/404.html b/404.html
index 420763b49..37a53f2f5 100644
--- a/404.html
+++ b/404.html
@@ -10,7 +10,7 @@
-
+
diff --git a/assets/js/1a451233.bcae360f.js b/assets/js/1a451233.bcae360f.js
new file mode 100644
index 000000000..b641fcbbd
--- /dev/null
+++ b/assets/js/1a451233.bcae360f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkstacks=self.webpackChunkstacks||[]).push([[7207],{7049:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>h});var r=t(4848),s=t(8453),o=t(1470),i=t(9365);const a={id:"build_and_run_project_netcore",title:"Build & Run REST API with CQRS",sidebar_label:"Build & Run REST API with CQRS",hide_title:!0,hide_table_of_contents:!0,description:"Build and Run .NET Core REST API application with CQRS",keywords:[".net core","rest api","cqrs","azure","application insights","cosmos db","aws sns","build","run","application"]},l=void 0,c={id:"workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",title:"Build & Run REST API with CQRS",description:"Build and Run .NET Core REST API application with CQRS",source:"@site/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.md",sourceDirName:"workloads/azure/backend/netcore/quickstart/web_api_cqrs",slug:"/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",permalink:"/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"build_and_run_project_netcore",title:"Build & Run REST API with CQRS",sidebar_label:"Build & Run REST API with CQRS",hide_title:!0,hide_table_of_contents:!0,description:"Build and Run .NET Core REST API application with CQRS",keywords:[".net core","rest api","cqrs","azure","application insights","cosmos db","aws sns","build","run","application"]},sidebar:"docs",previous:{title:"Configure REST API with CQRS project",permalink:"/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore"},next:{title:"Architecture Overview",permalink:"/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore"}},d={},h=[{value:"Build and Run REST API with CQRS",id:"build-and-run-rest-api-with-cqrs",level:2},{value:"Building and Running",id:"building-and-running",level:3},{value:"Verify that the application has started",id:"verify-that-the-application-has-started",level:3}];function u(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"build-and-run-rest-api-with-cqrs",children:"Build and Run REST API with CQRS"}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:"You can run the API created by the templates either locally or in a Docker container."}),"\n",(0,r.jsx)(n.admonition,{title:"Project Configuration",type:"note",children:(0,r.jsxs)(n.p,{children:["Depending on the options selected when creating the CQRS API, additional configuration may be required.\nbefore running the project. It is important to complete the ",(0,r.jsx)(n.a,{href:"https://stacks.ensono.com/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore",children:"Configure REST API with CQRS project"})," section of this guide before building and running the project."]})}),"\n",(0,r.jsx)(n.h3,{id:"building-and-running",children:"Building and Running"}),"\n",(0,r.jsxs)(t,{open:!0,children:[(0,r.jsx)("summary",{children:"Build and run locally"}),(0,r.jsx)("div",{children:(0,r.jsxs)(o.A,{groupId:"operating-systems",defaultValue:"windows",values:[{label:"Windows",value:"windows"},{label:"Mac and Linux",value:"mac-and-linux"}],children:[(0,r.jsxs)(i.A,{value:"windows",children:[(0,r.jsxs)(n.p,{children:["The following example shows how to build and run the Stacks CQRS API solution. In this example, the solution is located in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have chose a different directory or project name when creating your solution, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Open a terminal."}),(0,r.jsx)(n.br,{}),"\n","You can use either Command Prompt or PowerShell."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change your directory to the API project directory. In this example, the solution was created in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," folder and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"cd c:\\dev\\company.project\\src\\cqrs\\src\\api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the solution"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"dotnet build"})," command to build the solution in this directory."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"dotnet build\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the API project."}),(0,r.jsx)(n.br,{}),"\n","Finally, use the ",(0,r.jsx)(n.code,{children:"dotnet run"})," command to start the API project.",(0,r.jsx)(n.br,{}),"\n","Replace ",(0,r.jsx)(n.em,{children:"Company.Project"})," with your project's name."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"dotnet run --project Company.Project.API/Company.Project.API.csproj\n"})}),"\n"]}),"\n"]}),(0,r.jsxs)(n.admonition,{title:"Potential issue when running on Windows.",type:"note",children:[(0,r.jsxs)(n.p,{children:["If your folder structure is too deep, you may encounter a build failure. This issue arises due to our dependency on ",(0,r.jsx)(n.a,{href:"https://docs.pact.io/",children:"Pact"})," for contract testing. The error will looks like this: -"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Error MSB3491 Path: File exceeds the OS max path limit. The fully qualified file name must be less than 260 characters.\n"})}),(0,r.jsx)(n.p,{children:"There are two fixes for this issue: -"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later",children:"Enable long file paths on Windows."})}),"\n",(0,r.jsx)(n.li,{children:"Create your folder at a higher level, so that paths won't exceed 260 characters."}),"\n"]})]})]}),(0,r.jsxs)(i.A,{value:"mac-and-linux",children:[(0,r.jsxs)(n.p,{children:["Below is an example of how to build and run the Stacks CQRS API solution. In this example, the solution is located in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," in the home directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have used a different directory or project name, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Open a terminal."})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the API project directory within the solution. In this example, the solution was created in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," inside ",(0,r.jsx)(n.em,{children:"anneexample"}),"'s home directory and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd ~/users/anneexample/dev/company.project/src/cqrs/src/api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the solution"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"dotnet build"})," command to build the solution in this directory."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"dotnet build\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the API project."}),(0,r.jsx)(n.br,{}),"\n","Finally, use the ",(0,r.jsx)(n.code,{children:"dotnet run"})," command to start the API project.",(0,r.jsx)(n.br,{}),"\n","Replace ",(0,r.jsx)(n.em,{children:"Company.Project"})," with your actual project name."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"dotnet run --project Company.Project.API/Company.Project.API.csproj\n"})}),"\n"]}),"\n"]})]})]})})]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Build and run in a Docker container"}),(0,r.jsxs)("div",{children:[(0,r.jsxs)(o.A,{groupId:"operating-systems",defaultValue:"windows",values:[{label:"Windows",value:"windows"},{label:"Mac and Linux",value:"mac-and-linux"}],children:[(0,r.jsxs)(i.A,{value:"windows",children:[(0,r.jsxs)(n.p,{children:["The following example shows how to build and run the Stacks CQRS API solution. In this example, the solution is located in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have used a different directory or project name, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Open a terminal."}),(0,r.jsx)(n.br,{}),"\n","You can use either Command Prompt or PowerShell."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the project's root directory within the solution. In this example, the solution was created in ",(0,r.jsx)(n.em,{children:"c:\\dev"})," and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"cd c:\\dev\\company.project\\\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the Docker Image"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker build"})," command to build the Docker image from the Dockerfile in this folder."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"docker build -t dotnet-api -f src/cqrs/src/api/Dockerfile --build-arg self_repo_src=src/cqrs/src/api .\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the Docker Image."}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker run"})," command to start a container from the image that we just built. Use one of the commands below, bt you will need to change the ",(0,r.jsx)(n.code,{children:"--mount"})," switch so that it matches the path to your appsettings.json. You will also need to provide the values of the environment variables that you made a note of in the previous section and delete the environment variables that you are not using."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",metastring:'title="Command Line"',children:"docker run -p 5000:8080 ^\n--mount type=bind,source=C:/dev/company.project/src/cqrs/src/api/company.project.API/appsettings.json,target=/app/config/appsettings.json ^\n-e COSMOSDB_KEY=your-key ^\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string ^\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string ^\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string ^\n-e TOPIC_ARN=your-aws-sns-topic-arn ^\ndotnet-api:latest\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",metastring:'title="PowerShell"',children:"docker run -p 5000:8080 `\n--mount type=bind,source=C:/dev/company.project/src/cqrs/src/api/company.project.API/appsettings.json,target=/app/config/appsettings.json `\n-e COSMOSDB_KEY=your-key `\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string `\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string `\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string `\n-e TOPIC_ARN=your-aws-sns-topic-arn `\ndotnet-api:latest\n"})}),"\n"]}),"\n"]})]}),(0,r.jsx)(i.A,{value:"mac-and-linux",children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open ",(0,r.jsx)(n.strong,{children:"Terminal"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the API project directory within the solution. In this example, the solution was created in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," inside ",(0,r.jsx)(n.em,{children:"anneexample"}),"'s home directory and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd ~/users/anneexample/dev/company.project\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the Docker Image"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker build"})," command to build the Docker image from the Dockerfile in this folder."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:" docker build -t dotnet-api -f src/cqrs/src/api/Dockerfile --build-arg self_repo_src=src/cqrs/src/api .\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the Docker Image."}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker run"})," command to start a container from the image that we just built. Use one of the commands below, bt you will need to change the ",(0,r.jsx)(n.code,{children:"--mount"})," switch so that it matches the path to your appsettings.json. You will also need to provide the values of the environment variables that you made a note of in the previous section and delete the environment variables that you are not using."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker run -p 5000:8080 \\\n--mount type=bind,source=C:/dev/company.project/src/cqrs/src/api/company.project.API/appsettings.json,target=/app/config/appsettings.json\\\n-e COSMOSDB_KEY=your-key \\\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string \\\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string \\\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string \\\ndotnet-api:latest\n"})}),"\n"]}),"\n"]})})]}),(0,r.jsxs)(n.admonition,{title:"Environment Variables",type:"note",children:[(0,r.jsxs)(n.p,{children:["When running the Docker container, you need to pass your environment variables using the ",(0,r.jsx)(n.code,{children:"-e"})," switch. The commands above show every environment variable. You should replace the placeholders with actual secrets that you made a note of when you followed the ",(0,r.jsx)(n.a,{href:"https://stacks.ensono.com/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore",children:"Configure REST API with CQRS project"})," step of this guide and remove the environment variables that you are not using."]}),(0,r.jsx)(n.p,{children:"The table below describes each environment variable."}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Environment Variable name"}),(0,r.jsx)(n.th,{children:"Environment Variable required when..."})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"COSMOSDB_KEY"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Cosmos DB"})," is your database service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"EVENTHUB_CONNECTIONSTRING"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Azure Event Hubs"})," is your messaging service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"SERVICEBUS_CONNECTIONSTRING"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Azure Service Bus"})," is your messaging service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"TOPIC_ARN"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"AWS SNS"})," is your messaging service."]})]})]})]})]}),(0,r.jsx)(n.admonition,{title:"appsettings.json",type:"note",children:(0,r.jsxs)(n.p,{children:["Note that we mount the ",(0,r.jsx)(n.strong,{children:"appsettings.json"})," file when running locally, but we do not do this when the full project is deployed to Azure. This is because when the project is deployed to Azure, the build process will perform the substitution."]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"verify-that-the-application-has-started",children:"Verify that the application has started"}),"\n",(0,r.jsx)(n.admonition,{title:"Relationship between domain and path",type:"note",children:(0,r.jsxs)(n.p,{children:["If you changed the domain object name during project creation, the URL path will reflect that change. For example, if your domain object is named ",(0,r.jsx)(n.code,{children:"foo"}),", the path will be ",(0,r.jsx)(n.code,{children:"../v1/foo"})," instead of ",(0,r.jsx)(n.code,{children:"../v1/menu"}),"."]})}),"\n",(0,r.jsxs)(n.p,{children:["Browse to ",(0,r.jsx)(n.a,{href:"http://localhost:5000/v1/menu",children:"http://localhost:5000/v1/menu"}),".",(0,r.jsx)(n.br,{}),"\n","This should return a valid JSON response."]}),"\n",(0,r.jsxs)(n.p,{children:["The application configuration uses Swagger/OAS3 to represent the API endpoints. The Swagger UI can be viewed by directing your\nbrowser to ",(0,r.jsx)(n.a,{href:"http://localhost:5000/swagger/index.html",children:"http://localhost:5000/swagger/index.html"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},9365:(e,n,t)=>{t.d(n,{A:()=>i});t(6540);var r=t(4164);const s={tabItem:"tabItem_Ymn6"};var o=t(4848);function i(e){let{children:n,hidden:t,className:i}=e;return(0,o.jsx)("div",{role:"tabpanel",className:(0,r.A)(s.tabItem,i),hidden:t,children:n})}},1470:(e,n,t)=>{t.d(n,{A:()=>v});var r=t(6540),s=t(4164),o=t(3104),i=t(6347),a=t(205),l=t(7485),c=t(1682),d=t(679);function h(e){var n,t;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:t.filter(Boolean))?n:[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=null!=n?n:function(e){return h(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:s}}=e;return{value:n,label:t,attributes:r,default:s}}))}(t);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error('Docusaurus error: Duplicate values "'+n.map((e=>e.value)).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function j(e){let{queryString:n=!1,groupId:t}=e;const s=(0,i.W6)(),o=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=t?t:null}({queryString:n,groupId:t});return[(0,l.aZ)(o),(0,r.useCallback)((e=>{if(!o)return;const n=new URLSearchParams(s.location.search);n.set(o,e),s.replace({...s.location,search:n.toString()})}),[o,s])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,o=u(e),[i,l]=(0,r.useState)((()=>function(e){var n;let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:r}))throw new Error('Docusaurus error: The has a defaultValue "'+t+'" but none of its children has the corresponding value. Available values are: '+r.map((e=>e.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return t}const s=null!=(n=r.find((e=>e.default)))?n:r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:o}))),[c,h]=j({queryString:t,groupId:s}),[m,x]=function(e){let{groupId:n}=e;const t=function(e){return e?"docusaurus.tab."+e:null}(n),[s,o]=(0,d.Dv)(t);return[s,(0,r.useCallback)((e=>{t&&o.set(e)}),[t,o])]}({groupId:s}),b=(()=>{const e=null!=c?c:m;return p({value:e,tabValues:o})?e:null})();(0,a.A)((()=>{b&&l(b)}),[b]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:o}))throw new Error("Can't select invalid tab value="+e);l(e),h(e),x(e)}),[h,x,o]),tabValues:o}}var x=t(2303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=t(4848);function f(e){let{className:n,block:t,selectedValue:r,selectValue:i,tabValues:a}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,o.a_)(),d=e=>{const n=e.currentTarget,t=l.indexOf(n),s=a[t].value;s!==r&&(c(n),i(s))},h=e=>{var n;let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{var r;const n=l.indexOf(e.currentTarget)+1;t=null!=(r=l[n])?r:l[0];break}case"ArrowLeft":{var s;const n=l.indexOf(e.currentTarget)-1;t=null!=(s=l[n])?s:l[l.length-1];break}}null==(n=t)||n.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:o}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>l.push(e),onKeyDown:h,onClick:d,...o,className:(0,s.A)("tabs__item",b.tabItem,null==o?void 0:o.className,{"tabs__item--active":r===n}),children:null!=t?t:n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:o}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===o));return e?(0,r.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==o})))})}function w(e){const n=m(e);return(0,g.jsxs)("div",{className:(0,s.A)("tabs-container",b.tabList),children:[(0,g.jsx)(f,{...n,...e}),(0,g.jsx)(y,{...n,...e})]})}function v(e){const n=(0,x.A)();return(0,g.jsx)(w,{...e,children:h(e.children)},String(n))}},8453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>a});var r=t(6540);const s={},o=r.createContext(s);function i(e){const n=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/1a451233.bfeeffa6.js b/assets/js/1a451233.bfeeffa6.js
deleted file mode 100644
index 6bf9df6a6..000000000
--- a/assets/js/1a451233.bfeeffa6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkstacks=self.webpackChunkstacks||[]).push([[7207],{7049:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>h});var r=t(4848),s=t(8453),i=t(1470),o=t(9365);const a={id:"build_and_run_project_netcore",title:"Build & Run REST API with CQRS",sidebar_label:"Build & Run REST API with CQRS",hide_title:!0,hide_table_of_contents:!0,description:"Build and Run .NET Core REST API application with CQRS",keywords:[".net core","rest api","cqrs","azure","application insights","cosmos db","aws sns","build","run","application"]},l=void 0,c={id:"workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",title:"Build & Run REST API with CQRS",description:"Build and Run .NET Core REST API application with CQRS",source:"@site/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.md",sourceDirName:"workloads/azure/backend/netcore/quickstart/web_api_cqrs",slug:"/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",permalink:"/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{id:"build_and_run_project_netcore",title:"Build & Run REST API with CQRS",sidebar_label:"Build & Run REST API with CQRS",hide_title:!0,hide_table_of_contents:!0,description:"Build and Run .NET Core REST API application with CQRS",keywords:[".net core","rest api","cqrs","azure","application insights","cosmos db","aws sns","build","run","application"]},sidebar:"docs",previous:{title:"Configure REST API with CQRS project",permalink:"/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore"},next:{title:"Architecture Overview",permalink:"/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore"}},d={},h=[{value:"Build and Run REST API with CQRS",id:"build-and-run-rest-api-with-cqrs",level:2},{value:"Building and Running",id:"building-and-running",level:3},{value:"Verify that the application has started",id:"verify-that-the-application-has-started",level:3}];function u(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",em:"em",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,s.R)(),...e.components},{Details:t}=n;return t||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"build-and-run-rest-api-with-cqrs",children:"Build and Run REST API with CQRS"}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.p,{children:"You can run the API created by the templates either locally or in a Docker container."}),"\n",(0,r.jsx)(n.admonition,{title:"Project Configuration",type:"note",children:(0,r.jsxs)(n.p,{children:["Depending on the options selected when creating the CQRS API, additional configuration may be required.\nbefore running the project. It is important to complete the ",(0,r.jsx)(n.a,{href:"https://stacks.ensono.com/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore",children:"Configure REST API with CQRS project"})," section of this guide before building and running the project."]})}),"\n",(0,r.jsx)(n.h3,{id:"building-and-running",children:"Building and Running"}),"\n",(0,r.jsxs)(t,{open:!0,children:[(0,r.jsx)("summary",{children:"Build and run locally"}),(0,r.jsx)("div",{children:(0,r.jsxs)(i.A,{groupId:"operating-systems",defaultValue:"windows",values:[{label:"Windows",value:"windows"},{label:"Mac and Linux",value:"mac-and-linux"}],children:[(0,r.jsxs)(o.A,{value:"windows",children:[(0,r.jsxs)(n.p,{children:["The following example shows how to build and run the Stacks CQRS API solution. In this example, the solution is located in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have chose a different directory or project name when creating your solution, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Open a terminal."}),(0,r.jsx)(n.br,{}),"\n","You can use either Command Prompt or PowerShell."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change your directory to the API project directory. In this example, the solution was created in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," folder and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"cd c:\\dev\\company.project\\src\\cqrs\\src\\api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the solution"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"dotnet build"})," command to build the solution in this directory."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"dotnet build\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the API project."}),(0,r.jsx)(n.br,{}),"\n","Finally, use the ",(0,r.jsx)(n.code,{children:"dotnet run"})," command to start the API project.",(0,r.jsx)(n.br,{}),"\n","Replace ",(0,r.jsx)(n.em,{children:"Company.Project"})," with your project's name."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"dotnet run --project Company.Project.API/Company.Project.API.csproj\n"})}),"\n"]}),"\n"]}),(0,r.jsxs)(n.admonition,{title:"Potential issue when running on Windows.",type:"note",children:[(0,r.jsxs)(n.p,{children:["If your folder structure is too deep, you may encounter a build failure. This issue arises due to our dependency on ",(0,r.jsx)(n.a,{href:"https://docs.pact.io/",children:"Pact"})," for contract testing. The error will looks like this: -"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"Error MSB3491 Path: File exceeds the OS max path limit. The fully qualified file name must be less than 260 characters.\n"})}),(0,r.jsx)(n.p,{children:"There are two fixes for this issue: -"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.a,{href:"https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later",children:"Enable long file paths on Windows."})}),"\n",(0,r.jsx)(n.li,{children:"Create your folder at a higher level, so that paths won't exceed 260 characters."}),"\n"]})]})]}),(0,r.jsxs)(o.A,{value:"mac-and-linux",children:[(0,r.jsxs)(n.p,{children:["Below is an example of how to build and run the Stacks CQRS API solution. In this example, the solution is located in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," in the home directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have used a different directory or project name, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.strong,{children:"Open a terminal."})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the API project directory within the solution. In this example, the solution was created in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," inside ",(0,r.jsx)(n.em,{children:"anneexample"}),"'s home directory and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd ~/users/anneexample/dev/company.project/src/cqrs/src/api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the solution"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"dotnet build"})," command to build the solution in this directory."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"dotnet build\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the API project."}),(0,r.jsx)(n.br,{}),"\n","Finally, use the ",(0,r.jsx)(n.code,{children:"dotnet run"})," command to start the API project.",(0,r.jsx)(n.br,{}),"\n","Replace ",(0,r.jsx)(n.em,{children:"Company.Project"})," with your actual project name."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"dotnet run --project Company.Project.API/Company.Project.API.csproj\n"})}),"\n"]}),"\n"]})]})]})})]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsxs)(t,{children:[(0,r.jsx)("summary",{children:"Build and run in a Docker container"}),(0,r.jsxs)("div",{children:[(0,r.jsxs)(i.A,{groupId:"operating-systems",defaultValue:"windows",values:[{label:"Windows",value:"windows"},{label:"Mac and Linux",value:"mac-and-linux"}],children:[(0,r.jsxs)(o.A,{value:"windows",children:[(0,r.jsxs)(n.p,{children:["The following example shows how to build and run the Stacks CQRS API solution. In this example, the solution is located in the ",(0,r.jsx)(n.em,{children:"c:\\dev"})," directory, and the project is named ",(0,r.jsx)(n.em,{children:"Company.Project"}),". If you have used a different directory or project name, adjust the commands accordingly."]}),(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Open a terminal."}),(0,r.jsx)(n.br,{}),"\n","You can use either Command Prompt or PowerShell."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the API project directory within the solution. In this example, the solution was created in ",(0,r.jsx)(n.em,{children:"c:\\dev"})," and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"cd c:\\dev\\company.project\\src\\cqrs\\src\\api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the Docker Image"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker build"})," command to build the Docker image from the Dockerfile in this folder."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"docker build -t dotnet-api .\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the Docker Image."}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker run"})," command to start a container from the built image.",(0,r.jsx)(n.br,{}),"\n","See the note on Environment Variables below for the adjustments that you should make to this command."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",metastring:'title="Command Line"',children:"docker run -p 5000:80 ^\n--mount type=bind,source=/path/to/PROJECT-NAME/cqrs/src/api/xxENSONOxx.xxSTACKSxx.API/appsettings.json,target=/app/config/appsettings.json ^\n-e COSMOSDB_KEY=your-key ^\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string ^\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string ^\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string ^\n-e TOPIC_ARN=your-aws-sns-topic-arn ^\ndotnet-api:latest\n"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",metastring:'title="PowerShell"',children:"docker run -p 5000:80 `\n--mount type=bind,source=/path/to/PROJECT-NAME/cqrs/src/api/xxENSONOxx.xxSTACKSxx.API/appsettings.json,target=/app/config/appsettings.json `\n-e COSMOSDB_KEY=your-key `\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string `\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string `\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string `\n-e TOPIC_ARN=your-aws-sns-topic-arn `\ndotnet-api:latest\n"})}),"\n"]}),"\n"]})]}),(0,r.jsx)(o.A,{value:"mac-and-linux",children:(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open ",(0,r.jsx)(n.strong,{children:"Terminal"}),"."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Navigate to the project directory."}),(0,r.jsx)(n.br,{}),"\n","Change to the API project directory within the solution. In this example, the solution was created in a folder called ",(0,r.jsx)(n.em,{children:"dev"})," inside ",(0,r.jsx)(n.em,{children:"anneexample"}),"'s home directory and was named ",(0,r.jsx)(n.em,{children:"Company.Project"}),"."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"cd ~/users/anneexample/dev/company.project/src/cqrs/src/api\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Build the Docker Image"}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker build"})," command to build the Docker image from the Dockerfile in this folder."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bat",children:"docker build -t dotnet-api .\n"})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Run the Docker Image."}),(0,r.jsx)(n.br,{}),"\n","Use the ",(0,r.jsx)(n.code,{children:"docker run"})," command to start a container from the built image.",(0,r.jsx)(n.br,{}),"\n","See the note on Environment Variables below for the adjustments that you should make to this command."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-bash",children:"docker run -p 5000:80 \\\n--mount type=bind,source=/path/to/PROJECT-NAME/cqrs/src/api/xxENSONOxx.xxSTACKSxx.API/appsettings.json,target=/app/config/appsettings.json \\\n-e COSMOSDB_KEY=your-key \\\n-e SERVICEBUS_CONNECTIONSTRING=your-asb-connection-string \\\n-e EVENTHUB_CONNECTIONSTRING=your-aeh-connection-string \\\n-e STORAGE_CONNECTIONSTRING=your-aeh-storage-connection-string \\\ndotnet-api:latest\n"})}),"\n"]}),"\n"]})})]}),(0,r.jsxs)(n.admonition,{title:"Environment Variables",type:"note",children:[(0,r.jsxs)(n.p,{children:["When running the Docker container, you need to pass your environment variables using the ",(0,r.jsx)(n.code,{children:"-e"})," switch. The commands above show every environment variable. You should replace the placeholders with actual secrets that you made a note of when you followed the ",(0,r.jsx)(n.a,{href:"https://stacks.ensono.com/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/configure_project_netcore",children:"Configure REST API with CQRS project"})," step of this guide and remove the environment variables that you are not using."]}),(0,r.jsx)(n.p,{children:"The table below describes each environment variable."}),(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Environment Variable name"}),(0,r.jsx)(n.th,{children:"Environment Variable required when..."})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"COSMOSDB_KEY"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Cosmos DB"})," is your database service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"EVENTHUB_CONNECTIONSTRING"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Azure Event Hubs"})," is your messaging service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"SERVICEBUS_CONNECTIONSTRING"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"Azure Service Bus"})," is your messaging service."]})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"TOPIC_ARN"}),(0,r.jsxs)(n.td,{children:["When ",(0,r.jsx)(n.em,{children:"AWS SNS"})," is your messaging service."]})]})]})]})]}),(0,r.jsx)(n.admonition,{title:"appsettings.json",type:"note",children:(0,r.jsxs)(n.p,{children:["Note that we mount the ",(0,r.jsx)(n.strong,{children:"appsettings.json"})," file when running locally, but we do not do this when the full project is deployed to Azure. This is because when the project is deployed to Azure, the build process will perform the substitution."]})})]})]}),"\n",(0,r.jsx)(n.h3,{id:"verify-that-the-application-has-started",children:"Verify that the application has started"}),"\n",(0,r.jsx)(n.admonition,{title:"Relationship between domain and path",type:"note",children:(0,r.jsxs)(n.p,{children:["If you changed the domain object name during project creation, the URL path will reflect that change. For example, if your domain object is named ",(0,r.jsx)(n.code,{children:"foo"}),", the path will be ",(0,r.jsx)(n.code,{children:"../v1/foo"})," instead of ",(0,r.jsx)(n.code,{children:"../v1/menu"}),"."]})}),"\n",(0,r.jsxs)(n.p,{children:["Browse to ",(0,r.jsx)(n.a,{href:"http://localhost:5000/v1/menu",children:"http://localhost:5000/v1/menu"}),".",(0,r.jsx)(n.br,{}),"\n","This should return a valid JSON response."]}),"\n",(0,r.jsxs)(n.p,{children:["The application configuration uses Swagger/OAS3 to represent the API endpoints. The Swagger UI can be viewed by directing your\nbrowser to ",(0,r.jsx)(n.a,{href:"http://localhost:5000/swagger/index.html",children:"http://localhost:5000/swagger/index.html"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},9365:(e,n,t)=>{t.d(n,{A:()=>o});t(6540);var r=t(4164);const s={tabItem:"tabItem_Ymn6"};var i=t(4848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(s.tabItem,o),hidden:t,children:n})}},1470:(e,n,t)=>{t.d(n,{A:()=>v});var r=t(6540),s=t(4164),i=t(3104),o=t(6347),a=t(205),l=t(7485),c=t(1682),d=t(679);function h(e){var n,t;return null!=(n=null==(t=r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error("Docusaurus error: Bad child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the component should be , and every should have a unique "value" prop.')})))?void 0:t.filter(Boolean))?n:[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=null!=n?n:function(e){return h(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:s}}=e;return{value:n,label:t,attributes:r,default:s}}))}(t);return function(e){const n=(0,c.XI)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error('Docusaurus error: Duplicate values "'+n.map((e=>e.value)).join(", ")+'" found in . Every value needs to be unique.')}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function j(e){let{queryString:n=!1,groupId:t}=e;const s=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=t?t:null}({queryString:n,groupId:t});return[(0,l.aZ)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(s.location.search);n.set(i,e),s.replace({...s.location,search:n.toString()})}),[i,s])]}function m(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,i=u(e),[o,l]=(0,r.useState)((()=>function(e){var n;let{defaultValue:t,tabValues:r}=e;if(0===r.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!p({value:t,tabValues:r}))throw new Error('Docusaurus error: The has a defaultValue "'+t+'" but none of its children has the corresponding value. Available values are: '+r.map((e=>e.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return t}const s=null!=(n=r.find((e=>e.default)))?n:r[0];if(!s)throw new Error("Unexpected error: 0 tabValues");return s.value}({defaultValue:n,tabValues:i}))),[c,h]=j({queryString:t,groupId:s}),[m,x]=function(e){let{groupId:n}=e;const t=function(e){return e?"docusaurus.tab."+e:null}(n),[s,i]=(0,d.Dv)(t);return[s,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:s}),b=(()=>{const e=null!=c?c:m;return p({value:e,tabValues:i})?e:null})();(0,a.A)((()=>{b&&l(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:i}))throw new Error("Can't select invalid tab value="+e);l(e),h(e),x(e)}),[h,x,i]),tabValues:i}}var x=t(2303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var g=t(4848);function f(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:a}=e;const l=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{const n=e.currentTarget,t=l.indexOf(n),s=a[t].value;s!==r&&(c(n),o(s))},h=e=>{var n;let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{var r;const n=l.indexOf(e.currentTarget)+1;t=null!=(r=l[n])?r:l[0];break}case"ArrowLeft":{var s;const n=l.indexOf(e.currentTarget)-1;t=null!=(s=l[n])?s:l[l.length-1];break}}null==(n=t)||n.focus()};return(0,g.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.A)("tabs",{"tabs--block":t},n),children:a.map((e=>{let{value:n,label:t,attributes:i}=e;return(0,g.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>l.push(e),onKeyDown:h,onClick:d,...i,className:(0,s.A)("tabs__item",b.tabItem,null==i?void 0:i.className,{"tabs__item--active":r===n}),children:null!=t?t:n},n)}))})}function y(e){let{lazy:n,children:t,selectedValue:i}=e;const o=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=o.find((e=>e.props.value===i));return e?(0,r.cloneElement)(e,{className:(0,s.A)("margin-top--md",e.props.className)}):null}return(0,g.jsx)("div",{className:"margin-top--md",children:o.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==i})))})}function w(e){const n=m(e);return(0,g.jsxs)("div",{className:(0,s.A)("tabs-container",b.tabList),children:[(0,g.jsx)(f,{...n,...e}),(0,g.jsx)(y,{...n,...e})]})}function v(e){const n=(0,x.A)();return(0,g.jsx)(w,{...e,children:h(e.children)},String(n))}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>a});var r=t(6540);const s={},i=r.createContext(s);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.09bd2f69.js b/assets/js/runtime~main.43d0c789.js
similarity index 99%
rename from assets/js/runtime~main.09bd2f69.js
rename to assets/js/runtime~main.43d0c789.js
index c119855b3..16e91ea54 100644
--- a/assets/js/runtime~main.09bd2f69.js
+++ b/assets/js/runtime~main.43d0c789.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({153:"fc270d06",194:"737482c1",218:"7ebfd7b0",274:"414e16ac",412:"0a7a1cb8",471:"04f9d5a5",602:"6c94c7d9",812:"6e3d5508",847:"84c0bcc1",849:"0058b4c6",956:"4125fe19",1e3:"030f8d28",1027:"dd34129c",1059:"38121634",1064:"3fa30493",1206:"94993bad",1225:"a8d96c67",1235:"a7456010",1393:"be437379",1421:"fa2c107f",1455:"f388282e",1497:"1581399b",1634:"3c29e2ef",1671:"98b2166d",1695:"6480fb11",1702:"c99510ac",1704:"495e2f71",1800:"1cced86e",1982:"85707196",1988:"2e66a542",1990:"2266d79a",1995:"b05ee991",2195:"d21d2c84",2323:"3134a503",2357:"a192c2f0",2444:"560e98d8",2468:"2e843c24",2564:"926a518c",2634:"c4f5d8e4",2637:"b5831b65",2663:"7ccc2f3a",2681:"c44fafdd",2736:"63a3aa1c",2749:"f35e5402",2764:"0bfd7576",2944:"d778a53f",3136:"0c516743",3178:"a3e00ebe",3199:"da080250",3237:"d7d4d92f",3285:"df639352",3361:"c377a04b",3486:"bb82a259",3579:"9dd93029",3641:"e197774f",3661:"6eb83d4b",3755:"10d871ba",3774:"027fc7cc",3805:"5ab30b4c",3893:"4efdedf0",4104:"2fa5bcd8",4205:"1a7bc6f2",4285:"89abd613",4550:"552b4366",4560:"1e1575f9",4713:"54d77e99",4723:"1d9a586d",4738:"0a728393",4777:"df83160f",4810:"fdd1b509",4907:"cd507b8a",4918:"cd8bc9d6",5041:"c9b058cf",5199:"89a733e8",5252:"5ff780a4",5281:"3556501c",5370:"bc6da52b",5417:"8f488a34",5602:"f5417503",5650:"a7fa594d",5734:"7f2c8919",5742:"aba21aa0",6004:"6a2b67c4",6083:"fd50f223",6169:"30b4305c",6228:"b078c0fc",6238:"88de9432",6242:"aee0b240",6395:"745b4260",6399:"85a306f5",6404:"3aa552ac",6537:"503b97f0",6545:"7e09430d",6597:"b7dde44d",6637:"8eac0476",6726:"0991a5c5",6752:"95bab7f5",6823:"8a7a0add",6899:"47211b0b",6954:"b5048ac6",7051:"e747ec83",7074:"03388d76",7097:"f25e5da0",7098:"a7bd4aaa",7169:"ccfef88a",7207:"1a451233",7283:"48b3647b",7303:"bc4707c8",7329:"48518084",7350:"66ea2157",7357:"22f8ff62",7389:"597e0d5c",7434:"80a64d00",7443:"e214a2c6",7489:"1d79b670",7504:"1898535d",7599:"da4127da",7632:"25952044",7736:"e8d03bd3",7752:"ae739112",7896:"37119181",7925:"c6a10652",8106:"4d6fbf4e",8401:"17896441",8424:"5daba60d",8431:"3dbbb6bc",8438:"bc5ee593",8568:"ef434f98",8571:"54d380c5",8579:"413c892d",8583:"4ae6a656",8622:"effe3c52",8656:"f6fe5f12",8757:"7a7ae05b",8835:"517d9d17",8910:"ad98f8ba",8942:"6916e1c4",9037:"80b9a969",9048:"a94703ab",9157:"1b8235d9",9260:"3deea674",9280:"40932100",9564:"ba7b83c5",9614:"f208b0b5",9631:"eac4a6d2",9647:"5e95c892",9744:"78d23669",9750:"17b46bf9",9818:"d93ebc52",9845:"16856501",9876:"2a024341"}[e]||e)+"."+{153:"f14376d6",194:"d380e84c",218:"cfd8fb88",274:"22233549",412:"f8d61302",471:"9626bff1",602:"6ff26915",812:"4514a6f6",847:"38a62311",849:"d980d4b9",956:"15987fde",1e3:"522d99c6",1027:"ad2bd942",1059:"9da53deb",1064:"8fbfb0fa",1206:"ba7a15a5",1225:"b16d5716",1235:"5d04243b",1393:"be126d85",1421:"ddd8eaaa",1455:"fccf68fe",1497:"c227139e",1510:"471e1ff7",1634:"92b9875c",1671:"b1e619c7",1695:"e571d10f",1702:"5c6cb067",1704:"ac216faa",1800:"4c48b491",1982:"2513f2d7",1988:"c8536349",1990:"fcc7232a",1995:"d71041df",2195:"0616d146",2237:"bfe371f8",2323:"41d599e4",2357:"4a640fc9",2444:"ba578909",2468:"62ca4231",2564:"24dc6f9a",2634:"e1dc278a",2637:"efd4f2ec",2663:"6929e072",2681:"43a3824e",2736:"39f3b2bc",2749:"11c413b8",2764:"8c9dfe87",2944:"5645113e",3136:"97ecdb1c",3178:"5fc7d92e",3199:"bc9d60e3",3237:"ed030d13",3285:"87d2ae90",3361:"1f0d76d4",3486:"adf1df3b",3579:"e3089c7a",3641:"933ce29a",3661:"94d41a93",3755:"c52346a4",3774:"b232ec83",3805:"8f39fc65",3893:"6bbc3a4b",4104:"b3f6b91e",4205:"3c0f3448",4285:"445bc880",4550:"bfbd6824",4560:"7103a663",4713:"4e784749",4723:"7c77d2f1",4738:"862b3e6d",4777:"2379be09",4810:"ce61957a",4907:"6d4a5898",4918:"1f8d8933",5041:"49affb0f",5199:"2edb9f81",5252:"2be28e8b",5281:"dbbc0f02",5370:"4db7066a",5417:"c0a6217c",5602:"ae4b9f32",5650:"ce78690d",5734:"1ac1ffce",5742:"7ec748b4",6004:"f197fbf5",6083:"68dd9e2b",6169:"55f929f6",6228:"1af7fd83",6238:"265e6ab3",6242:"27a99410",6395:"a7079892",6399:"e21255f4",6404:"6dc10063",6537:"c5402764",6545:"d50db2d4",6597:"6d32b010",6637:"e6d008f9",6726:"df4fd454",6752:"eb4ddf5f",6823:"8b548615",6899:"71bd0d8b",6954:"659bd2f8",7051:"44f3a9d5",7074:"353bb10c",7097:"e9f32c2d",7098:"86bd6d30",7169:"49389455",7207:"bfeeffa6",7283:"c6523b33",7303:"6e896be8",7329:"fc7639a1",7350:"5fa1fea5",7357:"c7d716ad",7389:"9b7ea8e5",7434:"85567672",7443:"4aeb1f9d",7489:"fe448f6c",7504:"8fb949ba",7599:"d6b43e34",7632:"bdb82306",7736:"3e65cd71",7752:"26daff20",7896:"04df0ded",7925:"4ad9d389",8106:"661a5994",8401:"8c44f1af",8424:"7d067179",8431:"8df3ad10",8438:"8e08da06",8568:"486f42fe",8571:"252a4cbf",8579:"d81eddfe",8583:"830b97d2",8622:"e3ef40b6",8656:"456a4c92",8757:"9be97856",8835:"53f72b7c",8910:"2e651544",8942:"82182a41",9037:"3245cc6e",9048:"52e2eb33",9157:"3e76ebeb",9260:"c6c06e51",9280:"b384fec2",9564:"b253fd24",9614:"44b03338",9631:"0b2034cc",9647:"3789f107",9744:"8e91df39",9750:"c906906d",9818:"6259eac5",9845:"4f7e5d31",9876:"c6bbb1af"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="stacks:",r.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={16856501:"9845",17896441:"8401",25952044:"7632",37119181:"7896",38121634:"1059",40932100:"9280",48518084:"7329",85707196:"1982",fc270d06:"153","737482c1":"194","7ebfd7b0":"218","414e16ac":"274","0a7a1cb8":"412","04f9d5a5":"471","6c94c7d9":"602","6e3d5508":"812","84c0bcc1":"847","0058b4c6":"849","4125fe19":"956","030f8d28":"1000",dd34129c:"1027","3fa30493":"1064","94993bad":"1206",a8d96c67:"1225",a7456010:"1235",be437379:"1393",fa2c107f:"1421",f388282e:"1455","1581399b":"1497","3c29e2ef":"1634","98b2166d":"1671","6480fb11":"1695",c99510ac:"1702","495e2f71":"1704","1cced86e":"1800","2e66a542":"1988","2266d79a":"1990",b05ee991:"1995",d21d2c84:"2195","3134a503":"2323",a192c2f0:"2357","560e98d8":"2444","2e843c24":"2468","926a518c":"2564",c4f5d8e4:"2634",b5831b65:"2637","7ccc2f3a":"2663",c44fafdd:"2681","63a3aa1c":"2736",f35e5402:"2749","0bfd7576":"2764",d778a53f:"2944","0c516743":"3136",a3e00ebe:"3178",da080250:"3199",d7d4d92f:"3237",df639352:"3285",c377a04b:"3361",bb82a259:"3486","9dd93029":"3579",e197774f:"3641","6eb83d4b":"3661","10d871ba":"3755","027fc7cc":"3774","5ab30b4c":"3805","4efdedf0":"3893","2fa5bcd8":"4104","1a7bc6f2":"4205","89abd613":"4285","552b4366":"4550","1e1575f9":"4560","54d77e99":"4713","1d9a586d":"4723","0a728393":"4738",df83160f:"4777",fdd1b509:"4810",cd507b8a:"4907",cd8bc9d6:"4918",c9b058cf:"5041","89a733e8":"5199","5ff780a4":"5252","3556501c":"5281",bc6da52b:"5370","8f488a34":"5417",f5417503:"5602",a7fa594d:"5650","7f2c8919":"5734",aba21aa0:"5742","6a2b67c4":"6004",fd50f223:"6083","30b4305c":"6169",b078c0fc:"6228","88de9432":"6238",aee0b240:"6242","745b4260":"6395","85a306f5":"6399","3aa552ac":"6404","503b97f0":"6537","7e09430d":"6545",b7dde44d:"6597","8eac0476":"6637","0991a5c5":"6726","95bab7f5":"6752","8a7a0add":"6823","47211b0b":"6899",b5048ac6:"6954",e747ec83:"7051","03388d76":"7074",f25e5da0:"7097",a7bd4aaa:"7098",ccfef88a:"7169","1a451233":"7207","48b3647b":"7283",bc4707c8:"7303","66ea2157":"7350","22f8ff62":"7357","597e0d5c":"7389","80a64d00":"7434",e214a2c6:"7443","1d79b670":"7489","1898535d":"7504",da4127da:"7599",e8d03bd3:"7736",ae739112:"7752",c6a10652:"7925","4d6fbf4e":"8106","5daba60d":"8424","3dbbb6bc":"8431",bc5ee593:"8438",ef434f98:"8568","54d380c5":"8571","413c892d":"8579","4ae6a656":"8583",effe3c52:"8622",f6fe5f12:"8656","7a7ae05b":"8757","517d9d17":"8835",ad98f8ba:"8910","6916e1c4":"8942","80b9a969":"9037",a94703ab:"9048","1b8235d9":"9157","3deea674":"9260",ba7b83c5:"9564",f208b0b5:"9614",eac4a6d2:"9631","5e95c892":"9647","78d23669":"9744","17b46bf9":"9750",d93ebc52:"9818","2a024341":"9876"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>f=e[a]=[d,c]));d.push(f[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],t=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n{"use strict";var e,a,d,f,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var d=t[e]={exports:{}};return b[e].call(d.exports,d,d.exports,r),d.exports}r.m=b,e=[],r.O=(a,d,f,c)=>{if(!d){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](d[o])))?d.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[d,f,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,d({}),d([]),d(d)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=d(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var d in a)r.o(a,d)&&!r.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,d)=>(r.f[d](e,a),a)),[])),r.u=e=>"assets/js/"+({153:"fc270d06",194:"737482c1",218:"7ebfd7b0",274:"414e16ac",412:"0a7a1cb8",471:"04f9d5a5",602:"6c94c7d9",812:"6e3d5508",847:"84c0bcc1",849:"0058b4c6",956:"4125fe19",1e3:"030f8d28",1027:"dd34129c",1059:"38121634",1064:"3fa30493",1206:"94993bad",1225:"a8d96c67",1235:"a7456010",1393:"be437379",1421:"fa2c107f",1455:"f388282e",1497:"1581399b",1634:"3c29e2ef",1671:"98b2166d",1695:"6480fb11",1702:"c99510ac",1704:"495e2f71",1800:"1cced86e",1982:"85707196",1988:"2e66a542",1990:"2266d79a",1995:"b05ee991",2195:"d21d2c84",2323:"3134a503",2357:"a192c2f0",2444:"560e98d8",2468:"2e843c24",2564:"926a518c",2634:"c4f5d8e4",2637:"b5831b65",2663:"7ccc2f3a",2681:"c44fafdd",2736:"63a3aa1c",2749:"f35e5402",2764:"0bfd7576",2944:"d778a53f",3136:"0c516743",3178:"a3e00ebe",3199:"da080250",3237:"d7d4d92f",3285:"df639352",3361:"c377a04b",3486:"bb82a259",3579:"9dd93029",3641:"e197774f",3661:"6eb83d4b",3755:"10d871ba",3774:"027fc7cc",3805:"5ab30b4c",3893:"4efdedf0",4104:"2fa5bcd8",4205:"1a7bc6f2",4285:"89abd613",4550:"552b4366",4560:"1e1575f9",4713:"54d77e99",4723:"1d9a586d",4738:"0a728393",4777:"df83160f",4810:"fdd1b509",4907:"cd507b8a",4918:"cd8bc9d6",5041:"c9b058cf",5199:"89a733e8",5252:"5ff780a4",5281:"3556501c",5370:"bc6da52b",5417:"8f488a34",5602:"f5417503",5650:"a7fa594d",5734:"7f2c8919",5742:"aba21aa0",6004:"6a2b67c4",6083:"fd50f223",6169:"30b4305c",6228:"b078c0fc",6238:"88de9432",6242:"aee0b240",6395:"745b4260",6399:"85a306f5",6404:"3aa552ac",6537:"503b97f0",6545:"7e09430d",6597:"b7dde44d",6637:"8eac0476",6726:"0991a5c5",6752:"95bab7f5",6823:"8a7a0add",6899:"47211b0b",6954:"b5048ac6",7051:"e747ec83",7074:"03388d76",7097:"f25e5da0",7098:"a7bd4aaa",7169:"ccfef88a",7207:"1a451233",7283:"48b3647b",7303:"bc4707c8",7329:"48518084",7350:"66ea2157",7357:"22f8ff62",7389:"597e0d5c",7434:"80a64d00",7443:"e214a2c6",7489:"1d79b670",7504:"1898535d",7599:"da4127da",7632:"25952044",7736:"e8d03bd3",7752:"ae739112",7896:"37119181",7925:"c6a10652",8106:"4d6fbf4e",8401:"17896441",8424:"5daba60d",8431:"3dbbb6bc",8438:"bc5ee593",8568:"ef434f98",8571:"54d380c5",8579:"413c892d",8583:"4ae6a656",8622:"effe3c52",8656:"f6fe5f12",8757:"7a7ae05b",8835:"517d9d17",8910:"ad98f8ba",8942:"6916e1c4",9037:"80b9a969",9048:"a94703ab",9157:"1b8235d9",9260:"3deea674",9280:"40932100",9564:"ba7b83c5",9614:"f208b0b5",9631:"eac4a6d2",9647:"5e95c892",9744:"78d23669",9750:"17b46bf9",9818:"d93ebc52",9845:"16856501",9876:"2a024341"}[e]||e)+"."+{153:"f14376d6",194:"d380e84c",218:"cfd8fb88",274:"22233549",412:"f8d61302",471:"9626bff1",602:"6ff26915",812:"4514a6f6",847:"38a62311",849:"d980d4b9",956:"15987fde",1e3:"522d99c6",1027:"ad2bd942",1059:"9da53deb",1064:"8fbfb0fa",1206:"ba7a15a5",1225:"b16d5716",1235:"5d04243b",1393:"be126d85",1421:"ddd8eaaa",1455:"fccf68fe",1497:"c227139e",1510:"471e1ff7",1634:"92b9875c",1671:"b1e619c7",1695:"e571d10f",1702:"5c6cb067",1704:"ac216faa",1800:"4c48b491",1982:"2513f2d7",1988:"c8536349",1990:"fcc7232a",1995:"d71041df",2195:"0616d146",2237:"bfe371f8",2323:"41d599e4",2357:"4a640fc9",2444:"ba578909",2468:"62ca4231",2564:"24dc6f9a",2634:"e1dc278a",2637:"efd4f2ec",2663:"6929e072",2681:"43a3824e",2736:"39f3b2bc",2749:"11c413b8",2764:"8c9dfe87",2944:"5645113e",3136:"97ecdb1c",3178:"5fc7d92e",3199:"bc9d60e3",3237:"ed030d13",3285:"87d2ae90",3361:"1f0d76d4",3486:"adf1df3b",3579:"e3089c7a",3641:"933ce29a",3661:"94d41a93",3755:"c52346a4",3774:"b232ec83",3805:"8f39fc65",3893:"6bbc3a4b",4104:"b3f6b91e",4205:"3c0f3448",4285:"445bc880",4550:"bfbd6824",4560:"7103a663",4713:"4e784749",4723:"7c77d2f1",4738:"862b3e6d",4777:"2379be09",4810:"ce61957a",4907:"6d4a5898",4918:"1f8d8933",5041:"49affb0f",5199:"2edb9f81",5252:"2be28e8b",5281:"dbbc0f02",5370:"4db7066a",5417:"c0a6217c",5602:"ae4b9f32",5650:"ce78690d",5734:"1ac1ffce",5742:"7ec748b4",6004:"f197fbf5",6083:"68dd9e2b",6169:"55f929f6",6228:"1af7fd83",6238:"265e6ab3",6242:"27a99410",6395:"a7079892",6399:"e21255f4",6404:"6dc10063",6537:"c5402764",6545:"d50db2d4",6597:"6d32b010",6637:"e6d008f9",6726:"df4fd454",6752:"eb4ddf5f",6823:"8b548615",6899:"71bd0d8b",6954:"659bd2f8",7051:"44f3a9d5",7074:"353bb10c",7097:"e9f32c2d",7098:"86bd6d30",7169:"49389455",7207:"bcae360f",7283:"c6523b33",7303:"6e896be8",7329:"fc7639a1",7350:"5fa1fea5",7357:"c7d716ad",7389:"9b7ea8e5",7434:"85567672",7443:"4aeb1f9d",7489:"fe448f6c",7504:"8fb949ba",7599:"d6b43e34",7632:"bdb82306",7736:"3e65cd71",7752:"26daff20",7896:"04df0ded",7925:"4ad9d389",8106:"661a5994",8401:"8c44f1af",8424:"7d067179",8431:"8df3ad10",8438:"8e08da06",8568:"486f42fe",8571:"252a4cbf",8579:"d81eddfe",8583:"830b97d2",8622:"e3ef40b6",8656:"456a4c92",8757:"9be97856",8835:"53f72b7c",8910:"2e651544",8942:"82182a41",9037:"3245cc6e",9048:"52e2eb33",9157:"3e76ebeb",9260:"c6c06e51",9280:"b384fec2",9564:"b253fd24",9614:"44b03338",9631:"0b2034cc",9647:"3789f107",9744:"8e91df39",9750:"c906906d",9818:"6259eac5",9845:"4f7e5d31",9876:"c6bbb1af"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},c="stacks:",r.l=(e,a,d,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(d))),a)return a(d)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={16856501:"9845",17896441:"8401",25952044:"7632",37119181:"7896",38121634:"1059",40932100:"9280",48518084:"7329",85707196:"1982",fc270d06:"153","737482c1":"194","7ebfd7b0":"218","414e16ac":"274","0a7a1cb8":"412","04f9d5a5":"471","6c94c7d9":"602","6e3d5508":"812","84c0bcc1":"847","0058b4c6":"849","4125fe19":"956","030f8d28":"1000",dd34129c:"1027","3fa30493":"1064","94993bad":"1206",a8d96c67:"1225",a7456010:"1235",be437379:"1393",fa2c107f:"1421",f388282e:"1455","1581399b":"1497","3c29e2ef":"1634","98b2166d":"1671","6480fb11":"1695",c99510ac:"1702","495e2f71":"1704","1cced86e":"1800","2e66a542":"1988","2266d79a":"1990",b05ee991:"1995",d21d2c84:"2195","3134a503":"2323",a192c2f0:"2357","560e98d8":"2444","2e843c24":"2468","926a518c":"2564",c4f5d8e4:"2634",b5831b65:"2637","7ccc2f3a":"2663",c44fafdd:"2681","63a3aa1c":"2736",f35e5402:"2749","0bfd7576":"2764",d778a53f:"2944","0c516743":"3136",a3e00ebe:"3178",da080250:"3199",d7d4d92f:"3237",df639352:"3285",c377a04b:"3361",bb82a259:"3486","9dd93029":"3579",e197774f:"3641","6eb83d4b":"3661","10d871ba":"3755","027fc7cc":"3774","5ab30b4c":"3805","4efdedf0":"3893","2fa5bcd8":"4104","1a7bc6f2":"4205","89abd613":"4285","552b4366":"4550","1e1575f9":"4560","54d77e99":"4713","1d9a586d":"4723","0a728393":"4738",df83160f:"4777",fdd1b509:"4810",cd507b8a:"4907",cd8bc9d6:"4918",c9b058cf:"5041","89a733e8":"5199","5ff780a4":"5252","3556501c":"5281",bc6da52b:"5370","8f488a34":"5417",f5417503:"5602",a7fa594d:"5650","7f2c8919":"5734",aba21aa0:"5742","6a2b67c4":"6004",fd50f223:"6083","30b4305c":"6169",b078c0fc:"6228","88de9432":"6238",aee0b240:"6242","745b4260":"6395","85a306f5":"6399","3aa552ac":"6404","503b97f0":"6537","7e09430d":"6545",b7dde44d:"6597","8eac0476":"6637","0991a5c5":"6726","95bab7f5":"6752","8a7a0add":"6823","47211b0b":"6899",b5048ac6:"6954",e747ec83:"7051","03388d76":"7074",f25e5da0:"7097",a7bd4aaa:"7098",ccfef88a:"7169","1a451233":"7207","48b3647b":"7283",bc4707c8:"7303","66ea2157":"7350","22f8ff62":"7357","597e0d5c":"7389","80a64d00":"7434",e214a2c6:"7443","1d79b670":"7489","1898535d":"7504",da4127da:"7599",e8d03bd3:"7736",ae739112:"7752",c6a10652:"7925","4d6fbf4e":"8106","5daba60d":"8424","3dbbb6bc":"8431",bc5ee593:"8438",ef434f98:"8568","54d380c5":"8571","413c892d":"8579","4ae6a656":"8583",effe3c52:"8622",f6fe5f12:"8656","7a7ae05b":"8757","517d9d17":"8835",ad98f8ba:"8910","6916e1c4":"8942","80b9a969":"9037",a94703ab:"9048","1b8235d9":"9157","3deea674":"9260",ba7b83c5:"9564",f208b0b5:"9614",eac4a6d2:"9631","5e95c892":"9647","78d23669":"9744","17b46bf9":"9750",d93ebc52:"9818","2a024341":"9876"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(a,d)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)d.push(f[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var c=new Promise(((d,c)=>f=e[a]=[d,c]));d.push(f[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(d=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var c=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,d)=>{var f,c,b=d[0],t=d[1],o=d[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(d);n
-
+
diff --git a/docs/assets.html b/docs/assets.html
index 0c5ebcb61..4d760a1d3 100644
--- a/docs/assets.html
+++ b/docs/assets.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/code_of_conduct.html b/docs/code_of_conduct.html
index bbc23b795..c519f00d6 100644
--- a/docs/code_of_conduct.html
+++ b/docs/code_of_conduct.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/contributions.html b/docs/contributions.html
index 28e4e50dc..346112e1d 100644
--- a/docs/contributions.html
+++ b/docs/contributions.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/developer/developer_patterns_readme.html b/docs/developer/developer_patterns_readme.html
index e9132854a..77802087b 100644
--- a/docs/developer/developer_patterns_readme.html
+++ b/docs/developer/developer_patterns_readme.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/developer/java/patterns/java_app_layering.html b/docs/developer/java/patterns/java_app_layering.html
index 49b7e8b0b..3f57c2b3f 100644
--- a/docs/developer/java/patterns/java_app_layering.html
+++ b/docs/developer/java/patterns/java_app_layering.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/developer/java/patterns/java_mapstruct_mapping.html b/docs/developer/java/patterns/java_mapstruct_mapping.html
index 6bafd1d41..98678bc0e 100644
--- a/docs/developer/java/patterns/java_mapstruct_mapping.html
+++ b/docs/developer/java/patterns/java_mapstruct_mapping.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/developer/java/patterns/java_swagger_annotations.html b/docs/developer/java/patterns/java_swagger_annotations.html
index 304dab75b..021b52418 100644
--- a/docs/developer/java/patterns/java_swagger_annotations.html
+++ b/docs/developer/java/patterns/java_swagger_annotations.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-container-app/azure-container-apps.html b/docs/getting_started/azure-container-app/azure-container-apps.html
index 039937689..807116ea8 100644
--- a/docs/getting_started/azure-container-app/azure-container-apps.html
+++ b/docs/getting_started/azure-container-app/azure-container-apps.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-node/app-insights-deployment.html b/docs/getting_started/azure-node/app-insights-deployment.html
index 39f23b898..1c4a95f44 100644
--- a/docs/getting_started/azure-node/app-insights-deployment.html
+++ b/docs/getting_started/azure-node/app-insights-deployment.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-node/app-insights.html b/docs/getting_started/azure-node/app-insights.html
index 023c3d66e..255cc6bf3 100644
--- a/docs/getting_started/azure-node/app-insights.html
+++ b/docs/getting_started/azure-node/app-insights.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-node/ensono-stacks-azure-node.html b/docs/getting_started/azure-node/ensono-stacks-azure-node.html
index 9c336eb40..848c2b34c 100644
--- a/docs/getting_started/azure-node/ensono-stacks-azure-node.html
+++ b/docs/getting_started/azure-node/ensono-stacks-azure-node.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-react/ensono-stacks-azure-react.html b/docs/getting_started/azure-react/ensono-stacks-azure-react.html
index 0e00c62c2..4e5e04ce9 100644
--- a/docs/getting_started/azure-react/ensono-stacks-azure-react.html
+++ b/docs/getting_started/azure-react/ensono-stacks-azure-react.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/azure-react/generator-app-insights-web.html b/docs/getting_started/azure-react/generator-app-insights-web.html
index b1fba1317..67265d53a 100644
--- a/docs/getting_started/azure-react/generator-app-insights-web.html
+++ b/docs/getting_started/azure-react/generator-app-insights-web.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/create-stacks-workspace/ensono-stacks-create-stacks-workspace.html b/docs/getting_started/create-stacks-workspace/ensono-stacks-create-stacks-workspace.html
index 49a50beee..e52a4851a 100644
--- a/docs/getting_started/create-stacks-workspace/ensono-stacks-create-stacks-workspace.html
+++ b/docs/getting_started/create-stacks-workspace/ensono-stacks-create-stacks-workspace.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/cypress/accessibility.html b/docs/getting_started/cypress/accessibility.html
index 7e179f418..1816287e2 100644
--- a/docs/getting_started/cypress/accessibility.html
+++ b/docs/getting_started/cypress/accessibility.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/cypress/ensono-stacks-cypress.html b/docs/getting_started/cypress/ensono-stacks-cypress.html
index fb63a8cb5..3cc5dfa8f 100644
--- a/docs/getting_started/cypress/ensono-stacks-cypress.html
+++ b/docs/getting_started/cypress/ensono-stacks-cypress.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/cypress/executor.html b/docs/getting_started/cypress/executor.html
index 8f4b6701d..a26874cb9 100644
--- a/docs/getting_started/cypress/executor.html
+++ b/docs/getting_started/cypress/executor.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/cypress/init.html b/docs/getting_started/cypress/init.html
index 0a42976b2..fcc356e1b 100644
--- a/docs/getting_started/cypress/init.html
+++ b/docs/getting_started/cypress/init.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/logger/ensono-stacks-logger.html b/docs/getting_started/logger/ensono-stacks-logger.html
index 73f3b2223..da3fa7588 100644
--- a/docs/getting_started/logger/ensono-stacks-logger.html
+++ b/docs/getting_started/logger/ensono-stacks-logger.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/logger/winston.html b/docs/getting_started/logger/winston.html
index e297d2952..a3df6d77a 100644
--- a/docs/getting_started/logger/winston.html
+++ b/docs/getting_started/logger/winston.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/next/ensono-stacks-next.html b/docs/getting_started/next/ensono-stacks-next.html
index 0a4abedc3..b3a398def 100644
--- a/docs/getting_started/next/ensono-stacks-next.html
+++ b/docs/getting_started/next/ensono-stacks-next.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/next/init.html b/docs/getting_started/next/init.html
index e2f4c062e..c887081ac 100644
--- a/docs/getting_started/next/init.html
+++ b/docs/getting_started/next/init.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/next/next-auth.html b/docs/getting_started/next/next-auth.html
index 57daaf45c..6cfbc60f2 100644
--- a/docs/getting_started/next/next-auth.html
+++ b/docs/getting_started/next/next-auth.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/next/storybook.html b/docs/getting_started/next/storybook.html
index a0b227e0c..d7e7f69a1 100644
--- a/docs/getting_started/next/storybook.html
+++ b/docs/getting_started/next/storybook.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/playwright/accessibility.html b/docs/getting_started/playwright/accessibility.html
index 782e36f78..11c82db0d 100644
--- a/docs/getting_started/playwright/accessibility.html
+++ b/docs/getting_started/playwright/accessibility.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/playwright/ensono-stacks-playwright.html b/docs/getting_started/playwright/ensono-stacks-playwright.html
index cd2c2df4c..53e44e9e6 100644
--- a/docs/getting_started/playwright/ensono-stacks-playwright.html
+++ b/docs/getting_started/playwright/ensono-stacks-playwright.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/playwright/executor.html b/docs/getting_started/playwright/executor.html
index 987e28518..b700a877b 100644
--- a/docs/getting_started/playwright/executor.html
+++ b/docs/getting_started/playwright/executor.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/playwright/init.html b/docs/getting_started/playwright/init.html
index 1db161807..2292420a1 100644
--- a/docs/getting_started/playwright/init.html
+++ b/docs/getting_started/playwright/init.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/playwright/visual-regression.html b/docs/getting_started/playwright/visual-regression.html
index f4ec0507c..07309c8fc 100644
--- a/docs/getting_started/playwright/visual-regression.html
+++ b/docs/getting_started/playwright/visual-regression.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/plugin-name/ensono-stacks-[plugin-name].html b/docs/getting_started/plugin-name/ensono-stacks-[plugin-name].html
index 471780644..b4e1bb330 100644
--- a/docs/getting_started/plugin-name/ensono-stacks-[plugin-name].html
+++ b/docs/getting_started/plugin-name/ensono-stacks-[plugin-name].html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/plugin-name/executor-generator-template.html b/docs/getting_started/plugin-name/executor-generator-template.html
index 37564fbcd..b5da1eb0c 100644
--- a/docs/getting_started/plugin-name/executor-generator-template.html
+++ b/docs/getting_started/plugin-name/executor-generator-template.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/rest-client/bump-version.html b/docs/getting_started/rest-client/bump-version.html
index 1df97dca4..ebb230055 100644
--- a/docs/getting_started/rest-client/bump-version.html
+++ b/docs/getting_started/rest-client/bump-version.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/rest-client/client-endpoint.html b/docs/getting_started/rest-client/client-endpoint.html
index c1b120b19..92278cd33 100644
--- a/docs/getting_started/rest-client/client-endpoint.html
+++ b/docs/getting_started/rest-client/client-endpoint.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/rest-client/ensono-stacks-rest-client.html b/docs/getting_started/rest-client/ensono-stacks-rest-client.html
index cc4a8451f..5c0743b1f 100644
--- a/docs/getting_started/rest-client/ensono-stacks-rest-client.html
+++ b/docs/getting_started/rest-client/ensono-stacks-rest-client.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/rest-client/http-client.html b/docs/getting_started/rest-client/http-client.html
index c10c01443..a08beb35f 100644
--- a/docs/getting_started/rest-client/http-client.html
+++ b/docs/getting_started/rest-client/http-client.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/rest-client/openapi-client.html b/docs/getting_started/rest-client/openapi-client.html
index de10281d1..e2d8791f8 100644
--- a/docs/getting_started/rest-client/openapi-client.html
+++ b/docs/getting_started/rest-client/openapi-client.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/setup.html b/docs/getting_started/setup.html
index ee1b8348d..4db1980f0 100644
--- a/docs/getting_started/setup.html
+++ b/docs/getting_started/setup.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/workspace/ensono-stacks-workspace.html b/docs/getting_started/workspace/ensono-stacks-workspace.html
index 68e7bdbfd..c27f50637 100644
--- a/docs/getting_started/workspace/ensono-stacks-workspace.html
+++ b/docs/getting_started/workspace/ensono-stacks-workspace.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started/workspace/init.html b/docs/getting_started/workspace/init.html
index 00e194b80..348b554dd 100644
--- a/docs/getting_started/workspace/init.html
+++ b/docs/getting_started/workspace/init.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/getting_started_dev.html b/docs/getting_started_dev.html
index b5a64c88e..e4f2279d1 100644
--- a/docs/getting_started_dev.html
+++ b/docs/getting_started_dev.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/glossary.html b/docs/glossary.html
index ddc258e1b..40d072b82 100644
--- a/docs/glossary.html
+++ b/docs/glossary.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/infrastructure/azure/core_infrastructure.html b/docs/infrastructure/azure/core_infrastructure.html
index fd4234c92..e5293e5b0 100644
--- a/docs/infrastructure/azure/core_infrastructure.html
+++ b/docs/infrastructure/azure/core_infrastructure.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/infrastructure/azure/pipelines/azure_devops.html b/docs/infrastructure/azure/pipelines/azure_devops.html
index 74b8dec12..f40d8f61b 100644
--- a/docs/infrastructure/azure/pipelines/azure_devops.html
+++ b/docs/infrastructure/azure/pipelines/azure_devops.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/infrastructure/introduction.html b/docs/infrastructure/introduction.html
index 24de58a7f..f2d43d5da 100644
--- a/docs/infrastructure/introduction.html
+++ b/docs/infrastructure/introduction.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/linting/eslint.html b/docs/linting/eslint.html
index bf985368f..b6ea1e264 100644
--- a/docs/linting/eslint.html
+++ b/docs/linting/eslint.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/module_federation/nextjs_plugin.html b/docs/module_federation/nextjs_plugin.html
index bbb19f711..e498cd006 100644
--- a/docs/module_federation/nextjs_plugin.html
+++ b/docs/module_federation/nextjs_plugin.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/nextjs/authentication.html b/docs/nextjs/authentication.html
index bcea82be6..e6b98ce07 100644
--- a/docs/nextjs/authentication.html
+++ b/docs/nextjs/authentication.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/nextjs/infrastructure.html b/docs/nextjs/infrastructure.html
index 9b290094c..757978010 100644
--- a/docs/nextjs/infrastructure.html
+++ b/docs/nextjs/infrastructure.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/nx/nx_stacks.html b/docs/nx/nx_stacks.html
index 3f0162e32..dafdece4f 100644
--- a/docs/nx/nx_stacks.html
+++ b/docs/nx/nx_stacks.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/about.html b/docs/stackscli/about.html
index 6f0dcb16f..37684cab1 100644
--- a/docs/stackscli/about.html
+++ b/docs/stackscli/about.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/examples.html b/docs/stackscli/examples.html
index f50db30ce..74c408853 100644
--- a/docs/stackscli/examples.html
+++ b/docs/stackscli/examples.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/project_settings.html b/docs/stackscli/project_settings.html
index 5327c401d..505487022 100644
--- a/docs/stackscli/project_settings.html
+++ b/docs/stackscli/project_settings.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/runtime_config.html b/docs/stackscli/runtime_config.html
index 83fae3d7c..1faa4081a 100644
--- a/docs/stackscli/runtime_config.html
+++ b/docs/stackscli/runtime_config.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/troubleshooting.html b/docs/stackscli/troubleshooting.html
index 2c31b8cf2..1c41e7ba8 100644
--- a/docs/stackscli/troubleshooting.html
+++ b/docs/stackscli/troubleshooting.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/stackscli/usage.html b/docs/stackscli/usage.html
index 45a2252d4..694d2a1b6 100644
--- a/docs/stackscli/usage.html
+++ b/docs/stackscli/usage.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/storybook/storybook_stacks.html b/docs/storybook/storybook_stacks.html
index e47f03a14..6854c58d0 100644
--- a/docs/storybook/storybook_stacks.html
+++ b/docs/storybook/storybook_stacks.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/accessibility_testing.html b/docs/testing/accessibility_testing.html
index cf32ce8ab..76686536b 100644
--- a/docs/testing/accessibility_testing.html
+++ b/docs/testing/accessibility_testing.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/contract_testing_pact.html b/docs/testing/contract_testing_pact.html
index 6ba66638e..85c0972f2 100644
--- a/docs/testing/contract_testing_pact.html
+++ b/docs/testing/contract_testing_pact.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/performance_testing_gatling.html b/docs/testing/performance_testing_gatling.html
index d7109e5e9..7ce4a0891 100644
--- a/docs/testing/performance_testing_gatling.html
+++ b/docs/testing/performance_testing_gatling.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_dotnet_selenium.html b/docs/testing/testing_dotnet_selenium.html
index eaabd13fe..b1c9507a7 100644
--- a/docs/testing/testing_dotnet_selenium.html
+++ b/docs/testing/testing_dotnet_selenium.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/cypress_accessibility_testing.html b/docs/testing/testing_in_nx/cypress_accessibility_testing.html
index 1fed17400..bd13ff8da 100644
--- a/docs/testing/testing_in_nx/cypress_accessibility_testing.html
+++ b/docs/testing/testing_in_nx/cypress_accessibility_testing.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/frontend_testing_in_nx.html b/docs/testing/testing_in_nx/frontend_testing_in_nx.html
index 79a54429f..6e3893164 100644
--- a/docs/testing/testing_in_nx/frontend_testing_in_nx.html
+++ b/docs/testing/testing_in_nx/frontend_testing_in_nx.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/playwright_accessibility_testing.html b/docs/testing/testing_in_nx/playwright_accessibility_testing.html
index 8c87f71f9..2e5536264 100644
--- a/docs/testing/testing_in_nx/playwright_accessibility_testing.html
+++ b/docs/testing/testing_in_nx/playwright_accessibility_testing.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/playwright_visual_testing.html b/docs/testing/testing_in_nx/playwright_visual_testing.html
index 79693b6f6..f3cf1cf39 100644
--- a/docs/testing/testing_in_nx/playwright_visual_testing.html
+++ b/docs/testing/testing_in_nx/playwright_visual_testing.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/playwright_visual_testing_applitools_eyes.html b/docs/testing/testing_in_nx/playwright_visual_testing_applitools_eyes.html
index e8373d40b..5c347bbba 100644
--- a/docs/testing/testing_in_nx/playwright_visual_testing_applitools_eyes.html
+++ b/docs/testing/testing_in_nx/playwright_visual_testing_applitools_eyes.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/testing_with_cypress.html b/docs/testing/testing_in_nx/testing_with_cypress.html
index 0f8337d18..d4d92b7ad 100644
--- a/docs/testing/testing_in_nx/testing_with_cypress.html
+++ b/docs/testing/testing_in_nx/testing_with_cypress.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_in_nx/testing_with_playwright.html b/docs/testing/testing_in_nx/testing_with_playwright.html
index 9e9540682..719911cb7 100644
--- a/docs/testing/testing_in_nx/testing_with_playwright.html
+++ b/docs/testing/testing_in_nx/testing_with_playwright.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_java_serenity_bdd.html b/docs/testing/testing_java_serenity_bdd.html
index 2efe564c7..5d71c8992 100644
--- a/docs/testing/testing_java_serenity_bdd.html
+++ b/docs/testing/testing_java_serenity_bdd.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/testing/testing_static_analysis.html b/docs/testing/testing_static_analysis.html
index 6ef8671c2..ee1f386b8 100644
--- a/docs/testing/testing_static_analysis.html
+++ b/docs/testing/testing_static_analysis.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads.html b/docs/workloads.html
index 63ba4826c..b23518663 100644
--- a/docs/workloads.html
+++ b/docs/workloads.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/aws/backend/java/architecture/dependency_dynamodb_java.html b/docs/workloads/aws/backend/java/architecture/dependency_dynamodb_java.html
index 23ce95612..5cc7cbc9e 100644
--- a/docs/workloads/aws/backend/java/architecture/dependency_dynamodb_java.html
+++ b/docs/workloads/aws/backend/java/architecture/dependency_dynamodb_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/aws/backend/java/architecture/dependency_sqs_java.html b/docs/workloads/aws/backend/java/architecture/dependency_sqs_java.html
index fe195f7e7..f021f30da 100644
--- a/docs/workloads/aws/backend/java/architecture/dependency_sqs_java.html
+++ b/docs/workloads/aws/backend/java/architecture/dependency_sqs_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/aws/backend/java/define_aws_secrets_java.html b/docs/workloads/aws/backend/java/define_aws_secrets_java.html
index 07d58a8a3..640792e41 100644
--- a/docs/workloads/aws/backend/java/define_aws_secrets_java.html
+++ b/docs/workloads/aws/backend/java/define_aws_secrets_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/aws/backend/java/setting_up_dynamodb_locally_java.html b/docs/workloads/aws/backend/java/setting_up_dynamodb_locally_java.html
index 59a0a2a54..ba22be7b3 100644
--- a/docs/workloads/aws/backend/java/setting_up_dynamodb_locally_java.html
+++ b/docs/workloads/aws/backend/java/setting_up_dynamodb_locally_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/aws/backend/java/setting_up_xray_daemon_locally_java.html b/docs/workloads/aws/backend/java/setting_up_xray_daemon_locally_java.html
index 45df2e30b..2ec6cc6e8 100644
--- a/docs/workloads/aws/backend/java/setting_up_xray_daemon_locally_java.html
+++ b/docs/workloads/aws/backend/java/setting_up_xray_daemon_locally_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/architecture/dependency_cosmos_java.html b/docs/workloads/azure/backend/java/architecture/dependency_cosmos_java.html
index bd91a9c00..808d68314 100644
--- a/docs/workloads/azure/backend/java/architecture/dependency_cosmos_java.html
+++ b/docs/workloads/azure/backend/java/architecture/dependency_cosmos_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/architecture/dependency_servicebus_java.html b/docs/workloads/azure/backend/java/architecture/dependency_servicebus_java.html
index fe904a42e..76ab17631 100644
--- a/docs/workloads/azure/backend/java/architecture/dependency_servicebus_java.html
+++ b/docs/workloads/azure/backend/java/architecture/dependency_servicebus_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/infrastructure_java.html b/docs/workloads/azure/backend/java/infrastructure_java.html
index 76a831187..37a24d43a 100644
--- a/docs/workloads/azure/backend/java/infrastructure_java.html
+++ b/docs/workloads/azure/backend/java/infrastructure_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/pipeline_java.html b/docs/workloads/azure/backend/java/pipeline_java.html
index a40c5c407..022ac114d 100644
--- a/docs/workloads/azure/backend/java/pipeline_java.html
+++ b/docs/workloads/azure/backend/java/pipeline_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/quickstart_java.html b/docs/workloads/azure/backend/java/quickstart_java.html
index cc29c4e6d..e2269dabd 100644
--- a/docs/workloads/azure/backend/java/quickstart_java.html
+++ b/docs/workloads/azure/backend/java/quickstart_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/requirements_java.html b/docs/workloads/azure/backend/java/requirements_java.html
index 2525dafc8..322b7b9e5 100644
--- a/docs/workloads/azure/backend/java/requirements_java.html
+++ b/docs/workloads/azure/backend/java/requirements_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/setting_up_cosmos_db_locally_java.html b/docs/workloads/azure/backend/java/setting_up_cosmos_db_locally_java.html
index 0bcbd7b78..732d78260 100644
--- a/docs/workloads/azure/backend/java/setting_up_cosmos_db_locally_java.html
+++ b/docs/workloads/azure/backend/java/setting_up_cosmos_db_locally_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/testing/execute_karate_api_tests.html b/docs/workloads/azure/backend/java/testing/execute_karate_api_tests.html
index 49dd08bb4..ea5a46132 100644
--- a/docs/workloads/azure/backend/java/testing/execute_karate_api_tests.html
+++ b/docs/workloads/azure/backend/java/testing/execute_karate_api_tests.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/testing/execute_serenity_api_tests.html b/docs/workloads/azure/backend/java/testing/execute_serenity_api_tests.html
index 65f244f39..4f0752f52 100644
--- a/docs/workloads/azure/backend/java/testing/execute_serenity_api_tests.html
+++ b/docs/workloads/azure/backend/java/testing/execute_serenity_api_tests.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/java/testing/testing_java.html b/docs/workloads/azure/backend/java/testing/testing_java.html
index ff2b6c39f..75dac34b6 100644
--- a/docs/workloads/azure/backend/java/testing/testing_java.html
+++ b/docs/workloads/azure/backend/java/testing/testing_java.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore.html b/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore.html
index 6537e973e..981077777 100644
--- a/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/architecture_overview_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/data_storage_cosmosdb_netcore.html b/docs/workloads/azure/backend/netcore/architecture/data_storage_cosmosdb_netcore.html
index 72dfa56c0..cada32724 100644
--- a/docs/workloads/azure/backend/netcore/architecture/data_storage_cosmosdb_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/data_storage_cosmosdb_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/operations_events_exceptions_correlation_netcore.html b/docs/workloads/azure/backend/netcore/architecture/operations_events_exceptions_correlation_netcore.html
index c71f63882..ee1af0488 100644
--- a/docs/workloads/azure/backend/netcore/architecture/operations_events_exceptions_correlation_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/operations_events_exceptions_correlation_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_cqrs.html b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_cqrs.html
index 09a062c96..c929f554f 100644
--- a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_cqrs.html
+++ b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_cqrs.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_function_worker.html b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_function_worker.html
index 34b517436..20ae01e3f 100644
--- a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_function_worker.html
+++ b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_function_worker.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_simple_api.html b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_simple_api.html
index 1902451be..8f91c054c 100644
--- a/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_simple_api.html
+++ b/docs/workloads/azure/backend/netcore/architecture/project_structure/project_structure_netcore_simple_api.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/repository_overview_netcore.html b/docs/workloads/azure/backend/netcore/architecture/repository_overview_netcore.html
index b4085902a..7c9fa9cf8 100644
--- a/docs/workloads/azure/backend/netcore/architecture/repository_overview_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/repository_overview_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_netcore.html b/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_netcore.html
index 86c25fc8b..e1ef16e5f 100644
--- a/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_ui_netcore.html b/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_ui_netcore.html
index 2bb0383a9..bba14231f 100644
--- a/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_ui_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/swagger_configuration/configure_swagger_ui_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/architecture/testing/testing_scope_netcore.html b/docs/workloads/azure/backend/netcore/architecture/testing/testing_scope_netcore.html
index 43ed8699e..9dab90250 100644
--- a/docs/workloads/azure/backend/netcore/architecture/testing/testing_scope_netcore.html
+++ b/docs/workloads/azure/backend/netcore/architecture/testing/testing_scope_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/infrastructure_netcore.html b/docs/workloads/azure/backend/netcore/infrastructure_netcore.html
index 8597c2f0e..5a8832a00 100644
--- a/docs/workloads/azure/backend/netcore/infrastructure_netcore.html
+++ b/docs/workloads/azure/backend/netcore/infrastructure_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/introduction_netcore.html b/docs/workloads/azure/backend/netcore/introduction_netcore.html
index bbb07c8f2..54f98aa8b 100644
--- a/docs/workloads/azure/backend/netcore/introduction_netcore.html
+++ b/docs/workloads/azure/backend/netcore/introduction_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/logging_netcore.html b/docs/workloads/azure/backend/netcore/logging_netcore.html
index 2dd417bb9..14e042fc9 100644
--- a/docs/workloads/azure/backend/netcore/logging_netcore.html
+++ b/docs/workloads/azure/backend/netcore/logging_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/pipeline_netcore.html b/docs/workloads/azure/backend/netcore/pipeline_netcore.html
index 6b105a251..40b51b3b3 100644
--- a/docs/workloads/azure/backend/netcore/pipeline_netcore.html
+++ b/docs/workloads/azure/backend/netcore/pipeline_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/quickstart/web_api/build_and_run_project_netcore.html b/docs/workloads/azure/backend/netcore/quickstart/web_api/build_and_run_project_netcore.html
index c39b992cf..96d0c5543 100644
--- a/docs/workloads/azure/backend/netcore/quickstart/web_api/build_and_run_project_netcore.html
+++ b/docs/workloads/azure/backend/netcore/quickstart/web_api/build_and_run_project_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/quickstart/web_api/create_project_netcore.html b/docs/workloads/azure/backend/netcore/quickstart/web_api/create_project_netcore.html
index 18cabdb3f..0e64ea7bd 100644
--- a/docs/workloads/azure/backend/netcore/quickstart/web_api/create_project_netcore.html
+++ b/docs/workloads/azure/backend/netcore/quickstart/web_api/create_project_netcore.html
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.html b/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.html
index 77b1085cb..592a89624 100644
--- a/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.html
+++ b/docs/workloads/azure/backend/netcore/quickstart/web_api_cqrs/build_and_run_project_netcore.html
@@ -10,7 +10,7 @@
-
+
@@ -73,20 +73,19 @@
Buildin
Navigate to the project directory.
-Change to the API project directory within the solution. In this example, the solution was created in c:\dev and was named Company.Project.
-
cd c:\dev\company.project\src\cqrs\src\api
+Change to the project's root directory within the solution. In this example, the solution was created in c:\dev and was named Company.Project.
+
cd c:\dev\company.project\
Build the Docker Image
Use the docker build command to build the Docker image from the Dockerfile in this folder.
Run the Docker Image.
-Use the docker run command to start a container from the built image.
-See the note on Environment Variables below for the adjustments that you should make to this command.
+Use the docker run command to start a container from the image that we just built. Use one of the commands below, bt you will need to change the --mount switch so that it matches the path to your appsettings.json. You will also need to provide the values of the environment variables that you made a note of in the previous section and delete the environment variables that you are not using.
+
Navigate to the project directory.
Change to the API project directory within the solution. In this example, the solution was created in a folder called dev inside anneexample's home directory and was named Company.Project.
-
cd ~/users/anneexample/dev/company.project/src/cqrs/src/api
+
cd ~/users/anneexample/dev/company.project
Build the Docker Image
Use the docker build command to build the Docker image from the Dockerfile in this folder.
Run the Docker Image.
-Use the docker run command to start a container from the built image.
-See the note on Environment Variables below for the adjustments that you should make to this command.
+Use the docker run command to start a container from the image that we just built. Use one of the commands below, bt you will need to change the --mount switch so that it matches the path to your appsettings.json. You will also need to provide the values of the environment variables that you made a note of in the previous section and delete the environment variables that you are not using.
+
When running the Docker container, you need to pass your environment variables using the -e switch. The commands above show every environment variable. You should replace the placeholders with actual secrets that you made a note of when you followed the Configure REST API with CQRS project step of this guide and remove the environment variables that you are not using.
The table below describes each environment variable.
Environment Variable name
Environment Variable required when...
COSMOSDB_KEY
When Cosmos DB is your database service.
EVENTHUB_CONNECTIONSTRING
When Azure Event Hubs is your messaging service.
SERVICEBUS_CONNECTIONSTRING
When Azure Service Bus is your messaging service.
TOPIC_ARN
When AWS SNS is your messaging service.
appsettings.json
Note that we mount the appsettings.json file when running locally, but we do not do this when the full project is deployed to Azure. This is because when the project is deployed to Azure, the build process will perform the substitution.