diff --git a/.dlc.json b/.dlc.json deleted file mode 100644 index 51f54c3f258e..000000000000 --- a/.dlc.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "ignorePatterns": [ - { - "pattern": "^http://localhost" - }, - { - "pattern": "^https://img.shields.io/badge" - }, - { - "pattern": "/community/community.html$" - }, - { - "pattern": "^https://dolphinscheduler.apache.org" - } - ], - "replacementPatterns": [ - { - "pattern": "^/en-us/download/download.html$", - "replacement": "https://dolphinscheduler.apache.org/en-us/download" - }, - { - "pattern": "^/zh-cn/download/download.html$", - "replacement": "https://dolphinscheduler.apache.org/zh-cn/download" - } - ], - "httpHeaders": [ - { - "urls": ["https://docs.github.com/"], - "headers": { - "Accept-Encoding": "zstd, br, gzip, deflate" - } - } - ], - "timeout": "10s", - "retryOn429": true, - "retryCount": 10, - "fallbackRetryDelay": "10s", - "aliveStatusCodes": [200, 401, 403, 0] -} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5c3f0988029b..f7b926b8d048 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -61,30 +61,11 @@ jobs: uses: ./.github/actions/workflow-telemetry-action with: comment_on_pr: false - - run: sudo npm install -g markdown-link-check@3.13.7 - - run: sudo apt install plocate -y && sudo updatedb - # NOTE: Change command from `find . -name "*.md"` to `find . -not -path "*/node_modules/*" -not -path "*/.tox/*" -name "*.md"` - # if you want to run check locally + - run: sudo snap install lychee - name: Check Dead Links run: | set -xe - MAX_CONCURRENCY=6 - EXIT_CODE=0 - - cleanup() { - pkill -P $$ - exit "$EXIT_CODE" - } - - trap cleanup SIGINT SIGTERM - - for file in $(locate "$PWD*/*.md" | grep -v ./deploy/terraform/aws/README.md | grep -v ./.github); do - while [ $(jobs -r | wc -l) -ge "$MAX_CONCURRENCY" ]; do - wait -n || { EXIT_CODE=$?; cleanup; } - done - markdown-link-check -c .dlc.json -q "$file" & - done - wait || { EXIT_CODE=$?; cleanup; } + lychee -c .github/workflows/lychee.toml -v docs/docs/* paths-filter: name: Helm-Doc-Path-Filter runs-on: ubuntu-latest diff --git a/.github/workflows/lychee.toml b/.github/workflows/lychee.toml new file mode 100644 index 000000000000..4dd83238dc2e --- /dev/null +++ b/.github/workflows/lychee.toml @@ -0,0 +1,56 @@ +# Don't show interactive progress bar while checking links. +no_progress = false + +# Only test links with the given schemes (e.g. https). +# Omit to check links with any other scheme. +# At the moment, we support http, https, file, and mailto. +scheme = ["https", "http", "file"] + +# Exclude URLs and mail addresses from checking. The values are treated as regular expressions +exclude = [ + '^http://localhost', + 'http://localhost(:\d+)?', + '^https://img\.shields\.io/badge', + 'dolphinscheduler\.apache\.org', + '^http://ds1', + '^http://ds1(:\d+)?', + '^http://minio', + '^http://minio(:\d+)?', + '^https://github\.com/apache/dolphinscheduler/blob/[^/]+/script/env/dolphinscheduler_env\.sh', +] + +# Exclude paths from getting checked. The values are treated as regular expressions +exclude_path = [ + "docs/docs/en/history-versions.md", + "docs/docs/zh/history-versions.md", + "docs/docs/en/faq.md", + "docs/docs/zh/faq.md", +] + +# Proceed for server connections considered insecure (invalid TLS). +insecure = true + +# Comma-separated list of accepted status codes for valid links. +accept = ["200", "401", "403"] + +# Maximum number of allowed retries before a link is declared dead. +max_retries = 3 + +# Minimum wait time in seconds between retries of failed requests. +retry_wait_time = 10 + +# Website timeout from connect to response finished. +timeout = 30 + +# When links are available using HTTPS, treat HTTP links as errors. +require_https = false + +# Check mail addresses +include_mail = false + +# Check links inside `` and `
` blocks as well as Markdown code
+# blocks.
+include_verbatim = false
+
+# Enable the checking of fragments in links.
+include_fragments = false
diff --git a/.licenserc.yaml b/.licenserc.yaml
index 6697c2cb73d8..3d9e361bae14 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -44,6 +44,7 @@ header:
     - '**/node_modules/**'
     - '.github/actions/comment-on-issue/**'
     - '.github/actions/translate-on-issue/**'
+    - '.github/workflows/lychee.toml'
     - '**/.gitkeep'
     - 'org.mockito.plugins.MockMaker'
     - tools/dependencies/known-dependencies.txt
diff --git a/docs/docs/en/contribute/join/security.md b/docs/docs/en/contribute/join/security.md
index ba4fd128f8f2..db4600836630 100644
--- a/docs/docs/en/contribute/join/security.md
+++ b/docs/docs/en/contribute/join/security.md
@@ -2,7 +2,7 @@
 
 The Apache Software Foundation takes a rigorous stance on eliminating security issues in its software projects. Apache DolphinScheduler is also very concerned Security issues related to its features and functionality.
 
-If you have apprehensions regarding DolphinScheduler’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Security Team by dropping a mail at [security@apache.org](mailto:security@apache.org). Please specify the project name as DolphinScheduler in the email and provide a description of the relevant problem or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The apache security team and the DolphinScheduler community will get back to you after assessing and analysing the findings.
+If you have apprehensions regarding DolphinScheduler’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Security Team by dropping a mail at [security@apache.org]. Please specify the project name as DolphinScheduler in the email and provide a description of the relevant problem or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The apache security team and the DolphinScheduler community will get back to you after assessing and analysing the findings.
 
 Please pay attention to report the security issue on the security email before disclosing it on public domain.
 
diff --git a/docs/docs/en/contribute/release.md b/docs/docs/en/contribute/release.md
index a80cff5e3b15..9700ac644411 100644
--- a/docs/docs/en/contribute/release.md
+++ b/docs/docs/en/contribute/release.md
@@ -120,7 +120,7 @@ The command is as follow:
 gpg --keyserver hkp://pool.sks-keyservers.net --send-key 85E11560
 ```
 
