This is an automated email from the ASF dual-hosted git repository.

yumeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git


The following commit(s) were added to refs/heads/main by this push:
     new a70441c657 Add discoverability to Config UI docs and remove useless 
setup guides (#426)
a70441c657 is described below

commit a70441c6572a45af6de2fa8cdf09acf2a5adf584
Author: Louis.z <[email protected]>
AuthorDate: Fri Feb 10 10:46:39 2023 +0800

    Add discoverability to Config UI docs and remove useless setup guides (#426)
    
    * fix: remove useless setup guides
    
    * fix: remove user manual directory
    
    * fix: update tutorial link in v0.14
    
    ---------
    
    Co-authored-by: Startrekzky <[email protected]>
---
 .../Configuration}/AdvancedMode.md                 |  4 +-
 .../ConfigUI => docs/Configuration}/BitBucket.md   |  2 +-
 .../Dashboards/AccessControl.md                    |  0
 .../Dashboards/GrafanaUserGuide.md                 |  0
 docs/Configuration/Dashboards/_category_.json      |  4 +
 .../ConfigUI => Configuration}/GitHub.md           |  2 +-
 .../ConfigUI => Configuration}/GitLab.md           |  2 +-
 .../ConfigUI => docs/Configuration}/Jenkins.md     |  3 +-
 .../ConfigUI => Configuration}/Jira.md             |  2 +-
 .../ConfigUI => docs/Configuration}/Tapd.md        |  2 +-
 .../TeamConfiguration.md                           |  0
 .../ConfigUI => Configuration}/Tutorial.md         |  0
 .../ConfigUI => docs/Configuration}/Zentao.md      |  2 +-
 .../Configuration}/_category_.json                 |  4 +-
 .../ConfigUI => Configuration}/webhook.md          |  2 +-
 .../version-v0.15/UserManuals => docs}/DORA.md     | 10 +--
 docs/DeveloperManuals/DeveloperSetup.md            |  4 +-
 docs/GettingStarted/DockerComposeSetup.md          |  4 +-
 docs/GettingStarted/KubernetesSetup.md             | 62 ---------------
 docs/GettingStarted/RainbondSetup.md               | 39 ---------
 docs/GettingStarted/TemporalSetup.md               | 40 ----------
 docs/Overview/Introduction.md                      |  2 +-
 docs/Overview/SupportedDataSources.md              |  2 +-
 docs/Plugins/bitbucket.md                          |  4 +-
 docs/Plugins/github.md                             |  4 +-
 docs/Plugins/gitlab.md                             |  4 +-
 docs/Plugins/jenkins.md                            |  4 +-
 docs/Plugins/jira.md                               |  4 +-
 docs/Plugins/refdiff.md                            |  2 +-
 docs/Plugins/tapd.md                               |  4 +-
 docs/Plugins/webhook.md                            |  4 +-
 docs/Plugins/zentao.md                             |  4 +-
 docs/Troubleshooting/Configuration.md              |  2 +-
 docs/UserManuals/ConfigUI/_category_.json          |  4 -
 docs/UserManuals/Dashboards/_category_.json        |  4 -
 livedemo/EngineeringLeads/DORA.md                  |  2 +-
 src/components/Sections/HeaderLearnMore.tsx        |  2 +-
 src/components/Sections/UserFlow.tsx               |  4 +-
 .../version-v0.14/GettingStarted/RainbondSetup.md  |  2 +-
 versioned_docs/version-v0.14/Troubleshooting.md    |  2 +-
 .../version-v0.15/Configuration}/AdvancedMode.md   |  4 +-
 .../version-v0.15/Configuration}/BitBucket.md      |  2 +-
 .../Dashboards/AccessControl.md                    |  0
 .../Dashboards/GrafanaUserGuide.md                 |  0
 .../Configuration/Dashboards/_category_.json       |  4 +
 .../ConfigUI => Configuration}/GitHub.md           |  5 +-
 .../ConfigUI => Configuration}/GitLab.md           |  2 +-
 .../version-v0.15/Configuration}/Jenkins.md        |  2 +-
 .../ConfigUI => Configuration}/Jira.md             |  2 +-
 .../version-v0.15/Configuration}/Tapd.md           |  2 +-
 .../TeamConfiguration.md                           |  0
 .../version-v0.15/Configuration}/Tutorial.md       |  0
 .../version-v0.15/Configuration}/Zentao.md         |  2 +-
 .../version-v0.15/Configuration}/_category_.json   |  4 +-
 .../ConfigUI => Configuration}/webhook.md          |  2 +-
 .../version-v0.15}/DORA.md                         | 10 +--
 .../DataModels/DevLakeDomainLayerSchema.md         |  4 +-
 .../DeveloperManuals/DeveloperSetup.md             |  8 +-
 .../version-v0.15/DeveloperManuals/UnitTest.md     | 42 ++++++++++
 .../GettingStarted/DockerComposeSetup.md           |  4 +-
 .../GettingStarted/KubernetesSetup.md              | 62 ---------------
 .../version-v0.15/GettingStarted/RainbondSetup.md  | 39 ---------
 .../version-v0.15/GettingStarted/TemporalSetup.md  | 40 ----------
 .../version-v0.15/Overview/Introduction.md         |  2 +-
 .../version-v0.15/Overview/SupportedDataSources.md |  2 +-
 versioned_docs/version-v0.15/Plugins/bitbucket.md  |  4 +-
 versioned_docs/version-v0.15/Plugins/github.md     |  4 +-
 versioned_docs/version-v0.15/Plugins/gitlab.md     |  4 +-
 versioned_docs/version-v0.15/Plugins/jenkins.md    |  4 +-
 versioned_docs/version-v0.15/Plugins/jira.md       |  4 +-
 versioned_docs/version-v0.15/Plugins/refdiff.md    |  2 +-
 versioned_docs/version-v0.15/Plugins/tapd.md       |  4 +-
 versioned_docs/version-v0.15/Plugins/webhook.md    |  4 +-
 versioned_docs/version-v0.15/Plugins/zentao.md     |  4 +-
 .../version-v0.15/Troubleshooting/Configuration.md |  2 +-
 .../version-v0.15/UserManuals/ConfigUI/Tutorial.md | 93 ----------------------
 .../UserManuals/ConfigUI/_category_.json           |  4 -
 .../UserManuals/Dashboards/_category_.json         |  4 -
 78 files changed, 146 insertions(+), 483 deletions(-)

diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/AdvancedMode.md 
b/docs/Configuration/AdvancedMode.md
similarity index 99%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/AdvancedMode.md
rename to docs/Configuration/AdvancedMode.md
index d9f3823aec..6377d51644 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/AdvancedMode.md
+++ b/docs/Configuration/AdvancedMode.md
@@ -1,6 +1,6 @@
 ---
-title: "Using Advanced Mode"
-sidebar_position: 7
+title: "Blueprint Advanced Mode"
+sidebar_position: 8
 description: >
   Using the advanced mode of Config-UI
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/BitBucket.md 
b/docs/Configuration/BitBucket.md
similarity index 98%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/BitBucket.md
rename to docs/Configuration/BitBucket.md
index 317be3e8d7..871b2e9c86 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/BitBucket.md
+++ b/docs/Configuration/BitBucket.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring BitBucket(Beta)"
+title: "BitBucket(Beta)"
 sidebar_position: 2
 description: Config UI instruction for BitBucket(Cloud)
 ---
diff --git a/docs/UserManuals/Dashboards/AccessControl.md 
b/docs/Configuration/Dashboards/AccessControl.md
similarity index 100%
rename from docs/UserManuals/Dashboards/AccessControl.md
rename to docs/Configuration/Dashboards/AccessControl.md
diff --git a/docs/UserManuals/Dashboards/GrafanaUserGuide.md 
b/docs/Configuration/Dashboards/GrafanaUserGuide.md
similarity index 100%
rename from docs/UserManuals/Dashboards/GrafanaUserGuide.md
rename to docs/Configuration/Dashboards/GrafanaUserGuide.md
diff --git a/docs/Configuration/Dashboards/_category_.json 
b/docs/Configuration/Dashboards/_category_.json
new file mode 100644
index 0000000000..37da75a8c7
--- /dev/null
+++ b/docs/Configuration/Dashboards/_category_.json
@@ -0,0 +1,4 @@
+{
+  "label": "Dashboard Configuration",
+  "position": 10
+}
diff --git a/docs/UserManuals/ConfigUI/GitHub.md b/docs/Configuration/GitHub.md
similarity index 99%
rename from docs/UserManuals/ConfigUI/GitHub.md
rename to docs/Configuration/GitHub.md
index 040ed52d49..eff040331a 100644
--- a/docs/UserManuals/ConfigUI/GitHub.md
+++ b/docs/Configuration/GitHub.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring GitHub"
+title: "GitHub"
 sidebar_position: 2
 description: Config UI instruction for GitHub
 ---
diff --git a/docs/UserManuals/ConfigUI/GitLab.md b/docs/Configuration/GitLab.md
similarity index 99%
rename from docs/UserManuals/ConfigUI/GitLab.md
rename to docs/Configuration/GitLab.md
index f1db518f2b..69558b2974 100644
--- a/docs/UserManuals/ConfigUI/GitLab.md
+++ b/docs/Configuration/GitLab.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring GitLab"
+title: "GitLab"
 sidebar_position: 3
 description: Config UI instruction for GitLab
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Jenkins.md 
b/docs/Configuration/Jenkins.md
similarity index 99%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/Jenkins.md
rename to docs/Configuration/Jenkins.md
index 260348e53e..45a301381a 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Jenkins.md
+++ b/docs/Configuration/Jenkins.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Jenkins"
+title: "Jenkins"
 sidebar_position: 5
 description: Config UI instruction for Jenkins
 ---
@@ -51,6 +51,7 @@ Jenkins only supports `CI/CD` domain entities, transformed 
from Jenkins builds a
 - CI/CD: Jenkins builds, stages, etc.
 
 ### Step 3 - Adding Transformation Rules (Optional)
+
 This set of configurations is used for calculating [DORA metrics](../DORA.md).
 
 If you'd like to define `deployments` with Jenkins, please select "Detect 
Deployment from Jenkins Builds", and provide the following regexes
diff --git a/docs/UserManuals/ConfigUI/Jira.md b/docs/Configuration/Jira.md
similarity index 99%
rename from docs/UserManuals/ConfigUI/Jira.md
rename to docs/Configuration/Jira.md
index f9aaf2683a..f0d4732747 100644
--- a/docs/UserManuals/ConfigUI/Jira.md
+++ b/docs/Configuration/Jira.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Jira"
+title: "Jira"
 sidebar_position: 4
 description: Config UI instruction for Jira
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Tapd.md 
b/docs/Configuration/Tapd.md
similarity index 97%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/Tapd.md
rename to docs/Configuration/Tapd.md
index c65270d449..cf62019b0f 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Tapd.md
+++ b/docs/Configuration/Tapd.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring TAPD(Beta)"
+title: "TAPD(Beta)"
 sidebar_position: 6
 description: Config UI instruction for Tapd
 ---
