?retryWrites=true&w=majority
+```
+
+Then click on the **Save** button.
+
+3. If not setup in the project, **create** the CRUD Service.
+You can follow [this guide](/products/console/tutorials/configure-marketplace-components/rest-api-for-crud-on-data.mdx#create-crud-service) to create the service.
+
+In the **Environment variable configuration** of the service you can reference the newly created environment variable using this notation `{{MONGODB_URL}}`.
+
+
+
+
+4. Now you are ready to work with your CRUDs.
+
+:::warning
+- Currently, if the database is already populated, all records in all collections must be decorated with the `__STATE__` field set to `'PUBLIC'` in order to access the data.
+All records that do not have the `__STATE__` field are not returned by the crud-service.
+In addition, all collections must be defined in the Mia-Platform Console.
+- Indices not defined in the Mia-Platform Console are all deleted from the crud-service if they are not named with the prefix `preserve_`.
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/handbooks/project-manage.md b/versioned_docs/version-14.5.1/products/console/handbooks/project-manage.md
new file mode 100644
index 0000000000..22c5603aba
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/handbooks/project-manage.md
@@ -0,0 +1,70 @@
+---
+id: project-manage
+title: Project Manage Handbook
+sidebar_label: Project Manage Handbook
+---
+
+Mia-Platform Console allows you to create and manage multiple Projects, each one with its own set of APIs, microservices, and applications.
+There are a different set of permissions based on whether you want to create or edit a Project, make sure you have the ones you need.
+
+:::warning
+To create a new Project you must have the permission `console.company.project.create` and you need to have already set up provider, company, and template.
+More detail about the **prerequisites can be found in [Project Management](/products/console/project-configuration/create-a-project.mdx#Prerequisites)**.
+:::
+
+## Project creation
+
+To create the Project, select a Company and then click the `Create Project` button located at the top of the sidebar.
+
+
+
+The Project creation is divided in three different steps.
+
+### Step 1: **General**
+
+In this step, you are required to insert the general information about your new Project:
+
+- **Company** (_required_): you are required to select, from a list of pre-configured companies, your company, which enables you to keep the same configuration for different Projects;
+- **Project name** (_required_): the name of your Project, which will be shown in the Project card in the Home section of the Console;
+- **Description**: the description of your Project, which will be shown in the Project card in the Home section of the Console.
+
+
+
+### Step 2: **Repository**
+
+In this step, it is indicated the location of your new Project and you have to choose its template.
+By default, the Project is saved on the default Git provider, but you can choose to save it to a different one by clicking on the `Change Git provider` button.
+The Git provider can be changed only if the company has been configured with more than one Git provider.
+
+- **Git Provider**: this field represents the provider ID used by your chosen company (e.g. _gitlab_, _github_, _azure-devops_, _bitbucket_);
+- **Git repo path**: this is the path, calculated from Project name and company, where the configuration will be saved on the Git provider. It specifies the location of your Project on the Git provider website;
+- **Visibility**: the visibility states the status of your Project once it will be saved on the Git provider. If it is `internal`, all the internal users of the Git provider instance can see the Project. If it is `private`, only who has access to the repository can see the Project;
+- **Template** (_required_): you have to select, from a list of pre-configured templates, your template, which enables you to use pre-filled configurations for your Project.
+
+:::tip
+If you are using the PaaS Mia-Platform Console, two main templates are available: one with all the core services, and the other which is similar, but without CMS. More information about how to use them at [Create Project](/products/console/project-configuration/create-a-project.mdx#setup-paas-templates).
+:::
+
+
+
+### Step 3: **Environments**
+
+In this step, an overview of the configuration of your Project environments is presented. This section is entirely read-only, since the information displayed are retrieved from the selected company and, therefore, they are already configured and not editable:
+
+- **Environment name**: the name given to your environment;
+- **Environment ID**: the human-readable ID set to your environment;
+- **Host**: the host which exposes documentation and APIs;
+- **Backoffice Host**: the host which exposes CMS and backoffice APIs;
+- **Cluster Host**: the IP of the Kubernetes cluster where the Project will be deployed;
+- **Namespace**: the namespace taken from Kubernetes;
+- **Description**: the description of your environment.
+
+Moreover, a label **Production** is displayed next to the title of the dropdown card in case the corresponding environment is labeled as a production environment.
+
+
+
+For security reasons, and since after this step the Project will be effectively created, when trying to proceed further a confirmation modal is displayed. By clicking on _Create_, the Project will be irreversibly generated.
+
+
+
+At the end of the process, your Project will be visible in the Home section of your Console.
diff --git a/versioned_docs/version-14.5.1/products/console/handbooks/project-usage.md b/versioned_docs/version-14.5.1/products/console/handbooks/project-usage.md
new file mode 100644
index 0000000000..6a15186106
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/handbooks/project-usage.md
@@ -0,0 +1,285 @@
+---
+id: project-usage
+title: Project Usage Handbook
+sidebar_label: Project Usage Handbook
+---
+
+The **Mia-Platform Console** is a powerful **Internal Developer Portal** that let you govern all projects in one place and helps you industrialize and automate DevOps, avoid organizational bottlenecks, self-serve developers, solve cloud complexity and enhance accountability & reliability.
+
+On the Console you can build complex [projects](/products/console/api-console/api-design/overview.md) and use an ever-growing list of [plugins](/runtime-components/plugins/mia-platform-plugins.md) but there are some common actions that you will do everyday.
+
+In this page we will see the most frequently performed actions on the Mia-Platform Console.
+
+For a general overview of the Console please see the [dedicated](/products/console/overview-dev-suite.md) page.
+
+## View repository
+
+Mia-Platform Console enables you to manage your project's configuration by leveraging the advantages of a GitOps approach.
+The Console internally uses **git repositories** to persist configuration changes you make and supports many different git repository providers. You can find more information [here](/products/console/project-configuration/create-a-project.mdx#step-2-repository).
+
+If you want to see directly the **code** of the configurations you made, you can check the _Configuration_ repository of your project.
+
+To view the _Configurations_ repository of the project simply click on the Git provider icon (GitLab in the image below) on the top-right of the screen.
+
+
+
+
+
+
+
+
+
+## Create a new branch
+
+To start making changes on the Console you must be working on a **branch**. A default branch (usually `master`) is always present but you can create any number of branches to work on. As you would do in any git repository, you can use different branches for different features you want to create. Each branch is independent and can be used by different members of your team to work collaboratively.
+
+This section explains **how to create a new branch** on the Console, which, under the hood, will create a new git branch on the _Configurations_ repository of the project.
+
+You must be in the _Design_ section of the Console to perform this action.
+
+1. Click on the branch selection menu on top of the screen.
+
+
+
+
+
+
+
+
+
+2. Click on _Change branch_. The _Select Branch or Tag_ form will appear.
+
+
+
+
+
+
+
+
+
+3. Click on _Create new branch_. The _Create new branch_ form will appear.
+
+
+
+
+
+
+
+
+
+4. You can select the source branch from which to start from the drop-down list on top. If a branch is already set, it will be proposed by default.
+5. You can enter the new branch name.
+
+
+
+
+
+
+
+
+
+6. Click _Create new branch_. The new branch will be created.
+
+
+
+
+
+
+
+
+
+You can also create a new branch while saving your changes. See the next section.
+
+## Save changes
+
+Configuration changes made on the Console must be **saved explicitly**. By doing so you save your work for later use or deploy, but you can also let other people see your changes if they have access to your project.
+
+For example, you can create a microservice starting from a template in the [Marketplace](/runtime-components/overview_marketplace.md) like explained [here](/products/console/api-console/api-design/services.md#how-to-create-a-microservice-from-an-example-or-from-a-template).
+
+This section explains how to save configuration changes you made on the Console, which, under the hood, will create a new **git commit** on the _Configurations_ repository of the project.
+
+You must be in the _Design_ section of the Console to perform this action.
+
+1. Click on the branch selection menu on top of the screen. If you made some changes, you will see that there are unsaved local changes reported.
+
+
+
+
+
+
+
+
+
+2. Click on _Save configuration_. The _Save configuration_ form will appear.
+3. In order to save your configuration:
+ 1. You must enter a **title** for the commit.
+ 2. [Optional] You can enter a commit description.
+ 3. [Optional] If you want to save your changes in a new branch by enabling the _Save changes on new branch_ option and enteriring the new branch name.
+
+
+
+
+
+
+
+
+
+5. Click _Save_ to apply the changes.
+
+:::warning
+Always remember to save your changes in order to persist them. Unsaved versions are not visible to other users and you cannot deploy them. If you change branch without saving your current changes, they will be lost.
+:::
+
+## Merge changes
+
+By working with **multiple branches** and collaboratively with your team, you can choose to follow your preferred **branching strategy** on the Console too. For example, you might use the _master_ branch as your main branch with **stable configurations** while using dedicated branches to build or test new features. Once a feature is complete you will want to merge it onto the _master_ branch, making the changes from the feature branch available also on the _master_ branch.
+
+This section explains **how to merge a branch into another one** on the Console. Make sure you are positioned on your **target** branch before merging.
+
+You must be in the _Design_ section of the Console to perform this action.
+
+1. Click on the branch selection menu on top of the screen.
+
+
+
+
+
+
+
+
+
+2. Click on the _Merge from another branch_ button. The _Merge branches_ from will appear.
+
+
+
+
+
+
+
+
+
+3. Select the branch you want to merge from the drop-down list.
+
+
+
+
+
+
+
+
+
+4. Click _Start merge_ button. The _Manage diffs and Merge_ screen will appear.
+
+
+
+5. Select a configurations category on the sidebar of the modal in order to review the differences between the two branches. All the configurations are organized by category. If there are any differences in the configuration categories between the two branches, its entry is highlighted by an orange icon in the sidebar. For example, you can select _Workload_ to view only differences regarding microservices and workload configurations.
+6. Once you've selected the configurations category you want to work on, you can apply changes to the target branch. Note that the changes are not applied automatically to the target branch. You must apply them manually on the right editor. To do so, you can:
+ 1. Use the arrow icon between the editor to copy a block of configuration from the left editor to the right one.
+ 2. Directly edit the configurations on the right editor (typically you want to do it to resolve conflicts).
+
+:::tip
+You can use _Previous change_ and _Next change_ button in the lower part of the modal in order to easily move from a change to another.
+:::
+7. Click _Confirm merge_.
+8. You will be asked for confirmation about the new configuration. Click _Confirm Merge_.
+
+
+
+
+
+
+
+
+
+8. The configurations will be merged and the result will be displayed on screen.
+
+
+
+
+
+
+
+
+
+9. Click _Continue editing_, if you want to make additional changes, otherwise _Save configuration_.
+10. If you are saving configuration the saving configuration modal will appear. Follow the steps 3 and 4 of the guide about how to ["Save changes"](#save-changes) in order to apply the merge. Otherwise you can continue editing in the design area and apply all the changes at the same time by following the whole ["Save changes"](#save-changes) guide.
+
+:::warning
+Merge changes must be saved in order to be applied.
+:::
+
+For more information on merging branches please see the [dedicated](/products/console/api-console/api-design/merge_collaboration.md) page.
+
+## Deploy changes
+
+The changes you made on the Console must be deployed in order for you to see them in action. Your project is linked to an infrastructure managed with **Kubernetes** on which you can deploy everything you configured from the Console without explicitly having to also configure a cluster. Linked with your project you can have multiple environments, such as Development and Production, that can run different configurations of applications or even entirely different applications. You can find more information about managing environments [here](/products/console/project-configuration/manage-environment-variables/index.md).
+
+This section explains how to deploy any changes you made into an **environment**.
+
+You must be in the _Deploy_ section of the Console to perform this action.
+
+1. You can select the changes to deploy from the _Select branch or tag_ drop-down list.
+
+
+
+2. [Optional] You can view the list of last 10 commits made on the selected branch.
+3. You can choose to enable or disable the [_Smart deploy_](/products/console/deploy/overview.md#smart-deploy) feature.
+4. You can see the details of the deploy such as services name and versions, deploy outcome and other info in the table below.
+
+
+
+5. Click _Smart Deploy_ or _Deploy All_ button (the name changes if you enable the _Smart deploy_ feature).
+
+This action will take some time depending on the amount of changes to deploy.
+
+For more information on deploying please see the [dedicated](/products/console/deploy/overview.md) page.
+
+## Monitor Runtime System
+
+Once your changes have been deployed, you can **monitor your runtime system** and see information about the pods running them as well as **logs**.
+
+This section explains how to monitor your deployed services and pods.
+
+You must be in the _Runtime_ section of the Console to perform this action.
+
+
+
+1. You can choose the environment to monitor from the drop-down list on top of the screen.
+
+
+
+
+
+
+
+
+
+2. On the _Pods_ section you can see the list of pods currently deployed on the selected environment. You can see information such as pod status, name, application, etc.
+
+
+
+3. You can click on a specific pod name to view additional details.
+4. In the _Overview_ page you can see a summary of the selected pod with information such as CPU and Memory usage, number of Containers Ready, Pods restarts, etc.
+
+
+
+5. Click on the container name (e.g. _nodejs-template-for-tutorial_). From this page you can see the latest logs generated by the container.
+
+
+
+6. Click on _Describe_. From this page you can see a JSON description of the pod.
+
+
+
+7. Click on _Events_. From this page you can see a list of events occurred in the pod.
+
+
+
+For more information on monitoring the infrastructure please see the [dedicated](/products/console/monitoring/introduction.md) page.
+
+For more information about monitoring CPU and memory using Grafana please see the _Set Requests and Limits of a Microservice_ [tutorial](/products/console/tutorials/set-requests-limits-of-a-microservice.mdx#monitoring-cpu-and-memory-usage).
+
+You can also set the Console homepage to show environment metrics by using the [Metrics homepage](/products/console/overview-dev-suite.md#metrics-homepage).
+
+For information on how to directly interact with the Kubernetes infrastructure please see [here](/products/console/company-configuration/clusters-management/connect-and-manage-cluster.mdx).
+
diff --git a/versioned_docs/version-14.5.1/products/console/handbooks/traefik-handbook.mdx b/versioned_docs/version-14.5.1/products/console/handbooks/traefik-handbook.mdx
new file mode 100644
index 0000000000..eba0a3e558
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/handbooks/traefik-handbook.mdx
@@ -0,0 +1,86 @@
+---
+id: traefik-handbook
+title: Traefik Handbook
+sidebar_label: Traefik Handbook
+---
+
+This Handbook helps you with some useful tips on how to configure Traefik in order to enable features on your Console projects.
+
+:::note
+You will find this Handbook useful only if your infrastructure includes Traefik as Ingress, that is for example the case of Console offered as PaaS.
+:::
+
+## Add Basic Authorization
+
+:::caution
+This feature must not be used in production environments.
+
+The basic auth must be always replaced with safer authentication methods also in other environments.
+:::
+
+To add basic authentication on some host there are few steps to follow:
+
+### Create the Middleware
+First of all you need to create a new Middleware. This is a `yaml` configuration.
+
+Based on the Console configuration there are two options where to put the new file:
+1. `configuration/{{ENV}}/`
+2. `overlays/{{ENV}}/` in case of Kustomize Configuration
+
+The file can be named as desired, in this example we will refer it as `default.basicauth.yml`
+
+```yaml
+apiVersion: traefik.containo.us/v1alpha1
+kind: Middleware
+metadata:
+ name: default-basicauth
+ labels:
+ app.kubernetes.io/instance: "ingress-controller"
+spec:
+ basicAuth:
+ secret: authsecret
+```
+
+### Create a new secret
+
+Create a new secret with the basic auth credentials. The [Traefik documentation](https://doc.traefik.io/traefik/middlewares/http/basicauth/#general) suggest to use the `htpasswd` command to evaluate the secret.
+
+Example with username and password:
+```
+echo $(htpasswd -nb username password)
+```
+
+The output of the above command is the value of the secret to create.
+
+The secret needs to be created in the [Environments Variable section](/products/console/project-configuration/manage-environment-variables/index.md#add-an-environment).
+In this hands-on we will refer to the secret as `BASIC_AUTH_USERS`.
+
+#### Generate the secret with mlp
+We also need to edit the [mlp](/runtime-components/tools/mlp/30_generate.md) configuration to interpolate the secret created in the previous section.
+
+In the `mlp.yml` file add this configuration:
+```yaml
+ - name: "authsecret"
+ when: "always"
+ data:
+ - key: "users"
+ value: "{{BASIC_AUTH_USERS}}"
+ from: literal
+```
+
+### Add the Middleware to the Ingress
+The last step is to introduce the Middleware in the IngressRoute configuration. The config can be found inside:
+- `configuration/{{env}}/default.ingressroute.yml`, or
+- `overlays/{{ENV}}/default.ingressroute.yml`
+
+Add the middleware `default-basicauth` in the host where you want to setup the basic auth.
+Example:
+```
+routes:
+ - match: Host(`my-hostname.eu`)
+ middlewares:
+ ...
+ - name: "default-basicauth"
+```
+
+With this step you finished the setup of the basic authorization.
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/console-levels-and-permission-management.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/console-levels-and-permission-management.md
new file mode 100644
index 0000000000..953fdc6f4d
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/console-levels-and-permission-management.md
@@ -0,0 +1,169 @@
+---
+id: console-levels-and-permission-management
+title: Console levels and permission management
+sidebar_label: Console Levels and Permission Management
+---
+
+Having the ability to assign specific permissions and roles to each [Identity](/products/console/identity-and-access-management/index.md#identity-and-access-management) that has access to the system in a detailed way is a key point in defining responsibilities within your platform ecosystem.
+The Mia-Platform Console allows for assigning specific levels of access to various system resources through a configuration system based on hierarchical levels.
+Let's see how the different levels are organized.
+
+## Configuration Levels
+
+Console resources are organized in a hierarchical structure on three levels:
+
+1. **Console Level** is the root level regarding the general configuration of your entire Console. At this level you can configure resources such as Companies, Project Templates and Marketplace.
+
+1. **Company Level** is the second hierarchical level. A Company can contain several underlying Projects, which can inherit different kinds of information from the Company without needing further configuration. At this level, License, Clusters, Providers, Users and Service Accounts can be managed. To know more about Company configuration, check out the dedicated [documentation section](/products/console/company-configuration/create-company.md).
+
+1. **Project Level** is the third level of the Console. Projects are the heart of the Console: in fact, it is at this level that developers engage in creating new features and building their own Platform.
+
+:::info
+The permissions assigned to a user at a higher hierarchical level are inherited by lower levels. For instance, a user with the `Maintainer` role at the console level will have the same role across all the companies they are assigned to and all the projects within those companies. At the individual company and project level, the permissions for that user can be expanded in a detailed manner without affecting the authorization levels at the console level. However, authorizations that exist at the console level cannot be removed at the individual company or project level.
+:::
+
+
+
+## Identity Capabilities inside Console
+
+Identities can perform a set of predetermined actions along Console levels, in accordance with a set of permissions grouped for each specific role. A brief presentation of the default roles that can be assigned to each identity is provided here below:
+
+- `Company Owner`: A Company Owner has the ability to manage Company users and service accounts, and has full administrative capabilities on all the Projects (and Runtime Environments) within the Company
+- `Project Administrator`: A Project Administrator is able to manage identities and all other aspects of a Project, thus being able to perform any actions on all the Runtime Environments of the Project as well
+- `Maintainer`: A Maintainer can edit both Project configuration and Runtime Environments
+- `Developer`: A Developer can edit Project configuration and view Runtime Environments
+- `Reporter`: A Reporter can view Project configuration and Runtime Environments
+- `Guest`: A Guest has restricted access to data and can only view basic information for a selected subset of resources
+
+Roles can be assigned at three levels regarding the following Console resources:
+
+- Company
+- Project
+- Runtime Environments
+
+Roles can be assigned at Company level from the IAM portal at the Company level.
+
+The following table describes the capabilities and how they are mapped on the default roles.
+
+| Capabilities | Permissions key | Guest | Reporter | Developer | Maintainer | Project Administrator | Company Owner |
+| ----------------------------------------------------------------------- | ------------------------------------------------------- | ----- | -------- | --------- | ---------- | --------------------- | ------------- |
+| View Company basic information | `console.company.view` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Edit Company information | `console.company.details.update` | | | | | | ✅ |
+| Create Projects inside this Company | `console.company.project.create` | | | | | | ✅ |
+| View all Projects of this Company | `console.company.project.view` | | ✅ | ✅ | ✅ | ✅ | ✅ |
+| View all Environments in all Projects of this Company | `console.company.project.environment.view` | | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Create a service repository in all Projects of this Company | `console.company.project.service.repository.create` | | | ✅ | ✅ | ✅ | ✅ |
+| Commit changes on all Project configurations of this Company | `console.company.project.configuration.update` | | | ✅ | ✅ | ✅ | ✅ |
+| Manage secreted environment variables for all Projects of this Company | `console.company.project.secreted_variables.manage` | | | | | ✅ | ✅ |
+| Trigger deploy on all Environments of all Projects of this Company | `console.company.project.environment.deploy.trigger` | | | | ✅ | ✅ | ✅ |
+| Restart Pods on all Environments of all Projects of this Company | `console.company.project.environment.k8s.pod.delete` | | | | ✅ | ✅ | ✅ |
+| Delete Jobs on all Environments of all Projects of this Company | `console.company.project.environment.k8s.job.delete` | | | | ✅ | ✅ | ✅ |
+| Create Jobs on all Environments of all Projects of this Company | `console.company.project.environment.k8s.job.create` | | | | ✅ | ✅ | ✅ |
+| Manage dashboards on all Projects of this Company | `console.company.project.environment.dashboard.manage` | | | | | ✅ | ✅ |
+| Manage Identities of this Company | `console.company.users.manage` | | | | | | ✅ |
+| Edit Project information of all Projects of this Company | `console.company.project.details.update` | | | | | ✅ | ✅ |
+| Manage Identities of all Projects of this Company | `console.company.project.users.manage` | | | | | ✅ | |
+| See the company license section | `console.company.licenses.view` | | | | | | ✅ |
+| Delete this Company | `console.company.delete` | | | | | | ✅ |
+| Delete all Projects of this Company | `console.company.project.delete` | | | | | ✅ | ✅ |
+| Manage Providers of this Company | `console.company.providers.manage` | | | | | | ✅ |
+| View Company Providers information | `console.company.providers.view` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Manage Clusters for this Company | `console.company.cluster.manage` | | | | | | ✅ |
+| View Company Clusters information | `console.company.cluster.view` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Manage Company Project Templates | `console.company.templates.manage` | | | | | | ✅ |
+| Manage Company Views in Design Overview | `console.company.configuration.views.manage` | | | | | ✅ | ✅ |
+| View Marketplace resources owned exclusively by the Company | `marketplace.company.resources.view` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| Manage Marketplace resources owned exclusively by the Company | `marketplace.company.resources.manage` | | | | | ✅ | ✅ |
+| Delete the configuration versions of all the Projects of a Company | `console.company.project.configuration.version.delete` | | | | | ✅ | ✅ |
+| Manage the Console Extensions of a Company | `console.company.extensions.manage` | | | | | | ✅ |
+| Manage the activation of the registered Console Extensions in a Company | `console.company.extensions.activate` | | | | | | ✅ |
+| View the activated extensions in a specific Company | `console.company.extensions.view` | ✅ | ✅ | ✅ | ✅ | | ✅ |
+
+User roles are manageable from CMS by **Console Super Users**, which are particular Console Administrators having access to the Console CMS and thus being able to manage the entire Console, including Companies, Projects and the Marketplace.
+
+:::info
+Please note that, inside Project IAM portal, only those identities on which a Company role has previously been assigned are shown.
+For each of them, therefore, the permissions inherited from the Company role assignment at the Company level will be visible. In this way, it will be possible to identify which additional permissions among those mentioned in the following table can be assigned at Project and Runtime Environments levels.
+:::
+
+| Capabilities | Permissions key | Guest | Reporter | Developer | Maintainer | Project Administrator | Company Owner |
+| ------------------------------------------------- | ---------------------------------------------- | ----- | -------- | --------- | ---------- | --------------------- | ------------- |
+| View Project basic information | `console.project.view` | ✅ | ✅ | ✅ | ✅ | ✅ | |
+| View all Environments of this Project | `console.project.environment.view` | | ✅ | ✅ | ✅ | ✅ | |
+| View this Environment of the Project | `console.environment.view` | | ✅ | | ✅ | | |
+| Create a service repository for this Project | `console.project.service.repository.create` | | | ✅ | ✅ | ✅ | |
+| Commit changes on Project configuration | `console.project.configuration.update` | | | ✅ | ✅ | ✅ | |
+| Edit Project information | `console.project.details.update` | | | | | ✅ | |
+| Delete the configuration versions of a Project | `console.project.configuration.version.delete` | | | | | ✅ | |
+| Manage secreted environment variables | `console.project.secreted_variables.manage` | | | | | ✅ | |
+| Trigger deploy on any Environment of this Project | `console.project.environment.deploy.trigger` | | | | ✅ | ✅ | |
+| Trigger deploy on this specific Environment | `console.environment.deploy.trigger` | | | | ✅ | | |
+| Restart pods on any Project Environment | `console.project.environment.k8s.pod.delete` | | | | ✅ | ✅ | |
+| Delete Jobs on any Project Environment | `console.project.environment.k8s.job.delete` | | | | ✅ | ✅ | |
+| Create Jobs on any Project Environment | `console.project.environment.k8s.job.create` | | | | ✅ | ✅ | |
+| Delete Jobs on this specific Environment | `console.environment.k8s.job.delete` | | | | ✅ | | |
+| Create Jobs on this specific Environment | `console.environment.k8s.job.create` | | | | ✅ | | |
+| Restart pods on this specific Environment | `console.environment.k8s.pod.delete` | | | | ✅ | | |
+| Manage dashboards on any Project Environment | `console.project.environment.dashboard.manage` | | | | | ✅ | |
+| Manage dashboards on this specific Environment | `console.environment.dashboard.manage` | | | | | | |
+| Manage identities for this Project | `console.project.users.manage` | | | | | ✅ | |
+| Delete a single Project | `console.project.delete` | | | | | | |
+
+### Console Root level permissions
+
+User roles and permissions are manageable from CMS by **Console Super Users**, which are particular Console Administrators having access to the Console CMS and thus being able to perform actions at Console root level.
+
+:::info
+Note that Console Super User is NOT included as a default role. Consequently, it can not be assigned from the IAM portal, as it performs actions exclusively at Console root level.
+:::
+
+The following table describes the manageable privileges at Console root level that are granted to Console Administrators:
+
+| Capabilities | Permissions key |
+|-------------------------------------------------|---------------------------------------|
+| Create a new Company | `console.root.company.create` |
+| Delete any Company | `console.root.company.delete` |
+| Create a new Project | `console.root.project.create` |
+| Edit any Project | `console.root.project.details.update` |
+| Delete any Project | `console.root.project delete` |
+| View all Console resources | `console.root.view` |
+| Manage identity roles, Groups and Bindings | `console.root.user.bind` |
+| Create and delete any user | `console.root.user.manage` |
+| View all companies, projects and user roles information | `console.root.all.view` |
+| Create and delete root service account | `console.root.serviceaccount.manage` |
+| Manage all private and public Project Templates | `console.root.templates.manage` |
+| Manage available features | `console.root.features.manage` |
+| Manage all Marketplace resources | `marketplace.root.manage` |
+
+#### Permissions to be assigned manually
+
+The following permissions must be assigned manually:
+
+| Capabilities | Permissions key |
+|-------------------------------------------------|---------------------------------------|
+| View all License | `console.root.licenses.view` |
+| Edit any License | `console.root.licenses.manage` |
+
+
+### Role binding example
+
+Suppose you have a feature team composed by: 1 _Project Manager_ and 1 _Technical Leader_, 1 _Senior Developer_ and 2 _Junior Developers_ and 2 _Designers_.
+This team works on a single Project with two environments:
+
+1. Production, on which only the _Project Manager_, the _Technical Leader_ and _Senior Developer_ can perform actions, and
+1. Development on which the 2 _Junior Developers_ can perform actions, too.
+
+What you might want could be a similar role Binding organization:
+
+- The _Project Manager_ and the _Technical Leader_ may want to have full access to the Project so they can be assigned the _Project Administrator_ role on the Project resource
+- The _Designers_ should be able to access the Project but they cannot perform any editing action on it, so they can be assigned the _Reporter_ role on the Project resource
+- The _Senior Developers_ can be assigned the _Maintainer_ role on the Project
+- The _Junior Developers_ can be assigned the _Developer_ role on the Project resource and then can be assigned the _Maintainer_ role only on the Development environment
+
+#### Assigning roles on resources
+
+When you wish to assign a role on a specific resource what you have to do is create a binding with a properly configured resource object.
+
+:::info
+For more information regarding how a binding is defined and how to configure the resources check out the [following documentation page](/products/console/api-console/api-design/authorization.md#rbac-storage).
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-filter.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-filter.png
new file mode 100644
index 0000000000..8fd057cb8b
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-filter.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-row-detail.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-row-detail.png
new file mode 100644
index 0000000000..0942c89a7a
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table-row-detail.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table.png
new file mode 100644
index 0000000000..7c9cd5ad78
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/audit-logs/table.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/add-members.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/add-members.png
new file mode 100644
index 0000000000..daf82f7424
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/add-members.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/create-group.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/create-group.png
new file mode 100644
index 0000000000..69e839867d
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/create-group.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/delete-group.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/delete-group.png
new file mode 100644
index 0000000000..465fe6e792
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/delete-group.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/edit-group.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/edit-group.png
new file mode 100644
index 0000000000..d2f093f859
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/edit-group.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/group-detail.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/group-detail.png
new file mode 100644
index 0000000000..8e29bcd405
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/group-detail.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/groups-portal.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/groups-portal.png
new file mode 100644
index 0000000000..bb24f3c03e
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/groups-portal.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/remove-member.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/remove-member.png
new file mode 100644
index 0000000000..b47a43f7f7
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-groups/remove-member.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_company_user.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_company_user.png
new file mode 100644
index 0000000000..3930137230
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_company_user.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_project_user.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_project_user.png
new file mode 100644
index 0000000000..d46fb35bc3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/add_project_user.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/company-identities.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/company-identities.png
new file mode 100644
index 0000000000..7aec71c540
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/company-identities.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role-at-project-level.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role-at-project-level.png
new file mode 100644
index 0000000000..ae88f22fdc
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role-at-project-level.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role.png
new file mode 100644
index 0000000000..9792abfce3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-group-role.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-project-sa.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-project-sa.png
new file mode 100644
index 0000000000..ebe9f14ca7
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-project-sa.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-sa-role.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-sa-role.png
new file mode 100644
index 0000000000..506ec5f938
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit-sa-role.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_at_project_level.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_at_project_level.png
new file mode 100644
index 0000000000..179240b934
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_at_project_level.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_company_user.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_company_user.png
new file mode 100644
index 0000000000..dbe4d598c4
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/edit_company_user.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/project-identities.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/project-identities.png
new file mode 100644
index 0000000000..547252b3b2
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/project-identities.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove-service-account.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove-service-account.png
new file mode 100644
index 0000000000..b7388aa21c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove-service-account.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove_user_direct_access.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove_user_direct_access.png
new file mode 100644
index 0000000000..d33886dc25
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-identities/remove_user_direct_access.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_client_secret.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_client_secret.png
new file mode 100644
index 0000000000..2320570409
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_client_secret.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_dropdown.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_dropdown.png
new file mode 100644
index 0000000000..5dc26347b8
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_dropdown.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_private_key_jwt.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_private_key_jwt.png
new file mode 100644
index 0000000000..c50ad20e99
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_company_sa_private_key_jwt.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_client_secret.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_client_secret.png
new file mode 100644
index 0000000000..a9cf4b6dca
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_client_secret.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_private_key_jwt.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_private_key_jwt.png
new file mode 100644
index 0000000000..a393e570a8
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/add_project_sa_private_key_jwt.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/delete_company_sa.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/delete_company_sa.png
new file mode 100644
index 0000000000..186af0db54
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/delete_company_sa.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/edit_company_sa.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/edit_company_sa.png
new file mode 100644
index 0000000000..33e142f61f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/edit_company_sa.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/service-accounts-portal.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/service-accounts-portal.png
new file mode 100644
index 0000000000..dc2a68a831
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-service-accounts/service-accounts-portal.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/add-user.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/add-user.png
new file mode 100644
index 0000000000..57f1f5f62c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/add-user.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/remove-user.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/remove-user.png
new file mode 100644
index 0000000000..2a01650673
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/remove-user.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/users-portal.png b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/users-portal.png
new file mode 100644
index 0000000000..7cca3ddeb1
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/img/manage-users/users-portal.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/index.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/index.md
new file mode 100644
index 0000000000..66a820f494
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/index.md
@@ -0,0 +1,52 @@
+---
+id: identity-and-access-management
+title: Identity and Access Management
+sidebar_label: Identity and Access Management
+---
+
+# Identity and Access Management
+
+Mia-Platform Console allows access to Company resources with specific authorization levels to three types of identities:
+- **User**: an actual individual whose account is configured for human-to-machine communication. Find out how to manage users in the [Users Management](/products/console/identity-and-access-management/manage-users.md) page.
+- **Service Account**: a non-human client which is used for automated processes and machine-to-machine communication. Learn all about service accounts in the [Service Accounts Management](/products/console/identity-and-access-management/manage-service-accounts.md) page.
+- **Group**: a group of users who are assigned the same privileges on a set of resources. Learn all about groups in the [Groups Management](/products/console/identity-and-access-management/manage-groups.md) page.
+
+Mia-Platform Console is based on hierarchical resources: assigning specific roles and permissions to the above mentioned identity types is important for defining responsibilities and privileges within your Companies and Projects. Discover more about it in the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) documentation.
+
+:::caution Important: Git provider vs Console permissions
+The management of roles and permissions aims at regulating access to resources exclusively at the Console level.
+Roles and permissions on the same resources at the Git provider level are not managed in the IAM Console Area; thus, roles at Git-level must be verified in order to prevent possible discrepancies that may appear between user permissions at the Console level and those the user has at the Git-level.
+
+For example, it could happen that a user who does not even have permissions to access a Company from the Console is, however, in a Git group with an assigned role that gives them Git-level permissions on those Company resources!
+
+Therefore, by giving permissions on resources to users, it is strongly suggested a double check on both Console-level and Git-level permissions.
+:::
+
+## The IAM Portal
+
+The **IAM (Identity and Access Management)** page in the Access Management section is designed to help you manage the level of access you want to grant to all kinds of identities inside your Company. The purpose of this page is to provide a **centralized role management system**: here, you will be able to view and manage roles directly assigned to identities that grant them specific permissions.
+
+This page also provides a useful shortcut for Company Owners to quickly add new users and service accounts to the Company.
+
+
+
+Find out more about managing your Company identities in the [Identities Management](/products/console/identity-and-access-management/manage-identities.md) page.
+
+## Managing Users, Groups and Service Accounts
+
+Besides the IAM section, there are three other specific management portals, one for each identity type: these pages provide specific governance tools based on the nature of the identity, be it a user, a group or a service account. From each portal you will be able to add and delete those identities, and to perform different actions based on the characteristics of each type of identity.
+
+The **Users** section is designed to view all user accounts of the Company, providing a way to add new ones or to completely remove access to the Company for existing ones.
+
+
+
+The **Groups** section displays all the groups of the Company with the assigned role and number of members, and allows you to create new groups. Each existing group is associated with a detail page where:
+- members can be viewed, added and removed
+- the group title and role can be modified
+- the group can be deleted
+
+
+
+The **Service Accounts** section shows all the service accounts of the Company, allowing the user to create new ones or permanently delete existing ones.
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-groups.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-groups.md
new file mode 100644
index 0000000000..44641c247c
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-groups.md
@@ -0,0 +1,175 @@
+---
+id: manage-groups
+title: Manage Groups
+sidebar_label: Manage Groups
+---
+
+Mia-Platform Console allows you to assign and manage authorization privileges to groups of users at Company level. Groups aim to simplify the management of a large number of users who have to be assigned the same privileges (e.g. a work team).
+
+Groups are considered a type of [identity](/products/console/identity-and-access-management/index.md#identity-and-access-management) whereby users with enough permissions can assign and manage roles on the following resources:
+
+* Company
+* Project
+* Runtime Environment
+
+:::note
+To find out more about roles management, check out the available [capabilities](/products/console/identity-and-access-management/console-levels-and-permission-management.md#users-capabilities-inside-console) that can be assigned to an identity.
+:::
+
+## Managing Company Groups
+
+:::info
+Each company has the flexibility to establish its own groups, allowing for distinct identities. Company Owners can configure and manage this feature specifically through the designated **Groups** section at the **Company** level, providing clear control over group settings.
+
+While groups offer an efficient way to manage user access, they're not the only way to handle permissions within a company. In fact, you still have the option to individually manage user privileges, or even use a combination of both approaches. For a deeper understanding of user management, you can refer to the dedicated [documentation page](/products/console/identity-and-access-management/manage-users.md#how-to-best-manage-your-users).
+:::
+
+
+
+At Company level, for each group, it is possible to manage:
+
+* Name: the name assigned to the group
+* Role: the group Company role
+* Members: adding and/or removing users from the group
+
+You can also locate existing groups in the IAM section, both at the Company and Project levels. In these sections, you have the ability to handle the roles assigned to these groups, similar to how you manage roles for other types of identities.
+
+
+:::caution
+Please be aware that certain permissions granted through the assigned Company role might be inherited on the Projects and Runtime Environments within that Company. It's important to be cautious while assigning roles to prevent unintended access to resources. You can verify the specific capabilities granted based on the chosen role by referring to the documentation page on [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md#users-capabilities-inside-console).
+:::
+
+### Creating a Group
+
+The Company Owner can initiate the group creation process by clicking the `Create group` button within the Groups section in the IAM section. During the creation process, it's necessary to specify both the name and the Company role for the group. There's also an option to optionally include members in the group.
+
+:::info
+During the creation process, the group can be also created without adding members. This action can still be performed later on, after the group has already been created, from the [group detail page](/products/console/identity-and-access-management/manage-groups.md#editing-a-group).
+:::
+
+
+
+
+
+
+
+
+
+Both existing users within the Company and new users who haven't been granted access yet can be included in a group. For new users, they must be registered on the Platform beforehand. When a new user is added to a group, they will receive an invitation email to join the Company. Once a user belongs to at least one group within a Company, they will be able to access that Company's resources.
+
+:::info
+If the user isn't already registered on the Platform, kindly initiate a [Service Request](https://makeitapp.atlassian.net/servicedesk/customer/portal/21/group/79/create/340) to invite them to sign up on the Platform.
+:::
+
+### Editing a Group
+
+After a group has been created, it is possible to view its detail page.
+
+
+
+From this page, a Company Owner can perform the following actions:
+
+* Change group name
+* Edit group Company role
+* Add new members to the group
+* Remove members from the group
+
+When clicking on the *Edit* button in the section header, the edit group modal will show up, where you can change the group name and Company role:
+
+
+
+
+
+
+
+
+
+To add new members to the group, simply click the *Add members* button to open this dialog:
+
+
+
+
+
+
+
+
+
+To remove a member from the group, click on the delete button on the corresponding row and confirm your action:
+
+
+
+
+
+
+
+
+
+:::caution
+If a user's access to a Company is solely tied to their membership in a specific group, removing them from that group will lead to a loss of access to the Company for that user.
+
+However, if a user has access through multiple Company Groups or holds an individual Company role, removing them from one group will NOT result in a loss of Company access. It's important to carefully consider the remaining privileges the user might still have on Company resources.
+:::
+
+:::info
+To completely revoke user access to a Company, you can take a single action from the [Users section](/products/console/identity-and-access-management/manage-users.md#removing-a-user).
+:::
+
+### Deleting a Group
+
+A group can be deleted by accessing its detail page, clicking on the `Delete` button at the end of the page and then confirming the action.
+
+:::caution
+Deleting a group could potentially lead to the loss of Company access for members of that group who aren't part of any other Company group or don't hold a specific individual Company role.
+
+If a user's access to the Company is solely dependent on their membership in a group, removing them from that group or deleting the group altogether will result in them losing access to the Company.
+
+However, if a user has access through multiple Company groups or holds a specific individual Company role, deleting a group will NOT lead to loss of Company access for that user. It's crucial to be mindful of the remaining privileges the user might have on Company resources.
+:::
+
+
+
+
+
+
+
+
+
+
+## Managing Group roles
+
+All identity roles are managed from the [IAM section](/products/console/identity-and-access-management/manage-identities.md), which is specifically dedicated to the governance of roles and accesses to the resources of the Company.
+
+As a result, the Company role of a group can be modified not only from the Groups section, but also from the IAM section.
+
+### Managing Group role at Company level
+
+To edit a group's role from the IAM section, simply click on the edit button for the desired group row and select the new role.
+
+
+
+
+
+
+
+
+
+
+### Managing Group role at Project level
+
+Groups which have access to a Company are shown in the IAM section inside the Project Overview area of a Project belonging to that specific Company.
+You can change the role of the group in the Project or in any Project Runtime Environment. To do so, just open the editing dialog and select the new role of the group for the Project itself and/or for Project Runtime Environments.
+
+
+
+
+
+
+
+
+
+
+:::note
+While the Project IAM section displays all the identities from the Company, it's important to note that not all these identities necessarily have access to the Projects. Access depends on the roles assigned to them within the Company and how permissions are inherited.
+
+For further information about permissions and role inheritance, check out the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) page.
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-identities.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-identities.md
new file mode 100644
index 0000000000..05e49673cb
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-identities.md
@@ -0,0 +1,250 @@
+---
+id: manage-identities
+title: Manage Identities
+sidebar_label: Manage Identities
+---
+
+Mia-Platform Console enables certain users to manage the privileges of other identities, which can be other users, but also groups and service accounts.
+Granting accesses and permissions to Company resources can be performed through the **IAM (Identity and Access Management) section**, which allows role assignment on the following Console resources:
+
+* Company
+* Project
+* Runtime Environment
+
+Users with enough administrative permission can manage roles and permissions given to users, service accounts and groups and perform actions on them at both Company and Project levels. This grants them ownership over the decision-making process regarding which resources are accessible and at what level of authorization.
+
+:::info
+To find out more about roles check out the available [capabilities](/products/console/identity-and-access-management/console-levels-and-permission-management.md#users-capabilities-inside-console) that can be assigned to an [identity](/products/console/identity-and-access-management/index.md#identity-and-access-management).
+:::
+
+## Managing Company Identities
+
+At the Company level, a Company Owner has visibility of the Access Management section. In particular, from the **IAM portal**, a Company Owner can manage all identity permissions and regulate their access to the resources of the Company.
+
+
+
+:::caution
+Please note that some permissions defined by the Company role may be inherited on the Projects and Runtime Environment owned by the Company itself.
+Always pay attention when assigning roles in order to avoid providing undesired access to resources!
+:::
+
+### Editing Identity roles at Company level
+
+In the following paragraphs, we will describe how to manage identity roles that grant access privileges to Company resources.
+
+#### User role management
+
+The IAM section allows user account management through individual role assignment. This means that the users with an assigned Company role have been directly granted access to the Company.
+
+A user role in the Company can be modified: to do so, simply click on the edit button for the desired user row and select the new role.
+
+
+
+
+
+
+
+
+
+If you want to discover more about users, [go to the users documentation](/products/console/identity-and-access-management/manage-users.md#managing-company-users).
+
+#### Group role management
+
+Alternatively, you may consider to manage user permissions through groups. Groups facilitate the governance of a large number of users who need to be granted the same set of privileges (e.g. a work team).
+
+A group role in the Company can be modified: to do so, simply click on the edit button for the desired group row and select the new role.
+
+
+
+
+
+
+
+
+
+If you want to discover more about groups, [go to the groups documentation](/products/console/identity-and-access-management/manage-groups.md#managing-company-groups).
+
+:::info
+If you want to find out how to best manage your users according to your business needs, you can have a look at these [use cases](/products/console/identity-and-access-management/manage-users.md#how-to-best-manage-your-users) where we discuss both individual and group access management scenarios.
+:::
+
+#### Service account role management
+
+The IAM section is also designed to manage service account roles at Company level. In order to update the role of an existing service account, click on the edit button on the corresponding row and select the new role.
+
+
+
+
+
+
+
+
+
+### Adding a new Identity at Company level
+
+From the IAM portal, both user accounts and service accounts can be added to the Company.
+
+:::note
+Even though this portal is intended to manage identity roles, this is a useful shortcut for Company Owners to quickly add new users or service accounts to their Company without having to navigate to the respective portals.
+:::
+
+#### Adding a user
+
+A Company Owner can add a new user by pressing the *Add user* button. The user invitation process will require the invited user email to be provided.
+
+
+
+
+
+
+
+
+
+The provided email will be searched throughout existing users and, if a match is found, the user will be invited to the Company with the specified role.
+
+:::info
+If the user does not exist in the Platform, please open a Service Request for it to be created.
+:::
+
+#### Adding a service account
+
+It is also possible to add new service accounts by selecting the *Add Service Account* option in the *Add user* dropdown. The creation process will require the name, role and desired authentication method of the service account.
+
+To learn more details about how to add a service account to your Company, visit the [Service accounts management](/products/console/identity-and-access-management/manage-service-accounts.md#adding-a-service-account) page.
+
+
+
+### Removing access to the Company
+
+The IAM section can also be used to remove user and service account access from a Company.
+
+#### Removing a user
+
+Removing a user from the IAM table results in removing the role assigned to that user.
+Without permissions granted, the user loses access to the Company, **with the exception** of when that user also belongs to at least one [Company group](/products/console/identity-and-access-management/manage-groups.md).
+In that specific case, the user does not lose access to the Company, and their permissions on it are defined solely by the privileges given to the group/groups to which the user belongs.
+
+
+
+
+
+
+
+
+
+:::warning
+Removing a user from the IAM portal will remove permissions specifically assigned to that user on every Project and Runtime Environment of the Company.
+While the user may be invited back in the Company, all their previously existing roles - on the contrary - will be lost and cannot be recovered, meaning they must be reassigned from scratch.
+:::
+
+#### Removing a service account
+
+From the IAM portal it is also possible to remove service accounts from the Company. In this case, the service account is permanently deleted from the Company, so you will need to create a brand new one if you need it again.
+
+
+
+
+
+
+
+
+
+## Managing Identity roles at Project and Environment levels
+
+A user with enough administrative permission on a specific Project will be able to view all the existing identities in the Company and assign them the desired role on the specific Project (and, optionally, on each existing Runtime Environment).
+
+
+
+:::note
+Even though the Project IAM portal shows all the Company identities, this does not mean that all the identities have access to the Project, as this depends on their assigned role in the Company and how the permissions are inherited.
+
+For further information about permissions and role inheritance, check out the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) page.
+:::
+
+### Editing Identity roles at Project level
+
+An identity role in the Project or any of the Project Runtime Environments can be modified. To do so, just open the editing dialog and select the proper role for the Project itself or for each Runtime Environment.
+
+For users:
+
+
+
+
+
+
+
+
+
+For service accounts:
+
+
+
+
+
+
+
+
+
+For groups:
+
+
+
+
+
+
+
+
+
+### Adding a new Identity at Project level
+
+Users and service accounts can be added to a Company with specific Project and Environment roles from the Project Overview area.
+
+:::note
+This is a useful shortcut for Company Owners that want to directly add users and service accounts to their Company with specific permissions on a particular Project, without having to navigate to the respective portals.
+:::
+
+#### Adding a user
+
+The Company Owner can add a new user to a Company by pressing the *Add user* button in the IAM portal inside the Project Overview area. Here, the user can be assigned a Company role and additional roles on the specific Project and its Runtime Environments. The user invitation process will also require the invited user email to be provided.
+
+
+
+
+
+
+
+
+
+The provided email will be searched throughout existing users and, if a match is found, the user will be invited to the Company with the defined roles.
+
+:::info
+If the user does not exist in the Platform, please open a Service Request.
+:::
+
+#### Adding a service account
+
+The Company Owner can add a new service account by clicking on the *Add Service Account* option inside the *Add User* dropdown, on the top-right corner of the IAM portal inside the Project Overview area. Here, the service account can be assigned a Company Role and additional Roles on the specific Project and its Runtime Environments.
+
+The service account invitation process will also require an authentication method, as specified in the [Adding a new Service Account](/products/console/identity-and-access-management/manage-service-accounts.md#adding-a-new-service-account) paragraph.
+
+:::note
+New service accounts are always instantiated at Company level: you can create a service account from the Project Overview area, but it will still be shared with the whole Company.
+:::
+
+With the Client Secret Basic method:
+
+
+
+
+
+
+
+
+With the Private Key JWT method:
+
+
+
+
+
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-service-accounts.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-service-accounts.md
new file mode 100644
index 0000000000..037cc0cbba
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-service-accounts.md
@@ -0,0 +1,249 @@
+---
+id: manage-service-accounts
+title: Manage Service Accounts
+sidebar_label: Manage Service Accounts
+---
+
+Mia-Platform Console allows the creation of service accounts, which are typically used for automated processes or to allow a service to access resources on behalf of multiple users.
+
+Just like human users, service accounts can be assigned roles at Console, Company, Project or Runtime Environment levels, according to which they can perform different types of actions.
+
+:::note
+To find out more about roles check out the available [capabilities](/products/console/identity-and-access-management/console-levels-and-permission-management.md#users-capabilities-inside-console) that can be assigned to an [identity](/products/console/identity-and-access-management/index.md#identity-and-access-management).
+:::
+
+### What can you do with a Service Account?
+
+Potentially, every action a user can perform in the Console can be entrusted to a dedicated service account, which will execute it automatically.
+
+For instance, you can grant a service account the permissions to make automatic deploys: this can significantly streamline the whole process of deploying code changes to an application. The service account could use its credentials to access the appropriate deployment resources and automatically deploy new versions of the application as soon as new code is pushed to the source code repository.
+This allows teams to implement a CI/CD workflow that can improve the speed, reliability and scalability of their software development processes.
+
+A service account can also be used to monitor and log Kubernetes resources, such as Pods, Deployments and Services. Once authorized, the service account can use logging and monitoring tools to collect and analyze data on resource usage, performance metrics and other important indicators.
+
+:::info
+In this [article](https://blog.mia-platform.eu/en/service-account-m2m-with-security-in-mind), you can have an in-depth look at some best practices for effectively managing service accounts.
+:::
+## Managing Company Service Accounts
+
+A user with enough administrative permission on a specific Company will be able to view the existing service accounts in the Company, add new ones and delete existing ones from the **Service accounts section**.
+
+
+
+### Adding a Service Account
+
+The Company Owner can add a new service account by clicking on the *Add Service Account* button.
+
+The service account creation process will require the following information:
+- Name: a human-readable name to identify the service account
+- Role: the Company role to be assigned to the service account
+- Authentication method: the method used to verify the identity of the service account can be of two types
+ - **Client Secret Basic**: the service account authenticates by presenting its `client_id` and `client_secret` in the Authorization header of the request, in the format `Authorization: Basic `. The Console then decodes the header and validates the credentials against its records to authenticate the client.
+
+
+
+
+ 
+
+
+
+
+ - **Private Key JWT**: the service account authenticates by signing a JWT (JSON Web Token) using its private key. The client includes a JWT in the authentication request, with specific claims set to appropriate values. The Console then verifies the JWT by validating the signature using the client public key provided during service account creation, and checking that the claims are valid and match its records.
+
+ This authentication method provides better security than `client_secret_basic`, because the private key is never transmitted over the network neither shared with the server. However, it requires more setup and configuration on the client side to generate and manage the private and public keys.
+ We highly suggest to use this method whenever it is required not to share the credentials with the server or you cannot trust the network the service account is using.
+
+
+
+
+ 
+
+
+
+
+:::info
+Find out more about how these authentication methods work in the Console in the [service account authentication](/products/console/identity-and-access-management/manage-service-accounts.md#service-account-authentication) paragraph.
+:::
+
+### Removing a Service Account
+
+A service account can be removed from the Company by clicking the delete icon on the corresponding table row and confirming the action.
+
+
+
+
+
+
+
+
+
+:::warning
+Removing a service account from the Company will permanently delete the account and all its existing roles, which will be lost and cannot be recovered.
+:::
+
+## Managing service account roles
+
+Service account roles are managed from the [IAM portal](/products/console/identity-and-access-management/manage-identities.md), which is specifically dedicated to the governance of roles and accesses to the resources of the Company.
+
+### Managing Service Account role at Company level
+
+To modify a service account role in the Company, simply click on the edit button for the desired service account row and select the new role.
+
+
+
+
+
+
+
+
+
+:::caution
+Please note that some permissions defined by the Company role may be inherited on the Projects and Runtime Environment owned by the Company itself.
+Always pay attention when assigning roles, in order to avoid providing undesired access to resources!
+:::
+
+### Managing Service Accounts at Project level
+
+A user with enough administrative permission on a specific Project will be able to view all the existing service accounts inside the Project Overview area of a Project belonging to that specific Company. From there, the user can edit the role of service accounts on the specific Project (and, optionally, on each existing Runtime Environment).
+
+
+
+
+
+
+
+
+
+:::note
+Although the Project IAM portal shows all the Company's identities, this does not mean that all of the identities have access to the Project, since this depends on the role they are assigned in the Company and how the permissions are inherited.
+
+For further information about permissions and role inheritance check out the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) page.
+:::
+
+## Managing Company-independent Service Accounts
+
+Root service accounts are a special kind of Company-independent service accounts that can be assigned permissions to perform [root-level operations](/products/console/identity-and-access-management/console-levels-and-permission-management.md#console-root-level-permissions).
+
+:::info
+Only Console Super Users with administrative capabilities can add or delete service accounts independent from the Company, since they are the only ones who can assign root-level permissions to identities. Note that Company-independent service accounts with assigned root-level permissions are only visible and manageable at back-office level, and they will never be visible from a Company IAM portal.
+:::
+
+### Creating Root Service Accounts
+
+In order to create a new Root service account, you need to contact the `/api/service-accounts` endpoint.
+
+You will need to provide the following parameters in the body:
+
+- `tokenEndpointAuthMethod`: `client_secret_basic` or `private_key_jwt`.
+- `publicKey` (optional): only necessary if you choose `private_key_jwt` as an authentication method. Read [Adding a new Service Account](#adding-a-new-service-account) for further information.
+- `name`: the Root service account name.
+- `permissions`: a list of permissions to assign to the service account, separated by a comma. See [Console levels and permission management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) for a reference of the available permissions.
+
+To authenticate your request, you will need to provide your access token and the Console client key.
+
+Here is an example of cURL request for creating a Root service account with the `client_secret_basic` authentication method:
+
+```shell
+curl --location --request POST 'http://[my-console-url]/api/service-accounts' \
+ --header 'Content-Type: application/json' \
+ --header 'Client-key: [console-client-key]' \
+ --header 'Authorization: Bearer [my-access-token]'
+ --data '{
+ "name": "Example Service Account",
+ "permissions": ["console.root.user.bind", "console.root.user.manage"],
+ "tokenEndpointAuthMethod": "client_secret_basic"
+ }'
+```
+
+Example response:
+
+```json
+{
+ "clientId": "[clientId]",
+ "clientSecret": "[clientSecret]",
+ "clientIdIssuedAt": 1681984988
+}
+```
+
+:::warning
+Remember to store in a secure place both the `clientId` and `clientSecret` as those will be needed to authenticate requests from the service account.
+:::
+
+### Deleting Root Service Accounts
+
+To delete a Root service account, you need to contact the `/api/service-accounts/{clientId}` endpoint, providing the `clientId` obtained from the creation response.
+
+To authenticate your request, you will need to provide your access token and the Console client key.
+
+Here is an example of cURL request for deleting a Root service account:
+
+```shell
+curl --location --request DELETE 'http://[my-console-url]/api/service-accounts/[clientId]' \
+ --header 'Content-Type: application/json' \
+ --header 'Client-key: [console-client-key]' \
+ --header 'Authorization: Bearer [my-access-token]'
+```
+
+## Service Account authentication
+
+In order to authenticate to the Console, a service account needs to contact the `/api/m2m/oauth/token` endpoint, providing the correct authentication information based on the chosen authentication method.
+
+:::note
+The access token you obtain in this process has an expiration date, after which you will necessarily need to contact the endpoint again to get a new one.
+:::
+
+Here is an example of cURL request for service account authentication with the `client_secret_basic` method:
+
+```shell
+curl --location \
+ --request POST 'http://[my-console-url]/api/m2m/oauth/token' \
+ --header 'Content-Type: application/x-www-form-urlencoded' \
+ --header 'Authorization: Basic base64(client_id:client_secret)' \
+ --data-urlencode 'grant_type=client_credentials'
+```
+
+Example response:
+
+```json
+{
+ "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6ImtleUlEIiwidHlwIjoiSldUIn0.eyJleHAiOjE1OTE3OTg1OTYsImlhdCI6MTU5MTc5NDk5NiwiaXNzIjoidGVzdC1pc3N1ZXIiLCJzdWIiOiJjbGllbnQtaWQiLCJwZXJtaXNzaW9ucyI6W119.tfuIjL8ZN7dFmtT3n9NQLxY6Jhq1BoVZwb_LhTZS0zLNqxNQjQA-5-bN6-vne1ZJg9fBeRkq3aKxGjWCuruXTjYRfDLZwMSFoP3ki6NtUrdAqbse_c2J6DgI5m_F44NOZJFGZ8fbMydox5HV19swaozF32-aFN7UN53zZ7wV0tMdVXc-Nvf2WU8udGVXlqNtlMpQC2JZjSh8GeOljxZD4O6PDmp55ZoIcp7TscEzywT4yzUVJ78cLvMx1_rgZTto687XPJYdiqjdsI5kg7mSDH7_Bn9BfAR3Ln6qrPC_VieqAWf8-YmloyQNxx8dER8Yl-vDMCkHp3Z9Hla0XOrrm9F8IEyEQj5qmA_3TewppaDn3lu8Q4qYy_7v5lGSWTfx8PwaNHT5rRnDz10FI59KjM4WMzheTkqJ0Bw3dR-p1huF6iqoMsvnw5HfvdyyYP9_mMu0uw4JZiXInIR3qtmGZF6QGeeYK-l1atx1QRq-O5jvqZUy2hYFsJCLQEAHhF2jU5bWjbMjDsgSn1FHnzJY7IjRUNND6BuT4aBJzz0nspwy4fZhJTLrLLwFI3cjt17m5Ngrb9JY88dhGXLhAnWzjIDPWDM7Ao4YfQ2DHp2CM0P5OBB9sy8kXCgvv4ICAXv4cIEXIaMCE7QsPLHX8UqdwvP7-ygOyvCRRY_5seT70GQ",
+ "token_type": "Bearer",
+ "expires_in": 3600
+}
+```
+
+The same request can be made with the `private_key_jwt` authentication method:
+
+```shell
+curl --location \
+ --request POST 'http://[my-console-url]/api/m2m/oauth/token' \
+ --header 'Content-Type: application/x-www-form-urlencoded' \
+ --data-urlencode 'grant_type=client_credentials' \
+ --data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer' \
+ --data-urlencode 'client_assertion=' \
+ --data-urlencode 'client_id=' \
+ --data-urlencode 'token_endpoint_auth_method=private_key_jwt'
+```
+
+:::info
+**What are the main components of an assertion JWT?**
+
+- **Header**: The header of a JWT contains metadata about the token, such as the algorithm used to sign the token. The header is a JSON object that should be encoded in Base64Url format and has the following fields:
+ - `alg`: `RS256`
+ - `typ`: `JWT`
+ - `kid`: the Key ID (`kid`) that the is returned during service account creation
+
+- **Payload**: The payload of a JWT contains the claims that are being made about the identity of the client. The payload is also a JSON object that is encoded in Base64Url format and has the following fields:
+ - `iss` (issuer): the Client ID that the is returned during service account creation
+ - `sub` (subject): the Client ID that the is returned during service account creation
+ - `aud` (audience): `console-client-credentials`
+ - `jti` (JWT ID): a custom string that will be used against replay attacks
+ - `iad` (issued at): timestamp when this JWT is being issued
+ - `exp` (expires at): timestamp when this JWT will have to be considered expired
+
+- **Signature**: The signature of a JWT is used to verify the integrity of the token and to ensure that it has not been tampered with. The signature is created by combining the encoded header and payload with a secret key using a specified cryptographic algorithm.
+:::
+
+:::info
+For further details and practical examples on how to perform OAuth2 compliant client credential flows, check out the [Client Credentials Service documentation](/runtime-components/plugins/client-credentials/20_usage.md)
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-users.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-users.md
new file mode 100644
index 0000000000..5782f40be0
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/manage-users.md
@@ -0,0 +1,124 @@
+---
+id: manage-users
+title: Manage Users
+sidebar_label: Manage Users
+---
+
+Mia-Platform Console allows the creation of user accounts, which are typically used as digital identities for human users who need to access resources with certain privileges and permissions.
+
+User accounts can be assigned roles at Console, Company, Project or Runtime Environment levels, according to which they can perform different types of actions.
+
+## Managing Company Users
+
+Users inside the Console can be part of one or more Companies. From the **Users section** at the Company level, a Company Owner can view and manage all user accounts of a Company. From this section, new users can be added to the Company and existing ones can be removed from it completely.
+
+:::info
+The Users section is especially intended to help Company Owners have an immediate view of all users with access to their Company and how they have acquired it: if a user has an assigned Company role, it means they have direct access to the Company thanks to an individual binding.
+This table, however, also shows the groups each user is a member of, meaning that even if no Company role is assigned, the user has access to the Company thanks to those groups membership.
+:::
+
+
+
+### Adding a User
+
+A Company Owner can add a new user by pressing the *Add user* button in the Users section. The user invitation process will require the invited user email to be provided.
+
+
+
+
+
+
+
+
+
+The provided email will be searched throughout existing users and, if a match is found, the user will be invited to the Company with the specified role.
+
+:::info
+If the user does not exist in the Platform, please open a Service Request for it to be created.
+:::
+
+### Removing a User
+
+A Company Owner can remove a user from the Company by pressing the delete user button of the desired row in the Users section.
+
+:::info
+The user will be revoked personal access to the Company and will also be kicked out of all groups they are part of.
+:::
+
+
+
+
+
+
+
+
+
+## Managing User roles
+
+User roles are managed from the **IAM portal**, which is specifically dedicated to the governance of roles and accesses to the resources of the Company. Find out how to edit a user's role in the [Identities Access Management documentation page](/products/console/identity-and-access-management/manage-identities.md).
+
+### Managing User role at Company level
+
+From the IAM portal, the Company role assigned to the user can be edited by clicking on the edit button on the corresponding row:
+
+
+
+
+
+
+
+
+
+### Managing User role at Project level
+
+Users with access to a Company are also shown in the IAM portal inside the Project Overview area of a Project belonging to that specific Company.
+You can change the role of a user in the Project or in any Project Runtime Environment. To do so, just open the editing dialog on the desired row and select the new role of the user for the Project itself and/or for Project Runtime Environments.
+
+
+
+
+
+
+
+
+
+## How to best manage your users
+
+Are you wondering whether **organizing your users through individual role assignments** is the smartest and most effective way to manage the user access to your Company? Or whether the best solution would be to **organize them into groups** instead?
+There is no right or wrong answer to this question: it depends on your organizational needs.
+Here below you can find some helpful hints that can help you find an answer that better suits your own requirements.
+
+### Team composition
+
+For example, if you need to provide **the same access privileges to multiple users** in your Company, for sure the simplest and most efficient way is to manage them through [groups](/products/console/identity-and-access-management/manage-groups.md).
+
+On this purpose, imagine that you have to manage a team composed by a **large number of developers**. You can create a group (e.g., "My Company Developers"), add them all as group members, and assign the most appropriate role (e.g., `Developer` role) to the group. This will result in all your users becoming users of the Company with `Developer` role by virtue of being part of that group of developers.
+In this use case, the choice of managing your users through groups allows you to **avoid having to manually assign** the same role to each user, which may be a time-consuming and tedious activity, especially when you have to deal with a large number of users.
+
+Furthermore, having all of your users grouped within such a group allows you to have a **quick comprehensive view** of who the members of the group are (in our example, the developers) and what access permissions to the Company are assigned to them (`Developer` role in this case).
+
+Alternatively, if the composition of your Company **team is small and heterogeneous** (e.g., there is a Project Manager, a Senior Developer, a Junior Developer, and a Designer), it might still be functional to manage those users through **individual role assignment**.
+For example, at Company level, you may assign the `Company Owner` role to the Project Manager, the `Project Administrator` role to the Senior Developer, the `Developer` role to the Junior Developer, and the `Reporter` role to the Designer.
+
+:::info
+Keep in mind that these different user management methods are not mutually exclusive! You can decide to apply them both, in order to find your specific needs.
+:::
+
+For instance – going on with the aforementioned example – imagine that your team has now expanded by welcoming new Junior Developers. At this point, it may be particularly useful to create an ad-hoc group of users (e.g., "My Company Developers") in which to include all the Junior Developers of your Company (the new ones plus the initial one).
+Now let us remember, however, that one of those Developers (the first one) was initially assigned the `Developer` role at individual level. This means that one Developer will have both an individual role and a role conferred by the group membership. You don’t have to worry about this, as roles in Console always add up and therefore it does not represent a problem of any kind.
+
+### Extension and governance of user privileges
+
+The dual management of users – through a combination of individual roles and group roles – also allows for more **personalized governance of access** to the resources of your Company: imagine, for example, that the initial Junior Developer (who has both an individual role and the role attributed by group membership) has now become a Developer Expert, having increased the responsibilities within some of the Projects of your Company. At that point, you might want to give that user additional privileges only on those specific Projects.
+You can do it by assigning, to that user, a role at Project level that expands the capabilities currently enabled by the `Developer` role assignment at Company level (e.g., being able to deploy on a specific Projects by assigning the `Maintainer` role to that user).
+
+Nevertheless, once again, managing users through groups can be useful even in this case, especially when the number of users to which to assign roles on specific resources increases. As a matter of fact, thanks to groups, you can actually increase the capabilities on specific resources for a batch of users in your Company in an easier way.
+
+More practically speaking, if you want – for instance – to **extend privileges** to all your Junior developers **on a specific Project**/Runtime Environment (e.g., by elevating that group's role to `Maintainer` on a specific Project, in order to provide them with Deploy trigger permission on that), thanks to groups you can extend with just one action that privilege to all of your Junior developers: you only have to assign to the "My Company Developers" group the `Maintainer` role specifically on the desired Project/Runtime Environment.
+
+Otherwise, if they were not managed through groups, this action of assigning `Maintainer` role on that Project (or Project Runtime Environment) would have to be repeated for each of the members, which is – again – a time-consuming (and even error-prone) activity.
+Moreover, if you wanted to grant this privilege only for a limited period of time, then restoring the initial role setting would again have to be done manually for each of these members, highlighting this bottleneck even more.
+
+By contrast, through groups, for instance, the `Maintainer` **role disassignment** from that specific Project (or Project Runtime Environment) – to restore the initial `Developer` role assigned at Company level – would have been a more effective and circumscribed activity, keeping access governance on that Project more organized and flexible.
+
+To sum up, user management use cases are many, as well as the different organizational needs, and – in this landscape – Mia-Platform Console allows you to better structure access to resources as you prefer, giving you freedom in governing access levels of your Company users.
\ No newline at end of file
diff --git a/versioned_docs/version-14.5.1/products/console/identity-and-access-management/monitor-audit-logs.md b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/monitor-audit-logs.md
new file mode 100644
index 0000000000..775f662bda
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/identity-and-access-management/monitor-audit-logs.md
@@ -0,0 +1,43 @@
+---
+id: monitor-audit-logs
+title: Monitor Audit Logs
+sidebar_label: Monitor Audit Logs
+---
+
+The **Mia-Platform Console** features a dedicated **Audit Log** section, enabling users with the necessary administrative permissions to monitor actions that are made within the Company.
+
+This feature is designed to ensure **transparency** and **accountability** in the use of the Mia-Platform Console.
+
+## Audit Logs section
+
+The **Audit Logs** feature is available at the **Company level** within the **Administration** section of the Console.
+Accessible exclusively to users with the **Company Owner** role, it provides a comprehensive overview of the actions performed by the *Identities* (*Users* and *Service Accounts*) on the Company's resources.
+
+Audit logs are displayed in a structured table format, offering the following details for each entry:
+
+- **Date and time** of the action
+- **Author** of the action (*Identity* that initiated the action)
+- **Operation performed** (*Creation*, *Edit*, or *Deletion*)
+- **Target resource** and its **Scope**
+- **Target Resource type**
+
+
+
+Additionally, you can view the **details of a specific log** by clicking the button at the end of each table row. This allows you to access more in-depth information about the logs that interest you most.
+
+
+
+### Filtering audit logs
+
+The **Audit Logs** section provides advanced filtering options for more precise log analysis. Users can filter logs by:
+
+- **Date and time** – Set a start date, end date, or a custom date range.
+- **Author** – Filter by a specific *Identity* or *Identity type*.
+- **Operation performed** - Search for logs based on *Creation*, *Edit*, or *Deletion* actions.
+- **Target resource type** – Narrow results based on the type of resource affected.
+
+
+
+:::info
+If you are using Mia-Platform PaaS, the log retention period is set to six months.
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/img/DevOps_Console_levels.PNG b/versioned_docs/version-14.5.1/products/console/img/DevOps_Console_levels.PNG
new file mode 100644
index 0000000000..fe42462e7a
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/img/DevOps_Console_levels.PNG differ
diff --git a/versioned_docs/version-14.5.1/products/console/img/Mia-Platform-infographic-overview.png b/versioned_docs/version-14.5.1/products/console/img/Mia-Platform-infographic-overview.png
new file mode 100644
index 0000000000..e13fae1272
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/img/Mia-Platform-infographic-overview.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/10_overview.md b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/10_overview.md
new file mode 100644
index 0000000000..60c821933e
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/10_overview.md
@@ -0,0 +1,25 @@
+---
+id: overview
+title: Mia-Platform Console MCP Server
+sidebar_label: Overview
+---
+
+
+
+The Mia-Platform Console MCP Server is a [Model Context Protocol (MCP)] server that provides seamless integration
+with Mia-Platform Console APIs, enabling advanced automation and interaction capabilities for developers and tools.
+
+This MCP Server is already used by the [Mia-Assistant](/products/console/assistant/overview.md) to make it the perfect
+companion for your daily work with Mia-Platform Console.
+
+The code is open source and available at this [GitHub repository](https://github.com/mia-platform/console-mcp-server):
+you can run it using the source code, or use a previous version with Docker.
+
+## Guides
+
+Below, you can find additional guides for using the `mcp-server`:
+
+- [Setup](/products/console/mcp/mcp-server/20_setup.md)
+- [Examples](/products/console/mcp/mcp-server/30_examples.md)
+
+[Model Context Protocol (MCP)]: https://modelcontextprotocol.io/introduction
diff --git a/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/20_setup.md b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/20_setup.md
new file mode 100644
index 0000000000..b1447f517e
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/20_setup.md
@@ -0,0 +1,195 @@
+---
+id: setup
+title: Setup
+sidebar_label: Setup
+---
+
+## Connecting to the remote Console MCP Server
+
+:::note
+Please also consider that this is available only for projects and companies in the [Mia-Platform PaaS](/infrastructure/paas/overview.md). To log in to the remote Console MCP Server in self-hosted installation, you must create a Service Account first.
+:::
+
+From version `v14.3.1` of the Mia Platform Console, it is possible to connect to the remote MCP Server from the dedicated endpoint, simplifying the configuration process and requiring only to authenticate at the server startup before to use all the tools and prompts of the official Mia-Platform Console MCP Server.
+
+This will simplify the usage of the MCP Server in your client, by connecting to the latest stable version.
+
+You can add it to your favorite AI Client that supports MCP servers (like VS Code, Gemini CLI, Claude Desktop and others) by creating a new configuration and using the following endpoint: `https://console.cloud.mia-platform.eu/console-mcp-server/mcp`.
+
+## Using Docker
+
+### Prerequisites
+
+1. To run the server in a container, you will need to have [Docker] installed.
+2. Once Docker is installed, you will also need to ensure Docker is running.
+3. Pull the docker image `docker pull ghcr.io/mia-platform/console-mcp-server` at your own preferred version (or `latest` if you want to try the nightly build)
+4. Login to Mia-Platform. You have two options:
+ - (a) *Service Account* - [Create a Mia-Platform Service Account] with `Client Secret Basic` authorization mode (the only one supported at this time) the `Client Secret Basic` one. In that case you can access to just one company at a time.
+ - (b) *User Authentication* - Assuming you have a valid Mia Platform account, you can simply omit the information about the service account and - at the MCP startup - your client will ask you to open for you a webpage where you can execute the login.
+
+:::note
+Authentication to the Console MCP Server via OAuth2 flow is available from the v1.2.0 of the Console MPC Server, and replaces the possibility to use the access token locally stored in [`miactl`][miactl].
+:::
+
+:::important
+When using Service Account session, the host you provide to the MCP Server **MUST** be the exact same as the one
+you created the Service Account in, including scheme and any possible trailing slash.
+:::
+
+### VS Code
+
+For manual installation, add the following JSON block to your MCP Server list file in VS Code.
+You can do this by pressing `Ctrl + Shift + P` and typing `MCP: List Servers`, or you can create a `.vscode/mcp.json` file inside your repository.
+
+Once you have done it, toggle Agent mode (located by the Copilot Chat text input) and the server will start.
+
+:::note
+The `mcp` key is not needed in the `.vscode/mcp.json` file.
+Also note that you can change the host of the Console instance to your custom installation.
+:::
+
+This is the configuration if you are using User Authentication with OAuth2 and Dynamic Client Registration.
+
+```json
+{
+ "servers": {
+ "mia-platform-mcp": {
+ "command": "docker",
+ "args": [
+ "run",
+ "-i",
+ "--rm",
+ "mcp-server",
+ "start",
+ "--stdio",
+ "--host=https://console.cloud.mia-platform.eu/"
+ ],
+ "type": "stdio"
+ }
+ },
+ "inputs": []
+}
+```
+
+This is the configuration if you are using a predefined Service Account.
+
+```json
+{
+ "inputs": [
+ {
+ "type": "promptString",
+ "id": "mia_client_id",
+ "description": "Mia-Platform Client ID",
+ "password": false
+ },
+ {
+ "type": "promptString",
+ "id": "mia_client_secret",
+ "description": "Mia-Platform Client Secret",
+ "password": true
+ }
+ ],
+ "servers": {
+ "mia-platform-console": {
+ "command": "docker",
+ "args": [
+ "run",
+ "-i",
+ "--rm",
+ "-e",
+ "MIA_PLATFORM_CLIENT_ID",
+ "-e",
+ "MIA_PLATFORM_CLIENT_SECRET",
+ "ghcr.io/mia-platform/console-mcp-server",
+ "mcp-server",
+ "start",
+ "--stdio",
+ "--host=https://console.cloud.mia-platform.eu"
+ ],
+ "env": {
+ "MIA_PLATFORM_CLIENT_ID": "${input:mia_client_id}",
+ "MIA_PLATFORM_CLIENT_SECRET": "${input:mia_client_secret}"
+ }
+ }
+ }
+}
+```
+
+:::tip
+If both the environment variables `MIA_PLATFORM_CLIENT_ID` and `MIA_PLATFORM_CLIENT_SECRET` are included, you will be asked to authenticate with your credentials. In this case, make sure you open the web page that Visual Studio Code will prompt you to open.
+:::
+
+:::tip
+If you have issues to authenticate because of an `invalid_client` error, please try to remove the DCR clients registrated using the `Authentication: Remove Dynamic Authentication Providers` option from the application menu.
+:::
+
+More about using MCP server tools in [VS Code's agent mode documentation].
+
+### Claude Desktop
+
+```json
+{
+ "mcpServers": {
+ "mia-platform-console": {
+ "command": "docker",
+ "args": [
+ "run",
+ "-i",
+ "--rm",
+ "-e",
+ "MIA_PLATFORM_CLIENT_ID",
+ "-e",
+ "MIA_PLATFORM_CLIENT_SECRET",
+ "ghcr.io/mia-platform/console-mcp-server",
+ "mcp-server",
+ "start",
+ "--stdio",
+ "--host=https://console.cloud.mia-platform.eu"
+ ],
+ "env": {
+ "MIA_PLATFORM_CLIENT_ID": "",
+ "MIA_PLATFORM_CLIENT_SECRET": ""
+ }
+ }
+ }
+}
+```
+
+### Gemini CLI
+
+Add `mia-platform-console` in `mcpServers` in file `~/.gemini/settings.json`.
+
+```json
+{
+ "mcpServers": {
+ "mia-platform-console": {
+ "command": "docker",
+ "args": [
+ "run",
+ "-i",
+ "--rm",
+ "-e",
+ "MIA_PLATFORM_CLIENT_ID",
+ "-e",
+ "MIA_PLATFORM_CLIENT_SECRET",
+ "ghcr.io/mia-platform/console-mcp-server",
+ "mcp-server",
+ "start",
+ "--stdio",
+ "--host=https://console.cloud.mia-platform.eu"
+ ],
+ "env": {
+ "MIA_PLATFORM_CLIENT_ID": "",
+ "MIA_PLATFORM_CLIENT_SECRET": ""
+ }
+ }
+ ...
+ }
+ ...
+}
+```
+
+[Docker]: https://www.docker.com/
+[miactl]: https://github.com/mia-platform/miactl
+[VS Code's agent mode documentation]: https://code.visualstudio.com/docs/copilot/chat/mcp-servers
+[Create a Mia-Platform Service Account]: https://docs.mia-platform.eu/docs/development_suite/identity-and-access-management/manage-service-accounts
diff --git a/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/30_examples.md b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/30_examples.md
new file mode 100644
index 0000000000..dda1d74210
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/30_examples.md
@@ -0,0 +1,67 @@
+---
+id: examples
+title: Examples
+sidebar_label: Examples
+---
+
+
+
+Here you can see some prompts that you can ask to the `mcp-server`.
+Remember to change the values inside the curly braces `{}` with your specific information.
+
+## Project Creation
+
+```txt
+Create a Mia-Platform Project named {projectName} in the {companyName} company using the {templateName} template
+```
+
+## Microservice Creation
+
+```txt
+In {projectName} project, create an endpoint /foo which exposes the service with name echo and docker image
+davidebianchi/echo-service. If the service not exists, create it.
+```
+
+```txt
+Create a microservice named {microserviceName} using the template {templateName} in the project {projectName}
+```
+
+## Runtime Environments and Workload Discovery
+
+```txt
+Which are the current configurations of the project {projectName}? Provide a table that lists all workloads, replicas, status and if it's source code, a container, or a resource.
+List also all endpoints exposed and if they are protected or public and which microservice exposes that endpoint
+```
+
+```txt
+Check all projects in the tenant {tenantName} and verify if there is code duplication and if items in the marketplace/software catalog are properly reused
+```
+
+```txt
+Show me the resource utilization of all services in project {projectName} in the PRODUCTION environment. Identify any services that are over-provisioned or under-provisioned
+```
+
+```txt
+Compare the configurations between DEV and PRODUCTION environments for project {projectName} and highlight any inconsistencies or differences that could cause deployment issues
+```
+
+## CRUD Service Management
+
+```txt
+Create a CRUD Service with the following collections in {projectName}:
+ - customers
+ - products
+ - payments
+ - shipping
+Add the properties needed to describe all domains
+```
+
+```txt
+Create a CRUD Service for an inventory management system with the following collections in {projectName}:
+ - items (with only this additional fields for SKU, name, description, quantity, location, supplier)
+ - suppliers (with only this additional fields for name, contact information, payment terms)
+ - purchase_orders (with only this additional fields for order date, supplier, items, status, delivery date)
+ - inventory_movements (with only this additional fields for item, quantity, direction, timestamp, reason)
+
+Add appropriate indexes for optimizing common queries
+```
diff --git a/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/40_prompt_gallery.md b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/40_prompt_gallery.md
new file mode 100644
index 0000000000..de72571a17
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/40_prompt_gallery.md
@@ -0,0 +1,605 @@
+---
+id: prompt_gallery
+title: Prompt Gallery
+sidebar_label: Prompt gallery
+---
+
+
+
+Here is a set of prompts that we are testing just right now and will be stable soon. You can try them out! If you
+provide us feedback to improve them, it will be greatly appreciated.
+
+Remember to change the values inside the curly braces `{}` with your specific information.
+
+## End-to-End Walking Skeleton
+
+```txt
+Create a Mia-Platform project named {projectName} that implements an e-commerce for selling items. Use the {projectBlueprint} template and the tenant {tenantName}.
+
+Reuse all items in the marketplace/software catalog to maximize reuse and minimize code written from scratch.
+
+Design the architecture with the following components:
+- A frontend in React
+- A backend for frontend in Node.js
+- A CRUD service
+- An API Gateway
+
+Configure the CRUD service with collections useful to:
+- Browse items and categories
+- Add items to cart
+- Calculate prices with discounts
+- Create and manage orders
+- Process payments using electronic payment methods
+- Send email notifications with order confirmations and shipping updates
+
+The user should be able to see order history and shipping status in their personal area.
+
+Protect the personal area and payment process with OpenID Connect.
+
+Scale all microservices from 2 to max 10 replicas.
+
+Once everything is created, deploy in the DEV Environment and provide me the status of all services when everything is up and running.
+
+Finally, provide the link to the application created.
+```
+
+```txt
+Create a Mia-Platform project named {projectName} for a hospital management system using the {projectBlueprint} template in the tenant {tenantName}.
+
+Use components from the marketplace where possible and include:
+- A staff portal built with React
+- A patient-facing mobile app backend
+- A CRUD service for patient records
+- A secure API Gateway with rate limiting
+
+Configure the CRUD service with collections for:
+- Patients
+- Appointments
+- Medical records
+- Billing
+
+Implement appointment scheduling workflows and notification services.
+Ensure all patient data is secured using proper authentication and authorization.
+
+Deploy to the DEV environment and show me the deployment status.
+```
+
+## Project Creation
+
+```txt
+Create a Mia-Platform Project named {projectName} using the default project blueprint in the tenant {tenantName}
+```
+
+```txt
+Create a Mia-Platform Project named {projectName} using the microservices-oriented blueprint in the tenant {tenantName} and enable continuous deployment
+```
+
+```txt
+Create a Mia-Platform Project named {projectName} for a data analytics platform. Use the {blueprintName} blueprint in the tenant {tenantName}. Configure three environments: DEV, STAGING, and PRODUCTION
+```
+
+## Microservice Creation
+
+```txt
+Add a new Node.js microservice named {microserviceName} to project {projectName}. Use the Express framework template and configure it with 2 replicas
+```
+
+```txt
+Create a Java Spring Boot microservice named {microserviceName} in project {projectName}. Set up proper health checks and configure 3GB of memory
+```
+
+```txt
+Add a Python FastAPI microservice named {microserviceName} to project {projectName}. Configure it to connect to the existing MongoDB instance and implement proper error handling
+```
+
+## Resource Creation
+
+```txt
+Create a microservice named {microserviceName} using the template {templateName} in the project {projectName}
+```
+
+```txt
+Create a microservice for a backend for frontend using the template in software catalog in the current project
+```
+
+```txt
+Create a MongoDB resource named {resourceName} in project {projectName} with 10GB storage and configure backups to run daily
+```
+
+```txt
+Add a Redis cache named {cacheName} to project {projectName} with 1GB memory and configure proper persistence options
+```
+
+## Runtime Environments and Workload Discovery
+
+```txt
+Which are the current configurations of the project {projectName}? Provide a table that lists all workloads, replicas, status and if it's source code, a container, or a resource.
+List also all endpoints exposed and if they are protected or public and which microservice exposes that endpoint
+```
+
+```txt
+Check all projects in the tenant {tenantName} and verify if there is code duplication and if items in the marketplace/software catalog are properly reused
+```
+
+```txt
+Show me the resource utilization of all services in project {projectName} in the PRODUCTION environment. Identify any services that are over-provisioned or under-provisioned
+```
+
+```txt
+Compare the configurations between DEV and PRODUCTION environments for project {projectName} and highlight any inconsistencies or differences that could cause deployment issues
+```
+
+## Workloads Troubleshooting and Coding
+
+```txt
+Check in Prod environment all containers and if there are any errors. If there is an error, highlight it and clone the source code of the service. Provide a code snippet to fix that code
+```
+
+```txt
+Analyze the logs of microservice {microserviceName} in project {projectName} from the last 24 hours. Identify any recurring errors and suggest fixes
+```
+
+```txt
+The microservice {microserviceName} in project {projectName} is experiencing high CPU usage. Analyze the code and configuration to identify potential bottlenecks and suggest optimizations
+```
+
+```txt
+Service {serviceName} in project {projectName} is crashing on startup. Review the logs, identify the root cause, and provide a solution
+```
+
+## API Management, Authentication and Authorization
+
+```txt
+Publish the endpoint /hello-world exposed by the microservice {microserviceName} and protect it with OAuth2. Only admin users can call that endpoint, configure authorization accordingly
+```
+
+```txt
+Create a public API endpoint /products in the {projectName} project that allows GET requests without authentication but requires OAuth2 authentication for POST, PUT and DELETE operations
+```
+
+```txt
+Implement rate limiting on the /api/v1/users endpoint in project {projectName} to prevent abuse. Allow 100 requests per minute for authenticated users and 10 requests per minute for anonymous users
+```
+
+```txt
+Configure cross-origin resource sharing (CORS) for all API endpoints in project {projectName} to allow requests from the domain example.com
+```
+
+## CRUD Service Management
+
+```txt
+Create a CRUD Service with the following collections:
+ - customers
+ - products
+ - payments
+ - shipping
+Add the properties needed to describe all domains
+```
+
+```txt
+Create a CRUD Service for an inventory management system with the following collections:
+ - items (with fields for SKU, name, description, quantity, location, supplier)
+ - suppliers (with fields for name, contact information, payment terms)
+ - purchase_orders (with fields for order date, supplier, items, status, delivery date)
+ - inventory_movements (with fields for item, quantity, direction, timestamp, reason)
+
+Add appropriate indexes for optimizing common queries and configure validation rules
+```
+
+```txt
+Add a new collection named 'reviews' to the existing CRUD Service in project {projectName}. Include fields for product_id, user_id, rating, comment, and date. Create a projection that joins reviews with products
+```
+
+```txt
+Configure full-text search on the 'products' collection in project {projectName} to allow users to search by name and description. Implement sorting options by price and popularity
+```
+
+## Microservice Orchestration (Flow Manager)
+
+```txt
+Orchestrate a Saga for purchasing orchestrating the following microservices:
+ - CartService, command AddToCart, event ItemAdded
+ - PriceCalculatorService, command CalculatePrice, event PriceCalculated
+ - PayService, command Pay, event Payed
+Check the API exposed by each service and configure the FlowManager accordingly
+```
+
+```txt
+Create a workflow in Flow Manager for a customer onboarding process that orchestrates:
+ - UserRegistrationService, command RegisterUser, event UserRegistered
+ - VerificationService, command VerifyEmail, event EmailVerified
+ - ProfileService, command CreateProfile, event ProfileCreated
+ - NotificationService, command SendWelcomeEmail, event WelcomeEmailSent
+
+Add proper error handling with compensation transactions if any step fails
+```
+
+```txt
+Implement an order processing workflow in project {projectName} that includes:
+ - Order validation
+ - Inventory check
+ - Payment processing
+ - Order fulfillment
+ - Shipping notification
+
+Configure timeouts for each step and implement retry logic for the payment processing step
+```
+
+## Data Pipelines Management (Fast Data)
+
+```txt
+Create a Fast Data Pipeline that aggregates information about Customer from system of record {sysofrecordName1} and system of record {sysofrecordName2}. Call that single view customer_sv.
+Inside customer_sv list:
+ - customer information
+ - orders
+ - preferences
+```
+
+```txt
+Build a real-time data pipeline in project {projectName} that processes IoT device data from Kafka topics. Transform the raw data into analytics-ready format and store in both MongoDB for real-time access and S3 for long-term storage
+```
+
+```txt
+Create a Fast Data Pipeline that integrates product data from multiple sources: the ERP system {erpSystem}, the e-commerce platform {ecommercePlatform}, and the PIM system {pimSystem}.
+Create a single view called product_sv with:
+ - Basic product information
+ - Inventory levels
+ - Pricing information
+ - Sales history
+ - Product relationships
+
+Configure real-time updates when any source system changes
+```
+
+```txt
+Implement a Fast Data Pipeline for customer behavior analysis that:
+ - Collects clickstream data from the website
+ - Combines it with purchase history from the CRM
+ - Creates a real-time customer profile with preferences and behavior patterns
+ - Stores the results in a dedicated collection for the recommendation engine
+```
+
+## Microfrontend Orchestration (micro-lc)
+
+```txt
+Create an internal tool (backoffice) using micro-lc and micro frontend composer.
+The backoffice should visualize:
+ - customers
+ - products
+ - payments
+ - shippings
+Create the pages accordingly using the CRUD services exposed in the project {projectName}
+```
+
+```txt
+Build a customer support dashboard using micro-lc in project {projectName} with:
+ - A ticket management interface
+ - A customer information panel showing order history
+ - A knowledge base search component
+ - A real-time chat interface
+
+Connect all components to their respective backend services and configure user roles for support agents and supervisors
+```
+
+```txt
+Create a multi-tenant admin portal using micro-lc with the following features:
+ - Tenant-specific branding and styling
+ - User management interface
+ - Subscription and billing management
+ - Feature configuration panel
+ - Analytics dashboard
+
+Ensure proper role-based access control for different admin user types
+```
+
+```txt
+Implement a modular operations dashboard for project {projectName} using micro-lc that includes:
+ - System health monitoring
+ - User activity tracking
+ - Resource utilization graphs
+ - Alert management
+ - Configuration panel
+
+Allow users to customize their view by selecting which components to display
+```
+
+## Blueprints Creation
+
+```txt
+Create a project blueprint starting from project {projectName} in the tenant {tenantName}
+```
+
+```txt
+Add to Software Catalog the microservice {microserviceName} in the project {projectName} converting to placeholders the real values inside ENV Vars and Config Maps. Call this item {itemName} and provide a proper description
+```
+
+```txt
+Create a comprehensive e-commerce project blueprint based on project {projectName}. Include all microservices, configurations, and resources but templatize environment-specific values as placeholders
+```
+
+```txt
+Create a blueprint for a standard microservice architecture with API Gateway, authentication service, and scalable backend services based on the project {projectName}. Name the blueprint "{blueprintName}" and add documentation explaining key components
+```
+
+## DevOps Tools Integration
+
+```txt
+Which are the available pipelines in GitLab repository connected to tenant {tenantName}?
+```
+
+```txt
+Configure a CI/CD pipeline for project {projectName} that includes:
+ - Code quality checks
+ - Unit and integration tests
+ - Security scanning
+ - Automatic deployment to DEV environment
+ - Manual approval for STAGING and PRODUCTION deployments
+```
+
+```txt
+Set up monitoring and alerting for all services in project {projectName} using Prometheus and Grafana. Configure alerts for:
+ - High error rates
+ - Slow response times
+ - Resource constraints
+ - Service unavailability
+```
+
+```txt
+Integrate SonarQube code quality checking into the CI pipeline for project {projectName} and configure it to block merges if quality gates fail
+```
+
+## Infrastructure Tools Integration
+
+```txt
+Describe the status of the cluster {clusterName} connected to tenant {tenantName}
+```
+
+```txt
+Show resource utilization of cluster {clusterName} including CPU, memory, and storage. Identify nodes that are approaching capacity
+```
+
+```txt
+Set up autoscaling for project {projectName} based on CPU utilization and request rate. Configure minimum and maximum pod counts for each service
+```
+
+```txt
+Configure network policies for project {projectName} to isolate services and restrict communication between microservices to only what's necessary for operation
+```
+
+## Project Migration
+
+```txt
+Starting from project {originProjectName} in the tenant {originTenantName} create another project named {targetProjectName} in the tenant {targetTenantName} with the same configurations of {originProjectName}
+```
+
+```txt
+Migrate project {projectName} from cluster {sourceCluster} to cluster {targetCluster}, ensuring all configurations, secrets, and resources are properly transferred
+```
+
+```txt
+Create a new version of project {projectName} that upgrades all dependencies and runtime versions to the latest compatible versions. Name it {newProjectName}
+```
+
+```txt
+Clone project {sourceProject} to create {targetProject}, but replace the authentication service with the new OAuth2 implementation from the marketplace
+```
+
+## Workload Scaling and Optimization
+
+```txt
+Are the number of replicas of the microservice {microserviceName} in project {projectName} correct in the production environment?
+```
+
+```txt
+Analyze the performance of all microservices in project {projectName} over the last week and recommend scaling adjustments based on usage patterns
+```
+
+```txt
+Optimize resource requests and limits for all services in project {projectName} based on actual usage patterns from the monitoring data
+```
+
+```txt
+Configure horizontal pod autoscaling for the {microserviceName} service based on custom metrics from the application (e.g., queue length, active users)
+```
+
+## Data Discovery
+
+```txt
+What are the properties of the Purchase Data Product? Who publishes it? Who consumes it?
+```
+
+```txt
+Map all data flows in project {projectName} showing how data moves between services and what transformations occur
+```
+
+```txt
+List all collections in the CRUD service of project {projectName} with their schemas, indexes, and relationships
+```
+
+```txt
+Show me all data products in tenant {tenantName} related to customer information, who produces them, and which applications consume them
+```
+
+## API Discovery
+
+```txt
+How can I retrieve the information about the logged-in user via API?
+```
+
+```txt
+List all available APIs in project {projectName} with their endpoints, methods, request parameters, and response formats
+```
+
+```txt
+Generate OpenAPI documentation for all RESTful services in project {projectName} and publish it to the developer portal
+```
+
+```txt
+Show me all endpoints in project {projectName} that handle customer data and verify if they are properly secured
+```
+
+## Legacy Systems Modernization
+
+```txt
+Starting from this repository {repoName}, analyze the code, split into microservices, and create a Mia-Platform project with the splitted microservices
+```
+
+```txt
+Analyze the monolithic application in repository {repoName} and propose a migration strategy to a microservices architecture on Mia-Platform. Identify bounded contexts and service boundaries
+```
+
+```txt
+Create API wrappers for the legacy system {legacySystemName} to expose its functionality through RESTful interfaces in project {projectName}
+```
+
+```txt
+Implement a strangler pattern to gradually migrate functionality from the legacy system {legacySystem} to new microservices in project {projectName}, starting with the customer management module
+```
+
+## Metrics and Analytics
+
+```txt
+What are the DORA metrics of the project {projectName} in the last 30 days?
+```
+
+```txt
+Calculate the average response time for all API endpoints in project {projectName} over the last week and identify the slowest endpoints
+```
+
+```txt
+Show me the usage patterns of the {microserviceName} API in project {projectName} broken down by hour of day and day of week
+```
+
+```txt
+Generate a report on error rates and types for all services in project {projectName} for the last month, grouped by service and error category
+```
+
+## Compliance and Auditing
+
+```txt
+Who has done the last releases in production in the last 7 days for the project {projectName}?
+```
+
+```txt
+Generate an audit report for all configuration changes in project {projectName} over the last month, including who made each change and when
+```
+
+```txt
+List all users who have accessed sensitive data in project {projectName} in the last 30 days and what actions they performed
+```
+
+```txt
+Verify that all services in project {projectName} comply with the company's security policy requirements for authentication, authorization, and data protection
+```
+
+## Concierge and Task Management
+
+```txt
+What are my tasks for today?
+```
+
+```txt
+Create a prioritized list of pending tasks related to project {projectName}, including code reviews, deployments, and issue resolutions
+```
+
+```txt
+Schedule a deployment of the latest version of {microserviceName} to production for tomorrow at 6:00 AM and notify the team
+```
+
+```txt
+What outstanding pull requests do I need to review for project {projectName}?
+```
+
+## Documentation and Self-Service
+
+```txt
+How can I configure the authentication service?
+```
+
+```txt
+Provide step-by-step documentation on how to implement rate limiting for APIs in a Mia-Platform project
+```
+
+```txt
+Generate comprehensive documentation for project {projectName}, including architecture diagrams, API references, and deployment instructions
+```
+
+```txt
+Create a troubleshooting guide for common issues with the CRUD service in project {projectName}, including error codes and resolution steps
+```
+
+## Observability and Logging
+
+```txt
+Show me the logs for microservice {microserviceName} in project {projectName} from the last hour filtered to only show error messages
+```
+
+```txt
+Set up distributed tracing across all services in project {projectName} and configure sampling rates appropriately
+```
+
+```txt
+Create a custom dashboard in Grafana for project {projectName} that shows key performance indicators for all microservices, including response times, error rates, and throughput
+```
+
+```txt
+Configure log aggregation for project {projectName} to centralize all application and system logs for easier troubleshooting
+```
+
+## Testing and Quality Assurance
+
+```txt
+Generate comprehensive test cases for the API endpoints in microservice {microserviceName} based on its OpenAPI specification
+```
+
+```txt
+Set up end-to-end testing for the critical user flows in project {projectName} using a testing framework of your choice
+```
+
+```txt
+Create a load testing scenario for project {projectName} that simulates peak traffic conditions and reports on performance metrics
+```
+
+```txt
+Implement chaos testing in the DEV environment for project {projectName} to verify system resilience when services fail
+```
+
+## Example of conversations
+
+You may start with a prompt and then within the context continue the conversations. Some examples
+
+```txt
+Create the project Demo Projects in my preferred tenant using all defaults
+```
+
+```txt
+What I can do now?
+```
+
+```txt
+Create a microservice to test the coding DevX. Choose you what is better.
+```
+
+```txt
+Clone the microservice in vscode and add the endpoint /hello-mia
+```
+
+```txt
+Test and push the code
+```
+
+```txt
+Deploy that microservice in dev environment
+```
+
+```txt
+Check the status, is up and running?
+```
+
+```txt
+Add the endpoint /hello-mia using the API Gateway and deploy that configuration
+```
+
+```txt
+It's all up and running? If yes provide me the link to call that endpoit
+```
diff --git a/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/_category_.json b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/_category_.json
new file mode 100644
index 0000000000..6f54e26baf
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/mcp/mcp-server/_category_.json
@@ -0,0 +1,3 @@
+{
+ "label": "MCP"
+}
\ No newline at end of file
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/dashboard.md b/versioned_docs/version-14.5.1/products/console/monitoring/dashboard.md
new file mode 100644
index 0000000000..305f768512
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/dashboard.md
@@ -0,0 +1,45 @@
+---
+id: dashboard
+title: Display Dashboards
+sidebar_label: Display Dashboards
+---
+
+## Overview
+
+The Dashboard Area of Mia-Platform Console allows you to keep the tools you use to monitor your project close to its configuration. In this section, which is accessible from the main menu, you can visualize as IFrames the dashboards you created with your monitoring tools (such as Grafana, Kibana, etc.).
+
+## Managing Dashboards
+
+From the Dashboard Area, you can add, edit, and delete dashboards. Each environment has its own dashboards, since you usually want to monitor a specific environment. Changes to dashboards in one environment will not affect dashboards in the other environments.
+
+All of the following instructions are intended for the Dashboard Area.
+
+
+
+### Add a Dashboard
+
+In the side menu, using the 'Create a dashboard' button, it is possible to add an existing dashboard to the selected environment. To do so, the required fields are:
+
+* A `Name`, which defines the dashboard label that will be displayed in the user interface;
+* An `Url`, that will be used to render the dashboard IFrame;
+* An optional `Category` name, used to group dashboards, if already existing the dashboard will be inserted in the specified category, otherwise a new category will be created.
+
+
+
+:::note
+Some websites may not support `Iframes`, so you can enable the `External dashboard` checkbox to open the dashboard outsite the Mia-Platform Console
+:::
+
+### Edit a Dashboard
+
+When a dashboard is selected, you can use the edit button (represented by a pencil icon) placed in the right side of the header to edit a dashboard in the selected environment. To do so, the required fields are:
+
+* A `label`, which defines the dashboard name that will be displayed in the user interface;
+* An `url`, that will be used to render the dashboard IFrame;
+* An optional `Category` name, used to group dashboards, if already existing the dashboard will be inserted in the specified category, otherwise a new category will be created.
+
+
+
+### Delete a Dashboard
+
+When a dashboard is selected, you can use the delete button (represented by a trash bin icon) placed in the right side of the header to remove a dashboard from the selected environment. When clicking on the delete button, a confirmation dialog will open, and after inserting the label of the dashboard, you can remove effectively remove it.
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/burger_menu_config.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/burger_menu_config.png
new file mode 100644
index 0000000000..628db0c513
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/burger_menu_config.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_burger_menu.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_burger_menu.png
new file mode 100644
index 0000000000..2c531091fb
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_burger_menu.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_describe.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_describe.png
new file mode 100644
index 0000000000..26b658c48a
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_describe.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_list.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_list.png
new file mode 100644
index 0000000000..751b05f97f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/cronjobs_list.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/custom_resources.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/custom_resources.png
new file mode 100644
index 0000000000..cd5c92d369
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/custom_resources.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/create_dashboard.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/create_dashboard.png
new file mode 100644
index 0000000000..32517e5561
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/create_dashboard.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/edit_dashboard.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/edit_dashboard.png
new file mode 100644
index 0000000000..481f265806
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/edit_dashboard.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/overview_dashboard.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/overview_dashboard.png
new file mode 100644
index 0000000000..87571362a5
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/dashboards/overview_dashboard.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_describe.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_describe.png
new file mode 100644
index 0000000000..d99930f04b
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_describe.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_list.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_list.png
new file mode 100644
index 0000000000..eb5d9edc37
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/deployments_list.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/describe.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe.png
new file mode 100644
index 0000000000..04188fa2cb
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_custom_resources.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_custom_resources.png
new file mode 100644
index 0000000000..1cfbad6103
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_custom_resources.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_namespace.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_namespace.png
new file mode 100644
index 0000000000..c1368bd51f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/describe_namespace.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/events.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/events.png
new file mode 100644
index 0000000000..c3d46d100c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/events.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/events_custom_resources.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/events_custom_resources.png
new file mode 100644
index 0000000000..1494b75f81
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/events_custom_resources.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/filter.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/filter.png
new file mode 100644
index 0000000000..4272bed09f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/filter.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_describe.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_describe.png
new file mode 100644
index 0000000000..85cc6efe45
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_describe.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list.png
new file mode 100644
index 0000000000..0245e53921
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list_selected.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list_selected.png
new file mode 100644
index 0000000000..4de8f89013
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/jobs_list_selected.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/list_of_pods.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/list_of_pods.png
new file mode 100644
index 0000000000..1469a1789f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/list_of_pods.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/modal.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/modal.png
new file mode 100644
index 0000000000..9baef59a7d
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/modal.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/modal_restarted.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/modal_restarted.png
new file mode 100644
index 0000000000..983c326bfe
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/modal_restarted.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/multi_pods_logs.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/multi_pods_logs.png
new file mode 100644
index 0000000000..d4b22744e7
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/multi_pods_logs.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/multiselect.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/multiselect.png
new file mode 100644
index 0000000000..326831d543
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/multiselect.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/namespace_events.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/namespace_events.png
new file mode 100644
index 0000000000..fa43b0c483
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/namespace_events.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/overview.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/overview.png
new file mode 100644
index 0000000000..99b46366e5
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/overview.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/pod_logs.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/pod_logs.png
new file mode 100644
index 0000000000..001d32c050
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/pod_logs.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/prettified_logs.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/prettified_logs.png
new file mode 100644
index 0000000000..85feae1178
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/prettified_logs.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/services_describe.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/services_describe.png
new file mode 100644
index 0000000000..405a66e42f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/services_describe.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/services_list.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/services_list.png
new file mode 100644
index 0000000000..5c1b2ae762
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/services_list.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/img/view_selected.png b/versioned_docs/version-14.5.1/products/console/monitoring/img/view_selected.png
new file mode 100644
index 0000000000..ff9071e1e6
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/monitoring/img/view_selected.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/introduction.md b/versioned_docs/version-14.5.1/products/console/monitoring/introduction.md
new file mode 100644
index 0000000000..f0741eb50a
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/introduction.md
@@ -0,0 +1,23 @@
+---
+id: introduction
+title: Introduction
+sidebar_label: Introduction
+slug: "/development_suite/monitoring/introduction"
+---
+
+## Monitoring Infrastructure
+
+The Monitoring section in the Console is the dedicated area to control and monitor all the resources deployed within your Project.
+
+It is possible to change the environment to monitor, by selecting it with the dropdown in the top right of the screen.
+
+Using this section, you can monitor your kubernetes resources by selecting the desired one from the menu on the left.
+The available Kubernetes resources are:
+- [**Pods**](/products/console/monitoring/resources/pods.md):
+- [**Deployments**](/products/console/monitoring/resources/deployments.md):
+- [**Services**](/products/console/monitoring/resources/services.md):
+- [**Cronjobs**](/products/console/monitoring/resources/cronjobs.md):
+- [**Jobs**](/products/console/monitoring/resources/jobs.md):
+- [**Namespaces**](/products/console/monitoring/resources/namespace.md):
+
+From version 13.3.0, if properly configured and deployed through the Console, you will also be able to monitor the status of one or more [**Custom Resources**](/products/console/design-your-projects/custom-resources/custom-resources.md) in the _Custom Resources_ section of the sidebar.
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/cronjobs.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/cronjobs.md
new file mode 100644
index 0000000000..44efd5172b
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/cronjobs.md
@@ -0,0 +1,92 @@
+---
+id: cronjobs
+title: Monitor your CronJobs
+sidebar_label: Monitor your CronJobs
+slug: "/development_suite/monitoring/resources/cronjobs"
+---
+
+In Kubernetes, a [CronJob](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/) creates Jobs on a predefined time schedule.
+CronJob is meant for performing regular scheduled actions such as backups, report generation, and so on. One CronJob object is like one line of a crontab (cron table) file on a Unix system.
+It runs a Job periodically on a given schedule, written in Cron format.
+
+## CronJobs Table
+
+The table presented here shows the following information:
+
+- **Name**: the name of the CronJob.
+- **Schedule**: the schedule in Cron format.
+- **Suspend**: the value of the [suspend](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/) CronJob spec. When `true` the scheduled execution is suspended.
+- **Active**: the number of currently running Jobs.
+- **Last Schedule**: information of when was the last time the Job was successfully scheduled. [Manually launched](#manually-launching-a-cronjob) CronJobs won't update this field.
+- **Age**: the date when the CronJob was lastly deployed.
+
+
+
+### CronJob options menu
+
+The _Hamburger Menu_, located on the last column of the table, allows to perform some actions on a CronJob.
+The available options are:
+
+- [Launch manually](#manually-launching-a-cronjob)
+- [View describe](#cronjob-describe)
+
+
+
+## Inspecting a CronJob
+
+By clicking on a CronJob name you can see some of the details about the CronJob.
+
+### CronJob Describe
+
+In the `Describe` view you can find information about the selected CronJob in JSON format.
+These details are the ones exposed by the [Kubernetes APIs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/cron-job-v1/).
+
+
+
+By clicking on the _Launch manually_ button on the upper right side of the page you can trigger an immediate manual execution of the CronJob, as described in the next section here below.
+
+## Manually launching a CronJob
+
+:::info
+
+This feature is only available to users with sufficient permissions. For more information, consult the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) section of the docs.
+
+:::
+
+The _Launch manually_ functionality triggers an immediate execution of the CronJob, regardless of its _Schedule_ and _Suspend_ values.
+
+You can launch a CronJob either from the options menu in the [CronJobs Table](#cronjob-options-menu), or by clicking the button in the [CronJob Describe](#cronjob-describe) page.
+
+A modal will ask for confirmation for the action to be performed.
+
+:::info
+
+When manually scheduling a new Job from a CronJob, the Console will create a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) with the same `specs` of the CronJob.
+It also adds to the Job the following `annotations`:
+
+- `cronjob.kubernetes.io/instantiate:"manual"`
+- `mia-platform.eu/created-by:"console"`
+
+When [inspecting a Job](/products/console/monitoring/resources/jobs.md#inspecting-a-job), the presence of both the annotations suggests that the Job has been manually launched from a CronJob with the Console functionality.
+
+:::
+
+The created Job name contains a random generated string and the timestamp of the execution, to avoid name conflicts.
+
+:::tip
+
+To view the Job execution logs, you need to head to the Pods section, and inspect the logs of the Pod related to the launched Job.
+Search for the Pod with the name of the Job as prefix.
+
+:::
+
+### Resource Cleaning
+
+To avoid excessive resource consumption, a Job launched from a CronJob is assigned a Time To Live (TTL) of **one week**.
+This means that the Job and the related Pod are marked for deletion after a week.
+
+:::caution
+
+The deletion of the resources is permanent. Therefore, make sure to save elsewhere any important information that you may want to keep, such as Pod logs.
+
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/custom-resources.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/custom-resources.md
new file mode 100644
index 0000000000..3dde52744d
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/custom-resources.md
@@ -0,0 +1,41 @@
+---
+id: custom-resources
+title: Monitor your Custom Kubernetes Resources
+sidebar_label: Monitor your Custom Kubernetes Resources
+slug: "/development_suite/monitoring/resources/custom-resources"
+---
+
+
+If deployed, the information on the [Custom Resources](/products/console/design-your-projects/custom-resources/custom-resources.md) for the project can be accessed in the section `Custom Resources` of the sidebar in the `Runtime`section.
+
+:::caution
+If you created one or more Custom Kubernetes Resource from a marketplace template **prior** to Console release v13.3.0, the resources **will not be visible by default**.
+
+Please ensure to [update your resource](/products/software-catalog/items-manifest/infrastructure-resource.md) version via [miactl](/products/console/cli/miactl/10_overview.md) to one that has the properties `resourceId` and `type` correctly set in the `runtime` object field of its definition, otherwise the Custom Kubernetes Resources won't be visible in the section even if the resource is active.
+
+:::
+
+
+### Custom Kubernetes Resource instances
+
+By selecting a particular Custom Resource type listed from the sidebar, it is possible to view the list of all the active instances in the cluster.
+
+
+
+by clicking on a row from the table, is possible to see the description the events of the resource instance.
+
+#### Custom Kubernetes Resource describe
+
+In the `Custom Resources` section, under the `Describe` tab, you can find the describe of the current Custom resource in YAML format.
+
+
+
+Using the dedicated buttons `Export to YAML`, the describe of the resource can be downloaded as YAML file.
+
+#### Namespace events
+
+In the `Custom Resources` section, under the `Events` tab, you can find the events of the current Custom Kubernetes Resource instance sorted in a table.
+
+
+
+Using the dedicated button, the events can be refreshed.
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/deployments.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/deployments.md
new file mode 100644
index 0000000000..b467c85182
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/deployments.md
@@ -0,0 +1,33 @@
+---
+id: deployments
+title: Monitor your Deployments
+sidebar_label: Monitor your Deployments
+slug: "/development_suite/monitoring/resources/deployments"
+---
+
+In Kubernetes, a [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) provides declarative updates for Pods through ReplicaSets.
+After having described a desired state in a Deployment, the Deployment Controller changes the actual state to the desired state at a controlled rate.
+
+On this section you can monitor all your Deployments and the relative properties.
+
+## Deployments Table
+The table presented here shows the following information:
+
+* **Name**: the name of the relative resource.
+* **Ready/Available replicas**: the number of ready replicas out of the desired ones.
+* **Up-To-Date replicas**: displays the number of replicas that have been updated to achieve the desired state.
+* **Age**: the date when the Deployment was lastly deployed.
+
+
+
+
+## Inspecting a Deployment
+
+Selecting the resource name you can inspect more detail about the Deployment for that resource.
+
+### Deployments Describe
+
+In the `Describe` view you can find information about the selected Deployment in JSON format.
+These details are the ones exposed by the [Kubernetes APIs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/).
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/jobs.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/jobs.md
new file mode 100644
index 0000000000..1df188971d
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/jobs.md
@@ -0,0 +1,57 @@
+---
+id: jobs
+title: Monitor your Jobs
+sidebar_label: Monitor your Jobs
+slug: "/development_suite/monitoring/resources/jobs"
+---
+
+In Kubernetes, a [Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) is the resource that creates one or more Pods and will continue to retry execution of the Pods until a specified number of them successfully terminate.
+
+On this section you can monitor all your Jobs and the relative properties.
+
+## Jobs Table
+
+The table presented here shows the following information:
+
+- **Name**: the name of the Job.
+- **Finished Pods**: the number of succeeded Pods out of all the Pods that have been created. For more info check the [kubernetes documentation](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1/#JobStatus).
+- **Duration**: the time when the Job was completed.
+- **Age**: the date when the Job was lastly deployed.
+
+
+
+## Deleting Jobs
+
+:::info
+
+This feature is only available to users with sufficient permissions. For more information, consult the [Console Levels and Permission Management](/products/console/identity-and-access-management/console-levels-and-permission-management.md) section of the docs.
+
+:::
+
+:::warning
+
+The deletion is permanent, therefore make sure to save elsewhere any important information before deleting a Job.
+Please note that also the related Pod(s) are marked for deletion, along with their information such as logs.
+
+:::
+
+You can delete a single Job by clicking on the **Delete button** on the last column of the Job table.
+
+You can also delete multiple Jobs at the same time, by selecting the checkbox on the left of the Jobs you want to delete and clicking on the **Delete Jobs** button that appears at the bottom of the table.
+
+
+
+A modal will ask for confirmation for the action to be performed, and inform you on the operation outcome.
+
+The related Pods will be eventually deleted by Kubernetes: the [background cascading deletion policy](https://kubernetes.io/docs/concepts/architecture/garbage-collection/#background-deletion) is used.
+
+## Inspecting a Job
+
+By clicking on the Job name you can inspect some details about the Job.
+
+### Job Describe
+
+In the `Describe` view you can find information about the selected Job in JSON format.
+These details are the ones exposed by the [Kubernetes APIs](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1).
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/namespace.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/namespace.md
new file mode 100644
index 0000000000..c4987e6a1e
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/namespace.md
@@ -0,0 +1,24 @@
+---
+id: namespace
+title: Monitor your Namespace
+sidebar_label: Monitor your Namespace
+---
+
+### Namespace describe
+
+In the `Namespace` section, under the `Describe` tab, you can find the describe of the current Namespace in JSON format.
+
+
+
+Using the dedicated buttons, the Namespace describe can be:
+- copied to clipboard;
+- expanded in the viewer;
+- downloaded as JSON file
+
+### Namespace events
+
+In the `Namespace` section, under the `Events` tab, you can find the events of the current Namespace sorted in a table.
+
+
+
+Using the dedicated button, the events can be refreshed.
\ No newline at end of file
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/pods.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/pods.md
new file mode 100644
index 0000000000..b220a5c27b
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/pods.md
@@ -0,0 +1,122 @@
+---
+id: pods
+title: Monitor your Pods
+sidebar_label: Monitor your Pods
+slug: "/development_suite/monitoring/resources/pods"
+---
+## Monitoring Infrastructure
+
+The Monitoring Infrastructure section is the Developer Console area dedicated to the control and monitoring of its infrastructure.
+
+The area is divided by the number of environments existing in the specific project. In the top right dropdown, it is possible to change the environment to be monitored.
+
+Within each environment you can view, using the sidebar on the left, all the workloads that you can monitor, as pods.
+
+All the available pods and their current properties.
+The labels of the columns in the table are:
+* **Status** : Status representing a general overview of the Pod state. Can be:
+ * **OK**: the Pod has phase completed or running, has all containers ready and has never restarted
+ * **Warning**: the Pod has phase pending or error, has some container not ready or has restarted
+* **Name**: the name that identifies the Pod
+* **Component**: the name of the service with the tag version
+* **Phase**: the current status of the Pod. Can be:
+ * **running**: it is deployed and working.
+ * **completed**: it is correctly deployed and has completed its work.
+ * **pending**: the Pod is scheduled but could have some configuration error, or the containers are still not ready.
+ * **error**: the Pod has failed.
+* **Containers Ready**: the number of ready pods / the total.
+:::note
+In case the Containers ready field has the value `0/1` could be because the Pod has Status `completed`, so everything is ok, or `pending` and is possible the presence of configuration errors.
+:::
+
+* **Total Pods Restart**: the number of times the Pod has restarted.
+* **Age**: the date since the Pod was deployed.
+
+
+
+:::info
+For more details, hovering the status icon, and the phase label the user will see a tooltip with more information
+:::
+
+Within the table there are a series of action that can be performed:
+- It is possible to refresh the table manually or setting an auto-refresh timer with the specific button in the top-right corner to check changes in the pods status or phase.
+- With the `search` input field, and the `Filter by` selection it is possible to filter the list of pods by their name or setting specific values for some columns such as: Status, Phase and TotalPodsRestart.
+
+
+- The option icon on the right of each Pod row allows you to:
+ - go to the specific configuration page in the design area of the console, if the Pod type is `custom` or `cronjob`;
+ 
+ - go to the logs of a container, always visible;
+ - go to the previous logs of a container, visible **only if the Pod has ever restarted**;
+- to restart the individual Pod, always visible.
+
+:::info
+When restarting a Pod a modal like the one in figure will be shown to the user giving a feedback of which pods are going to be restarted and the result of the restart itself.
+:::
+
+
+:::caution
+Restarting a Pod may cause a downtime of the service if not correctly replicated.
+:::
+
+
+- The user may select one or more pods and choose to **restart**, **inspect Pods logs**, or view inside the table all the selected ones.
+ :::caution
+ Restarting a Pod may cause a downtime of the service if not correctly replicated.
+ :::
+ 
+ 
+
+Clicking on a Pod name you can examine its overview and its specific logs.
+
+Clicking on the `View logs` button you can examine the logs of the selected pods.
+
+:::note
+
+You can select at most five containers.
+
+:::
+
+
+
+### Pod overview
+
+In the overview section you can see generic information regaring the desired Pod and a recap of the containers that are part of the Pod itself.
+
+The user can also choose to **restart** their Pod. Clicking "Restart Pod" the POD will be deleted and restarted. To view the new logs, the user will have to wait for the page to reload or to reload the page.
+
+:::caution
+Restarting a Pod may cause a downtime of the service if not correctly replicated.
+:::
+
+
+
+### Pod logs
+
+In the tab `Logs`, are rendered the logs of a container that is running in the Pod.
+
+
+
+The logs can be filtered, downloaded, deleted or prettified.
+
+
+
+It is possible to update the showed logs by clicking "Refresh Logs".
+
+### Pod describe
+
+In the tab `Describe`, you can find the describe of the selected Pod in JSON format.
+
+
+
+Using the dedicated buttons, the Pod describe can be:
+- copied to clipboard;
+- expanded in the viewer;
+- downloaded as JSON file
+
+### Pod events
+In the tab `Events`, you can find the events of the selected Pod sorted in a table.
+
+
+
+Using the dedicated button, the events can be refreshed.
diff --git a/versioned_docs/version-14.5.1/products/console/monitoring/resources/services.md b/versioned_docs/version-14.5.1/products/console/monitoring/resources/services.md
new file mode 100644
index 0000000000..b31b7b5486
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/monitoring/resources/services.md
@@ -0,0 +1,30 @@
+---
+id: services
+title: Monitor your Services
+sidebar_label: Monitor your Services
+slug: "/development_suite/monitoring/resources/services"
+---
+
+In Kubernetes, a [Service](https://kubernetes.io/docs/concepts/services-networking/service/) is an abstract way to expose an application running on a set of Pods as a network service..
+
+On this section you can monitor all your Services and the relative properties.
+
+## Services Table
+The table presented here shows the following information:
+
+* **Name**: the name of the Service.
+* **Service Type**: the full list of service types can be found in the [kubernetes documentation](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types).
+* **Age**: the date when the Service was lastly deployed.
+
+
+
+## Inspecting a Service
+
+Selecting the Service name you can inspect more detail about that Service.
+
+### Service Describe
+
+In the `Describe` view you can find information about the selected Service in JSON format.
+These details are the ones exposed by the [Kubernetes APIs](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/service-v1/).
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/overview-dev-suite.md b/versioned_docs/version-14.5.1/products/console/overview-dev-suite.md
new file mode 100644
index 0000000000..904597e6bd
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/overview-dev-suite.md
@@ -0,0 +1,58 @@
+---
+id: overview-dev-suite
+title: Console Overview
+sidebar_label: Console Overview
+sidebar_order: 0
+---
+This page will give you a brief overview of **Mia-Platform Console**, explain **why it's important**, highlight the **advantages of adopting this solution** and provide a **brief description of its architecture**.
+
+## Product overview
+
+In an ever-changing market, successful enterprises must operate and innovate like tech companies by:
+
+* Building and launching digital products **quickly**; reducing the time-to-market for a new app from months to weeks.
+* Viewing market changes as **opportunities**, to rapidly adopting new technologies.
+* Having the **flexibility** to quickly adjust to changes in demand by easily increasing or decreasing scaling system capacity in response to traffic fluctuations.
+* **Integrating** with various tools, partners and technological ecosystems.
+
+Modern companies achieve this through an Internal Developer Platform (IDP). **Mia-Platform Console** is a Platform Builder that enables you to quickly and easily build your own fully customized IDP. It allows you to industrialize, manage, and simplify cloud-native development and operations such as connecting your cluster (even across multiple cloud providers), designing your application from services to APIs, orchestrating workflows and so on.
+
+
+
+## Why Mia-Platform Console
+
+Mia-Platform Console manages the entire software lifecycle seamlessly and unify your IT department under one integrated open platform. Simplify cloud-native development while maintaining complete governance and control over your processes.
+
+* **Clear Governance**: Establish streamlined, standardized pathways for software delivery and integrate governance rules directly into your development workflows, ensuring consistency, compliance, and efficiency throughout the entire development process. This can involve tracking the evolution of projects, identifying key characteristics of each project, and centrally visualizing resources. These practices help maintain transparency and facilitate effective management.
+* **Self-service Approach**: Build and manage an Internal Developer Platform (IDP) that empowers development teams by providing the necessary tools and resources in a self-service mode. This enables them to develop efficiently and autonomously without dependency on other departments. For example, teams can create test environments independently, build microservices with standardized and pre-configured CI/CD pipelines, and access all necessary information, such as logging and monitoring, without having to request it from other teams or departments.
+* **Lower cognitive load**: By abstracting underlying complexities, the tool simplifies tasks for developers, minimizing cognitive load and reducing the need for frequent context switching. It consolidates all necessary project information, from configuration to monitoring, into a single interface. This allows developers to focus more on creative problem-solving and efficient coding, ultimately enhancing productivity and innovation within development projects.
+
+## Ease the digital platform development
+
+Mia-Platform Console serves the whole team (Developer, Operations and Platform Engineering) involved in software development because it brings several advantages to the development of an Internal Developer Platform.
+
+- **Governance & Controls**: Manage runtime resources across hybrid and multi-cloud architectures, connect clusters, establish self-service environments and enforce RBAC policies, by creating 'paved roads'. You can also establish project templates that standardize developer tools and the ability to choose and connect your own provider such as Git.
+Using a Software Catalog, each team owns one or a group of projects.
+
+* **Productivity & Quality**: Software can be built in a unified environment that offers secure, self-service capabilities. By leveraging the GitOps methodology, applications can be exposed and deployed seamlessly from a centralized setup.
+Enhance your development speed with ready-to-use services or by directly uploading Docker images.
+
+* **Resilience & Observability**: Ensure long-term system integrity through advanced observability tools, metrics, and alerting mechanisms.
+Enhance services usability with a functional document portal and with API testing capabilities.
+
+The use of Mia-Platform Console does not bind in any way to a specific technology stack. This product integrates various technologies, ranging from front-end development to deployment tools.
+
+Leverage the **[Marketplace](/runtime-components/overview_marketplace.md)** to accelerate development. Thanks to this self-service catalog you can find a set of curated, standardized, and reusable software components to easily integrate in your Internal Developer Portal (IDP).
+
+## Hierarchical Organization of Mia-Platform Console
+
+The Mia-Platform Console is structured hierarchically to facilitate efficient navigation for users. This section offers a concise guide to understanding its architecture, starting from the highest level down to the most detailed.
+
+- **Console**: The overarching workspace and management environment, serving as the primary gateway to the platform.
+- **Companies**: Organizational entities,one company acts as a container for projects. They can represent the entire organization or specific operational units.
+- **Projects**: Structured collections of microservices, configurations, and data within a Company. A project might represent a digital system, a specific component or a Package Business Capability (PBC).
+- **Project Sections:** Designated areas within a project that delineate and organize functionalities and tasks.
+
+This structure ensures clear and scalable management of resources and activities within Mia-Platform Console.
+
+Discover all the **features and capabilities** of Mia-Platform Console, by exploring the menu items on the left of this page, and the other products **[Mia-Platform Fast Data](/products/fast_data/what_is_fast_data.md)**, **[Mia-Platform Microfrontend Composer](/products/microfrontend-composer/what-is.md)** and **[Mia-Platform Marketplace](/runtime-components/overview_marketplace.md)**.
\ No newline at end of file
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/application-project.md b/versioned_docs/version-14.5.1/products/console/project-configuration/application-project.md
new file mode 100644
index 0000000000..9eb24be33f
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/application-project.md
@@ -0,0 +1,184 @@
+---
+id: application-project
+title: Application Projects
+sidebar_label: Application Projects
+sidebar_order: 1
+---
+
+A Console Project serves as a central hub for managing and deploying applications within the Mia-Platform ecosystem.
+It allows users to configure various aspects of their applications, including microservices, database collections, API Gateway endpoints to be deployed and monitored across different environments.
+
+## Application Project Sections
+
+The Project is structured into various sections, each with a specific purpose to manage the application's lifecycle.
+
+All sections can be reached using the shortcuts accessible at the top of the sidebar, at the Project level.
+
+
+
+Another option to easily switch among Console sections, or to select a specific project, is to use the `⌘ + K` (alternatively, `ctrl + K`) interface. This interface can also be opened using the menu on the right side of the topbar.
+
+
+
+Once opened the interface, you can also type `>` and a selection of useful commands will be displayed.
+
+
+
+### Homepage
+
+There are two different Homepages:
+
+* [The Basic Homepage](#basic-homepage) allows you to view the various features offered by the Console and navigate them easily by clicking on one of the cards.
+* [The Homepage Metrics](#metrics-homepage) allows you to view the status of the project, including environments, pods status, and requests / limits of CPU and RAM.
+
+:::info
+You can switch between the Homepages using the `⌘ + K` (alternatively, `ctrl + K`) keyboard shortcut.
+:::
+
+#### Basic Homepage
+
+
+The Basic Homepage allows users to quickly access the relevant information of each project developed on Mia-Platform. Moreover, the user can easily be redirected to the most used Areas in the Console. This visualization is great for Console newcomers who will benefit from always having all the Console Areas displayed at once.
+
+#### Metrics Homepage
+
+
+The Metrics Homepage is structured in different cards, and each card represents a different environment of your project. You can pin to top one card at a time using the button at the left of the environment name. For each card, the user can see:
+
+* The time of the last deployment;
+* The [Pods Status](#pods-status);
+* The [CPU and RAM](#cpu-and-ram) resources;
+* The navigation to the Deploy, Runtime, and to other [Project links and Dashboards](#project-links-and-dashboards).
+
+Data can be manually or automatically refreshed. The manual refresh updates data on user request, while the automatic refresh allows you to set a time rate for automatically update data.
+
+* **Manual refresh**: click the refresh button on the top-right corner;
+* **Automatic refresh**: click the dropdown menu on the left of the refresh button and choose the time rate. By default the refresh rate is Off.
+
+In addition, above the previously mentioned cards, there is a space in which the Project Administrator (or Company Owner) can set up and manage other kinds of links related to the project. When the links are configured they will be visible as a carousel of small clickable cards to all Project users.
+
+##### Pods status
+
+Pods status shows how many pods related to the project environment are ready. A warning notification will appear if there is at least one pod not ready or restarted. This warning notification links to the list of warning pods in the Runtime Area.
+
+##### CPU and RAM
+
+CPU and RAM show infographics about main KPIs:
+
+* **Usage vs Requests**: shows the percentage of used resources compared to the requested ones. The percentage value can be above 100%, meaning that you are currently using more resources than are requested.
+* **Usage vs Limits**: shows the actual usage of resources compared to the limits set for your microservices. The graph color will become yellow to warn you that the usage has exceeded the 75% of the limits you have set. This means that you have almost reached the maximum amount that you want to be allocated for that resource.
+
+The CPU usage is measured in millicores, the RAM capacity is measured in mebibytes.
+
+If no threshold has been set for all your microservices, the graphs will display NA (Not Available).
+At the bottom of the graphs, it is possible to see the current usage, which represents the usage of CPU or RAM when you loaded the homepage.
+
+:::info
+Limit and Request are calculated as the sum of all the containers limits and requests of each pod respectively. For this reason, [HPA](/products/console/api-console/api-design/replicas.md#what-needs-the-replicas-for) changes are taken into account.
+:::
+
+##### Project links and Dashboards
+
+On the right side of each Environment card, you can find links specific to each environment, that can be configured to redirect you to your project Documentation, CMS and Application. In addition, in the Dashboards section - visible on the right side of each environmental card - you can find the names of the first dashboards created in your project. By clicking on one of them, you will be redirected to the corresponding dashboard in the Dashboards Area. You can also click on "View all" to see all of the available dashboards.
+
+:::info
+To learn how to configure the environment links of your project, visit [this page](/products/console/project-configuration/manage-runtime-environments/index.md#environment-links-configuration).
+:::
+
+Moreover, above the Environment cards, the Project Administrator (or Company Owner) can set up other useful links that make it easy for you to access other tools related to your project. These quick links will appear at the top of the Metrics Homepage as a carousel of small clickable cards.
+
+Since these links will be visible to all the project members, this functionality may facilitate the admin in better structuring workflows and speeding up team processes. In this regard, we suggest setting up - even at an early stage - all those links that should generally be considered necessary by default for every project. For instance, it might be useful to have quick access to shared drives (Google Drive, Office, etc), project documentation pages, an issue tracking board (Jira, Trello, etc), design graphics and so on. To configure the links for the first time, the Project Administrator/Company Owner only needs to click on the "Add Quick Link" button displayed on top of the Metrics Homepage.
+
+
+
+Another way to retrieve the project links is to use the `⌘ + K` (alternatively, `ctrl + K`) interface and click on the "Project Links" section.
+
+
+
+Mia-Platform Console is divided in many different sections that help you manage the full lifecycle of your digital projects, from the set up of your K8s clusters to APIs and microservices design. Run your CI/CD pipelines, deploy on every kind of environment and monitor the performances of your runtime applications.
+
+### Environments & Private Variables
+
+The Environments & Private Variables section contains all the information about the environments on which your applications are deployed and executed. Nowadays, it is common to have multiple runtime environments: for example, you can set an environment for tests and another environment for production. The Console is built with this concept in mind, and thus provides support and tools for you to easily manage multiple runtime environments.
+
+You can deploy the same codebase to different runtime environments, obtaining different behaviors based on some environment configuration, like environment variables. Another notable change is the actual hardware on which the runtime environment runs, which is usually more performant for production environments.
+
+[More information about Environments & Private Variables here](/products/console/project-configuration/manage-runtime-environments/index.md)
+
+### Design
+
+The Design section allows you to modify the configuration and architecture of your project by customizing the use of various resources. From this section you can add, edit and delete resources such as CRUD, Microservices, Endpoints and much more.
+
+You will be able to define the limits of each microservice, the variables to be used, define the RBAC rules, and configure any other aspect related to the creation of your digital platform.
+
+[More information about Design here](/products/console/api-console/api-design/overview.md)
+
+### Deploy
+
+The Deploy section is the Console area that allows developers to deploy configurations of a specific project on different runtime environments. It can also be used to visualize the history of previous releases on that project.
+
+This section allows you to follow in a simple and effective way a Continuous Deployment approach, integrating automated tests and releasing new code versions without damaging the existing project.
+
+The Deploy Area is divided into two Sections: Deploy and History. When a user enters the Deploy Area, they are automatically led to Deploy Section.
+
+[More information about Deploy here](/products/console/deploy/overview.md)
+
+### Dashboards
+
+The Dashboard section allows you to keep the tools you use to monitor your project close to its configuration. In this section, which is accessible from the main menu, you can visualize the dashboards you created with your monitoring tools (such as Grafana, Kibana, etc.).
+
+From this section, you can add, edit, and delete dashboards. Each environment has its own dashboards, since you usually want to monitor a specific environment. Changes to dashboards in one environment will not affect dashboards in the other environments.
+
+[More information about Dashboards here](/products/console/monitoring/dashboard.md)
+
+### Runtime
+
+The Runtime section is the Developer Console area dedicated to the control and monitoring of its infrastructure.
+
+The area has a subsection for each environment existing in the specific project. In the top-right dropdown, it is possible to change the environment to monitor. Within each environment, you can view all the workloads that you can monitor, such as pods, using the sidebar on the left.
+
+From here you are able to access individual pod logs. If necessary, you can manually select and restart pods.
+
+[More information about Runtime here](/products/console/monitoring/introduction.md)
+
+### Debug
+
+The Debug section shows the list of all the microservices developed with the Developer Console.
+At the first level you have the necessary information to understand the health of the service: whether it is active or not, and the memory levels used.
+
+The real potential of the debug area is its connection with telepresence. Pressing the "Debug" button will in fact display a string to be pasted on your terminal that simulates the behavior of your microservice in a real context. Telepresence is an open source tool that lets you run a single service locally, while connecting that service to a remote Kubernetes cluster.
+
+[More information about Debug here](/products/console/debugging/telepresence.md)
+
+### Documentation
+
+The Documentation section is a vital part of any Restful API in order to drive consistency and discipline across your API development workflow.
+
+The Documentation section in the Developer Console area exposes the Open API documentation of all services and CRUDs that you have defined and exposed. In this way, you will be able to obtain information about the routes exposed by your resources from a single section, and to test the correct functioning of each of them. You can share API documentation both internally within your company, and externally to partners and suppliers.
+
+To test each API, you can access your tags on the right side of the screen, where the APIs are grouped according to their tags: by clicking on one tag, you will visualize all the APIs that belong to that tag.
+
+[More information about Documentation here](/products/console/project-configuration/documentation-portal.md)
+
+### Marketplace
+
+The Marketplace section contains several code resources to develop your microservices. You can also access Mia-Platform Marketplace from the Design area of Console, when you are creating a new microservice.
+
+You will see a set of Plugins, Examples, Templates and Applications that you can choose from to easily set-up a single microservice or a bundle of microservices with predefined and tested functionalities.
+
+You can start from a:
+
+* Plugin: a ready-to-use Microservice powered by Mia-Platform or a Certified Partner;
+* Template: a base repository (open source in the Mia-Platform Marketplace GitHub page) from which you can start to create a new Microservice;
+* Example: a specific use-case, a ready-to-use model to create your Microservice;
+* Application: a bundle of resources including Plugins, Templates and Examples, or resources like CRUD, Endpoints, etc;
+* Docker Image Name: an existing Docker image of a Microservice.
+
+[More information about Marketplace here](/runtime-components/overview_marketplace.md)
+
+### What's new
+
+The **What's new section** is a valuable resource to stay updated with the latest developments and news about the Console. Whenever a new feature is introduced or there is relevant information to share, it will be displayed in this section.
+You can access it by clicking on the question mark icon located in the top bar of the Console interface. To ensure you never miss any important updates, a notification symbol will alert you whenever there are new unread items.
+
+The primary purpose of this section is to keep you informed about significant enhancements and announcements accompanying each version upgrade of the Console. By regularly checking this section, you can stay up to date with the latest improvements, new features, and other useful updates that can enhance your experience and maximize the benefits of using the product.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/authorization-flow.md b/versioned_docs/version-14.5.1/products/console/project-configuration/authorization-flow.md
new file mode 100644
index 0000000000..4e2f7c2330
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/authorization-flow.md
@@ -0,0 +1,103 @@
+---
+id: authorization-flow
+title: Authorization Flow
+sidebar_label: Authorization Flow
+---
+
+Security is a matter of great importance for all companies. In order to protect your digital assets it is important to have a secure infrastructure.
+Mia-Platform can help you to set up your infrastructure by providing you strong and reliable **authentication** and **authorization** mechanisms.
+In this page, you can find out how Mia-Platform authorization flow works.
+
+## Authentication and Authorization
+
+These two terms are often seen together, but they actually have a very different meaning: granting Authentication does not mean providing Authorization or vice-versa. In this section we will explain both of them and show their importance in current digital systems.
+
+### Authentication
+
+Authentication is the process of verifying that your identity is the one that you declared by providing some credentials that only you know or possess.
+These credentials will be validated and, if the validation is successful, the system will identify you and give you access to different resources based on your authorization level, which will be described in the next section.
+Authentication is important in order to give access to your assets only to entities that proved their identity.
+
+### Authorization
+
+Authorization means verifying your permissions to access to a specific resource or location. This step is generally consequential to authentication.
+Different users may have different authorization levels, which means that they will have right to access to different resources.
+
+Combining Authentication and Authorization together, it is possible to associate a user to an identity and link to it a specific set of permissions. In this way, only authorized users, that proved their identity and that possess the right permissions, can access to your system resources.
+
+## Mia-Platform Authorization Flow
+
+Mia-Platform built a secure infrastructure that provides both authentication and authorization mechanisms in order to guarantee a controlled access to your system.
+For each request to any resource, the user identity is verified and its permissions checked. This way, only authorized users will be given access to the requested resource.
+Below you can see an image that shows Mia-Platform authentication and authorization flow:
+
+
+
+As you can see, different components are involved and each of them has a specific role in this flow.
+We will now proceed in describing them and explaining how they interact with each other.
+
+### Client
+
+Client component represents a user that wants to access a specific resource. In order to do so, it performs a request to a specific service and awaits a response from it.
+It should have previously performed a login process, thus obtaining a token that will be sent inside the request. We suppose that our client is already logged in and in possess of the correct token. This token will be validated and the access to the requested resource may be granted to the client. In our use case, the obtained token will be used to set the `Authorization` header with the **Bearer** Authentication scheme, but any other authentication scheme or a different header can be used.
+
+### API Gateway
+
+[API Gateway](/runtime-components/plugins/api-gateway/10_overview.md) is responsible for receiving all client requests and routing them to the correct service.
+For every received request, it will redirect its headers to the Authorization service. If the user is authorized to access the requested resource, the API Gateway will proxy both the client request and the service response to the corresponding recipient.
+
+### Authorization Service
+
+[Authorization Service](/runtime-components/plugins/authorization-service/30_usage.md) is in charge of verifying whether user groups and permissions are enough for each specific request. This service receives all the request headers received by the API Gateway and will proxy a subset of them to the Authentication Manager.
+The Authentication Manager should then return a response body containing user id (it is required, the field name of the id is configurable), other user properties, groups and/or permissions. The Authorization Service will examine this information and it will proxy the result of this check to the API Gateway through a specific set of headers.
+
+:::info
+
+For more information about how you can configure the Authorization Service to call a custom Authentication Manager and how to choose the headers that should be proxied to it, visit this [link](/runtime-components/plugins/authorization-service/30_usage.md)
+
+:::
+
+### Authentication Manager
+
+Since every authentication process differs from the others for certain aspects it is advisable that you create your own service that will handle authentication and that will contact an Identity Provider (IDP), if you intend to use one.
+In any case, Mia-Platform has a set of services that can handle the authentication process:
+
+* [Client Credentials](/runtime-components/plugins/client-credentials/10_configuration.md)
+* [Auth0 Client](/runtime-components/plugins/auth0-client/20_configuration.md)
+* Authentication Service
+
+This component is expected to receive a subset of the request headers from the Authorization Service. One of these headers should contain the token that the user obtained during the login process.
+This token will be verified by the Authentication Manager (either internally or by sending them to an IDP). In case the received token is valid, this custom Authentication Manager should then send the retrieved user properties back as response body to the Authorization service.
+
+#### What is an Identity Provider (IDP)?
+
+It is a trusted entity that creates, stores and manages user's digital identity information while providing authentication services. It is expected to receive user credentials, to check the validity of these credentials and to return a token that identifies the user back to the service that requested it.
+
+### Custom Service
+
+This can be any service (either created from Mia-Platform [Marketplace](/runtime-components/overview_marketplace.md) templates or by your own) that will handle the user requests received by the API Gateway.
+Once a request reaches the custom service, the user performing the request has already been authenticated and authorized successfully.
+Its purpose is to receive the request, perform some custom application logic and produce a response that will be sent back to the client through the API Gateway.
+
+## Authorization with Rönd
+
+In addition to the above-mentioned services that are involved in an authentication and authorization flow,
+Mia-Platform provides another service: Rönd.
+[Rönd](https://rond-authz.io) is an authorization mechanism integrated in Console that provides more advanced and efficient authorization logics, guaranteeing security and governance benefits in managing your project.
+
+Rönd is the core service responsible for handling advanced authorization mechanisms through the
+[evaluation of policies](https://rond-authz.io/docs/policy-integration) written in Rego,
+the [OPA](https://www.openpolicyagent.org/docs/latest/) language.
+
+In order to prevent single point of failures in your project architecture, authorization policies are evaluated with a decentralized strategy by different Rönd instances that are distributed within your project.
+In fact, when you enable Rönd on one of your services, a new instance of Rönd will be created in the same pod in which the service instance is running.
+
+Rönd intercepts the traffic directed to your service and executes the authorization
+logics, evaluating your policies and performing related decisions or actions, such as:
+
+* authorization enforcement on request attributes (such as: request path, headers, query parameters, path parameters, client type, etc) and all the user properties provided by the Authorization Service in the `miauserid` and `miausergroups` platform headers. [See more information here](https://rond-authz.io/docs/policy-integration#rbac-data-model)
+* query generation for data [filtering on request](https://rond-authz.io/docs/policy-integration#rows-filtering).
+* [response body filtering](https://rond-authz.io/docs/policy-integration#response-filtering) to remove or change data returned by your services.
+
+To know more about how managing and implementing RBAC functionalities,
+visit the [Rönd documentation page](https://rond-authz.io/docs/policy-integration).
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/create-a-project.mdx b/versioned_docs/version-14.5.1/products/console/project-configuration/create-a-project.mdx
new file mode 100644
index 0000000000..f797b0399c
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/create-a-project.mdx
@@ -0,0 +1,195 @@
+---
+id: create-a-project
+title: Create a Project
+sidebar_label: Create a Project
+---
+
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
+A Project is a resource composed of a set of APIs, microservices, and applications whose lifecycle can be entirely managed and developed through the areas of the Console.
+When you create a new Project, you will be able to configure it from scratch.
+
+## Requirements
+
+This section informs you about the requirements needed to create a new Project.
+In particular, you need to have already set up your Console and configured these three resources:
+
+- **Company**: a company is a resource that has governance on all the projects it contains.
+ It also provides the default information (providers, environments, CI/CD integration, and cluster information) that will be inherited by newly created projects.
+ To create a company, please refer to the [create company guide](/products/console/company-configuration/create-company.md).
+
+- **Git Provider**: the Git Provider is the resource that will be used by the Console to correctly retrieve the third-party service configurations needed by your projects.
+ You can create a Git Provider for your company by following the procedure described [here](/products/console/company-configuration/providers/configure-provider.mdx).
+
+- **Template**: a template is a repository with pre-filled configurations. Each company can have one or more templates.
+ The template allows you to pre-fill resources in your Project and start similar projects with the same configurations.
+ In short, it constitutes a base from which your Project will be created. [Here](/products/console/company-configuration/project-blueprint.md) you can find a guide on how to handle Project templates.
+
+
+Once you have at least a provider, a company, and a template correctly configured, you will be able to create a new Project.
+
+:::info
+To create a new Project, you must have the permission `console.company.project.create`.
+:::
+
+## Creation process
+
+The Project creation process is divided into three phases:
+1. **General**: in this phase, you will be asked to insert general information about your Project:
+
+ 
+
+ * **Company** (_required_): the company that you want to create your Project into, selected from a list of pre-configured companies. As mentioned before, selecting a specific company allows you to keep the same configuration for different projects;
+ * **Project name** (_required_): the name of your Project. It will be shown in the Project card in the Home section of the Console;
+ * **Description**: the description of your Project. It will be shown in the Project card in the Home section of the Console.
+ * **Project workflow**: you can specify whether to use the [Enhanced Project Workflow](/products/console/set-up-infrastructure/overview.md) or keep using the standard one.
+
+
+
+2. **Repository**: in this phase, you will be asked to choose the basic configurations of the repository associated with your Project and the template to start the Project from. You also will be asked to select a Git Provider, starting from the default one configured for the company:
+
+ 
+
+ * **Git provider**: one of the supported Git Provider types. Check out the complete list of [supported providers](/products/console/company-configuration/providers/overview.md);
+
+ :::caution
+ At least one Git Provider must be configured at the company level in order to create the Project.
+ :::
+
+ If there are no configured Git Providers for the company, an informative modal is displayed, and you will not be able to continue.
+
+ * **Git repo path**: the path where the configuration will be saved on the Git Provider. It specifies the location of your Project on the Git Provider website;
+
+ This field will be precompiled with the [**Repository path template**](/products/console/company-configuration/providers/configure-provider.mdx#repositoryPathTemplate) of the chosen provider, if any, interpolated with the Project identifier.
+
+ :::caution
+ Make sure the selected Git Provider has the right permissions for creating Projects on the configured path.
+ :::
+
+ Here are some tips on how to correctly configure the property, grouped by Git Provider:
+
+
+
+
+
+ It corresponds to the **full path of the repository** where to create the Project, in the form `groupPath/repoPath`, where `groupPath` is the path of the group where the repository will be created and `repoPath` is the name of the repository.
+
+ If the group does not exist, the Project will be created only if the user has the needed permission to create the group in its parent.
+
+ For example, if your group is reachable at the URL **`https://my-gitlab-host.eu/mia-platform/projects`**,
+ then the `groupPath` must be **`mia-platform/projects`**.
+
+ If your group does not exist (in the example groupB):
+
+ - /groupA/groupB -> if the user has permission to create groups in groupA, then groupB will be created;
+ - /groupA/groupB -> if the user has no permission to create groups in groupA, then groupB will NOT be created;
+ - /groupA/groupB -> if groupA does not exist, then it will NOT be created any group.
+
+
+
+
+
+ It corresponds to the **path of an existing organization** to which the repository name is appended.
+
+ If the organization does not exist, the Project will not be created.
+
+ For example, if your organization is reachable at the URL **`https://github.com/mia-platform`**,
+ and the repository you want to create is named `my-project`, then the corresponding path is `mia-platform/my-project`.
+
+
+
+
+
+ There are two different possibilities: use an already existent Azure DevOps Project with multiple
+ Console Project inside it or create an Azure DevOps Project for each Console Project.
+
+ The path should be: `organization-name/azure-devops-project-name/_git/repository-name`.
+ If the Azure Devops project already exists (e.g. if the project at the url `https://dev.azure.com/mia-platform-devops/Test` exists)
+ it will be created a new repository for the Console project configurations.
+
+ Otherwise, if the Azure Devops project does not exists, it will be created (if permission are enough).
+
+
+
+
+
+ It corresponds to the **path where your Bitbucket Project is reachable** with the repository name appended: the pattern is _projects/project-code/repository-name_.
+
+ For example, if your Project is reachable at the URL **`https://bitbucket.mia-platform.eu/projects/Test`**,
+ and the repository is called `my-repository`, then the path must be **`projects/Test/my-repository`**.
+
+
+
+
+
+ * **Visibility**: the visibility states the status of your Project once it will be saved on the Git Provider. Either one of the following:
+
+ - `public`: the repository can be accessed and viewed by anyone, including non-authenticated users;
+ - `internal`: the repository can be accessed and viewed by any authenticated user within the same Git Provider instance or organization;
+ - `private`: the repository can only be accessed and viewed by users who have been explicitly granted access by the repository owner.
+
+ * **Template** (_required_): the template used by your Project, selected from a list of pre-configured templates. It adds pre-filled configurations to your Project.
+
+ * **CI/CD Tool**: one of the CI/CD providers [configured for the specified Company](/products/console/company-configuration/providers/configure-provider.mdx).
+ 
+
+
+
+3. ** Environments**: in this phase, you will be asked to review all the details regarding the environments that will be created for the Project:
+
+ 
+
+ * **Environment name**: the name given to your environment;
+ * **Environment ID**: the human-readable ID set to your environment;
+ * **Project Host**: the host which exposes documentation and APIs;
+ * **Backoffice Host**: the host which exposes CMS and backoffice APIs;
+ * **Cluster Host**: the IP of the Kubernetes cluster where the Project will be deployed;
+ * **Namespace**: the namespace taken from Kubernetes;
+ * **Description**: the description of your environment;
+ * **Secret Manager**: the provider configured as a Secret Manager for the environment;
+ * **CI/CD Tool**: the provider configured as a CI/CD Tool for the environment.
+
+
+
+Once your Project has been created, you will be redirected to the **Project Overview** area.
+
+Here you will be able to see the [Project basic settings](/products/console/project-configuration/project-settings.md), the [Project environments](/products/console/project-configuration/manage-runtime-environments/index.md) and a list of [environment variables](/products/console/project-configuration/manage-environment-variables/index.md):
+
+### Environment Variables
+
+Once you create a new Project, your Project will already include variables.
+
+Some variables will be already pre-filled from the Project or the company default settings, such as `_CMS_IMAGE_NAME_`, `_LOG_LEVEL_`, and `_CRUD_LIMIT_CONSTRAINT_ENABLED_`, while others will not be pre-filled, such as `_NOTIFICATIONS_COLLECTION_ROUTES_` and `_NOTIFICATIONS_SERVICE_PATH_`.
+
+:::info
+All variables are **mandatory**, except for:
+* `_CRUD_LIMIT_CONSTRAINT_ENABLED_`;
+* `_NOTIFICATIONS_SERVICE_PATH_`;
+* `_NOTIFICATIONS_COLLECTION_ROUTES_`.
+:::
+
+All mandatory variables that are not pre-filled, such as `_MONGODB_SHORT_URL_`, `_MONGODB_URL_`, and `_REDIS_HOSTS_`, need to be manually configured.
+
+
+### Namespaces
+
+The Console automatically tries to create the namespace for each environment in the Project, and if the creation is successful it also sets the following labels in the namespace:
+
+| Label | Value |
+| ----------------------------- | ----------- |
+| `mia-platform.eu/company` | `tenantId` |
+| `mia-platform.eu/environment` | `envId` |
+| `mia-platform.eu/project` | `projectId` |
+
+After the Project creation phase, you have to commit and deploy your new Project to effectively conclude the process.
+
+### Project Metrics
+
+When a production environment is defined for a Project, a preview of its **Kubernetes Metrics** will be rendered inside the related card on the Home Page. These metrics will show the following information:
+
+- Environment name;
+- Status (healthy, down);
+- Number of pods up and running;
+- CPU usage;
+- RAM usage.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/delete-a-project.md b/versioned_docs/version-14.5.1/products/console/project-configuration/delete-a-project.md
new file mode 100644
index 0000000000..b62188d57f
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/delete-a-project.md
@@ -0,0 +1,25 @@
+---
+id: delete-a-project
+title: Delete a Project
+sidebar_label: Delete a Project
+---
+
+It is possible to delete a Project directly from the Console, via the "Project Settings" section in the "Overview" area. Here you will find the "Advanced" tab, which allows you to visualize advanced information and perform sensitive operations on the Project.
+
+
+
+To delete a Project, simply click on the "Delete Project" button. Clicking on the button opens a modal, which warns the user of the consequences of deletion, as shown in the picture below.
+
+
+
+
+
+
+
+
+
+:::info
+Should some of the operations following deletion (e.g. removal of the deployment history) fail, the modal will return a success feedback to the user with specific warnings as to which operations were unsuccessful.
+:::
+
+The modal also gives the user the possibility to perform additional actions contextual to the deletion, namely the deletion of namespaces associated with project-related environments and the archiving of the repo on the related Git Provider. Entering the name of the Project in the input field will enable the delete button, upon clicking on which the Project will be deleted and the user will be redirected to the homepage.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/docker-registry-configuration.md b/versioned_docs/version-14.5.1/products/console/project-configuration/docker-registry-configuration.md
new file mode 100644
index 0000000000..8a1a68f65e
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/docker-registry-configuration.md
@@ -0,0 +1,43 @@
+---
+id: docker-registry-configuration
+title: Docker Registry Configuration
+sidebar_label: Docker Registry Configuration
+---
+
+A Docker Registry is a service that stores and manages Docker container images, allowing developers to distribute, share, and download these images across different machines or development environments.
+In order to pull and push images and use them in different pipelines it is necessary to configure it properly.
+A Kubernetes cluster uses secrets to authenticate with a container registry to pull a private image, therefore it is necessary to create and configure your secrets.
+
+### Step 1
+Go in the setting interface of the console, on the Workload & Runtime section it is possible to add and modify a secret.
+Add your secret that will be used to pull images from your docker registry.
+
+
+
+:::caution
+Only a user with project admin permission can access this section of the console
+:::
+
+### Step 2
+Once you have added the secret in the console, it has to be configured in order to be authenticated to the docker registry.
+In the project repository you will find a `mlp.yaml` file which generates Kubernetes secrets using the mlp tool. For more information about the tool follow the link: [Mlp Tool](/runtime-components/tools/mlp/10_overview.md)
+
+Example of a mlp.yaml file:
+
+
+
+- `name`: is the name of the secret created from the console
+- `username` and `password`: are the credentials of the secret used to authenticate to the docker registry
+- `server`: is the url of the server of the private docker registry
+
+### Step 3
+The last step is to setup a pipeline.
+For detailed information follow this link [Pipeline setup](/infrastructure/self-hosted/pipeline-configuration.md)
+
+For building and pushing images to a private registry it can be created a docker job.
+
+This is an example using aws docker registry:
+
+
+- `variable section`: in this section you will write the docker image name, its tag version and the docker registry path.
+- `before script section`: in this section you will prepare the configuration of the docker registry with its access keys and secret, login to the docker registry and then verify or create a repository in case it is absent.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/documentation-portal.md b/versioned_docs/version-14.5.1/products/console/project-configuration/documentation-portal.md
new file mode 100644
index 0000000000..3fac19ce2d
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/documentation-portal.md
@@ -0,0 +1,157 @@
+---
+id: documentation-portal
+title: Documentation Portal
+sidebar_label: Documentation Portal
+---
+
+Documentation is a vital part of any Restful API in order to drive consistency and discipline across your API development workflow.
+
+The documentation Portal section in the Developer Console area exposes the Open API documentation of all services and CRUDs that you have defined and exposed. In this way, you will be able to obtain information about the routes exposed by your resources from a single section and to test the correct functioning of each of them.
+
+:::note
+API Portal service is responsible for the generation of the Documentation Portal section of the Console. To learn more about this plugin and how to use it to expose your Open API documentation, visit this [link](/runtime-components/plugins/api-portal/10_overview.md)
+:::
+
+You can share API documentation within your company, externally to partners and suppliers.
+
+In order to test each API, you can access your tags on the right side of the screen, where the APIs are grouped according to their tags: by clicking on one tag, you will visualize all the APIs that belong to that tag.
+
+For example, if you have created a CRUD with the "Plates" tag, you will be able to select it:
+
+
+
+The Console will show you a request example for each request type that you can use to easily test your Api. You just need to copy the request example, paste it in the Json editor and you will be ready to test your Api!
+
+:::note
+The available documentation is generated by [Swagger Aggregator](/runtime-components/plugins/swagger-aggregator/10_overview.md).
+You can [apply custom configurations directly from the Console](/products/console/api-console/advanced-section/swagger-aggregator/configuration.md)
+:::
+
+:::tip
+If you want to hide some endpoints of your API from the API Portal documentation you can do this in the [Management section](/products/console/api-console/api-design/endpoints.md#manage-the-visibility-of-your-endpoints) of the endpoint you want to hide.
+:::
+
+In the following section you will see how to interact with the Documentation Portal graphical interface and how to test your exposed routes by sending requests to them.
+
+## CRUD Documentation
+
+After having exposed and released a [CRUD](/products/console/api-console/api-design/crud_advanced.md) you can find the relative APIs documentation in the API Portal.
+APIs are exposed automatically by the [CRUD Service](/runtime-components/plugins/crud-service/10_overview_and_usage.md), check out the [CRUD Endpoints section](/runtime-components/plugins/crud-service/10_overview_and_usage.md#crud-endpoints) to know all details of endpoints and how to perform CRUD operations.
+Below you can find some basic examples of CRUD operations you can do with API Portal.
+
+## GET request
+
+### How to "Get a list of plates"
+
+If you want to test the GET endpoint, you need to click the row that will expand it.
+
+In the Query Params section, you can filter and sort all the request configuration you need by ticking the boxes of the information you are looking for. For instance, we ticked id, name, description, and price. So, only these specific contents will be passed upon the GET request.
+
+
+
+You can hide the visibility of the content of an entire section by pushing the button **Collapse**.
+
+
+
+Then you can expand it again by clicking **Expand**
+
+By opening the **Object Properties** you can hide the properties that you don't want to retrieve just by unchecking the boxes.
+As you can see below, we uncheck creatorId and type, as they don't appear in the list.
+
+
+
+Now you have the ability to test the API request by pushing **Try it** - if the APIs are protected, you need to authenticate yourself by filling the Secret in, as shown below.
+
+
+
+Once the single API is selected, in this area you can see the structure of the API and the data that are exposed.
+
+Below you can see the screenshot of a successfull request to our running API, we can see 200 as OK success status response code and in the black box on the right, you can see the request, that can be seen as a cURL,in Node, in JavaScript, and in Java.
+In the second box, you can see the response of the body with the list of the plates.
+
+You can see all the Parameters Type: query, path, header, and body.
+
+
+
+In addition, you can also edit it in JSON as shown below.
+
+
+
+## POST request
+
+### How to "Add a new item to the plates collection"
+
+In order to test the POST endpoint, you need to click the row that will open it up. Now you have the ability to test the API request by entering the information that you need.
+In our case we added a plate of "onion rings" with its description and its price.
+Then push **Try it** - if the APIs are protected, you need to authenticate yourself by filling the Secret in.
+
+Below you can see the screenshot of a successfull request to our running API, we can see 200 as OK success status response code, a new ID was created and in the black box on the right, you can see the request, that can be seen as a cURL,in Node, in JavaScript, and in Java.
+
+
+
+Visibility. Always remember the status, whether it is private, public, trash or deleted.
+
+Otherwise, you can add a new item to the collection by directly writing the information you need in the Json Schema by clicking the **Edit Json** button.
+
+In our example, we successfully added the plate Lasagna, as we can see 200 as OK success status response code.
+Remember to tick all the boxes of the body params you want to add. In the example, you can see in the Json Schema we ticked "name" in the body params.
+
+
+
+You can also see the complete Json Schema and all the type variables both for the request and response.
+
+
+
+## DELETE request
+
+### How to "Delete a plate from the plates collection"
+
+If you want to test the DELETE endpoint, you need to click the row that will open it up. Now you have the ability to test the API request by putting the ID of the plate that you want to delete and then pushing **Try it** - if the APIs are protected, you need to authenticate yourself by filling the Secret in.
+
+Below you can see the screenshot of a successfull request to our running API. You can see 204 as No content status response code and in the black box on the right, you can see the request, that can be seen as a cURL,in Node, in JavaScript, and in Java.
+
+
+
+By opening the **Object Properties** you can hide the properties that you don't want to delete just by unchecking the boxes.
+
+For instance, we uncheck all the properties that we want to keep.
+You can also look for a property in the search box and then push **add**
+
+
+
+Visibility. Always remember the status, whether it is private, public, trash or deleted.
+
+## PATCH request
+
+### How to "Update a plate of the collection by ID"
+
+In order to test the Patch endpoint, you need to click the row that will open it up. Now you have the ability to test the API request by editing the fields you want.
+
+In our case, we want to edit the name of a plate from "Salmon" to "Salmon with veggie". We retrieved the correct ID from the GET request and we entered it in the "path params". Since we want to change the name of the plate, we will tick the operator **$set** and **name**, and we will type the new name: Salmon with veggie.
+
+Then, push **Try it** - if the APIs are protected, you need to authenticate yourself by filling the Secret in.
+
+Below you can see the screenshot of a successfull request to our running API, we can see 200 as OK success status response code with the new name. In the black box on the right, you can see the request, that can be seen as a cURL,in Node, in JavaScript, and in Java.
+
+
+
+## Field Update Operators
+
+In the following table you can find the modifiers of the Body Params:
+
+| Name | Description |
+| ------------- |:-------------------------------------------------------------------------:|
+| $set |Sets the value of a field in a document |
+| $unset |Removes the specified field from a document |
+| $inc |Increments the value of the field by the specified amount |
+| $mul |Multiplies the value of the field by the specified amount |
+| $currentDate |Sets the value of a field to current date, either as a Date or a Timestamp |
+| $push |Appends a specified value to an array |
+
+:::info
+By opening the **Object Properties** you can hide the properties that you don't want to edit just by unchecking the boxes.
+:::
+
+:::tip
+Always remember the status, whether it is private, public, trash or deleted.
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/AddQuickLink.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/AddQuickLink.png
new file mode 100644
index 0000000000..d1a080fbdc
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/AddQuickLink.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/GET.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/GET.png
new file mode 100644
index 0000000000..5211d6a567
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/GET.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-basic-homepage.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-basic-homepage.png
new file mode 100644
index 0000000000..327610dff5
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-basic-homepage.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-metrics-homepage.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-metrics-homepage.png
new file mode 100644
index 0000000000..f030206997
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/Mia-Platform-metrics-homepage.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/PostOnion.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/PostOnion.png
new file mode 100644
index 0000000000..acd3a5486e
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/PostOnion.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-container-registry.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-container-registry.png
new file mode 100644
index 0000000000..9e00cd17d1
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-container-registry.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-public-vars.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-public-vars.png
new file mode 100644
index 0000000000..862e9571ee
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-public-vars.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-secreted-vars.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-secreted-vars.png
new file mode 100644
index 0000000000..254e87095d
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-environment-secreted-vars.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-azure.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-azure.png
new file mode 100644
index 0000000000..22a554fd08
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-azure.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-gitlab.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-gitlab.png
new file mode 100644
index 0000000000..306cb8d3ac
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add-infrastructure-component-gitlab.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment.png
new file mode 100644
index 0000000000..78bfdf29a0
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_error.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_error.png
new file mode 100644
index 0000000000..d8bb4f24a3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_error.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_success.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_success.png
new file mode 100644
index 0000000000..88e6714ad2
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/add_environment_success.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/authorization-flow-sequence.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/authorization-flow-sequence.png
new file mode 100644
index 0000000000..61ccd8b92c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/authorization-flow-sequence.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-add-role-assignment.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-add-role-assignment.png
new file mode 100644
index 0000000000..40f9167a6c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-add-role-assignment.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-overview.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-overview.png
new file mode 100644
index 0000000000..f9cc089df3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-akv-overview.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-creation.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-creation.png
new file mode 100644
index 0000000000..468b7fe2c7
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-creation.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-federated-credential-creation.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-federated-credential-creation.png
new file mode 100644
index 0000000000..4dd5952c63
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/azurePortal-app-registration-federated-credential-creation.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/cmdk-quick-links.gif b/versioned_docs/version-14.5.1/products/console/project-configuration/img/cmdk-quick-links.gif
new file mode 100644
index 0000000000..51832df6e0
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/cmdk-quick-links.gif differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/container-registries-table.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/container-registries-table.png
new file mode 100644
index 0000000000..a1bc5dbba3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/container-registries-table.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-env-var.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-env-var.png
new file mode 100644
index 0000000000..2297f9d3db
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-env-var.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-1-enhanced.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-1-enhanced.png
new file mode 100644
index 0000000000..3528e81474
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-1-enhanced.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2-ci-cd-provider.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2-ci-cd-provider.png
new file mode 100644
index 0000000000..8cd37e0d09
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2-ci-cd-provider.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2.png
new file mode 100644
index 0000000000..95a11afe7f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-2.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-3.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-3.png
new file mode 100644
index 0000000000..6e34034123
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/create-project-3.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete-env-var.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete-env-var.png
new file mode 100644
index 0000000000..0d28c38d26
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete-env-var.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/deleteOnion.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/deleteOnion.png
new file mode 100644
index 0000000000..ec2d7158ce
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/deleteOnion.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete_environment.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete_environment.png
new file mode 100644
index 0000000000..09038f029e
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/delete_environment.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/docker-job.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/docker-job.png
new file mode 100644
index 0000000000..cae0004244
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/docker-job.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/editJSON.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/editJSON.png
new file mode 100644
index 0000000000..dfd8563580
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/editJSON.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/edit_environment.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/edit_environment.png
new file mode 100644
index 0000000000..cd3a2165ac
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/edit_environment.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/environment_detail.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/environment_detail.png
new file mode 100644
index 0000000000..79a9506488
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/environment_detail.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/environments_table.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/environments_table.png
new file mode 100644
index 0000000000..458e540738
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/environments_table.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/expand.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/expand.png
new file mode 100644
index 0000000000..23e41d2175
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/expand.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-deploy-history.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-deploy-history.png
new file mode 100644
index 0000000000..000e6dda98
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-deploy-history.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-selection.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-selection.png
new file mode 100644
index 0000000000..ba34b9a2c9
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/infrastructure-project-selection.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface.gif b/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface.gif
new file mode 100644
index 0000000000..bcd71bd544
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface.gif differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface_commands.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface_commands.png
new file mode 100644
index 0000000000..617485624f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/interface_commands.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/json.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/json.png
new file mode 100644
index 0000000000..2f305d3a7d
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/json.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/listPlates.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/listPlates.png
new file mode 100644
index 0000000000..de25315a13
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/listPlates.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/mpl-file.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/mpl-file.png
new file mode 100644
index 0000000000..de63458764
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/mpl-file.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/object-properties.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/object-properties.png
new file mode 100644
index 0000000000..147c2caf28
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/object-properties.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/patchPlate.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/patchPlate.png
new file mode 100644
index 0000000000..5a9afa2789
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/patchPlate.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/pipeline-webhook-warning.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/pipeline-webhook-warning.png
new file mode 100644
index 0000000000..625adcfab3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/pipeline-webhook-warning.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/postLasagna.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/postLasagna.png
new file mode 100644
index 0000000000..72d12d539c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/postLasagna.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/project-design-environment-variable-from-secret.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/project-design-environment-variable-from-secret.png
new file mode 100644
index 0000000000..7c78f822e6
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/project-design-environment-variable-from-secret.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/properties.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/properties.png
new file mode 100644
index 0000000000..f5dda6f02f
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/properties.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials-certificate.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials-certificate.png
new file mode 100644
index 0000000000..befb6bbda1
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials-certificate.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials.png
new file mode 100644
index 0000000000..e90e893950
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/providers-akv-client-credentials.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/queryParams.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/queryParams.png
new file mode 100644
index 0000000000..cb3ac3ead8
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/queryParams.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/secret-config.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/secret-config.png
new file mode 100644
index 0000000000..598c45c58e
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/secret-config.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/secretPlates.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/secretPlates.png
new file mode 100644
index 0000000000..c12b3a81f6
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/secretPlates.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/segmented.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/segmented.png
new file mode 100644
index 0000000000..cab011e4c0
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/segmented.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-advanced-actions.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-advanced-actions.png
new file mode 100644
index 0000000000..3179c0cde7
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-advanced-actions.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-delete-project.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-delete-project.png
new file mode 100644
index 0000000000..3cf49a7d8a
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-delete-project.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-deployment-options.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-deployment-options.png
new file mode 100644
index 0000000000..f43d46a3ce
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-deployment-options.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-deployment-options.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-deployment-options.png
new file mode 100644
index 0000000000..0b48957009
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-deployment-options.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-project-information.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-project-information.png
new file mode 100644
index 0000000000..584f33c60b
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-project-information.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-security-features.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-security-features.png
new file mode 100644
index 0000000000..5d8c66aaa5
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-edit-security-features.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-feature-preview.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-feature-preview.png
new file mode 100644
index 0000000000..8a02a7173d
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-feature-preview.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-image-pull-secrets.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-image-pull-secrets.png
new file mode 100644
index 0000000000..f6cfaa3b12
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-image-pull-secrets.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-microservices.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-microservices.png
new file mode 100644
index 0000000000..f18f7d1669
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-microservices.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-project-information.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-project-information.png
new file mode 100644
index 0000000000..97a4526e8c
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-project-information.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-providers.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-providers.png
new file mode 100644
index 0000000000..6a88d5786e
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-providers.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-runtime-settings.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-runtime-settings.png
new file mode 100644
index 0000000000..048a4f1445
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-runtime-settings.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-saving-options.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-saving-options.png
new file mode 100644
index 0000000000..c9a650d2f2
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-saving-options.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-security-features.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-security-features.png
new file mode 100644
index 0000000000..a3f2bf4ea3
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-security-features.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-card.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-card.png
new file mode 100644
index 0000000000..eb95fa13f6
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-card.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-modal.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-modal.png
new file mode 100644
index 0000000000..6ab7efc282
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/settings-workflow-migration-modal.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/img/webhook-manual-creation.png b/versioned_docs/version-14.5.1/products/console/project-configuration/img/webhook-manual-creation.png
new file mode 100644
index 0000000000..db5c5f95c5
Binary files /dev/null and b/versioned_docs/version-14.5.1/products/console/project-configuration/img/webhook-manual-creation.png differ
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/index.md b/versioned_docs/version-14.5.1/products/console/project-configuration/index.md
new file mode 100644
index 0000000000..64f965c6bf
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/index.md
@@ -0,0 +1,17 @@
+---
+id: project-configuration
+title: Project Configuration
+sidebar_label: Project Configuration
+sidebar_order: 0
+---
+
+In Mia-Platform, a "Project" is not merely a collection of microservices. Instead, it's a structured aggregation of microservices, configurations, and data. This grouping might represent an entire digital ecosystem or just a specific component within it.
+
+Within the platform's hierarchy, a "Project" sits beneath a "Company", allowing a single business entity to have an overarching view and manage multiple projects simultaneously. Such an arrangement provides organizations with unique flexibility, facilitating the adaptation and scalability of their projects based on specific operational and strategic needs.
+
+## Project types
+
+There are two different Project types, supported in Console:
+
+- [Application Projects](/products/console/project-configuration/application-project.md): meant for software products development and release
+- [Infrastructure Projects](/products/console/project-configuration/infrastructure-project.md): meant for operations teams, leveraging IaC for infrastructure provisioning
\ No newline at end of file
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/infrastructure-project.md b/versioned_docs/version-14.5.1/products/console/project-configuration/infrastructure-project.md
new file mode 100644
index 0000000000..7d0388068a
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/infrastructure-project.md
@@ -0,0 +1,166 @@
+---
+id: infrastructure-project
+title: Infrastructure Projects
+sidebar_label: Infrastructure Projects
+sidebar_order: 2
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+**Infrastructure Projects** are a dedicated Project type in the Console for provisioning and managing infrastructure, following the *Infrastructure as Code* (IaC) paradigm.
+
+They are designed primarily for **Operations teams**, who can use them to define, version, and deploy infrastructure resources while ensuring consistency, transparency, and control over infrastructure changes.
+
+For example, DevOps teams can use Infrastructure Projects to group all repositories that use tools like [Terraform](https://www.hashicorp.com/en/products/terraform), [OpenTofu](https://opentofu.org), [Microsoft Bicep](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/overview?tabs=bicep), or others to manage resources.
+
+By consolidating these repositories, Infrastructure Projects simplify the release and monitoring process. They allow you to deploy a component and follow a two-part process: a validation phase (e.g., the `plan` phase in a Terraform pipeline), where you can review proposed changes and decide whether to proceed, and an execution phase (e.g., the `apply` phase in a Terraform pipeline), where the changes are actually applied.
+
+These Projects are distinct from traditional [Application Projects](/products/console/project-configuration/application-project.md) as they are specifically designed to manage infrastructure resources, enabling better control, automation, and governance in the context of IaC. They can be connected to multiple repositories containing code and scripts to deploy resources in your infrastructure, providing the ability to deploy quickly with a review of the affected resources.
+
+:::info
+Infrastructure Projects are currently a [**BETA** feature](/release-notes/info/version_policy#feature-preview-and-beta) and are under active development.
+
+At this time, they only support **GitLab** and **Azure DevOps** repositories with a specific pipeline configuration. Support for other providers will be added in future Console releases. You can find out more in the [technical limitations](#technical-limitations) section below.
+
+If you want to share your feedback, you can head to the [Community discussion post](https://github.com/mia-platform/community/discussions/612).
+:::
+
+## Creating an Infrastructure Project
+
+When creating a new Project in your Company, you can select the **Infrastructure** type.
+This option unlocks a dedicated setup flow and enables the creation of a Project tailored to infrastructure workflows.
+
+
+
+## Managing Infrastructure Components
+
+Each Infrastructure Project includes a specific section for managing **infrastructure components**.
+
+:::info
+Currently, it is possible to add components from scratch, referencing existing repositories in the provider of the project.
+
+In the near future components will be available in the [Software Catalog](/products/software-catalog/overview.md), to quickly install components simplifying the configuration and allowing to share
+these configurations with other users.
+:::
+
+To create a new infrastructure component from scratch, you need to provide several information, which depends on the type of provider of the project.
+
+
+
+If you have a project using GitLab as a provider, these are the information that are required to add a component:
+
+- **Name**: The name of the component.
+- **Repository URL**: The URL of the Git repository where the component's code is hosted. This is used to provide a reference to the user.
+- **Branch/tag Name**: The Git branch, tag, or commit that the deployment pipeline will run on.
+- **Repository Project ID**: The project ID associated with the Git repository. This is actually used to interact with the Git Provider.
+
+
+
+As example:
+
+- **Repository URL**: `https://my.gitlab.host/some/repo`
+- **Branch/tag name**: `main`
+- **Repository Project ID**: `some/repo`
+
+:::info
+As a _Repository Project ID_, you can use the relative path of the repository or the numeric identifier that you can find in the _Settings_ section of the repository.
+:::
+
+
+
+
+If you have a project using Azure DevOps as a provider, these are the information that are required to add a component:
+
+- **Name**: The name of the component.
+- **Repository URL**: The URL of the Git repository where the component's code is hosted. This is used to provide a reference to the user.
+- **Branch/tag Name**: The Git branch, tag, or commit that the deployment pipeline will run on.
+- **Repository Organization Name**: The name of the Organization that contains the repository.
+- **Repository Project Name**: The name of the repository that contains the code to be deployed.
+- **Repository Pipeline ID**: As Azure DevOps allows to configure different pipelines, this is the numeric identifier of the pipeline configured
+
+
+
+As example:
+
+- **Repository URL**: `https://dev.azure.com/my-organization/my-project`
+- **Branch/tag name**: `main`
+- **Repository Organization Name**: `my-organization`
+- **Repository Project Name**: `my-project`
+- **Repository Pipeline ID**: `1`
+
+:::info
+The _Repository Pipeline ID_ is not the name of the pipeline, but the identifier that can be found in the settings of the pipeline itself.
+
+You can alternatively find it by navigating into your pipeline page: on the address bar the `definitionId` value is the pipeline identifier.
+:::
+
+
+
+
+## Deploying your Infrastructure
+
+From within your Project, you can manage the deployment flow of your infrastructure components by:
+
+- Running a **plan** to preview proposed infrastructure changes
+- Executing an **apply** to confirm and release your infrastructure changes
+
+This enables control and consistency in your infrastructure.
+
+### Deploy History
+
+The **Deploy History** page is useful to better understand which actions have been executed for each infrastructure component of your Project.
+In particular this view traces which component has been deployed, together with some additional information.
+
+
+
+#### Pipeline Webhook
+
+In order to correctly fill up the Deploy History view, an Infrastructure Component must have a webhook associated to its repository on the git Provider.
+
+The webhook is automatically created upon the Infrastructure Component creation. However, in case the webhook creation fails, a warning message will inform to manually retry the webhook creation from the Infrastructure Components Overview page.
+
+
+
+If an Infrastructure Component is missing the related webhook on the git Provider, the Component will show highlighted to inform of this issue. On the right side of the Component row, a dedicated action appears to manually retry the webhook creation.
+
+
+
+## Runtime Visibility
+
+This feature is currently in [BETA](/release-notes/info/version_policy#feature-preview-and-beta), so the visualization of runtime resources is not natively implemented.
+
+To get the infrastructure components generated after deployment for each project, you can generate an [Infrastructure Component Runtime Software Catalog item type](/products/software-catalog/items-manifest/infrastructure-component-runtime.md) on the software catalog from the same pipeline via [miactl](/products/software-catalog/items-management/miactl.md).
+
+Subsequently, this information can be retrieved either by using the Marketplace API or by creating a [Composer extension](/products/console/company-configuration/extensions.md#add-new-extension).
+
+:::info
+To retrieve the information of the available [Infrastructure Component Runtime Software Catalog item type](/products/software-catalog/items-manifest/infrastructure-component-runtime.md), you can use the following software catalog endpoint and filter by the project of interest:
+
+```shell
+curl -X GET \
+ -H "Authorization: Bearer " \
+ '/api/marketplace?tenantId=&types=infrastructure-component-runtime'
+```
+
+:::
+
+## Access and Permissions
+
+Currently, all members of a Company can view Infrastructure Projects.
+However, only users with the role of **Project Administrator** or **Company Owner** are allowed to perform changes within them.
+
+## Technical limitations
+
+As mentioned above, there are still some technical limitations that repositories must conform to in order for Infrastructure Projects to work.
+
+:::note
+All of the following limitations will be soon resolved
+:::
+
+- the repository must be on one of the following:
+ - _GitLab_ and use _GitLab CI_
+ - the GitLab CI pipeline must be composed of two separate jobs named `plan` and `apply`
+ - _Azure_ and use _Azure Pipelines_
+ - the Azure pipeline must be composed of three stages: the first stage has to be named `plan`, the second stage must be a `ManualApproval`, and the thirs stage must be named `apply`
+- creation from Marketplace is not supported yet, so you need to create your repository beforehand
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/index.md b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/index.md
new file mode 100644
index 0000000000..47ba3b5fb9
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/index.md
@@ -0,0 +1,14 @@
+---
+id: kustomize-your-configurations
+title: Kustomize your configurations
+sidebar_label: Kustomize your configurations
+---
+
+[Kustomize](https://kustomize.io/) is a project-level configuration manager. This tool allows you to modify the default configuration of your microservices on a per-environment basis in a simple declarative way with pure YAML. It is based on overlays that are patches for the configuration files generated by the console and are applied at deployment time.
+
+To learn more about how to use Kustomize with your projects take a look at the following pages:
+
+- [Migrate to Kustomize from a default project](/products/console/project-configuration/kustomize-your-configurations/migrate-to-kustomize.md)
+- [Manage a Kustomize project](/products/console/project-configuration/kustomize-your-configurations/manage-a-kustomize-project.md)
+
+For hands-on examples, take a look at the [use cases page](/products/console/project-configuration/kustomize-your-configurations/kustomize-use-cases.md).
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/kustomize-use-cases.md b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/kustomize-use-cases.md
new file mode 100644
index 0000000000..b8be37fa16
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/kustomize-use-cases.md
@@ -0,0 +1,277 @@
+---
+id: kustomize-use-cases
+title: Kustomize Use Cases
+sidebar_label: Kustomize Use Cases
+---
+In this page you can see examples of how you can use Kustomize in order to manage some use cases.
+
+### Patch replicas
+
+To show you how Kustomize can be helpful, let's analyze a simple use case where we have a project and want to change the number of static replicas only for the production environment.
+
+As a starting point, let's assume we have a project containing a microservice called `hello-world` with a deployment file similar to the following:
+
+```yaml
+# file: ./configuration/helloworld.deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: hello-world
+spec:
+ replicas: 1
+ template:
+ spec:
+ containers:
+ - image: hello-world:latest
+```
+
+The base configuration sets the number of replicas to 1. Now, let's define an overlay for the production environment that changes the number of replicas from 1 to 2.
+
+Add the following file:
+
+```yaml
+# file: ./overlays/production/helloworld.patch.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: hello-world
+spec:
+ replicas: 2
+```
+
+This way, when the production environment will be deployed, there will be two static replicas of the `hello-world` service. Notice that `./overlays/production/kustomization.yaml` is automatically generated and can be left empty.
+
+:::tip
+Sometimes you could need to patch keys containing a `/` character.
+The `/` character is often used (e.g. for inline operations) by Kustomize as separator, consequently you need to replace it with the `~1` value.
+
+For example, if you want to add the `app.kubernetes.io/component` label to one or more manifests, you should escape the slash as following:
+```yaml
+- patch: |-
+ - op: replace
+ path: /metadata/labels/app.kubernetes.io~1component
+ value: monitoring
+```
+:::
+
+### Patch all deployments
+
+In addition, Kustomize allows you to specify a list of targets in the `kustomization.yaml` files included in overlays. This feature allows applying patches to multiple resources at once.
+
+The snippet below includes all the available targets:
+
+```yaml
+patches:
+ - path:
+ target:
+ group:
+ version:
+ kind:
+ name:
+ namespace:
+ labelSelector:
+ annotationSelector:
+```
+
+For example, imagine you want to inject a sidecar proxy into all your Kubernetes deployments.
+
+Let's suppose you already have a couple of microservices with the following deployments:
+
+```yaml
+# file: ./configuration/helloworld.deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: hello-world
+spec:
+ replicas: 1
+ template:
+ spec:
+ containers:
+ - image: hello-world:latest
+---
+# file: ./configuration/goodbyeworld.deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: goodbye-world
+spec:
+ replicas: 1
+ template:
+ spec:
+ containers:
+ - image: goodbye-world:latest
+```
+
+First off, you need to create the patch containing the sidecar container specification in the environment of interest (e.g. development).
+
+```yaml
+# file: ./overlays/development/sidecar.patch.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: not-important
+spec:
+ template:
+ spec:
+ containers:
+ - name: istio-proxy
+ image: docker.io/istio/proxyv2
+ args:
+ - proxy
+ - sidecar
+```
+
+Then, to apply the patch to all your Deployments, you have to manually edit the `kustomization.yaml` file in the selected overlay directory. For instance, if you want to inject the sidecar in the development environment, the corresponding `kustomization.yaml` would look like this:
+
+```yaml
+# file: ./overlays/development/kustomization.yaml
+resources:
+- ../../configuration
+
+patches:
+- path: sidecar.patch.yaml
+ target:
+ kind: Deployment
+```
+
+:::info
+When using `target`, the `metadata.name` of the patch will be ignored.
+:::
+
+Once deployed, you will see the two Deployment resources with an additional `istio-proxy` container.
+
+You can choose to add other conditions to find the targets to patch instead patching all deployments.
+For example, you can patch only deployments with a specific label or annotation:
+
+```yaml
+# file: ./overlays/development/kustomization.yaml
+resources:
+- ../../configuration
+
+patches:
+- path: sidecar.patch.yaml
+ target:
+ kind: Deployment
+ labelSelector: myLabel=labelValue,otherLabel=otherValue
+ annotationSelector: myAnnotation=annotationValue,otherAnnotation=otherValue
+```
+
+With the example above, the `istio-proxy` container will be added to deployments with **all the specified labels and annotations**.
+
+:::info
+You can apply labels to microservices inside the Design section of the Mia-Platform Console, or, in case of Self-Hosted installation, you can [set default labels](/products/software-catalog/items-manifest/plugin.md) to the microservices created from Marketplace.
+:::
+
+### Enable **High Availability** for business critical microservices
+
+Sometimes you need to be sure about the availability of few business critical microservices due to different reasons:
+* kubernetes cluster update;
+* start of a new business campaign;
+* ...
+
+In order to do that you probably want some microservice in *High Availability*.
+:::info
+The _High Availability_ is a characteristic of a system, an application, a service, that guarantee operability without intervention, even if there are problems on an instance of it.
+:::
+
+Using *Kustomize* and the *Mia-Platform Console* you can add advanced configurations to your business critical microservices.
+
+:::warning
+The following **is a basic example** that allows you to replicate and distribute replicas of services on different nodes of your cluster.
+
+Remember to always check your specific needs and customize the patch files based on the topology of your infrastructure and your requirements.
+:::
+
+In this example is showed how to guarantee that, on each business critical microservice, you have:
+* 3 up and running replicas;
+* replicas distributed through different nodes of the cluster.
+
+Of course we need to focus just on business critical services, so we will use a specific label to identify the right targets.
+The label is:
+> **highAvailability**: *true*
+
+Let's assume we have this following deployments:
+```yml
+# file: ./configuration/helloworld.deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: hello-world
+ labels:
+ highAvailability: "true"
+spec:
+ replicas: 1
+ template:
+ spec:
+ containers:
+ - image: hello-world:latest
+---
+# file: ./configuration/goodbyeworld.deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: goodbye-world
+ labels:
+ highAvailability: "false"
+spec:
+ replicas: 1
+ template:
+ spec:
+ containers:
+ - image: goodbye-world:latest
+```
+
+We expect to have the High Availability enabled on the `hello-world` service only, since the `goodbye-world` one doesn't have `highAvailability: true`.
+To do that we can use the following Kustomize configurations:
+```yml
+# file: ./overlays/PROD/high-availability.patch.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: not-important
+spec:
+ replicas: 3
+ template:
+ spec:
+ topologySpreadConstraints:
+ - maxSkew: 1
+ topologyKey: kubernetes.io/hostname
+ whenUnsatisfiable: ScheduleAnyway
+ labelSelector:
+ matchLabels:
+ highAvailability: "true"
+
+# file: ./overlays/PROD/kustomization.yaml
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+resources:
+ - ../../configuration
+
+patches:
+- path: high-availability.patch.yaml
+ target:
+ kind: Deployment
+ labelSelector: highAvailability=true
+```
+
+How can the files above let use reach our goal?
+* **replicas: 3** → in this way, all services that match the condition will have 3 static replicas (of course you can increase this number if you want more replicas);
+* **topologySpreadConstraints** → property that allows to describe the topology of your infrastructure and how the pods are distributed;
+ * **maxSkew** → the degree to which Pods may be unevenly distributed. We set it to **1**, to have at most 1 different replica among nodes;
+ * **topologyKey** → the topology key to be used for the pods distribution. We set it to **kubernetes.io/hostname**, that contains the k8s node;
+ * **whenUnsatisfiable** → what k8s must do if the condition is not satisfiable. Setting it to **ScheduleAnyway** ensure us the replica will be scheduled anyway.
+
+:::tip
+The **topologySpreadConstraints** is a very rich and powerful property.
+It allows you to control how Pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. This can help to achieve high availability as well as efficient resource utilization.
+
+Look at the [k8s official documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/) for more.
+:::
+
+The result, by deploying this **after** [**decorating your business critical services**](/products/console/api-console/api-design/services.md#labels-configuration) with the *highAvailability: true* label, is having 3 replicas of the services, spread across your cluster nodes.
+
+:::warning
+If you have the [Horizontal Pod Autoscaler enabled](/products/console/api-console/api-design/replicas.md) on some microservices, the value of the *static replicas* you set will not work.
+To fix that be sure to adjust the `minReplicas` value of the HPA through the Console page, otherwise some service could have just one replica → not High Availability.
+:::
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/manage-a-kustomize-project.md b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/manage-a-kustomize-project.md
new file mode 100644
index 0000000000..58f94399e9
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/manage-a-kustomize-project.md
@@ -0,0 +1,13 @@
+---
+id: manage-a-kustomize-project
+title: Manage a Kustomize project
+sidebar_label: Manage a Kustomize project
+---
+
+The basic building blocks of Kustomize are the environment overlays. Overlays are folders inside your project's git repository located at the path `overlays/`. Each environment can have its overlay and should be placed inside `overlays/%envId%/` (where `%envId%` is the runtime environment identifier). These runtime environment overlays can contain the following types of files:
+
+* `kustomization.yaml`: file that contains the directives that define the resulting configuration for the services deployed in the selected environment `%envId%`. Here, you can specify both the new resources to add and the base resources to patch. For more info see [here](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#kustomize-feature-list).
+
+* `%resourceName%.yaml` (put your actual resource name instead of `%resourceName%`): files containing the new resources to add to your base configuration.
+
+* `%patchName%.patch.yaml` (put your actual patch name instead of `%patchName%`): files containing possible partial modifications to your base project configuration.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/migrate-to-kustomize.md b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/migrate-to-kustomize.md
new file mode 100644
index 0000000000..9dbf5fb751
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/kustomize-your-configurations/migrate-to-kustomize.md
@@ -0,0 +1,71 @@
+---
+id: migrate-to-kustomize
+title: Migrate to Kustomize
+sidebar_label: Migrate to Kustomize
+---
+
+Kustomize is a useful tool for customizing Kubernetes resources declaratively. With Kustomize you can specify patches or new resources that can be applied to a specific runtime environment.
+
+To migrate from a default project to a Kustomize project you need to follow these steps:
+
+1. Since Kustomize uses a folder structure that is different from the default project's one, you need to manually move resources in the git repository.
+
+ First of all, you need to move all of your environment folders (located at `configuration/%envId%`) to a new first-level directory called `overlays`. Then, move the `variables/%envId%.env` files into `overlays/%envId%/variables.env`.
+
+ Create the file `configuration/kustomization.yaml` with the following content:
+
+ ```yaml
+ apiVersion: kustomize.config.k8s.io/v1beta1
+ kind: Kustomization
+ ```
+
+ And the `overlays/%envId%/kustomization.yaml` files with the following content:
+
+ ```yaml
+ apiVersion: kustomize.config.k8s.io/v1beta1
+ kind: Kustomization
+ resources:
+ - ../../configuration
+ ```
+
+ For more information on how to fill the `kustomization.yaml` files, please refer to the [official documentation](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#kustomize-feature-list).
+
+ In practice, you should change the structure from this one:
+
+ ```plain
+ .
+ ├── configuration
+ │ ├── %resourceName%.yaml
+ │ └── %envId%
+ | └── %resourceName%.yaml
+ └── variables
+ └── %envId%.env
+ ```
+
+ To this one:
+
+ ```plain
+ .
+ ├── configuration
+ │ ├── kustomization.yaml
+ │ └── %resourceName%.yaml
+ └── overlays
+ └── %envId%
+ ├── kustomization.yaml
+ ├── variables.env
+ ├── %resourceName%.yaml
+ └── %patchName%.patch.yaml
+ ```
+
+2. Enable the feature from the CMS. Go to the projects page, search for the project and select it. Inside the project drawer go to the `deploy` section and add the following property: `"projectStructure": "kustomize"` to the deploy configuration JSON object.
+
+3. Configure the deploy pipeline. Add in the deploy pipeline the command to generate the customized resources with [`mlp`](https://github.com/mia-platform/mlp):
+
+ ```sh
+ mlp hydrate "configuration" "overlays/${ENV_ID}"
+ mlp kustomize "overlays/${ENV_ID}" -o "${DESTINATION_FILE}"
+ ```
+
+ This command will generate the customized resources for the provided `${ENV_ID}` environment and store them into a single file at `${DESTINATION_FILE}`. The generated file should then be provided as an argument to the `mlp deploy` command later in the pipeline.
+
+Once you have migrated your project successfully, learn how to manage a Kustomize project [here](/products/console/project-configuration/kustomize-your-configurations/manage-a-kustomize-project.md).
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/index.md b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/index.md
new file mode 100644
index 0000000000..f7ff81057f
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/index.md
@@ -0,0 +1,28 @@
+---
+id: environment-variables-introduction
+title: Environment Variables Introduction
+sidebar_label: Environment Variables Introduction
+---
+
+An environment variable is a variable whose value is set outside the program, typically through a functionality built into the operating system or microservice.
+An environment variable is made up of a name/value pair, and any number may be created and available for reference at a point in time.
+
+Environment variables are excellent for decoupling application configurations. Typically, our applications require many variables to be set in order for them to work. By relying on external configurations, your app can easily be deployed on different environments. These changes are independent of code changes, so they do not require your application to be rebuilt to change.
+
+They externalize all environment specific aspects of your app and keep your app encapsulated. Now you can run your app anywhere by modifying the environment variables without changing your code and without rebuilding it!
+
+Some specific examples of common scenarios when you should consider using environment variables.
+
+* Which HTTP port to listen on;
+* What path and folder your files are located in, that you want to serve;
+* Pointing to a development, staging, test, or production database.
+
+## Variables providers
+
+Environment variables are stored in external services that the Console can interact with. The supported services are:
+
+- [Gitlab](https://gitlab.com)
+- [Vault](https://www.vaultproject.io/)
+- [Azure Key Vault](https://azure.microsoft.com/en-us/products/key-vault)
+
+To use one service or another some configuration must be done at the project level.
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-akv.mdx b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-akv.mdx
new file mode 100644
index 0000000000..962989ca5b
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-akv.mdx
@@ -0,0 +1,501 @@
+---
+id: manage-environment-variables-with-akv
+title: Manage Environment Variables with Azure Key Vault
+sidebar_label: Manage Environment Variables with Azure Key Vault
+---
+
+import Tabs from "@theme/Tabs";
+import TabItem from "@theme/TabItem";
+
+[Azure Key Vault](https://azure.microsoft.com/en-us/products/key-vault), serves as a valuable solution for securely storing and managing a wide range of sensitive information. This includes not only fundamental key-value pairs but also digital certificates and private keys. It ensures the continuous availability of these resources for our deployments and applications, enhancing security and accessibility.
+
+:::warning
+The current version of the Console can only acquire key-value pairs (aka secrets) from Key Vault.
+:::
+
+You can directly manage the secrets stored in Key Vault using the web interface of your Key Vault instance. The exclusive role of the Console is to retrieve the secrets keys from Key Vault and then create the respective Kubernetes configuration files to enable the external secrets operator to deploy the associated Kubernetes Secrets on the cluster.
+
+
+
+To correctly configure a Key Vault in your project follow these steps:
+
+1. [Install the `external-secrets` operator](https://external-secrets.io/) in the Kubernetes cluster where your project will be deployed
+2. [Setup the Key Vault instance for the operator authentication](#setup-the-key-vault-instance)
+3. [Setup the project to use the Azure Key Vault provider as a secret manager](#project-configuration)
+
+## Setup the Key Vault instance
+
+There are several ways to enable the operator authentication against the Key Vault instance, the one we support at the moment is the Workload Identity authentication. This authentication method does not require sharing any secret between the cluster and Key Vault.
+
+### Workload Identity setup
+
+The [Workload Identity](https://azure.github.io/azure-workload-identity/docs/) authentication works by establishing a trust relationship between a service account from the namespace of the Kubernetes cluster where your project will be deployed and the Azure Active Directory service that is responsible for the authentication and authorization against the Key Vault instance.
+
+#### 1. Create an Azure Active Directory application
+
+First off, you need to create an Azure application aka Service Principal. This application will be used as a conduit to Azure Key Vault and will set up all the required permissions and credentials. Follow the steps reported [here](https://learn.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#register-an-application-with-microsoft-entra-id-and-create-a-service-principal).
+
+#### 2. Authorize the AAD application
+
+Once the AAD Application has been created you need to authorize it to read the secrets stored in Key Vault. This process depends on your organization's policies and the authorization method chosen, if you are using the RBAC authorization model follow [these steps](https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide).
+
+#### 3. Enable your cluster as an Open ID Connect provider
+
+In this step, we are going to enable the cluster to act as an Open ID Connect provider. This step allows the verification of the token signed by the operator by Key Vault.
+
+The actions to be performed in this step depend on the nature of your cluster:
+
+- Managed clusters (i.e. AKS, GCP, ...) are usually easier to configure as an OIDC provider. In fact, GCP clusters usually are by default OIDC providers. While AKS clusters can be configured in [this way](https://azure.github.io/azure-workload-identity/docs/installation/managed-clusters.html).
+- Self-managed clusters require a bit more work but [here](https://azure.github.io/azure-workload-identity/docs/installation/self-managed-clusters.html) there is a well-explained tutorial.
+
+#### 4. Add the federated credentials to the application
+
+In this last step, we are ready to associate the service account that will be automatically deployed in the cluster namespace associated to the environment of the project with the AAD Application created before.
+
+On the Application main page, click on the `Certificates & secrets` menu voice on the left, then switch to the `Federated credential` tab and click `Add credential`, you will be prompted with a form. Inside the form fill in the `Subject identifier` field in the following way:
+
+```
+system:serviceaccount::akv-accessor
+```
+
+Where:
+
+- `` is the namespace where your project will be deployed. it depends on the environment of the project, its value can be retrieved from the [environments page](/products/console/project-configuration/manage-runtime-environments/index.md) in the Console.
+
+The other fields of the form can be filled in as you wish.
+
+This configuration can also be done from the Azure CLI program `az`, as explained [here](https://azure.github.io/azure-workload-identity/docs/topics/federated-identity-credential.html#federated-identity-credential-for-an-azure-ad-application).
+
+## Setup the Console project
+
+Once the Key Vault instance is configured, we are now ready to set up the Console project. The project set up can be split into three steps:
+
+1. Azure Key Vault provider creation
+2. Project configuration
+3. Microservices configuration
+
+### Azure Key Vault provider
+
+In order to connect to the Azure Key Vault instance you have to create a provider. In the provider creation modal, select the `Azure Key Vault` type when prompted, then fill the fields as described in the [providers management page](/products/console/company-configuration/providers/configure-provider.mdx#connect-a-provider)
+
+:::warning
+Please notice that each provider is linked to an Azure Key Vault store, we advice to setup at least two providers for each project, one for production data and another for noprod data, each associated with the respective environment of the project.
+:::
+
+### Project configuration
+
+Connect the provider to the project or environment through the CMS. Retrieve the previously generated provider's `_id` (you can find it inside the `Providers` section of the CMS) and use it to modify the `Environments variables` section in the CMS as follows:
+
+```json
+{
+ "type": "azure-key-vault",
+ "providerId": ,
+ "azureClientId": ,
+ "azureTenantId": ,
+ "serviceAccountName": ,
+}
+```
+
+Where:
+
+- `` (**required**) is the `_id` of the provider created before
+- `` (**required**) is the client id of the Azure Active Directory application that will fetch the secrets from the cluster
+- `` (**required**) the tenant identifier for your company on Azure
+- `` an optional name for the service account to use in the authentication process. Defaults to `akv-accessor`
+
+:::warning
+If `serviceAccountName` is defined the Console will not deploy the service account automatically but is your responsibility to provision it.
+:::
+
+You also have the option to distinguish between providers for specific environments. This enables you to establish various Azure Key Vault providers for different environments. To achieve this, you need to create an `environmentsVariables` object with the same structure as the one demonstrated above within the target environment object found in the `Environments` section of the project's page in the CMS. Any environment that doesn't specify its own `environmentsVariables` configuration will automatically inherit it from the project.
+
+### Use Azure Key Vault secrets inside the Console
+
+Secrets stored within an Azure Key Vault provider cannot be directly utilized as interpolations in the project's configuration. However, you can access these variables by creating a new microservice environment variable with the value type set to `from secret` linking a secret with name `akv-secret` and the secret key specified as the desired secret name. Detailed instructions for this process can be found in the [microservice configuration section](/products/console/api-console/api-design/services.md#environment-variable-configuration).
+
+By design, the `akv-secret` in the cluster is not automatically synchronized with its corresponding secrets on Azure Key Vault. Instead, when a new variable is added or removed in Key Vault, it is necessary to regenerate the Design configuration of the project to properly reconfigure the Kubernetes secret. Conversely, if a variable is edited, a new deploy of the target environment is required to update the variables on the cluster.
+
+## Examples - AKV Integration on a GKE cluster
+
+This example guides you, step by step, configuring AKV in your Company, linked to a _Google Kubernetes Engine_ cluster.
+The starting environment of this example is a green field, neither the External Secret Operator has been installed.
+
+### 1. Installing the External Secrets Operator
+
+The first step in order to let your AKV integration work is to install the [External Secret Operator](https://external-secrets.io/latest/).
+
+In this example we will use [_Helm_](https://helm.sh/) to install it, but you can find the complete installation guide at [this page](https://external-secrets.io/latest/introduction/getting-started/).
+
+:::warning
+Before installing the External Secret Operator, be sure to **be connected to the right k8s cluster**.
+:::
+
+With the following simple commands you can install the External Secret Operator:
+
+```bash
+helm repo add external-secrets https://charts.external-secrets.io
+
+helm install external-secrets \
+ external-secrets/external-secrets \
+ -n external-secrets \
+ --create-namespace
+```
+
+The commands above will install the External Secret Operator in a dedicated namespace, automatically created by _Helm_ during the installation process.
+After the installation is complete, you should have 3 services up and running inside the `external-secrets` namespace:
+
+```bash
+$ kubectl get pods
+NAME READY STATUS RESTARTS AGE
+external-secrets-operator-5db95c68b8-nn27p 1/1 Running 0 6d
+external-secrets-operator-cert-controller-568bd5d5cc-258j2 1/1 Running 0 6d
+external-secrets-operator-webhook-85695d9f88-7mxbp 1/1 Running 0 6d
+```
+
+### 2. Azure setup
+
+Azure needs different operations to let you complete the integration with the Mia-Platform Console and the External Secret Operator:
+1. Create an Azure App Registration (aka _Service Principal_);
+2. Create the _Service Principal_ credentials or certificate, to allow the login using it;
+3. Add the "Federated Credentials" to the _Service Principal_, in order to let AKV authenticate with it through the k8s Cluster;
+4. Authorize the _Service Principal_ reading data from the Azure Key Vault you need to access.
+
+:::info
+In this example we used the _Azure Portal_ to perform the operations above. If you prefer you can use the `az` client or the Azure REST APIs too.
+:::
+
+#### 1. Create the Service Principal
+
+You have different ways to create a Service Principal. Following you will find two ways:
+* **Azure Client** → using the `az` cli you can create it directly from your terminal. **This is the preferred way**;
+* **Azure Portal** → using the Azure Portal UI directly.
+
+
+
+
+
+To create the service principal through the `az` client follow these instructions.
+
+1. Login on azure with the method you prefer:
+ ```bash
+ az login --tenant {{TENANT_ID}}
+ ```
+
+2. Set the subscription where you want to create the service principal:
+ ```bash
+ az account set --subscription {{SUBSCRIPTION_ID}}
+ ```
+
+3. Create the service principal. In this example, we will create a Service Principal that can authenticate itself with a "Client Credentials" authentication:
+ ```bash
+ az ad sp create-for-rbac --name {{SERVICE_PRINCIPAL_NAME}}
+ ```
+
+4. Save the result of the previous command, that will be similar to the following one:
+ ```json
+ {
+ "appId": "{{SERVICE_PRINCIPAL_CLIENT_ID_GENERATED_BY_AZURE}}",
+ "displayName": "{{SERVICE_PRINCIPAL_NAME}}",
+ "password": "{{SERVICE_PRINCIPAL_CLIENT_SECRET}}",
+ "tenant": "{{TENANT_ID}}"
+ }
+ ```
+
+The information that you will use for the authentication are:
+* **appId** → the username, or clientId;
+* **password** → the password, or clientSecret.
+
+
+
+
+
+
+:::warning
+The following instructions highly depends on the Azure Portal and could be changed in future.
+:::
+
+To create the Service Principal through the Azure Portal you just need to:
+* open the Azure Portal _App Registrations_ page on your browser (usually the page is at [this link](https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade), but it can be different based on your Azure subscription);
+* click on the "New registration" button;
+* insert the name you prefer;
+* select the account types → usually the "Accounts in this organizational directory only" is the used option;
+* leave the "Redirect URI" empty;
+* click on the "Register" button.
+
+
+
+:::info
+**Save the `clientId` generated by Azure**, the `Application (client) ID` field content, because you will need it later.
+:::
+
+
+
+
+
+#### 2. Create the Service Principal credentials or certificate
+
+:::info
+If you created the service principal through the `az client` and you already have its credentials, you can [go on with the next section](#3-add-the-federated-credentials).
+:::
+
+In order to authenticate using the Service Principal you just created, you need to create credentials or certificate:
+* **client credentials**: with Client Credentials approach you will get a Bearer Token calling the Azure `/oauth` API using a `clientId` and a `clientSecret`;
+* **client credentials certificate**: with the Certificate approach you will generate a private-public certificates pair and you will get a Bearer Token calling the Azure `/oauth` API without exchanging credentials, so **it's a more safer way**.
+
+Read more on the [official Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal#set-up-authentication).
+
+In order to create the credentials or certificate to authenticate with Azure, once you created your app registration, follow these steps:
+
+
+
+
+
+First of all, you need to generate a certificate with its private key.
+The suggested way is to generate a certificate **signed by a trusted certificate authority**.
+
+Otherwise, **for testing purpose only**, you can also generate a self-signed certificate.
+
+Following an example on how to generate a self-signed certificate valid for 1 year with openssl, **just for test purposes**:
+```bash
+# Interactive command, that will ask you for certificate data
+openssl req -x509 -newkey rsa:4096 -keyout private-key-encrypted.pem -out certificate.pem -sha256 -days 365
+
+# Now you should have a certificate and a private key, both in PEM format
+ls -l
+total 40
+-rw-r--r-- 1 nb196 staff 2094 Aug 1 18:26 certificate.pem
+-rw------- 1 nb196 staff 3422 Aug 1 18:25 private-key-encrypted.pem
+
+# Now you need to decrypt the private key with the following command, using the passphrase you typed with the previous openssl command
+openssl rsa -in private-key-encrypted.pem -out private-key-decrypted.pem
+
+ls -l
+total 48
+-rw-r--r-- 1 nb196 staff 2094 Aug 1 18:26 certificate.pem
+-rw------- 1 nb196 staff 3272 Aug 1 18:28 private-key-decrypted.pem
+-rw------- 1 nb196 staff 3422 Aug 1 18:25 private-key-encrypted.pem
+```
+
+Read more on the [official Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity-platform/howto-create-service-principal-portal#set-up-authentication).
+
+After generatign the certificates pair:
+* access your App page;
+* on the menu on the left, click on "Manage" → "Certificates & secrets";
+* select the "Certificate" tab;
+* click on the "Upload certificate" button;
+* upload the **certificate**, in one of the supported formats (in the example below, you should upload the `certificate.pem` file);
+* _(recommended)_ give the certificate a description.
+
+:::info
+**Save the `Thumbprint` generated by Azure**, because you will need it later.
+:::
+
+:::warning
+Remember to store the certificate, the private-key and the thumbprint **in a secure store**.
+:::
+
+
+
+
+
+* access your App page;
+* on the menu on the left, click on "Manage" → "Certificates & secrets";
+* select the "Client secrets" tab;
+* click on the "New client secret" button;
+* set an expiration date;
+* _(recommended)_ give the certificate a description.
+
+Azure will generate a "`clientId` - `clientSecret`" pair that you can use to authenticate.
+
+:::info
+**Save the secret value generated by Azure**, because you will need it later.
+:::
+
+:::warning
+Remember to copy the generated `clientId` and `clientSecret`. If you lose the `clientSecret` value you will not be able to get it anymore and you will need to create a new one.
+
+Remember to store the "`clientId` - `clientSecret`" pair **in a secure store**.
+:::
+
+
+
+
+
+#### 3. Add the Federated Credentials
+
+The "Federated Credentials" are needed to let your kubernetes cluster, and the External Secret Operator, able to authenticate with Azure using the Service Principal you previously created.
+
+Before doing the steps below, you need to get the URL of the cluster issuer, that depends on the Cluster you are using.
+This example is based on a Google Kubernetes Engine cluster, that is enabled as Open ID Connect provider by default.
+
+The "Cluster issuer URL", that you will need to setup the "Federated Credentials", is dynamic and depends on your GKE cluster.
+The URL format is the following one:
+> https://container.googleapis.com/v1/projects/{{gcpProjectId}}/locations/{{location}}/clusters/{{clusterId}}
+
+**Remember to change** the `{{gcpProjectId}}`, the `{{location}}` and the `{{clusterId}}` placeholders with the real values.
+
+You will need to add a "Federated Credential" **for each runtime environment" you have on your project.
+To do that:
+* access your App page;
+* on the menu on the left, click on "Manage" → "Certificates & secrets";
+* select the "Federated credentials" tab;
+* **for each runtime environment**:
+ * click on the "Add credential" button;
+ * select the "Kubernetes accessing Azure resources" scenario;
+ * insert the "cluster issuer URL" you got before;
+ * insert the k8s namespace;
+ * insert the k8s service account name. The default one is `akv-accessor`;
+ * give the Federated credential a name;
+ * _(recommended)_ give the Federated credential a description;
+ * leave the default "Audience";
+ * click on the "Add" button.
+
+
+
+#### 4. Authorize the Service Principal accessing the Azure Key Vault
+
+To do that, you just need to modify the access settings of the Azure Key Vaults you want the Service Principal access to.
+
+**For each AKV you want to access**:
+* access the AKV page;
+* on the menu on the left, click on "Access control (IAM)";
+* click on the "Role assignments" tab;
+* click on the "Add" → "Add role assignment" button;
+* select the "Key Vault Secrets User" role, then press the "Next" button → with this role, you will only be able **to read secret values**, not write;
+* select "Assign access to User, group, or service principal" then press on the "+Select members" button;
+* look for the Service Principal using its name.
+
+:::warning
+For the last step, only privileged users will be able to search for app registration. If you didn't find the Service Principal, probably you don't have enough permissions on the Azure Key Vault instance.
+:::
+
+
+
+### 3. Console setup
+
+In order to connect to the Azure Key Vault instance you have to create a provider.
+In the provider creation modal, select the Azure Key Vault type when prompted, then fill the fields as described in the [providers management page](/products/console/company-configuration/providers/configure-provider.mdx#connect-a-provider).
+
+Usually the AKV base URL has the following format:
+> `https://{{akv-id}}.vault.azure.net/`
+
+Anyway, you can get it accessing the AKV "Overview" page, Azure will show you it:
+
+
+Based on the Service Principal authorization access you setup [above](#2-create-the-service-principal-credentials-or-certificate), you must choose the right authentication when configuring the AKV provider on the console.
+
+
+
+
+
+
+
+Insert the following information:
+* **Access Token URL**: the Azure URL the Console will call to get the token. It has the following format:
+> `https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token`
+
+* **Client ID**: the ID of the Service Principal you created [above](#1-create-the-service-principal). You can find it in the "Overview" page of the App Registration on the Azure Portal;
+
+* **Private Key**: the private key in PEM format. In the example above, it should be the content of the `private-key-decrypted.pem` file;
+
+* **Certificate Thumbprint**: a thumbprint generated by Azure when you added the Certificate inside the Service Principal;
+
+* **Scope**: the Bearer Token scope. To interact with AKV, **it must be the following one**:
+> `https://vault.azure.net/.default`
+
+
+
+
+
+
+
+Insert the following information:
+* **Access Token URL**: the Azure URL the Console will call to get the token. It has the following format:
+> `https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token`
+
+* **Client ID**: the ID of the Service Principal you created [above](#1-create-the-service-principal). You can find it in the "Overview" page of the App Registration on the Azure Portal;
+
+* **Client secret**: the secret generated by Azure when you created the "Client Credentials" on the App Registration;
+
+* **Scope**: the Bearer Token scope. To interact with AKV, **it must be the following one**:
+> `https://vault.azure.net/.default`
+
+
+
+
+
+Now that you created the AKV provider, you need to setup the projects you want to use it on.
+To do that, you need to modify the project configurations on the Console CMS.
+
+If you want to use a single AKV for all your runtime environments, you can just modify the `Environments variables` JSON, inserting the following information, as [reported above](#project-configuration):
+```json
+{
+ "type": "azure-key-vault",
+ "providerId": ,
+ "azureClientId": ,
+ "azureTenantId": ,
+ "serviceAccountName": ,
+}
+```
+
+In this example we integrated the Console with just one AKV, but you can also setup different AKV for each runtime environment, as [reported above](#project-configuration).
+
+#### Secrets usage
+
+To use the secrets from the AKV, you just need to referencing it from a microservice on the Console.
+Let's use "Core Business" as name of the project you want to use the AKV secrets.
+
+* open the "Core Business" project design page;
+* select the microservice you need to the secrets;
+* select the tab "Environment Variables";
+* create a new one;
+* insert the key you want for your environment variable;
+* select "from secret" as a value type;
+* insert `akv-secret` as a secret name;
+* insert the secret key, that **must be the same of the secret on AKV**.
+
+
+
+Now if you save, the console will generate the files needed by the External Secret Operator in order to generate the `akv-secret` k8s Secret, containing the AKV secrets.
+Deploying your project, if the setup process went well, you should find the following resources on the k8s namespace of your project:
+
+```bash
+$ kubectl get externalsecret
+NAME STORE REFRESH INTERVAL STATUS READY
+akv-external-secret akv-store 0 SecretSynced True
+
+$ kubectl get secretstore
+NAME AGE STATUS CAPABILITIES READY
+akv-store 6d Valid Read True
+
+$ kubectl get sa
+NAME SECRETS AGE
+akv-accessor 0 6d
+
+$ kubectl get secret
+NAME TYPE DATA AGE
+akv-secret Opaque 1 6d
+```
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-gitlab.md b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-gitlab.md
new file mode 100644
index 0000000000..7f549d77bb
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-gitlab.md
@@ -0,0 +1,80 @@
+---
+id: manage-environment-variables-with-gitlab
+title: Manage Environment Variables with GitLab
+sidebar_label: Manage Environment Variables with GitLab
+---
+
+Thanks to our Console in the Overview area it is possible to manage your Environment Variables.
+
+## How to differentiate your variable from one environment to another
+
+Mia-Platform uses the **prefix** concept to manage the differentiation between variables.
+
+Each variable can be associated with a prefix indicating the environment in which the variable is to be interpolated.
+
+How do prefixes work?
+
+Prefixes can be of two types:
+
+* **Global prefix**: Mia Platform uses `MIA_` as global prefix. However, it is possible to avoid the prefix and by default, the environment variable will be treated as global.
+
+* **Differentiated**: according to the environment
+
+When a Project is created it is associated to a specific Company.
+As described in the [Company section](/products/console/project-configuration/create-a-project.mdx#create-a-company) a Project associated to a specific company will inherit the environment information. For this reason, a differentiated environment variable must have the prefix associated to the `ID` of the specific environment.
+It is possible to find it in the table of the Envs area.
+
+
+
+:::info
+You can also define a global variable to be used as a default and define a specific variable for only one environment.
+In this case only the specified environment will use its value, and the others will use the default value.
+
+When there are both a global variable and a specific one for an environment, the longest matching variable will be selected.
+
+E.g.
+You have three environments: `TEST`, `PREPROD` and `PROD`.
+You define these two variables: `MY_VAR = foo` and `PROD_MY_VAR = bar`
+This is what the environments will receive:
+- TEST: `foo`
+- PREPROD: `foo`
+- PROD: `bar`
+:::
+
+:::warning
+Remember! It is fundamental to define a prefix if you want to associate a variable to a particular environment, otherwise the variable will be considered global.
+:::
+
+## Create a Variable
+
+When you start a new Project you will find variables already configured.
+To add a new variable press the **"Add new environment variable"** button at the top-right of the table and fill in the form:
+
+* the **key** is mandatory and identifies your variable. Remember **to use the prefix** to manage the differentiation between environment;
+* the **value** is the value you want to attribute to your variable, the one that will be interpolated.
+
+:::info
+When a **value** contains some `$` characters it is required to escape it by adding another `$` just before the original ones, otherwise the variable will be truncated just before the dollar sign.
+
+#### Example
+
+* **Desired value** to interpolate: `var$var$var`;
+
+* **Actual value** to write: `var$$var$$var`.
+:::
+
+
+
+## Edit a Variable
+
+Changing the value of an existing variable is very simple. Click on the **edit** button in the same row as the variable you want to edit.
+Once you press the vsi button a modal will open.
+The key is an unchangeable value.
+Once the value has been changed, you just have to press the save button.
+
+## Delete a Variable
+
+To delete a variable, press the **delete** button corresponding to the desired variable. A modal will open.
+To cancel the variable you will be asked to enter the name of the key. The **name of the key must be identical** otherwise you will not be able to delete it.
+
+
diff --git a/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-vault.md b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-vault.md
new file mode 100644
index 0000000000..cbb4a9cbe5
--- /dev/null
+++ b/versioned_docs/version-14.5.1/products/console/project-configuration/manage-environment-variables/manage-environment-variables-with-vault.md
@@ -0,0 +1,211 @@
+---
+id: manage-environment-variables-with-vault
+title: Manage Environment Variables With Vault
+sidebar_label: Manage Environment Variables With Vault
+---
+
+[Hashicorp Vault](https://www.vaultproject.io/) is a product useful to store and manage variables with a state-of-the-art level of secrecy, while maintaining them always available for our deployments and applications.
+
+Vault is usually deployed on a separate environment from the application that will need to use the variable kept in his storage, therefore configuring correctly the access to Vault and the policies to authenticate the application is vital for its usage.
+
+Vault is capable of storing a multitude of variable types, but the most important (and useful) remain the **key/value** variables, that Vault can store, encrypt and version with ease. The emphasis of Vault is the high security level that provides to the variables, but it can be used for all types of values.
+
+To correctly set up your Vault backed project, you will need to:
+
+
+
+## Configure the Vault instance and the Kubernetes cluster
+
+In this section, we will discuss how to properly configure your Vault installation to work with the Mia Platform's Console correctly.
+
+You have to perform the following actions on the Vault instance:
+
+- Create the *access policies*
+- Create the *secret engines* and related *Vault secrets*
+- Setup an *authentication method*
+
+### Create the access Policies
+
+You need to create [one policy](https://developer.hashicorp.com/vault/docs/concepts/policies) for every authentication method on your Vault instance, that will grant the permissions on the project.
+
+An example of a policy is shown below, scoped to grant *admin* access to the project's secrets.
+
+```text
+path "secrets/{tenantId}/{projectId}KvV2/*" {
+ capabilities = ["create", "read", "update", "delete", "list"]
+}
+```
+
+### Create the secret engines and Vault secrets
+
+To be deployed by the Console, the environment variables should be stored in a predefined structure:
+
+1. Create a secret engine named `secrets//KvV2`, where `` is the identifier of the company the project belongs to and `` is the identifier of the project itself. The secret engine should be of type `KV` (Key-Value), the other options can be set according to your needs.
+2. Inside the secret engine, create a secret for each environment of the project. The secret should be named the same as the environment identifier of the runtime environment where you want to deploy it.
+3. The actual values of the variables can be placed inside the corresponding environment secret in the form of key-value pairs.
+
+:::tip
+Imagine you have a project with project id `project`, inside the company `company`, with 2 runtime environments: `development` and `production`, and you want to store the secret variable `private_key` for the two environments, this is what your secrets should look like:
+
+```text
+secret path: secrets/company/projectKvV2/development
+{
+ private_key: "private_key_development"
+}
+```
+
+and
+
+```text
+secret path: secrets/company/projectKvV2/production
+{
+ private_key: "private_key_production"
+}
+```
+
+:::
+
+### Setup an authentication methods
+
+Currently the Console supports two kinds of authentication methods:
+
+- [Kubernetes authentication method](#kubernetes-authentication-method).
+- [Token authentication method](#token-authentication-method)
+
+#### Kubernetes authentication method
+
+This method allows the Kubernetes cluster and the Console to authenticate using the system accounts present in Kubernetes.
+
+First of all, you will need to enable the *Kubernetes auth method* on Vault. Find out more in the [official documentation](https://www.vaultproject.io/docs/auth/kubernetes).
+
+
+
+Then you will need to:
+
+- [Create the roles on Vault](#create-the-roles-on-vault)
+- [Deploy the *service accounts* on the Kubernetes cluster](#deploy-the-service-accounts)
+
+:::warning
+Roles, policies and service accounts configuration changes with the restrictiveness of the policies that you want to apply.
+:::
+
+
+
+##### Create the roles on Vault
+
+You need one role for every project in which you created a policy.
+
+On creation, you will be prompted for:
+
+- Role name: `tenantId_projectId`
+- Bound service account names: `vault-accessor`
+- Bound service account namespaces: ``
+- Generated Token's Policies: ``
+
+Where the `` are the namespaces belonging to that project and `