-`pool.sks-keyservers.net` is randomly chosen from [public key server](https://sks-keyservers.net/status/).
+`pool.sks-keyservers.net` is randomly chosen from [public key server](https://keyserver.ubuntu.com).
 Each server will automatically synchronize with one another, so it would be okay to choose any one, a backup keys servers
 is `gpg --keyserver hkp://keyserver.ubuntu.com --send-key `
 
diff --git a/docs/docs/en/faq.md b/docs/docs/en/faq.md
index 58fea9872683..2a100ed8f423 100644
--- a/docs/docs/en/faq.md
+++ b/docs/docs/en/faq.md
@@ -111,9 +111,9 @@ A: 1, **first check whether the WorkerServer service exists through jps**, or di
 
 A: Provide Docker image and Dockerfile.
 
-Docker image address: https://hub.docker.com/r/escheduler/escheduler_images
+Docker image address: https://hub.docker.com/r/apache/dolphinscheduler
 
-Dockerfile address: https://github.com/qiaozhanwei/escheduler_dockerfile/tree/master/docker_escheduler
+Dockerfile address: https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-dist/src/main/docker
 
 ---
 
@@ -533,8 +533,8 @@ A: 1, We can successfully create scheduled task and add one record into t_schedu
 
 ## Q : What is the address of swagger ui
 
-A: 1, For version 3.1.0+ is http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html,
-for version 1.2+ is http://apiServerIp:apiServerPort/dolphinscheduler/doc.html others is http://apiServerIp:apiServerPort/escheduler/doc.html.
+A: 1, For version 3.1.0+ is [http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html],
+for version 1.2+ is [http://apiServerIp:apiServerPort/dolphinscheduler/doc.html] others is [http://apiServerIp:apiServerPort/escheduler/doc.html].
 
 ---
 
@@ -583,7 +583,7 @@ A: 1, It is currently judged according to natural days, at the end of last month
 
 ## Q : DS Backend Interface Document
 
-A: 1, http://106.75.43.194:8888/dolphinscheduler/swagger-ui/index.html?language=en.
+A: 1, http://localhost:8888/dolphinscheduler/swagger-ui/index.html?language=en.
 
 ## During the operation of dolphinscheduler, the ip address is obtained incorrectly
 
@@ -616,7 +616,7 @@ dolphin.scheduler.network.interface.preferred=eth1
 
 After configuration is modified, restart the service to activation
 
-If the ip address is still wrong, please download [dolphinscheduler-netutils.jar](/asset/dolphinscheduler-netutils.jar) to the machine, execute the following commands and feedback the output to the community developers:
+If the ip address is still wrong, please download [dolphinscheduler-netutils.jar] to the machine, execute the following commands and feedback the output to the community developers:
 
 ```shell
 java -jar target/dolphinscheduler-netutils.jar
diff --git a/docs/docs/zh/contribute/join/DS-License.md b/docs/docs/zh/contribute/join/DS-License.md
index a8fb70c8f252..d6105c451670 100644
--- a/docs/docs/zh/contribute/join/DS-License.md
+++ b/docs/docs/zh/contribute/join/DS-License.md
@@ -13,7 +13,7 @@
 
 如果您所使用的第三方软件并不在以上协议之中,那么很抱歉,您的代码将无法通过审核,建议您找寻其他替代方案。
 
-另外,当您需要使用新的软件的时候,请将您这样做的原因、最终产出结果发邮件至dev@dolphinscheduler.apache.org讨论,当得到至少3票PPMC认同的时候,您方可以引入。
+另外,当您需要使用新的软件的时候,请将您这样做的原因、最终产出结果发邮件至[dev@dolphinscheduler.apache.org]讨论,当得到至少3票PPMC认同的时候,您方可以引入。
 
 ### 如何在DolphinScheduler合法的使用第三方开源软件
 
diff --git a/docs/docs/zh/contribute/join/document.md b/docs/docs/zh/contribute/join/document.md
index 74e8cb7db295..67babf5ce4e2 100644
--- a/docs/docs/zh/contribute/join/document.md
+++ b/docs/docs/zh/contribute/join/document.md
@@ -20,7 +20,7 @@ git clone https://github.com//dolphinscheduler-website
 
 3. 在根目录下运行 `yarn generate` 来格式化和准备数据。
 
-4. 在根目录下运行 `yarn dev` 启动本地服务器,其将允许在 http://localhost:3000。
+4. 在根目录下运行 `yarn dev` 启动本地服务器,其将允许在 http://localhost:3000 。
 
 ```
 注意:如果您在 Windows 而非 Mac 或 Linux 中克隆代码。请阅读下面的详细信息。
diff --git a/docs/docs/zh/contribute/join/security.md b/docs/docs/zh/contribute/join/security.md
index c78e7003aef9..cfd7c404e1de 100644
--- a/docs/docs/zh/contribute/join/security.md
+++ b/docs/docs/zh/contribute/join/security.md
@@ -2,7 +2,7 @@
 
 Apache Software Foundation在消除其软件项目中的安全性问题方面采取严格的立场。 Apache DolphinScheduler也非常关注与其功能有关的安全性问题。
 
-如果您对DolphinScheduler的安全性有疑虑,或者发现了漏洞或潜在威胁,请发送邮件至[security@apache.org](mailto:security@apache.org),与Apache安全团队联系。 请在电子邮件中将项目名称指定为DolphinScheduler,并提供相关问题或潜在威胁的描述。 还敦促您推荐重现和复制问题的方法。 在评估和分析调查结果之后,apache安全团队和DolphinScheduler社区将与您联系。
+如果您对DolphinScheduler的安全性有疑虑,或者发现了漏洞或潜在威胁,请发送邮件至[security@apache.org],与Apache安全团队联系。 请在电子邮件中将项目名称指定为DolphinScheduler,并提供相关问题或潜在威胁的描述。 还敦促您推荐重现和复制问题的方法。 在评估和分析调查结果之后,apache安全团队和DolphinScheduler社区将与您联系。
 
 在公共领域公开该安全电子邮件之前,请注意在安全电子邮件中报告该安全问题。
 
diff --git a/docs/docs/zh/contribute/join/subscribe.md b/docs/docs/zh/contribute/join/subscribe.md
index f988d1b27be1..df8891287dba 100644
--- a/docs/docs/zh/contribute/join/subscribe.md
+++ b/docs/docs/zh/contribute/join/subscribe.md
@@ -6,7 +6,7 @@
 
 发送订阅邮件也非常简单,步骤如下:
 
-1. 用自己的邮箱向[dev-subscribe@dolphinscheduler.apache.org](mailto:dev-subscribe@dolphinscheduler.apache.org)发送一封邮件,主题和内容任意。
+1. 用自己的邮箱向[dev-subscribe@dolphinscheduler.apache.org]发送一封邮件,主题和内容任意。
 
 2. 接收确认邮件并回复。 完成步骤1后,您将收到一封来自dev-help@dolphinscheduler.apache.org的确认邮件(如未收到,请确认邮件是否被自动归入垃圾邮件、推广邮件、订阅邮件等文件夹)。然后直接回复该邮件,或点击邮件里的链接快捷回复即可,主题和内容任意。
 
@@ -18,9 +18,9 @@
 
 取消订阅邮件列表步骤如下:
 
-1. 用已经订阅的邮箱向[dev-unsubscribe@dolphinscheduler.apache.org](mailto:dev-unsubscribe@dolphinscheduler.apache.org)发送一封邮件,主题和内容任意。
+1. 用已经订阅的邮箱向[dev-unsubscribe@dolphinscheduler.apache.org]发送一封邮件,主题和内容任意。
 
-2. 接收确认邮件并回复。 完成步骤1后,您将收到一封来自dev-help@dolphinscheduler.apache.org的确认邮件(如未收到,请确认邮件是否被自动归入垃圾邮件、推广邮件、订阅邮件等文件夹)。然后直接回复该邮件,或点击邮件里的链接快捷回复即可,主题和内容任意。
+2. 接收确认邮件并回复。 完成步骤1后,您将收到一封来自[dev-help@dolphinscheduler.apache.org]的确认邮件(如未收到,请确认邮件是否被自动归入垃圾邮件、推广邮件、订阅邮件等文件夹)。然后直接回复该邮件,或点击邮件里的链接快捷回复即可,主题和内容任意。
 
-3. 接收告别邮件。 完成以上步骤后,您会收到一封主题为GOODBYE from dev@dolphinscheduler.apache.org的告别邮件,至此您已成功取消订阅Apache DolphinScheduler的邮件列表,以后将不会再接收来自dev@dolphinscheduler.apache.org的邮件通知。
+3. 接收告别邮件。 完成以上步骤后,您会收到一封主题为GOODBYE from [dev@dolphinscheduler.apache.org]的告别邮件,至此您已成功取消订阅Apache DolphinScheduler的邮件列表,以后将不会再接收来自[dev@dolphinscheduler.apache.org]的邮件通知。
 
diff --git a/docs/docs/zh/faq.md b/docs/docs/zh/faq.md
index f88476f116e9..d28ac389d123 100644
--- a/docs/docs/zh/faq.md
+++ b/docs/docs/zh/faq.md
@@ -504,7 +504,7 @@ A:1,我们可以成功创建调度任务,并且表 t_scheduler_schedules 
 
 ## Q:请问 swagger ui 的地址是什么
 
-A:1, 3.1.0+ 版本地址是 http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html, 1.2+ 版本地址是:http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html?language=zh_CN&lang=cn,其它版本是 http://apiServerIp:apiServerPort/escheduler/swagger-ui/index.html?language=zh_CN&lang=cn。
+A:1, 3.1.0+ 版本地址是 [http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html], 1.2+ 版本地址是:[http://apiServerIp:apiServerPort/dolphinscheduler/swagger-ui/index.html?language=zh_CN&lang=cn],其它版本是 [http://apiServerIp:apiServerPort/escheduler/swagger-ui/index.html?language=zh_CN&lang=cn]。
 
 ---
 
@@ -551,7 +551,7 @@ A:1,目前是按照自然天来判断,上月末:判断时间是工作流
 
 ## Q:DS 后端接口文档
 
-A:1,http://106.75.43.194:8888/dolphinscheduler/swagger-ui/index.html?language=zh_CN&lang=zh。
+A:1,http://localhost:8888/dolphinscheduler/swagger-ui/index.html?language=zh_CN&lang=zh。
 
 ## dolphinscheduler 在运行过程中,ip 地址获取错误的问题
 
@@ -584,7 +584,7 @@ dolphin.scheduler.network.interface.preferred=eth1
 
 以上配置修改后重启服务生效
 
-如果 ip 地址获取依然错误,请下载 [dolphinscheduler-netutils.jar](/asset/dolphinscheduler-netutils.jar) 到相应机器,执行以下命令以进一步排障,并反馈给社区开发人员:
+如果 ip 地址获取依然错误,请下载 [dolphinscheduler-netutils.jar] 到相应机器,执行以下命令以进一步排障,并反馈给社区开发人员:
 
 ```shell
 java -jar target/dolphinscheduler-netutils.jar
diff --git a/docs/docs/zh/guide/datasource/azure-sql.md b/docs/docs/zh/guide/datasource/azure-sql.md
index 6be6adf255f5..5770ce2f0c96 100644
--- a/docs/docs/zh/guide/datasource/azure-sql.md
+++ b/docs/docs/zh/guide/datasource/azure-sql.md
@@ -26,7 +26,7 @@
 采用Azure AD账号名和密码验证。
 前置条件:设置AD账号为数据库AD管理员。
 ![admin](../../../../img/new_ui/dev/datasource/azuresql-ad2.png)
-- Azure AD用户名:Azure AD 的账号名,例如:xx@xx.onmicrosoft.com
+- Azure AD用户名:Azure AD 的账号名,例如:[xx@xx.onmicrosoft.com]
 - 密码:Azure AD 的密码
 
 ### ActiveDirectoryMSI
diff --git a/docs/docs/zh/guide/installation/kubernetes.md b/docs/docs/zh/guide/installation/kubernetes.md
index c7a1de5337ac..a635ba2b55ea 100644
--- a/docs/docs/zh/guide/installation/kubernetes.md
+++ b/docs/docs/zh/guide/installation/kubernetes.md
@@ -19,7 +19,7 @@ Kubernetes 部署目的是在 Kubernetes 集群中部署 DolphinScheduler 服务
 helm upgrade --install dolphinscheduler --create-namespace --namespace dolphinscheduler oci://registry-1.docker.io/apache/dolphinscheduler-helm --version 
 ```
 
-这些命令以默认配置在 Kubernetes 集群上部署 DolphinScheduler,[附录-配置](#appendix-configuration)部分列出了可以在安装过程中配置的参数 
+这些命令以默认配置在 Kubernetes 集群上部署 DolphinScheduler,[附录-配置](#附录-配置)部分列出了可以在安装过程中配置的参数 
 
 > **提示**: 列出所有已发布的版本,使用 `helm list`
 
@@ -112,7 +112,7 @@ helm upgrade --install dolphinscheduler --create-namespace --namespace dolphinsc
 
 ## 配置
 
-配置文件为 `values.yaml`,[附录-配置](#appendix-configuration) 表格列出了 DolphinScheduler 的可配置参数及其默认值 
+配置文件为 `values.yaml`,[附录-配置](#附录-配置) 表格列出了 DolphinScheduler 的可配置参数及其默认值 
 
 ## 支持矩阵
 
diff --git a/docs/docs/zh/guide/project/workflow-definition.md b/docs/docs/zh/guide/project/workflow-definition.md
index f66b5225d978..349897c91668 100644
--- a/docs/docs/zh/guide/project/workflow-definition.md
+++ b/docs/docs/zh/guide/project/workflow-definition.md
@@ -35,7 +35,7 @@
 
   ![workflow-save](../../../../img/new_ui/dev/project/workflow-save.png)
 
-  > 其他类型任务,请参考 [任务节点类型和参数设置](#TaskParamers)。 
+  > 其他类型任务,请参考 [任务节点类型和参数设置]
 
 - **执行策略**
 - `并行`:如果对于同一个工作流定义,同时有多个工作流实例,则并行执行工作流实例。
diff --git a/docs/docs/zh/guide/security/authentication-type.md b/docs/docs/zh/guide/security/authentication-type.md
index 3a7b5a477252..e27e19e7cef1 100644
--- a/docs/docs/zh/guide/security/authentication-type.md
+++ b/docs/docs/zh/guide/security/authentication-type.md
@@ -81,7 +81,7 @@ Casdoor 是基于 OAuth 2.0、OIDC、SAML 和 CAS 的面向 UI 的身份访问
 首先,需要部署 Casdoor。 您可以参考 Casdoor 官方文档进行[安装](https://casdoor.org/docs/basic/server-installation)。 成功部署后,您需要确保:
 
 * Casdoor 服务器在 http://localhost:8000 上成功运行。
-* 打开您喜欢的浏览器并访问 http://localhost:7001,您将看到 Casdoor 的登录页面。
+* 打开您喜欢的浏览器并访问 http://localhost:7001 ,您将看到 Casdoor 的登录页面。
 * 输入 admin 和 123,测试登录功能是否正常工作。
 
 然后,您可以通过以下步骤在自己的应用程序中快速实现基于 Casdoor 的登录页面。