diff --git a/docs/UserManuals/TeamConfiguration.md 
b/docs/Configuration/TeamConfiguration.md
similarity index 100%
rename from docs/UserManuals/TeamConfiguration.md
rename to docs/Configuration/TeamConfiguration.md
diff --git a/docs/UserManuals/ConfigUI/Tutorial.md 
b/docs/Configuration/Tutorial.md
similarity index 100%
copy from docs/UserManuals/ConfigUI/Tutorial.md
copy to docs/Configuration/Tutorial.md
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Zentao.md 
b/docs/Configuration/Zentao.md
similarity index 97%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/Zentao.md
rename to docs/Configuration/Zentao.md
index d8cfde289a..316e0dea1c 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Zentao.md
+++ b/docs/Configuration/Zentao.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Zentao(Beta)"
+title: "Zentao(Beta)"
 sidebar_position: 6
 description: Config UI instruction for Zentao
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/_category_.json 
b/docs/Configuration/_category_.json
similarity index 54%
rename from versioned_docs/version-v0.15/UserManuals/_category_.json
rename to docs/Configuration/_category_.json
index 23ce768a59..96a3608ba7 100644
--- a/versioned_docs/version-v0.15/UserManuals/_category_.json
+++ b/docs/Configuration/_category_.json
@@ -1,8 +1,8 @@
 {
-  "label": "User Manuals",
+  "label": "Configuration",
   "position": 3,
   "link":{
     "type": "generated-index",
-    "slug": "UserManuals"
+    "slug": "Configuration"
   }
 }
diff --git a/docs/UserManuals/ConfigUI/webhook.md 
b/docs/Configuration/webhook.md
similarity index 98%
rename from docs/UserManuals/ConfigUI/webhook.md
rename to docs/Configuration/webhook.md
index 9616feab99..97540285bb 100644
--- a/docs/UserManuals/ConfigUI/webhook.md
+++ b/docs/Configuration/webhook.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Incoming Webhook"
+title: "Incoming Webhook"
 sidebar_position: 7
 description: Config UI instruction for Webhook
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/DORA.md b/docs/DORA.md
similarity index 96%
rename from versioned_docs/version-v0.15/UserManuals/DORA.md
rename to docs/DORA.md
index 81ac826b2b..8d3b9e9126 100644
--- a/versioned_docs/version-v0.15/UserManuals/DORA.md
+++ b/docs/DORA.md
@@ -1,6 +1,6 @@
 ---
 title: "DORA"
-sidebar_position: 7
+sidebar_position: 4
 description: >
   DORA Metrics
 ---
@@ -44,7 +44,7 @@ You can set up DORA metrics in DevLake in a few steps:
 
 DevLake now supports Jenkins, GitHub Action and GitLabCI as data sources for 
`deployments` data; Jira, GitHub issues, and TAPD as the sources for 
`incidents` data; Github PRs, GitLab MRs as the sources for `changes` data.
 
-If your CI/CD tools are not listed on the [Supported Data 
Sources](https://devlake.apache.org/docs/SupportedDataSources) page, have no 
fear! DevLake provides incoming webhooks to push your `deployments` data to 
DevLake. The webhook configuration doc can be found 
[here](https://devlake.apache.org/docs/UserManuals/ConfigUI/webhook/).
+If your CI/CD tools are not listed on the [Supported Data 
Sources](https://devlake.apache.org/docs/SupportedDataSources) page, have no 
fear! DevLake provides incoming webhooks to push your `deployments` data to 
DevLake. The webhook configuration doc can be found 
[here](https://devlake.apache.org/docs/Configuration/webhook/).
 
 
 ## A real-world example
@@ -86,7 +86,7 @@ In the next section, we'll demonstrate how to configure 
DevLake to implement DOR
 6. Choose sync frequency, click 'Save and Run Now' to start data collection. 
The time to completion varies by data source and depends on the volume of data.
 ![](https://i.imgur.com/zPkfzGr.png)
 
-For more details, please refer to our [blueprint 
manuals](https://devlake.apache.org/docs/UserManuals/ConfigUI/Tutorial).
+For more details, please refer to our [blueprint 
manuals](https://devlake.apache.org/docs/Configuration/Tutorial).
 
 ### Collect CircleCI data via `webhook`
 
@@ -144,7 +144,7 @@ Using CircleCI as an example, we demonstrate how to 
actively push data to DevLak
         - build
         - deploy
   ```
-  If you have set a 
[username/password](https://devlake.apache.org/docs/UserManuals/Authentication) 
for Config UI, you need to add them to the curl to register a deployment:
+  If you have set a [username/password](GettingStarted/Authentication.md) for 
Config UI, you need to add them to the curl to register a deployment:
 
   ```
   curl https://sample-url.com/api/plugins/webhook/1/deployments -X 'POST' -u 
'username:password' -d '{
@@ -172,7 +172,7 @@ For a breakdown of each metric's SQL query, please refer to 
the corresponding me
   - [Median Time to Restore 
Service](https://devlake.apache.org/docs/Metrics/MTTR)
   - [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR)
 
-If you aren't familiar with Grafana, please refer to our [Grafana 
doc](./Dashboards/GrafanaUserGuide.md), or jump into Slack for help.
+If you aren't familiar with Grafana, please refer to our [Grafana 
doc](Configuration/Dashboards/GrafanaUserGuide.md), or jump into Slack for help.
 
 <br/>
 
diff --git a/docs/DeveloperManuals/DeveloperSetup.md 
b/docs/DeveloperManuals/DeveloperSetup.md
index 5c6d54965a..b228880a1a 100644
--- a/docs/DeveloperManuals/DeveloperSetup.md
+++ b/docs/DeveloperManuals/DeveloperSetup.md
@@ -69,7 +69,7 @@ The following guide will walk through how to run DevLake's 
frontend (`config-ui`
     For common errors, please see [Troubleshooting](#troubleshotting).
 
 8.  Config UI is running at `localhost:4000`
-    - For how to use Config UI, please refer to our 
[tutorial](UserManuals/ConfigUI/Tutorial.md)
+    - For how to use Config UI, please refer to our 
[tutorial](Configuration/Tutorial.md)
 
 ## Running Tests
 
@@ -99,7 +99,7 @@ All DevLake APIs (core service + plugin API) are documented 
with swagger. To see
 
 To access Grafana, click *View Dashboards* button in the top left corner of 
Config UI, or visit `localhost:3002` (username: `admin`, password: `admin`).
 
-For provisioning, customizing, and creating dashboards, please refer to our 
[Grafana Doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
+For provisioning, customizing, and creating dashboards, please refer to our 
[Grafana Doc](../Configuration/Dashboards/GrafanaUserGuide.md).
 
 
 ## Troubleshooting
diff --git a/docs/GettingStarted/DockerComposeSetup.md 
b/docs/GettingStarted/DockerComposeSetup.md
index 7c592a85f2..00c2f0a8d6 100644
--- a/docs/GettingStarted/DockerComposeSetup.md
+++ b/docs/GettingStarted/DockerComposeSetup.md
@@ -22,11 +22,11 @@ sidebar_position: 1
 ## Collect data and view dashboards
 
 1. Visit `config-ui` at `http://localhost:4000` in your browser to configure 
DevLake and collect data.
-   - Please follow the [tutorial](UserManuals/ConfigUI/Tutorial.md)
+   - Please follow the [tutorial](Configuration/Tutorial.md)
    - `devlake` container takes a while to fully boot up. If `config-ui` 
complains about API being unreachable, please wait a few seconds and refresh 
the page.
 2. To view dashboards, click *View Dashboards* button in the top left corner, 
or visit `localhost:3002` (username: `admin`, password: `admin`).
    - We use [Grafana](https://grafana.com/) to visualize the DevOps 
[data](/Overview/SupportedDataSources.md) and build dashboards.
-   - For how to customize and provision dashboards, please see our [Grafana 
doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
+   - For how to customize and provision dashboards, please see our [Grafana 
doc](../Configuration/Dashboards/GrafanaUserGuide.md).
 
 
 ## Upgrade to a newer version
diff --git a/docs/GettingStarted/KubernetesSetup.md 
b/docs/GettingStarted/KubernetesSetup.md
deleted file mode 100644
index 64a8bf966e..0000000000
--- a/docs/GettingStarted/KubernetesSetup.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Install via Kubernetes"
-description: >
-  The steps to install Apache DevLake via Kubernetes
-sidebar_position: 3
----
-
-:::caution
-
-We highly recommend the [helm approach](./HelmSetup.md), this page is for 
Advanced Installation only
-
-:::
-
-We provide a sample 
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
 to help deploy DevLake to Kubernetes
-
-[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
 will create a namespace `devlake` on your k8s cluster, and use `nodePort 
30004` for `config-ui`,  `nodePort 30002` for `grafana` dashboards. If you 
would like to use a specific version of Apache DevLake, please update the image 
tag of `grafana`, `devlake` and `config-ui` deployments.
-
-## Step-by-step guide
-
-1. Download 
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
-2. Customize the settings (`devlake-config` config map):
-   - Settings shared between `grafana` and `mysql`
-     * `MYSQL_ROOT_PASSWORD`: set root password for `mysql`
-     * `MYSQL_USER`: shared between `mysql` and `grafana`
-     * `MYSQL_PASSWORD`: shared between `mysql` and `grafana`
-     * `MYSQL_DATABASE`: shared between `mysql` and `grafana`
-   - Settings used by `grafana`
-     * `MYSQL_URL`: set MySQL URL for `grafana` in `$HOST:$PORT` format
-     * `GF_SERVER_ROOT_URL`: Public URL to the `grafana`
-   - Settings used by `config-ui`:
-     * `GRAFANA_ENDPOINT`: FQDN of grafana which can be reached within k8s 
cluster, normally you don't need to change it unless namespace was changed
-     * `DEVLAKE_ENDPOINT`: FQDN of devlake which can be reached within k8s 
cluster, normally you don't need to change it unless namespace was changed
-     * `ADMIN_USER`/`ADMIN_PASS`: Not required, but highly recommended
-   - Settings used by `devlake`:
-     * `DB_URL`: update this value if  `MYSQL_USER`, `MYSQL_PASSWORD` or 
`MYSQL_DATABASE` were changed
-     * `LOGGING_DIR`: the directory of logs for Devlake - you likely don't 
need to change it.
-3. The `devlake` deployment store its configuration in `/app/.env`. In our 
sample yaml, we use `hostPath` volume, so please make sure directory 
`/var/lib/devlake` exists on your k8s workers, or employ other techniques to 
persist `/app/.env` file. Please do NOT mount the entire `/app` directory, 
because plugins are located in `/app/bin` folder.
-4. Finally, execute the following command and DevLake should be up and running:
-   ```sh
-   kubectl apply -f k8s-deploy.yaml
-   ```
-
-
-## FAQ
-
-1. Can I use a managed Cloud database service instead of running database in 
docker?
-
-   Yes, it only takes a few changes in the sample yaml file. Below we'll use 
MySQL on AWS RDS as an example.
-   1. (Optional) Create a MySQL instance on AWS RDS following this 
[doc](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html),
 skip this step if you'd like to use an existing instance
-   2. Remove the `mysql` deployment and service sections from `k8s-deploy.yaml`
-   3. Update `devlake-config` configmap according to your RDS instance setup:
-     * `MYSQL_ROOT_PASSWORD`: remove this line
-     * `MYSQL_USER`: use your RDS instance's master username
-     * `MYSQL_PASSWORD`: use your RDS instance's password
-     * `MYSQL_DATABASE`: use your RDS instance's DB name, you may need to 
create a database first with `CREATE DATABASE <DB name>;`
-     * `MYSQL_URL`: set this for `grafana` in `$HOST:$PORT` format, where 
$HOST and $PORT should be your RDS instance's endpoint and port respectively
-     * `DB_URL`: update the connection string with your RDS instance's info 
for `devlake`
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/docs/GettingStarted/RainbondSetup.md 
b/docs/GettingStarted/RainbondSetup.md
deleted file mode 100644
index fde8836547..0000000000
--- a/docs/GettingStarted/RainbondSetup.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Install via Rainbond"
-sidebar_position: 7
-description: >
-  The steps to install DevLake in Rainbond.
----
-
-This tutorial is for users who don't know Kubernetes. 
[Rainbond](https://www.rainbond.com/) is cloud native application management 
platform built on Kubernetes, easy to use, no need to know Kubernetes 
knowledge, easily deploy applications in Kubernetes. 
-
-Install DevLake in Rainbond is the easiest way to get started.
-
-## Requirements
-
-* Rainbond 5.8.x or above
-
-## Deploy DevLake
-
-1.Login to Rainbond console, click `Market` in the left menu, switch to open 
source app store, and search `DevLake` in the search box, and click `Install` 
button.
-
-![](/img/GettingStarted/install-devlake.jpg)
-
-2.fill in the installation information, and click `Confirm` button startup 
install.
-  * Team: select a team or create a new team
-  * Cluster: select a cluster
-  * Application: select an application or create a new application
-  * Version: select a version
-
-3.Moment later, DevLake will be installed successfully, via the `Access` 
button to access DevLake.
-
-![](/img/GettingStarted/topology-devlake.jpg)
-
-## Next Step
-
-Creating a Blueprint, ref 
[Tutorial](/docs/UserManuals/ConfigUI/Tutorial#creating-a-blueprint)
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/docs/GettingStarted/TemporalSetup.md 
b/docs/GettingStarted/TemporalSetup.md
deleted file mode 100644
index 1d6ce844a5..0000000000
--- a/docs/GettingStarted/TemporalSetup.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "Install via Temporal"
-sidebar_position: 6
-description: >
-  The steps to install DevLake in Temporal mode.
----
-
-
-Normally, DevLake would execute pipelines on a local machine (we call it 
`local mode`), it is sufficient most of the time. However, when you have too 
many pipelines that need to be executed in parallel, it can be problematic, as 
the horsepower and throughput of a single machine is limited.
-
-`temporal mode` was added to support distributed pipeline execution, you can 
fire up arbitrary workers on multiple machines to carry out those pipelines in 
parallel to overcome the limitations of a single machine.
-
-But, be careful, many API services like JIRA/GITHUB have a request rate limit 
mechanism. Collecting data in parallel against the same API service with the 
same identity would most likely hit such limit.
-
-## How it works
-
-1. DevLake Server and Workers connect to the same temporal server by setting 
up `TEMPORAL_URL`
-2. DevLake Server sends a `pipeline` to the temporal server, and one of the 
Workers pick it up and execute it
-
-
-**IMPORTANT: This feature is in early stage of development. Please use with 
caution**
-
-
-## Temporal Demo
-
-### Requirements
-
-- [Docker](https://docs.docker.com/get-docker)
-- [docker-compose](https://docs.docker.com/compose/install/)
-- [temporalio](https://temporal.io/)
-
-### How to setup
-
-1. Clone and fire up the [temporalio](https://temporal.io/) services
-2. Clone this repo, and fire up DevLake with command `docker-compose -f 
deployment/temporal/docker-compose-temporal.yml up -d`
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/docs/Overview/Introduction.md b/docs/Overview/Introduction.md
index 6bb1194941..9bdb41cd58 100755
--- a/docs/Overview/Introduction.md
+++ b/docs/Overview/Introduction.md
@@ -16,7 +16,7 @@ Apache DevLake is designed for developer teams looking to 
make better sense of t
 
 ## How do I use DevLake?
 ### 1. Set up DevLake
-You can easily set up Apache DevLake by following our step-by step 
instructions for [Docker Compose 
setup](../GettingStarted/DockerComposeSetup.md) or [Kubernetes 
setup](../GettingStarted/KubernetesSetup.md).
+You can easily set up Apache DevLake by following our step-by step 
instructions for [Docker Compose 
setup](../GettingStarted/DockerComposeSetup.md) or [Helm 
setup](../GettingStarted/HelmSetup.md).
 
 ### 2. Create a Blueprint
 The DevLake Configuration UI will guide you through the process (a Blueprint) 
to define the data connections, data scope, transformation and sync frequency 
of the data you wish to collect.
diff --git a/docs/Overview/SupportedDataSources.md 
b/docs/Overview/SupportedDataSources.md
index 5d0669f0eb..20e6fbea3c 100644
--- a/docs/Overview/SupportedDataSources.md
+++ b/docs/Overview/SupportedDataSources.md
@@ -29,7 +29,7 @@ Apache DevLake(incubating) supports the following data 
sources. The data from ea
 
 This table shows the entities collected by each plugin. Domain layer entities 
in this table are consistent with the entities 
[here](/DataModels/DevLakeDomainLayerSchema.md).
 ✅ : Collect by default.
-💪 : Collect not by default. You need to add the corresponding subtasks to 
collect these entities in the [advanced 
mode](../UserManuals/ConfigUI/AdvancedMode.md).
+💪 : Collect not by default. You need to add the corresponding subtasks to 
collect these entities in the [advanced mode](../Configuration/AdvancedMode.md).
 
 | Domain Layer Entities                                                        
               | ae  | dora | gitextractor | incoming webhook | github | gitlab 
| jenkins | jira | refdiff | tapd |
 | 
-------------------------------------------------------------------------------------------
 | --- | ---- | ------------ | ---------------- | ------ | ------ | ------- | 
---- | ------- | ---- |
diff --git a/docs/Plugins/bitbucket.md b/docs/Plugins/bitbucket.md
index 97e7f2025d..b5a2979391 100644
--- a/docs/Plugins/bitbucket.md
+++ b/docs/Plugins/bitbucket.md
@@ -35,8 +35,8 @@ Metrics that can be calculated based on the data collected 
from bitbucket:
 
 ## Configuration
 
-- Configuring Bitbucket via [Config UI](/UserManuals/ConfigUI/BitBucket.md)
-- Configuring Bitbucket via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#9-BitBucket).
+- Configuring Bitbucket via [Config UI](/Configuration/BitBucket.md)
+- Configuring Bitbucket via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#9-BitBucket).
 
 ## API Sample Request
 
diff --git a/docs/Plugins/github.md b/docs/Plugins/github.md
index f8874548fb..a57adee6bb 100644
--- a/docs/Plugins/github.md
+++ b/docs/Plugins/github.md
@@ -56,8 +56,8 @@ Metrics that can be calculated based on the data collected 
from GitHub:
 
 ## Configuration
 
-- Configuring GitHub via [Config UI](/UserManuals/ConfigUI/GitHub.md)
-- Configuring GitHub via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#1-github).
+- Configuring GitHub via [Config UI](/Configuration/GitHub.md)
+- Configuring GitHub via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#1-github).
 
 ## API Sample Request
 
diff --git a/docs/Plugins/gitlab.md b/docs/Plugins/gitlab.md
index f4b5663b7a..03dc16925a 100644
--- a/docs/Plugins/gitlab.md
+++ b/docs/Plugins/gitlab.md
@@ -49,8 +49,8 @@ Metrics that can be calculated based on the data collected 
from GitLab:
 
 ## Configuration
 
-- Configuring GitLab via [config-ui](/UserManuals/ConfigUI/GitLab.md).
-- Configuring GitLab via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#2-gitlab).
+- Configuring GitLab via [config-ui](/Configuration/GitLab.md).
+- Configuring GitLab via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#2-gitlab).
 
 ## API Sample Request
 
diff --git a/docs/Plugins/jenkins.md b/docs/Plugins/jenkins.md
index 13ab302736..6c2fcfea0a 100644
--- a/docs/Plugins/jenkins.md
+++ b/docs/Plugins/jenkins.md
@@ -34,8 +34,8 @@ Metrics that can be calculated based on the data collected 
from Jenkins:
 
 ## Configuration
 
-- Configuring Jenkins via [Config UI](/UserManuals/ConfigUI/Jenkins.md)
-- Configuring Jenkins via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#3-jenkins).
+- Configuring Jenkins via [Config UI](/Configuration/Jenkins.md)
+- Configuring Jenkins via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#3-jenkins).
 
 ## API Sample Request
 
diff --git a/docs/Plugins/jira.md b/docs/Plugins/jira.md
index ea2ef56d72..88e72e3a1f 100644
--- a/docs/Plugins/jira.md
+++ b/docs/Plugins/jira.md
@@ -31,8 +31,8 @@ Metrics that can be calculated based on the data collected 
from Jira:
 
 ## Configuration
 
-- Configuring Jira via [config-ui](/UserManuals/ConfigUI/Jira.md).
-- Configuring Jira via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#4-jira).
+- Configuring Jira via [config-ui](/Configuration/Jira.md).
+- Configuring Jira via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#4-jira).
 
 ## API Sample Request
 
diff --git a/docs/Plugins/refdiff.md b/docs/Plugins/refdiff.md
index 01be58de5b..73f7ed1fb3 100644
--- a/docs/Plugins/refdiff.md
+++ b/docs/Plugins/refdiff.md
@@ -100,7 +100,7 @@ curl 'http://localhost:8080/pipelines' \
 
 ## How to use refdiff in DORA
 
-RefDiff can be called by the [DORA 
plugin](https://github.com/apache/incubator-devlake/tree/main/plugins/dora) to 
support the calculation of [DORA 
metrics](https://devlake.apache.org/docs/UserManuals/DORA). RefDiff has a 
subtask called 'calculateProjectDeploymentCommitsDiff'. This subtask takes the 
`project_name` from task options to calculate the commits diff between two 
consecutive deployments in this project. That is to say, refdiff will generate 
the relationship between `deployed com [...]
+RefDiff can be called by the [DORA 
plugin](https://github.com/apache/incubator-devlake/tree/main/plugins/dora) to 
support the calculation of [DORA 
metrics](https://devlake.apache.org/docs/DORA). RefDiff has a subtask called 
'calculateProjectDeploymentCommitsDiff'. This subtask takes the `project_name` 
from task options to calculate the commits diff between two consecutive 
deployments in this project. That is to say, refdiff will generate the 
relationship between `deployed commit(s)` and  [...]
 
 ```shell
 curl 'http://localhost:8080/pipelines' \
diff --git a/docs/Plugins/tapd.md b/docs/Plugins/tapd.md
index 691f7a930d..d4fa912548 100644
--- a/docs/Plugins/tapd.md
+++ b/docs/Plugins/tapd.md
@@ -20,5 +20,5 @@ Metrics that can be calculated based on the data collected 
from Tapd:
 
 ## Configuration
 
-- Configuring Tapd via [config-ui](/UserManuals/ConfigUI/Tapd.md).
-- Configuring Tapd via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#6-tapd).
+- Configuring Tapd via [config-ui](/Configuration/Tapd.md).
+- Configuring Tapd via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#6-tapd).
diff --git a/docs/Plugins/webhook.md b/docs/Plugins/webhook.md
index e11d6dd84f..3d180f29dd 100644
--- a/docs/Plugins/webhook.md
+++ b/docs/Plugins/webhook.md
@@ -33,7 +33,7 @@ Metrics that can be calculated based on the data collected 
from Incoming Webhook
 
 ## Configuration
 
-- Configuring Incoming Webhooks via [Config 
UI](/UserManuals/ConfigUI/webhook.md)
+- Configuring Incoming Webhooks via [Config UI](/Configuration/webhook.md)
 
 ## API Sample Request
 
@@ -67,7 +67,7 @@ curl https://sample-url.com/api/plugins/webhook/1/deployments 
-X 'POST' -d '{
   }'
 ```
 
-If you have set a 
[username/password](https://devlake.apache.org/docs/UserManuals/Authentication) 
for Config UI, you'll need to add them to the curl command to register a 
`deployment`:
+If you have set a [username/password](GettingStarted/Authentication.md) for 
Config UI, you'll need to add them to the curl command to register a 
`deployment`:
 
 ```
 curl https://sample-url.com/api/plugins/webhook/1/deployments -X 'POST' -u 
'username:password' -d '{
diff --git a/docs/Plugins/zentao.md b/docs/Plugins/zentao.md
index 72d157ae4d..43d6398d49 100644
--- a/docs/Plugins/zentao.md
+++ b/docs/Plugins/zentao.md
@@ -20,5 +20,5 @@ Metrics that can be calculated based on the data collected 
from Zentao:
 
 ## Configuration
 
-- Configuring Zentao via [config-ui](/UserManuals/ConfigUI/Zentao.md).
-- Configuring Zentao via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#8-zentao).
+- Configuring Zentao via [config-ui](/Configuration/Zentao.md).
+- Configuring Zentao via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#8-zentao).
diff --git a/docs/Troubleshooting/Configuration.md 
b/docs/Troubleshooting/Configuration.md
index e1978a4525..fbe71e76c3 100644
--- a/docs/Troubleshooting/Configuration.md
+++ b/docs/Troubleshooting/Configuration.md
@@ -10,7 +10,7 @@ description: >
 | Error code | An example                  | Causes | Solutions |
 | ---------- | ----------------------------|--------|-----------|
 | 429        | subtask collectAPiPipelines ended unexpectedly caused: Error 
waiting for async Collector execution caused by: retry exceeded 3 times calling 
projects/{projectId}/pipelines {429} | This error exmaple is caused by GitLab's 
Pipeline APIs. These APIs are implemented via Cloudflare, which is different 
from other GitLab entities. | Two ways: <br/> - Enable `fixed rate limit` in 
the GitLab connection, lower the API rates to 2,000. If it works, you can try 
increase the rates to ac [...]
-| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](/docs/UserMan [...]
+| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](/docs/Configu [...]
 | 1406       | subtask extractApiBuilds ended unexpectedly caused by: error 
adding the result to batch caused by: Error 1406: Data too long for column 
'full_display_name' at row 138. See bug 
[#4053](https://github.com/apache/incubator-devlake/issues/4053) | This is 
usually thrown by MySQL because a certain value is too long | A work-around is 
to manually change the field length to varchar(255) or longer in MySQL. Also, 
please put up a [bug](https://github.com/apache/incubator-devlake/iss [...]
 
 
diff --git a/docs/UserManuals/ConfigUI/_category_.json 
b/docs/UserManuals/ConfigUI/_category_.json
deleted file mode 100644
index 62f99d484f..0000000000
--- a/docs/UserManuals/ConfigUI/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "label": "Config UI",
-  "position": 4
-}
diff --git a/docs/UserManuals/Dashboards/_category_.json 
b/docs/UserManuals/Dashboards/_category_.json
deleted file mode 100644
index 0db83c6e9b..0000000000
--- a/docs/UserManuals/Dashboards/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "label": "Dashboards",
-  "position": 5
-}
diff --git a/livedemo/EngineeringLeads/DORA.md 
b/livedemo/EngineeringLeads/DORA.md
index c7b8a63abf..2c591db209 100644
--- a/livedemo/EngineeringLeads/DORA.md
+++ b/livedemo/EngineeringLeads/DORA.md
@@ -7,7 +7,7 @@ description: >
 
 # DORA
 
-To set up your own DORA metrics dashboard, you can checkout our detailed [DORA 
user guide](https://devlake.apache.org/docs/UserManuals/DORA).
+To set up your own DORA metrics dashboard, you can checkout our detailed [DORA 
user guide](https://devlake.apache.org/docs/DORA).
 
 <div className="info">
   <h5>
diff --git a/src/components/Sections/HeaderLearnMore.tsx 
b/src/components/Sections/HeaderLearnMore.tsx
index a58662e03b..782129044f 100644
--- a/src/components/Sections/HeaderLearnMore.tsx
+++ b/src/components/Sections/HeaderLearnMore.tsx
@@ -50,7 +50,7 @@ export function HeaderLearnMore() {
             mobile:my-[8px] sm:my-[8px]
             mobile:mx-auto sm:mx-auto
             "
-          to="https://devlake.apache.org/docs/UserManuals/DORA";
+          to="https://devlake.apache.org/docs/DORA";
         >
           Learn More
         </Link>
diff --git a/src/components/Sections/UserFlow.tsx 
b/src/components/Sections/UserFlow.tsx
index 79d1181126..3ff764b885 100644
--- a/src/components/Sections/UserFlow.tsx
+++ b/src/components/Sections/UserFlow.tsx
@@ -43,7 +43,7 @@ export function UserFlow() {
           icon={<UF2 width={40} height={40} />}
           text="Collect Data"
         >
-          Select, transform and set up a schedule for the data you wish to 
sync from your prefered data sources in the <InlineLink 
link="https://devlake.apache.org/docs/UserManuals/ConfigUI/Tutorial";>Config 
UI</InlineLink>.
+          Select, transform and set up a schedule for the data you wish to 
sync from your prefered data sources in the <InlineLink 
link="https://devlake.apache.org/docs/Configuration/Tutorial";>Config 
UI</InlineLink>.
         </Card>
         <Arrow />
         <Card
@@ -57,7 +57,7 @@ export function UserFlow() {
           icon={<UF4 width={40} height={40} />}
           text="Customize Metrics"
         >
-          <InlineLink 
link="https://devlake.apache.org/docs/UserManuals/Dashboards/GrafanaUserGuide#customizing-a-dashboard";>Customize</InlineLink>
 your own metrics or dashboards with SQL to extend your usage of DevLake.
+          <InlineLink 
link="https://devlake.apache.org/docs/Configuration/Dashboards/GrafanaUserGuide#customizing-a-dashboard";>Customize</InlineLink>
 your own metrics or dashboards with SQL to extend your usage of DevLake.
         </Card>
       </div>
     </div>
diff --git a/versioned_docs/version-v0.14/GettingStarted/RainbondSetup.md 
b/versioned_docs/version-v0.14/GettingStarted/RainbondSetup.md
index 41b3c15457..3b793c7ee9 100644
--- a/versioned_docs/version-v0.14/GettingStarted/RainbondSetup.md
+++ b/versioned_docs/version-v0.14/GettingStarted/RainbondSetup.md
@@ -31,4 +31,4 @@ Install DevLake in Rainbond is the easiest way to get started.
 
 ## Next Step
 
-Creating a Blueprint, ref 
[Tutorial](/docs/UserManuals/ConfigUI/Tutorial#creating-a-blueprint)
\ No newline at end of file
+Creating a Blueprint, ref 
[Tutorial](UserManuals/ConfigUI/Tutorial.md#creating-a-blueprint)
\ No newline at end of file
diff --git a/versioned_docs/version-v0.14/Troubleshooting.md 
b/versioned_docs/version-v0.14/Troubleshooting.md
index 278135b704..dba0cbf1d5 100644
--- a/versioned_docs/version-v0.14/Troubleshooting.md
+++ b/versioned_docs/version-v0.14/Troubleshooting.md
@@ -10,7 +10,7 @@ description: >
 | Error code | An example                  | Causes | Solutions |
 | ---------- | ----------------------------|--------|-----------|
 | 429        | subtask collectAPiPipelines ended unexpectedly caused: Error 
waiting for async Collector execution caused by: retry exceeded 3 times calling 
projects/{projectId}/pipelines {429} | This error exmaple is caused by GitLab's 
Pipeline APIs. These APIs are implemented via Cloudflare, which is different 
from other GitLab entities. | Two ways: <br/> - Enable `fixed rate limit` in 
the GitLab connection, lower the API rates to 2,000. If it works, you can try 
increase the rates to ac [...]
-| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](/docs/UserMan [...]
+| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](UserManuals/C [...]
 | 1406       | subtask extractApiBuilds ended unexpectedly caused by: error 
adding the result to batch caused by: Error 1406: Data too long for column 
'full_display_name' at row 138. See bug 
[#4053](https://github.com/apache/incubator-devlake/issues/4053) | This is 
usually thrown by MySQL because a certain value is too long | A work-around is 
to manually change the field length to varchar(255) or longer in MySQL. Also, 
please put up a [bug](https://github.com/apache/incubator-devlake/iss [...]
 
 
diff --git a/docs/UserManuals/ConfigUI/AdvancedMode.md 
b/versioned_docs/version-v0.15/Configuration/AdvancedMode.md
similarity index 99%
rename from docs/UserManuals/ConfigUI/AdvancedMode.md
rename to versioned_docs/version-v0.15/Configuration/AdvancedMode.md
index d9f3823aec..6377d51644 100644
--- a/docs/UserManuals/ConfigUI/AdvancedMode.md
+++ b/versioned_docs/version-v0.15/Configuration/AdvancedMode.md
@@ -1,6 +1,6 @@
 ---
-title: "Using Advanced Mode"
-sidebar_position: 7
+title: "Blueprint Advanced Mode"
+sidebar_position: 8
 description: >
   Using the advanced mode of Config-UI
 ---
diff --git a/docs/UserManuals/ConfigUI/BitBucket.md 
b/versioned_docs/version-v0.15/Configuration/BitBucket.md
similarity index 98%
rename from docs/UserManuals/ConfigUI/BitBucket.md
rename to versioned_docs/version-v0.15/Configuration/BitBucket.md
index 317be3e8d7..871b2e9c86 100644
--- a/docs/UserManuals/ConfigUI/BitBucket.md
+++ b/versioned_docs/version-v0.15/Configuration/BitBucket.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring BitBucket(Beta)"
+title: "BitBucket(Beta)"
 sidebar_position: 2
 description: Config UI instruction for BitBucket(Cloud)
 ---
diff --git 
a/versioned_docs/version-v0.15/UserManuals/Dashboards/AccessControl.md 
b/versioned_docs/version-v0.15/Configuration/Dashboards/AccessControl.md
similarity index 100%
rename from versioned_docs/version-v0.15/UserManuals/Dashboards/AccessControl.md
rename to versioned_docs/version-v0.15/Configuration/Dashboards/AccessControl.md
diff --git 
a/versioned_docs/version-v0.15/UserManuals/Dashboards/GrafanaUserGuide.md 
b/versioned_docs/version-v0.15/Configuration/Dashboards/GrafanaUserGuide.md
similarity index 100%
rename from 
versioned_docs/version-v0.15/UserManuals/Dashboards/GrafanaUserGuide.md
rename to 
versioned_docs/version-v0.15/Configuration/Dashboards/GrafanaUserGuide.md
diff --git 
a/versioned_docs/version-v0.15/Configuration/Dashboards/_category_.json 
b/versioned_docs/version-v0.15/Configuration/Dashboards/_category_.json
new file mode 100644
index 0000000000..37da75a8c7
--- /dev/null
+++ b/versioned_docs/version-v0.15/Configuration/Dashboards/_category_.json
@@ -0,0 +1,4 @@
+{
+  "label": "Dashboard Configuration",
+  "position": 10
+}
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/GitHub.md 
b/versioned_docs/version-v0.15/Configuration/GitHub.md
similarity index 98%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/GitHub.md
rename to versioned_docs/version-v0.15/Configuration/GitHub.md
index c80152260f..eff040331a 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/GitHub.md
+++ b/versioned_docs/version-v0.15/Configuration/GitHub.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring GitHub"
+title: "GitHub"
 sidebar_position: 2
 description: Config UI instruction for GitHub
 ---
@@ -120,7 +120,8 @@ If you're using GitHub Action to conduct `deployments`, 
please select "Detect De
 - Deployment: A GitHub Action job with a name that matches the given regEx 
will be considered as a deployment.
 - Production: A GitHub Action job with a name that matches the given regEx 
will be considered a job in the production environment.
 
-A GitHub workflow run has many jobs. Each GitHub workflow run is converted to 
a cicd_pipeline in the domain layer and each GitHub Action job is converted to 
a cicd_task in the domain layer.
+A GitHub workflow run has many jobs. Each GitHub workflow run is converted to 
a 
+cicd_pipeline in the domain layer and each GitHub Action job is converted to a 
cicd_task in the domain layer.
 ![github-action-run](/img/ConfigUI/github-action-run.png)
 ![github-action-job](/img/ConfigUI/github-action-job.png)
 
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/GitLab.md 
b/versioned_docs/version-v0.15/Configuration/GitLab.md
similarity index 99%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/GitLab.md
rename to versioned_docs/version-v0.15/Configuration/GitLab.md
index f1db518f2b..69558b2974 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/GitLab.md
+++ b/versioned_docs/version-v0.15/Configuration/GitLab.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring GitLab"
+title: "GitLab"
 sidebar_position: 3
 description: Config UI instruction for GitLab
 ---
diff --git a/docs/UserManuals/ConfigUI/Jenkins.md 
b/versioned_docs/version-v0.15/Configuration/Jenkins.md
similarity index 99%
rename from docs/UserManuals/ConfigUI/Jenkins.md
rename to versioned_docs/version-v0.15/Configuration/Jenkins.md
index 999a9e04c9..45a301381a 100644
--- a/docs/UserManuals/ConfigUI/Jenkins.md
+++ b/versioned_docs/version-v0.15/Configuration/Jenkins.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Jenkins"
+title: "Jenkins"
 sidebar_position: 5
 description: Config UI instruction for Jenkins
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Jira.md 
b/versioned_docs/version-v0.15/Configuration/Jira.md
similarity index 99%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/Jira.md
rename to versioned_docs/version-v0.15/Configuration/Jira.md
index f9aaf2683a..f0d4732747 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Jira.md
+++ b/versioned_docs/version-v0.15/Configuration/Jira.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Jira"
+title: "Jira"
 sidebar_position: 4
 description: Config UI instruction for Jira
 ---
diff --git a/docs/UserManuals/ConfigUI/Tapd.md 
b/versioned_docs/version-v0.15/Configuration/Tapd.md
similarity index 97%
rename from docs/UserManuals/ConfigUI/Tapd.md
rename to versioned_docs/version-v0.15/Configuration/Tapd.md
index c65270d449..cf62019b0f 100644
--- a/docs/UserManuals/ConfigUI/Tapd.md
+++ b/versioned_docs/version-v0.15/Configuration/Tapd.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring TAPD(Beta)"
+title: "TAPD(Beta)"
 sidebar_position: 6
 description: Config UI instruction for Tapd
 ---
diff --git a/versioned_docs/version-v0.15/UserManuals/TeamConfiguration.md 
b/versioned_docs/version-v0.15/Configuration/TeamConfiguration.md
similarity index 100%
rename from versioned_docs/version-v0.15/UserManuals/TeamConfiguration.md
rename to versioned_docs/version-v0.15/Configuration/TeamConfiguration.md
diff --git a/docs/UserManuals/ConfigUI/Tutorial.md 
b/versioned_docs/version-v0.15/Configuration/Tutorial.md
similarity index 100%
rename from docs/UserManuals/ConfigUI/Tutorial.md
rename to versioned_docs/version-v0.15/Configuration/Tutorial.md
diff --git a/docs/UserManuals/ConfigUI/Zentao.md 
b/versioned_docs/version-v0.15/Configuration/Zentao.md
similarity index 97%
rename from docs/UserManuals/ConfigUI/Zentao.md
rename to versioned_docs/version-v0.15/Configuration/Zentao.md
index d8cfde289a..316e0dea1c 100644
--- a/docs/UserManuals/ConfigUI/Zentao.md
+++ b/versioned_docs/version-v0.15/Configuration/Zentao.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Zentao(Beta)"
+title: "Zentao(Beta)"
 sidebar_position: 6
 description: Config UI instruction for Zentao
 ---
diff --git a/docs/UserManuals/_category_.json 
b/versioned_docs/version-v0.15/Configuration/_category_.json
similarity index 54%
rename from docs/UserManuals/_category_.json
rename to versioned_docs/version-v0.15/Configuration/_category_.json
index 23ce768a59..96a3608ba7 100644
--- a/docs/UserManuals/_category_.json
+++ b/versioned_docs/version-v0.15/Configuration/_category_.json
@@ -1,8 +1,8 @@
 {
-  "label": "User Manuals",
+  "label": "Configuration",
   "position": 3,
   "link":{
     "type": "generated-index",
-    "slug": "UserManuals"
+    "slug": "Configuration"
   }
 }
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/webhook.md 
b/versioned_docs/version-v0.15/Configuration/webhook.md
similarity index 98%
rename from versioned_docs/version-v0.15/UserManuals/ConfigUI/webhook.md
rename to versioned_docs/version-v0.15/Configuration/webhook.md
index 9616feab99..97540285bb 100644
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/webhook.md
+++ b/versioned_docs/version-v0.15/Configuration/webhook.md
@@ -1,5 +1,5 @@
 ---
-title: "Configuring Incoming Webhook"
+title: "Incoming Webhook"
 sidebar_position: 7
 description: Config UI instruction for Webhook
 ---
diff --git a/docs/UserManuals/DORA.md b/versioned_docs/version-v0.15/DORA.md
similarity index 96%
rename from docs/UserManuals/DORA.md
rename to versioned_docs/version-v0.15/DORA.md
index 81ac826b2b..8d3b9e9126 100644
--- a/docs/UserManuals/DORA.md
+++ b/versioned_docs/version-v0.15/DORA.md
@@ -1,6 +1,6 @@
 ---
 title: "DORA"
-sidebar_position: 7
+sidebar_position: 4
 description: >
   DORA Metrics
 ---
@@ -44,7 +44,7 @@ You can set up DORA metrics in DevLake in a few steps:
 
 DevLake now supports Jenkins, GitHub Action and GitLabCI as data sources for 
`deployments` data; Jira, GitHub issues, and TAPD as the sources for 
`incidents` data; Github PRs, GitLab MRs as the sources for `changes` data.
 
-If your CI/CD tools are not listed on the [Supported Data 
Sources](https://devlake.apache.org/docs/SupportedDataSources) page, have no 
fear! DevLake provides incoming webhooks to push your `deployments` data to 
DevLake. The webhook configuration doc can be found 
[here](https://devlake.apache.org/docs/UserManuals/ConfigUI/webhook/).
+If your CI/CD tools are not listed on the [Supported Data 
Sources](https://devlake.apache.org/docs/SupportedDataSources) page, have no 
fear! DevLake provides incoming webhooks to push your `deployments` data to 
DevLake. The webhook configuration doc can be found 
[here](https://devlake.apache.org/docs/Configuration/webhook/).
 
 
 ## A real-world example
@@ -86,7 +86,7 @@ In the next section, we'll demonstrate how to configure 
DevLake to implement DOR
 6. Choose sync frequency, click 'Save and Run Now' to start data collection. 
The time to completion varies by data source and depends on the volume of data.
 ![](https://i.imgur.com/zPkfzGr.png)
 
-For more details, please refer to our [blueprint 
manuals](https://devlake.apache.org/docs/UserManuals/ConfigUI/Tutorial).
+For more details, please refer to our [blueprint 
manuals](https://devlake.apache.org/docs/Configuration/Tutorial).
 
 ### Collect CircleCI data via `webhook`
 
@@ -144,7 +144,7 @@ Using CircleCI as an example, we demonstrate how to 
actively push data to DevLak
         - build
         - deploy
   ```
-  If you have set a 
[username/password](https://devlake.apache.org/docs/UserManuals/Authentication) 
for Config UI, you need to add them to the curl to register a deployment:
+  If you have set a [username/password](GettingStarted/Authentication.md) for 
Config UI, you need to add them to the curl to register a deployment:
 
   ```
   curl https://sample-url.com/api/plugins/webhook/1/deployments -X 'POST' -u 
'username:password' -d '{
@@ -172,7 +172,7 @@ For a breakdown of each metric's SQL query, please refer to 
the corresponding me
   - [Median Time to Restore 
Service](https://devlake.apache.org/docs/Metrics/MTTR)
   - [Change Failure Rate](https://devlake.apache.org/docs/Metrics/CFR)
 
-If you aren't familiar with Grafana, please refer to our [Grafana 
doc](./Dashboards/GrafanaUserGuide.md), or jump into Slack for help.
+If you aren't familiar with Grafana, please refer to our [Grafana 
doc](Configuration/Dashboards/GrafanaUserGuide.md), or jump into Slack for help.
 
 <br/>
 
diff --git 
a/versioned_docs/version-v0.15/DataModels/DevLakeDomainLayerSchema.md 
b/versioned_docs/version-v0.15/DataModels/DevLakeDomainLayerSchema.md
index 5450c74868..78c0539ec8 100644
--- a/versioned_docs/version-v0.15/DataModels/DevLakeDomainLayerSchema.md
+++ b/versioned_docs/version-v0.15/DataModels/DevLakeDomainLayerSchema.md
@@ -498,7 +498,7 @@ A cicd_task is a single job of ci/cd.
 
 ### Project Metric Entities
 
-#### project_pr_metrics 
+#### project_pr_metrics
 
 | **field** | **type** | **length** | **description**                          
                                              | **key** |
 | :-------- | :-------- 
|:-----------|:---------------------------------------------------------------------------------------|
 :-------- |
@@ -666,7 +666,7 @@ import 
"github.com/apache/incubator-devlake/models/domainlayer/domaininfo"
 
 domaininfo := domaininfo.GetDomainTablesInfo()
 for _, table := range domaininfo {
-  // do something
+// do something
 }
 ```
 
diff --git a/versioned_docs/version-v0.15/DeveloperManuals/DeveloperSetup.md 
b/versioned_docs/version-v0.15/DeveloperManuals/DeveloperSetup.md
index 064af5109d..b228880a1a 100644
--- a/versioned_docs/version-v0.15/DeveloperManuals/DeveloperSetup.md
+++ b/versioned_docs/version-v0.15/DeveloperManuals/DeveloperSetup.md
@@ -23,7 +23,7 @@ The following guide will walk through how to run DevLake's 
frontend (`config-ui`
 1. Navigate to where you would like to install this project and clone the 
repository:
 
    ```sh
-   git clone https://github.com/apache/incubator-devlake
+   git clone https://github.com/apache/incubator-devlake.git
    cd incubator-devlake
    ```
 
@@ -34,7 +34,9 @@ The following guide will walk through how to run DevLake's 
frontend (`config-ui`
 3. Install Go packages
 
     ```sh
+    cd backend
        go get
+    cd ..
     ```
 
 4. Copy the sample config file to new local file:
@@ -67,7 +69,7 @@ The following guide will walk through how to run DevLake's 
frontend (`config-ui`
     For common errors, please see [Troubleshooting](#troubleshotting).
 
 8.  Config UI is running at `localhost:4000`
-    - For how to use Config UI, please refer to our 
[tutorial](UserManuals/ConfigUI/Tutorial.md)
+    - For how to use Config UI, please refer to our 
[tutorial](Configuration/Tutorial.md)
 
 ## Running Tests
 
@@ -97,7 +99,7 @@ All DevLake APIs (core service + plugin API) are documented 
with swagger. To see
 
 To access Grafana, click *View Dashboards* button in the top left corner of 
Config UI, or visit `localhost:3002` (username: `admin`, password: `admin`).
 
-For provisioning, customizing, and creating dashboards, please refer to our 
[Grafana Doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
+For provisioning, customizing, and creating dashboards, please refer to our 
[Grafana Doc](../Configuration/Dashboards/GrafanaUserGuide.md).
 
 
 ## Troubleshooting
diff --git a/versioned_docs/version-v0.15/DeveloperManuals/UnitTest.md 
b/versioned_docs/version-v0.15/DeveloperManuals/UnitTest.md
new file mode 100644
index 0000000000..b7599dd26e
--- /dev/null
+++ b/versioned_docs/version-v0.15/DeveloperManuals/UnitTest.md
@@ -0,0 +1,42 @@
+---
+title: "UnitTest Test Guide"
+description: >
+  The steps to write UnitTest tests for plugins.
+---
+
+# Introduction of UnitTest 
+
+A unit test is a type of software testing that tests individual units or 
components of a software application. The goal of unit testing is to validate 
that each unit of the software performs as expected. Unit tests are typically 
written by developers as they work on the code, to ensure that the code they 
are writing is correct and behaves as intended.
+
+Unit tests are automated and are typically written in the same programming 
language as the code being tested. They are usually run as part of a continuous 
integration process, ensuring that changes to the codebase don't break existing 
functionality.
+
+Unit tests are typically small and focus on a specific function or method of 
the code. They are usually designed to run quickly and in isolation, so that 
any issues that are discovered can be easily traced back to the specific code 
that is causing the problem.
+
+# How to write UnitTest for golang
+
+Here are some resources for writing UnitTest for golang:
+
+- [Add a test - The Go Programming 
Language](https://go.dev/doc/tutorial/add-a-test)
+
+- [How To Write Unit Tests in Go | 
DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-write-unit-tests-in-go-using-go-test-and-the-testing-package)
+
+
+# Test case examples 
+
+- [Source 
code](https://github.com/apache/incubator-devlake/blob/243cc8a80aa5b37828e2a142ac9f7e3269b7e1dc/backend/core/migration/migrator_test.go)
+
+# Recommended Libraries for writing UnitTest cases
+
+- [Library-1](https://github.com/stretchr/testify/tree/master/assert)
+- [Library-2](https://github.com/stretchr/testify/tree/master/mock)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/versioned_docs/version-v0.15/GettingStarted/DockerComposeSetup.md 
b/versioned_docs/version-v0.15/GettingStarted/DockerComposeSetup.md
index 7c592a85f2..00c2f0a8d6 100644
--- a/versioned_docs/version-v0.15/GettingStarted/DockerComposeSetup.md
+++ b/versioned_docs/version-v0.15/GettingStarted/DockerComposeSetup.md
@@ -22,11 +22,11 @@ sidebar_position: 1
 ## Collect data and view dashboards
 
 1. Visit `config-ui` at `http://localhost:4000` in your browser to configure 
DevLake and collect data.
-   - Please follow the [tutorial](UserManuals/ConfigUI/Tutorial.md)
+   - Please follow the [tutorial](Configuration/Tutorial.md)
    - `devlake` container takes a while to fully boot up. If `config-ui` 
complains about API being unreachable, please wait a few seconds and refresh 
the page.
 2. To view dashboards, click *View Dashboards* button in the top left corner, 
or visit `localhost:3002` (username: `admin`, password: `admin`).
    - We use [Grafana](https://grafana.com/) to visualize the DevOps 
[data](/Overview/SupportedDataSources.md) and build dashboards.
-   - For how to customize and provision dashboards, please see our [Grafana 
doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
+   - For how to customize and provision dashboards, please see our [Grafana 
doc](../Configuration/Dashboards/GrafanaUserGuide.md).
 
 
 ## Upgrade to a newer version
diff --git a/versioned_docs/version-v0.15/GettingStarted/KubernetesSetup.md 
b/versioned_docs/version-v0.15/GettingStarted/KubernetesSetup.md
deleted file mode 100644
index 64a8bf966e..0000000000
--- a/versioned_docs/version-v0.15/GettingStarted/KubernetesSetup.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-title: "Install via Kubernetes"
-description: >
-  The steps to install Apache DevLake via Kubernetes
-sidebar_position: 3
----
-
-:::caution
-
-We highly recommend the [helm approach](./HelmSetup.md), this page is for 
Advanced Installation only
-
-:::
-
-We provide a sample 
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
 to help deploy DevLake to Kubernetes
-
-[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
 will create a namespace `devlake` on your k8s cluster, and use `nodePort 
30004` for `config-ui`,  `nodePort 30002` for `grafana` dashboards. If you 
would like to use a specific version of Apache DevLake, please update the image 
tag of `grafana`, `devlake` and `config-ui` deployments.
-
-## Step-by-step guide
-
-1. Download 
[k8s-deploy.yaml](https://github.com/apache/incubator-devlake/blob/main/devops/deployment/k8s/k8s-deploy.yaml)
-2. Customize the settings (`devlake-config` config map):
-   - Settings shared between `grafana` and `mysql`
-     * `MYSQL_ROOT_PASSWORD`: set root password for `mysql`
-     * `MYSQL_USER`: shared between `mysql` and `grafana`
-     * `MYSQL_PASSWORD`: shared between `mysql` and `grafana`
-     * `MYSQL_DATABASE`: shared between `mysql` and `grafana`
-   - Settings used by `grafana`
-     * `MYSQL_URL`: set MySQL URL for `grafana` in `$HOST:$PORT` format
-     * `GF_SERVER_ROOT_URL`: Public URL to the `grafana`
-   - Settings used by `config-ui`:
-     * `GRAFANA_ENDPOINT`: FQDN of grafana which can be reached within k8s 
cluster, normally you don't need to change it unless namespace was changed
-     * `DEVLAKE_ENDPOINT`: FQDN of devlake which can be reached within k8s 
cluster, normally you don't need to change it unless namespace was changed
-     * `ADMIN_USER`/`ADMIN_PASS`: Not required, but highly recommended
-   - Settings used by `devlake`:
-     * `DB_URL`: update this value if  `MYSQL_USER`, `MYSQL_PASSWORD` or 
`MYSQL_DATABASE` were changed
-     * `LOGGING_DIR`: the directory of logs for Devlake - you likely don't 
need to change it.
-3. The `devlake` deployment store its configuration in `/app/.env`. In our 
sample yaml, we use `hostPath` volume, so please make sure directory 
`/var/lib/devlake` exists on your k8s workers, or employ other techniques to 
persist `/app/.env` file. Please do NOT mount the entire `/app` directory, 
because plugins are located in `/app/bin` folder.
-4. Finally, execute the following command and DevLake should be up and running:
-   ```sh
-   kubectl apply -f k8s-deploy.yaml
-   ```
-
-
-## FAQ
-
-1. Can I use a managed Cloud database service instead of running database in 
docker?
-
-   Yes, it only takes a few changes in the sample yaml file. Below we'll use 
MySQL on AWS RDS as an example.
-   1. (Optional) Create a MySQL instance on AWS RDS following this 
[doc](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html),
 skip this step if you'd like to use an existing instance
-   2. Remove the `mysql` deployment and service sections from `k8s-deploy.yaml`
-   3. Update `devlake-config` configmap according to your RDS instance setup:
-     * `MYSQL_ROOT_PASSWORD`: remove this line
-     * `MYSQL_USER`: use your RDS instance's master username
-     * `MYSQL_PASSWORD`: use your RDS instance's password
-     * `MYSQL_DATABASE`: use your RDS instance's DB name, you may need to 
create a database first with `CREATE DATABASE <DB name>;`
-     * `MYSQL_URL`: set this for `grafana` in `$HOST:$PORT` format, where 
$HOST and $PORT should be your RDS instance's endpoint and port respectively
-     * `DB_URL`: update the connection string with your RDS instance's info 
for `devlake`
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/versioned_docs/version-v0.15/GettingStarted/RainbondSetup.md 
b/versioned_docs/version-v0.15/GettingStarted/RainbondSetup.md
deleted file mode 100644
index fde8836547..0000000000
--- a/versioned_docs/version-v0.15/GettingStarted/RainbondSetup.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-title: "Install via Rainbond"
-sidebar_position: 7
-description: >
-  The steps to install DevLake in Rainbond.
----
-
-This tutorial is for users who don't know Kubernetes. 
[Rainbond](https://www.rainbond.com/) is cloud native application management 
platform built on Kubernetes, easy to use, no need to know Kubernetes 
knowledge, easily deploy applications in Kubernetes. 
-
-Install DevLake in Rainbond is the easiest way to get started.
-
-## Requirements
-
-* Rainbond 5.8.x or above
-
-## Deploy DevLake
-
-1.Login to Rainbond console, click `Market` in the left menu, switch to open 
source app store, and search `DevLake` in the search box, and click `Install` 
button.
-
-![](/img/GettingStarted/install-devlake.jpg)
-
-2.fill in the installation information, and click `Confirm` button startup 
install.
-  * Team: select a team or create a new team
-  * Cluster: select a cluster
-  * Application: select an application or create a new application
-  * Version: select a version
-
-3.Moment later, DevLake will be installed successfully, via the `Access` 
button to access DevLake.
-
-![](/img/GettingStarted/topology-devlake.jpg)
-
-## Next Step
-
-Creating a Blueprint, ref 
[Tutorial](/docs/UserManuals/ConfigUI/Tutorial#creating-a-blueprint)
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/versioned_docs/version-v0.15/GettingStarted/TemporalSetup.md 
b/versioned_docs/version-v0.15/GettingStarted/TemporalSetup.md
deleted file mode 100644
index 1d6ce844a5..0000000000
--- a/versioned_docs/version-v0.15/GettingStarted/TemporalSetup.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: "Install via Temporal"
-sidebar_position: 6
-description: >
-  The steps to install DevLake in Temporal mode.
----
-
-
-Normally, DevLake would execute pipelines on a local machine (we call it 
`local mode`), it is sufficient most of the time. However, when you have too 
many pipelines that need to be executed in parallel, it can be problematic, as 
the horsepower and throughput of a single machine is limited.
-
-`temporal mode` was added to support distributed pipeline execution, you can 
fire up arbitrary workers on multiple machines to carry out those pipelines in 
parallel to overcome the limitations of a single machine.
-
-But, be careful, many API services like JIRA/GITHUB have a request rate limit 
mechanism. Collecting data in parallel against the same API service with the 
same identity would most likely hit such limit.
-
-## How it works
-
-1. DevLake Server and Workers connect to the same temporal server by setting 
up `TEMPORAL_URL`
-2. DevLake Server sends a `pipeline` to the temporal server, and one of the 
Workers pick it up and execute it
-
-
-**IMPORTANT: This feature is in early stage of development. Please use with 
caution**
-
-
-## Temporal Demo
-
-### Requirements
-
-- [Docker](https://docs.docker.com/get-docker)
-- [docker-compose](https://docs.docker.com/compose/install/)
-- [temporalio](https://temporal.io/)
-
-### How to setup
-
-1. Clone and fire up the [temporalio](https://temporal.io/) services
-2. Clone this repo, and fire up DevLake with command `docker-compose -f 
deployment/temporal/docker-compose-temporal.yml up -d`
-
-
-## Troubleshooting
-
-If you run into any problem, please check the 
[Troubleshooting](/Troubleshooting/Installation.md) or [create an 
issue](https://github.com/apache/incubator-devlake/issues)
diff --git a/versioned_docs/version-v0.15/Overview/Introduction.md 
b/versioned_docs/version-v0.15/Overview/Introduction.md
index 6bb1194941..9bdb41cd58 100755
--- a/versioned_docs/version-v0.15/Overview/Introduction.md
+++ b/versioned_docs/version-v0.15/Overview/Introduction.md
@@ -16,7 +16,7 @@ Apache DevLake is designed for developer teams looking to 
make better sense of t
 
 ## How do I use DevLake?
 ### 1. Set up DevLake
-You can easily set up Apache DevLake by following our step-by step 
instructions for [Docker Compose 
setup](../GettingStarted/DockerComposeSetup.md) or [Kubernetes 
setup](../GettingStarted/KubernetesSetup.md).
+You can easily set up Apache DevLake by following our step-by step 
instructions for [Docker Compose 
setup](../GettingStarted/DockerComposeSetup.md) or [Helm 
setup](../GettingStarted/HelmSetup.md).
 
 ### 2. Create a Blueprint
 The DevLake Configuration UI will guide you through the process (a Blueprint) 
to define the data connections, data scope, transformation and sync frequency 
of the data you wish to collect.
diff --git a/versioned_docs/version-v0.15/Overview/SupportedDataSources.md 
b/versioned_docs/version-v0.15/Overview/SupportedDataSources.md
index 5d0669f0eb..20e6fbea3c 100644
--- a/versioned_docs/version-v0.15/Overview/SupportedDataSources.md
+++ b/versioned_docs/version-v0.15/Overview/SupportedDataSources.md
@@ -29,7 +29,7 @@ Apache DevLake(incubating) supports the following data 
sources. The data from ea
 
 This table shows the entities collected by each plugin. Domain layer entities 
in this table are consistent with the entities 
[here](/DataModels/DevLakeDomainLayerSchema.md).
 ✅ : Collect by default.
-💪 : Collect not by default. You need to add the corresponding subtasks to 
collect these entities in the [advanced 
mode](../UserManuals/ConfigUI/AdvancedMode.md).
+💪 : Collect not by default. You need to add the corresponding subtasks to 
collect these entities in the [advanced mode](../Configuration/AdvancedMode.md).
 
 | Domain Layer Entities                                                        
               | ae  | dora | gitextractor | incoming webhook | github | gitlab 
| jenkins | jira | refdiff | tapd |
 | 
-------------------------------------------------------------------------------------------
 | --- | ---- | ------------ | ---------------- | ------ | ------ | ------- | 
---- | ------- | ---- |
diff --git a/versioned_docs/version-v0.15/Plugins/bitbucket.md 
b/versioned_docs/version-v0.15/Plugins/bitbucket.md
index 97e7f2025d..b5a2979391 100644
--- a/versioned_docs/version-v0.15/Plugins/bitbucket.md
+++ b/versioned_docs/version-v0.15/Plugins/bitbucket.md
@@ -35,8 +35,8 @@ Metrics that can be calculated based on the data collected 
from bitbucket:
 
 ## Configuration
 
-- Configuring Bitbucket via [Config UI](/UserManuals/ConfigUI/BitBucket.md)
-- Configuring Bitbucket via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#9-BitBucket).
+- Configuring Bitbucket via [Config UI](/Configuration/BitBucket.md)
+- Configuring Bitbucket via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#9-BitBucket).
 
 ## API Sample Request
 
diff --git a/versioned_docs/version-v0.15/Plugins/github.md 
b/versioned_docs/version-v0.15/Plugins/github.md
index f8874548fb..a57adee6bb 100644
--- a/versioned_docs/version-v0.15/Plugins/github.md
+++ b/versioned_docs/version-v0.15/Plugins/github.md
@@ -56,8 +56,8 @@ Metrics that can be calculated based on the data collected 
from GitHub:
 
 ## Configuration
 
-- Configuring GitHub via [Config UI](/UserManuals/ConfigUI/GitHub.md)
-- Configuring GitHub via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#1-github).
+- Configuring GitHub via [Config UI](/Configuration/GitHub.md)
+- Configuring GitHub via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#1-github).
 
 ## API Sample Request
 
diff --git a/versioned_docs/version-v0.15/Plugins/gitlab.md 
b/versioned_docs/version-v0.15/Plugins/gitlab.md
index f4b5663b7a..03dc16925a 100644
--- a/versioned_docs/version-v0.15/Plugins/gitlab.md
+++ b/versioned_docs/version-v0.15/Plugins/gitlab.md
@@ -49,8 +49,8 @@ Metrics that can be calculated based on the data collected 
from GitLab:
 
 ## Configuration
 
-- Configuring GitLab via [config-ui](/UserManuals/ConfigUI/GitLab.md).
-- Configuring GitLab via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#2-gitlab).
+- Configuring GitLab via [config-ui](/Configuration/GitLab.md).
+- Configuring GitLab via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#2-gitlab).
 
 ## API Sample Request
 
diff --git a/versioned_docs/version-v0.15/Plugins/jenkins.md 
b/versioned_docs/version-v0.15/Plugins/jenkins.md
index 13ab302736..6c2fcfea0a 100644
--- a/versioned_docs/version-v0.15/Plugins/jenkins.md
+++ b/versioned_docs/version-v0.15/Plugins/jenkins.md
@@ -34,8 +34,8 @@ Metrics that can be calculated based on the data collected 
from Jenkins:
 
 ## Configuration
 
-- Configuring Jenkins via [Config UI](/UserManuals/ConfigUI/Jenkins.md)
-- Configuring Jenkins via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#3-jenkins).
+- Configuring Jenkins via [Config UI](/Configuration/Jenkins.md)
+- Configuring Jenkins via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#3-jenkins).
 
 ## API Sample Request
 
diff --git a/versioned_docs/version-v0.15/Plugins/jira.md 
b/versioned_docs/version-v0.15/Plugins/jira.md
index ea2ef56d72..88e72e3a1f 100644
--- a/versioned_docs/version-v0.15/Plugins/jira.md
+++ b/versioned_docs/version-v0.15/Plugins/jira.md
@@ -31,8 +31,8 @@ Metrics that can be calculated based on the data collected 
from Jira:
 
 ## Configuration
 
-- Configuring Jira via [config-ui](/UserManuals/ConfigUI/Jira.md).
-- Configuring Jira via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#4-jira).
+- Configuring Jira via [config-ui](/Configuration/Jira.md).
+- Configuring Jira via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#4-jira).
 
 ## API Sample Request
 
diff --git a/versioned_docs/version-v0.15/Plugins/refdiff.md 
b/versioned_docs/version-v0.15/Plugins/refdiff.md
index 01be58de5b..73f7ed1fb3 100644
--- a/versioned_docs/version-v0.15/Plugins/refdiff.md
+++ b/versioned_docs/version-v0.15/Plugins/refdiff.md
@@ -100,7 +100,7 @@ curl 'http://localhost:8080/pipelines' \
 
 ## How to use refdiff in DORA
 
-RefDiff can be called by the [DORA 
plugin](https://github.com/apache/incubator-devlake/tree/main/plugins/dora) to 
support the calculation of [DORA 
metrics](https://devlake.apache.org/docs/UserManuals/DORA). RefDiff has a 
subtask called 'calculateProjectDeploymentCommitsDiff'. This subtask takes the 
`project_name` from task options to calculate the commits diff between two 
consecutive deployments in this project. That is to say, refdiff will generate 
the relationship between `deployed com [...]
+RefDiff can be called by the [DORA 
plugin](https://github.com/apache/incubator-devlake/tree/main/plugins/dora) to 
support the calculation of [DORA 
metrics](https://devlake.apache.org/docs/DORA). RefDiff has a subtask called 
'calculateProjectDeploymentCommitsDiff'. This subtask takes the `project_name` 
from task options to calculate the commits diff between two consecutive 
deployments in this project. That is to say, refdiff will generate the 
relationship between `deployed commit(s)` and  [...]
 
 ```shell
 curl 'http://localhost:8080/pipelines' \
diff --git a/versioned_docs/version-v0.15/Plugins/tapd.md 
b/versioned_docs/version-v0.15/Plugins/tapd.md
index 691f7a930d..d4fa912548 100644
--- a/versioned_docs/version-v0.15/Plugins/tapd.md
+++ b/versioned_docs/version-v0.15/Plugins/tapd.md
@@ -20,5 +20,5 @@ Metrics that can be calculated based on the data collected 
from Tapd:
 
 ## Configuration
 
-- Configuring Tapd via [config-ui](/UserManuals/ConfigUI/Tapd.md).
-- Configuring Tapd via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#6-tapd).
+- Configuring Tapd via [config-ui](/Configuration/Tapd.md).
+- Configuring Tapd via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#6-tapd).
diff --git a/versioned_docs/version-v0.15/Plugins/webhook.md 
b/versioned_docs/version-v0.15/Plugins/webhook.md
index e11d6dd84f..3d180f29dd 100644
--- a/versioned_docs/version-v0.15/Plugins/webhook.md
+++ b/versioned_docs/version-v0.15/Plugins/webhook.md
@@ -33,7 +33,7 @@ Metrics that can be calculated based on the data collected 
from Incoming Webhook
 
 ## Configuration
 
-- Configuring Incoming Webhooks via [Config 
UI](/UserManuals/ConfigUI/webhook.md)
+- Configuring Incoming Webhooks via [Config UI](/Configuration/webhook.md)
 
 ## API Sample Request
 
@@ -67,7 +67,7 @@ curl https://sample-url.com/api/plugins/webhook/1/deployments 
-X 'POST' -d '{
   }'
 ```
 
-If you have set a 
[username/password](https://devlake.apache.org/docs/UserManuals/Authentication) 
for Config UI, you'll need to add them to the curl command to register a 
`deployment`:
+If you have set a [username/password](GettingStarted/Authentication.md) for 
Config UI, you'll need to add them to the curl command to register a 
`deployment`:
 
 ```
 curl https://sample-url.com/api/plugins/webhook/1/deployments -X 'POST' -u 
'username:password' -d '{
diff --git a/versioned_docs/version-v0.15/Plugins/zentao.md 
b/versioned_docs/version-v0.15/Plugins/zentao.md
index 72d157ae4d..43d6398d49 100644
--- a/versioned_docs/version-v0.15/Plugins/zentao.md
+++ b/versioned_docs/version-v0.15/Plugins/zentao.md
@@ -20,5 +20,5 @@ Metrics that can be calculated based on the data collected 
from Zentao:
 
 ## Configuration
 
-- Configuring Zentao via [config-ui](/UserManuals/ConfigUI/Zentao.md).
-- Configuring Zentao via Config UI's [advanced 
mode](/UserManuals/ConfigUI/AdvancedMode.md#8-zentao).
+- Configuring Zentao via [config-ui](/Configuration/Zentao.md).
+- Configuring Zentao via Config UI's [advanced 
mode](/Configuration/AdvancedMode.md#8-zentao).
diff --git a/versioned_docs/version-v0.15/Troubleshooting/Configuration.md 
b/versioned_docs/version-v0.15/Troubleshooting/Configuration.md
index e1978a4525..fbe71e76c3 100644
--- a/versioned_docs/version-v0.15/Troubleshooting/Configuration.md
+++ b/versioned_docs/version-v0.15/Troubleshooting/Configuration.md
@@ -10,7 +10,7 @@ description: >
 | Error code | An example                  | Causes | Solutions |
 | ---------- | ----------------------------|--------|-----------|
 | 429        | subtask collectAPiPipelines ended unexpectedly caused: Error 
waiting for async Collector execution caused by: retry exceeded 3 times calling 
projects/{projectId}/pipelines {429} | This error exmaple is caused by GitLab's 
Pipeline APIs. These APIs are implemented via Cloudflare, which is different 
from other GitLab entities. | Two ways: <br/> - Enable `fixed rate limit` in 
the GitLab connection, lower the API rates to 2,000. If it works, you can try 
increase the rates to ac [...]
-| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](/docs/UserMan [...]
+| 403        | error: preparing task data for gitextractor caused by: 
unexpected http status code: 403 | This is usually caused by the permission of 
your tokens. For example, if you're using an un-supported auth method, or using 
a token without ticking permissions to certain entities you want to collect. | 
Find the supported authentication methods and token permissions that should be 
selected in the corresponding plugin's Config UI manuals, for example, 
[configuring GitHub](/docs/Configu [...]
 | 1406       | subtask extractApiBuilds ended unexpectedly caused by: error 
adding the result to batch caused by: Error 1406: Data too long for column 
'full_display_name' at row 138. See bug 
[#4053](https://github.com/apache/incubator-devlake/issues/4053) | This is 
usually thrown by MySQL because a certain value is too long | A work-around is 
to manually change the field length to varchar(255) or longer in MySQL. Also, 
please put up a [bug](https://github.com/apache/incubator-devlake/iss [...]
 
 
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Tutorial.md 
b/versioned_docs/version-v0.15/UserManuals/ConfigUI/Tutorial.md
deleted file mode 100644
index 00f29ee5e1..0000000000
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/Tutorial.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: "Tutorial"
-sidebar_position: 1
-description: Config UI instruction
----
-
-## Overview
-The Apache DevLake Config UI allows you to configure the data you wish to 
collect through a graphical user interface. Visit config-ui at 
`http://localhost:4000`.
-
-## Create a Project
-Starting from v0.15, DevLake has introduced the Project feature to alllow 
viewing project-based metrics, such as DORA. To create a project, simply go to 
Project on the main navigation, click on the "+ New Project" button and fill 
out the info on the dialog below.
-
-![img](/img/ConfigUI/BlueprintCreation-v0.15/project.png)
-
-## Create a Blueprint
-
-### Introduction
-A Blueprint is a plan that covers all the work to get your raw data ready for 
query and metric computation in the dashboards. Blueprints can either be used 
to collect data for a Project or be used alone without being dependent on any 
Project. To use the Blueprint within a Project, you can create the Blueprint 
once a Project is created; to use it alone, you can create the Blueprint from 
the Blueprint page from the main navigation. 
-
-For either usage of the Blueprint, creating it consists of four steps:
-
-1. Adding Data Connections: Add new or select from existing data connections 
for the data you wish to collect
-2. Setting Data Scope: Select the scope of data (e.g. GitHub projects or Jira 
boards) for your data connections
-3. Adding Transformations (Optional): Add transformation rules for the data 
scope you have selected in order to view corresponding metrics
-4. Setting the Sync Policies: Set the sync frequency, time range and the 
skip-on-fail option for your data
-
-### Step 1 - Add Data Connections
-There are two ways to add data connections to your Blueprint: adding them 
during the creation of a Blueprint and adding them separately on the Data 
Integrations page. There is no difference between these two ways.
-
-When adding data connections from the Blueprint, you can either create a new 
or select from existing data connections. 
-
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step1.png)
-
-### Step 2 - Set Data Scope
-After adding data connections, click on "Next Step" and you will be prompted 
to select the data scope of each data connection. For instance, for a GitHub 
connection, you will need to select or enter the projects you wish to sync, and 
for Jira, you will need to select from your boards.
-
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step2-1.png)
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step2-2.png)
-
-### Step 3 - Add Transformations (Optional)
-This step is required for viewing certain metrics (e.g. Bug Age, Bug Count per 
1k Lines of Code and DORA)in the pre-built dashboards that require data 
transformation. We highly recommend adding Transformations for your data for 
the best display of the metrics. but you can still view the basic metrics if 
you skip this step. 
-
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step3-1.png)
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step3-2.png)
-
-### Step 4 - Set the Sync Policies
-Time Filter: You can select the time range of the data you wish to sync to 
speed up the collection process.
-
-Frequency: You can choose how often you would like to sync your data in this 
step by selecting a sync frequency option or entering a cron code to specify 
your preferred schedule. 
-
-Running Policy: By default, the `Skip failed tasks` is checked to avoid losing 
all data when encountering a few bugs during data collection, when you are 
collecting a large volume of data, e.g. 10+ GitHub repositories, Jira boards, 
etc. For clarity, a task is a unit of a pipeline, an execution of a blueprint. 
By default, when a task is failed, the whole pipeline will fail and all the 
data that has been collected will be discarded. By skipping failed tasks, the 
pipeline will continue to r [...]
-
-![img](/img/ConfigUI/BlueprintCreation-v0.15/step4.png)
-
-### View the Blueprint Status and Download Logs for Historical Runs
-After setting up the Blueprint, you will be prompted to the Blueprint's status 
page, where you can track the progress of the current run and wait for it to 
finish before the dashboards become available. You can also view all historical 
runs of previously created Blueprints from the list on the Blueprint page.
-
-If you run into any errors, you can also download the pipeline logs and share 
them with us on Slack so that our developers can help you debug.
-
-![img](/img/ConfigUI/BlueprintEditing/blueprint-edit3.png)
-
-## Edit a Blueprint (Normal Mode)
-If you switch to the Configuration tab on the Blueprint detail page, you can 
see the settings of your Blueprint and edit them.
-
-In the current version, the Blueprint editing feature **allows** editing:
-- The Blueprint's name
-- The sync policies
-- The data scope of a connection
-- The data entities of the data scope
-- The transformation rules of any data scope
-
-and currently does **NOT allow**:
-- Adding or deleting connections of an existing Blueprint (will be available 
in the future)
-- Editing any connections
-
-Please note: 
-If you have created the Blueprint in the Normal mode, you will only be able to 
edit it in the Normal Mode; if you have created it in the Advanced Mode, please 
refer to [this guide](AdvancedMode.md#editing-a-blueprint-advanced-mode) for 
editing.
-
-![img](/img/ConfigUI/BlueprintEditing/blueprint-edit1.png)
-
-## Create and Manage Data Connections
-
-The Data Connections page allows you to view, create and manage all your data 
connections in one place.
-![img](/img/ConfigUI/BlueprintCreation-v0.15/connections.png)
-
-## Manage Transformations
-The Transformations page allows you to manage all your transformation rules.
-![img](/img/ConfigUI/BlueprintCreation-v0.15/transformations.png)
-
-
-## Troubleshooting
-
-If you run into any problem, please check 
[Troubleshooting](/Troubleshooting/Configuration.md), contact us on 
[Slack](https://join.slack.com/t/devlake-io/shared_invite/zt-17b6vuvps-x98pqseoUagM7EAmKC82xQ)
 or [create an issue](https://github.com/apache/incubator-devlake/issues).
diff --git a/versioned_docs/version-v0.15/UserManuals/ConfigUI/_category_.json 
b/versioned_docs/version-v0.15/UserManuals/ConfigUI/_category_.json
deleted file mode 100644
index 62f99d484f..0000000000
--- a/versioned_docs/version-v0.15/UserManuals/ConfigUI/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "label": "Config UI",
-  "position": 4
-}
diff --git 
a/versioned_docs/version-v0.15/UserManuals/Dashboards/_category_.json 
b/versioned_docs/version-v0.15/UserManuals/Dashboards/_category_.json
deleted file mode 100644
index 0db83c6e9b..0000000000
--- a/versioned_docs/version-v0.15/UserManuals/Dashboards/_category_.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "label": "Dashboards",
-  "position": 5
-}

Reply via email to