byoc: update pricing, support, billing, connect, export#23333
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
📝 WalkthroughWalkthroughThis documentation update extends Premium guidance to BYOC plans across connection, backup and restore, export, deletion, billing, support, navigation, and onboarding pages. Several sections now use plan-conditional content. ChangesBYOC connectivity guidance
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@wildpcww: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
There was a problem hiding this comment.
Actionable comments posted: 5
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 9b25d1ee-e0de-4da5-b68c-95c3ae58ae65
📒 Files selected for processing (10)
TOC-tidb-cloud-byoc.mdtidb-cloud/byoc/byoc-onboarding-overview.mdtidb-cloud/premium/backup-and-restore-premium.mdtidb-cloud/premium/connect-to-premium-via-aws-private-endpoint.mdtidb-cloud/premium/connect-to-premium-via-public-connection.mdtidb-cloud/premium/connect-to-tidb-instance.mdtidb-cloud/premium/delete-tidb-instance.mdtidb-cloud/premium/premium-export.mdtidb-cloud/tidb-cloud-billing.mdtidb-cloud/tidb-cloud-support.md
| <CustomContent plan="premium"> | ||
|
|
||
| 4. Click **CA cert** to download CA cert for TLS connection to {{{ .premium }}} instances. The CA cert supports TLS 1.2 by default. | ||
|
|
||
| 5. Choose your preferred connection method, and then refer to the connection string and sample code on the tab to connect to your instance. | ||
|
|
||
| </CustomContent> | ||
|
|
||
| <CustomContent plan="byoc"> | ||
|
|
||
| 4. Choose your preferred connection method, and then refer to the connection string and sample code on the tab to connect to your instance. | ||
|
|
||
| </CustomContent> |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n## .ai guidance\n'
git ls-files '.ai/AI-README.md' '.ai/shared/*' '.ai/skills/*' | sed 's#^`#-` #'
printf '\n## relevant files\n'
git ls-files 'tidb-cloud/premium/connect-to-premium-via-public-connection.md'
printf '\n## file excerpts\n'
for f in .ai/AI-README.md .ai/shared/translation-rules.md .ai/shared/translation-terms.md tidb-cloud/premium/connect-to-premium-via-public-connection.md; do
if [ -f "$f" ]; then
echo
echo "### $f"
wc -l "$f"
sed -n '1,220p' "$f" | cat -n
fi
doneRepository: pingcap/docs
Length of output: 4027
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Locate any workflow or markdown guidance that mentions CustomContent or ordered lists.
rg -n --hidden --glob '.ai/**' --glob '*.md' 'CustomContent|MD029|ordered list|ordered-list|markdownlint|renderer' .Repository: pingcap/docs
Length of output: 50369
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the affected Markdown with surrounding context.
sed -n '1,140p' tidb-cloud/premium/connect-to-premium-via-public-connection.md | cat -n
# Check whether markdownlint is available and whether it flags the file.
if command -v markdownlint >/dev/null 2>&1; then
markdownlint tidb-cloud/premium/connect-to-premium-via-public-connection.md || true
elif [ -x ./scripts/markdownlint ]; then
./scripts/markdownlint tidb-cloud/premium/connect-to-premium-via-public-connection.md || true
else
echo "markdownlint unavailable"
fiRepository: pingcap/docs
Length of output: 142
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Search for the CustomContent component definition or documentation.
rg -n --hidden --glob '!**/node_modules/**' --glob '!**/.git/**' 'CustomContent' .Repository: pingcap/docs
Length of output: 50369
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '## repo guidance files'
for f in .ai/AI-README.md .ai/shared/markdown*.md .ai/shared/*.md .ai/skills/*/README.md; do
[ -f "$f" ] && echo "$f"
done | sort
echo
echo '## markdownlint config'
git ls-files | rg '(^|/)(\.markdownlint|markdownlint|markdownlint.*\.yml|markdownlint.*\.yaml|\.mdlrc)$' || true
echo
echo '## affected file excerpt'
sed -n '1,120p' tidb-cloud/premium/connect-to-premium-via-public-connection.md | cat -n
echo
echo '## search for CustomContent docs/usage'
rg -n 'CustomContent|MD029|ordered list' . --hidden --glob '!**/.git/**' --glob '!**/node_modules/**' || trueRepository: pingcap/docs
Length of output: 173
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '--- file ---'
sed -n '1,120p' tidb-cloud/premium/connect-to-premium-via-public-connection.md | cat -n
echo
echo '--- markdownlint config files ---'
find . -maxdepth 3 \( -name '.markdownlint*' -o -name 'markdownlint*' -o -name '.mdlrc' \) -print | sort
echo
echo '--- CustomContent occurrences ---'
grep -RIn --exclude-dir=.git --exclude-dir=node_modules 'CustomContent' .Repository: pingcap/docs
Length of output: 50369
🌐 Web query:
MDX custom component ordered list numbering start attribute HTML block list continuation
💡 Result:
In standard Markdown and MDX, you can control the numbering of an ordered list by setting the number of the first list item [1][2]. Most Markdown parsers (following the CommonMark specification) translate this first number into the start attribute of the HTML
- element, which then handles the numbering sequence for all subsequent items [3][1][2]. To control list numbering in MDX: 1. Basic Custom Start: Simply start your list with the desired number (e.g., 5. Item) [1][2]. The parser will assign start="5" to the resulting
- Continued item
- 1: https://macmdviewer.com/blog/markdown-ordered-list
- 2: https://allmarkdowntools.com/reference/ordered-list-start
- 3: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/ol
- 4: https://stackoverflow.com/questions/18088955/markdown-continue-numbered-list
- 5: https://meta.stackexchange.com/questions/234384/how-to-start-list-at-certain-number
- 6: https://stackoverflow.com/questions/4615500/how-to-start-a-new-list-continuing-the-numbering-from-the-previous-list
- tag [3][1]. 2. List Continuation After a Block: If a list is interrupted by a block (like a code block, image, or paragraph), Markdown parsers often interpret the following section as a new list starting at 1 [4][5]. To continue the numbering, you must use the same technique: manually start the resumed list with the next logical number [1][2]. 3. Using Custom Components or HTML: If you need finer control or the automatic parsing is failing to produce the desired output, you can drop into standard HTML within your MDX file [4][5]. This allows you to explicitly set the start attribute on the
- tag:
Citations:
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '## .markdownlint.yaml'
sed -n '1,220p' .markdownlint.yaml | cat -n
echo
echo '## scripts/markdownlint'
sed -n '1,220p' scripts/markdownlint | cat -n
echo
echo '## docs using CustomContent inside numbered steps'
rg -n '<CustomContent plan="(premium|byoc)">' tidb-cloud/premium/*.md | head -n 80Repository: pingcap/docs
Length of output: 20998
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '## examples of split numbered lists around CustomContent'
rg -n '^[[:space:]]*[0-9]+\.' tidb-cloud/premium/*.md | sed -n '1,120p'
echo
echo '## files with MD029 disable comments'
rg -n '<!-- markdownlint-disable MD029 -->' . --glob '*.md'Repository: pingcap/docs
Length of output: 21816
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
p = Path('tidb-cloud/premium/connect-to-premium-via-public-connection.md')
text = p.read_text()
# Show the exact list structure with surrounding lines.
for i, line in enumerate(text.splitlines(), 1):
if 35 <= i <= 52:
print(f"{i:4d}: {line}")
PYRepository: pingcap/docs
Length of output: 1106
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '## .markdownlint.yaml'
sed -n '1,220p' .markdownlint.yaml | cat -n
echo
echo '## scripts/markdownlint'
sed -n '1,220p' scripts/markdownlint | cat -n
echo
echo '## MD029 disable comments'
rg -n '<!-- markdownlint-disable MD029 -->' . --glob '*.md' || true
echo
echo '## similar numbered-list patterns in tidb-cloud/premium'
rg -n '^[[:space:]]*[0-9]+\.' tidb-cloud/premium/*.md | sed -n '1,160p'Repository: pingcap/docs
Length of output: 31456
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
path = Path('tidb-cloud/premium/connect-to-premium-via-public-connection.md')
for i, line in enumerate(path.read_text().splitlines(), 1):
if 35 <= i <= 52:
print(f"{i:4d}: {line}")
PYRepository: pingcap/docs
Length of output: 1106
Fix the ordered-list structure in CustomContent (lines 39-51). The premium and BYOC branches become separate ordered lists, so MD029 flags the 4./5./4. prefixes. Keep the steps in one renderer-supported list instead of restarting them inside each block.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)
[warning] 41-41: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/2/3
(MD029, ol-prefix)
[warning] 43-43: Ordered list item prefix
Expected: 2; Actual: 5; Style: 1/2/3
(MD029, ol-prefix)
[warning] 49-49: Ordered list item prefix
Expected: 1; Actual: 4; Style: 1/2/3
(MD029, ol-prefix)
Sources: Path instructions, Linters/SAST tools
| # Delete a {{{ .premium }}}<CustomContent plan="byoc"> or {{{ .byoc }}}</CustomContent> instance | ||
|
|
||
| This document describes how to delete a {{{ .premium }}} instance. | ||
| This document describes how to delete a {{{ .premium }}}<CustomContent plan="byoc"> or {{{ .byoc }}}</CustomContent> instance. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift
Preserve BYOC content in the generated documentation.
The merge pipeline currently retains only CustomContent blocks containing dedicated, so all newly added plan="byoc" content is discarded.
tidb-cloud/premium/delete-tidb-instance.md#L6-L8: preserve the BYOC title and introduction.tidb-cloud/premium/delete-tidb-instance.md#L24-L36: preserve BYOC backup, retention, billing, and restore guidance.tidb-cloud/premium/premium-export.md#L6-L18: preserve BYOC export availability and request instructions.tidb-cloud/premium/premium-export.md#L36-L36: preserve BYOC role ARN guidance.tidb-cloud/premium/premium-export.md#L103-L108: preserve the Amazon S3 BYOC export steps.tidb-cloud/premium/premium-export.md#L129-L134: preserve the Azure Blob Storage BYOC export steps.tidb-cloud/premium/premium-export.md#L153-L158: preserve the Alibaba Cloud OSS BYOC export steps.tidb-cloud/premium/premium-export.md#L179-L179: preserve the BYOC cancellation instructions.
📍 Affects 2 files
tidb-cloud/premium/delete-tidb-instance.md#L6-L8(this comment)tidb-cloud/premium/delete-tidb-instance.md#L24-L36tidb-cloud/premium/premium-export.md#L6-L18tidb-cloud/premium/premium-export.md#L36-L36tidb-cloud/premium/premium-export.md#L103-L108tidb-cloud/premium/premium-export.md#L129-L134tidb-cloud/premium/premium-export.md#L153-L158tidb-cloud/premium/premium-export.md#L179-L179
| 5. Click **I understand, delete it**. | ||
|
|
||
| Once you delete a backed up {{{ .premium }}} instance, the existing backup files of the instance are moved to the recycle bin. | ||
| Once you delete a backed up {{{ .premium }}}<CustomContent plan="byoc"> or {{{ .byoc }}}</CustomContent> instance, the existing backup files of the instance are moved to the recycle bin. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Hyphenate the compound adjective.
| Once you delete a backed up {{{ .premium }}}<CustomContent plan="byoc"> or {{{ .byoc }}}</CustomContent> instance, the existing backup files of the instance are moved to the recycle bin. | |
| Once you delete a backed-up {{{ .premium }}}<CustomContent plan="byoc"> or {{{ .byoc }}}</CustomContent> instance, the existing backup files of the instance are moved to the recycle bin. |
🧰 Tools
🪛 LanguageTool
[grammar] ~28-~28: Use a hyphen to join words.
Context: ...lete it**. Once you delete a backed up {{{ .premium }}}<CustomContent plan="...
(QB_NEW_EN_HYPHEN)
Sources: Path instructions, Linters/SAST tools
| <CustomContent plan="byoc"> | ||
|
|
||
| ### Pricing for {{{ .byoc }}} {#pricing-for-byoc} | ||
|
|
||
| For pricing information about {{{ .byoc }}}, contact [TiDB Cloud Support](/tidb-cloud/tidb-cloud-support.md). | ||
|
|
||
| </CustomContent> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
BYOC conditional blocks are removed during document generation.
scripts/merge_by_toc.py retains plan blocks only when the plan list contains dedicated, but all three new blocks specify only byoc. Consequently, the BYOC pricing and support restrictions will be absent from generated documentation.
tidb-cloud/tidb-cloud-billing.md#L28-L34: change the selector toplan="dedicated,byoc".tidb-cloud/tidb-cloud-support.md#L112-L116: change the selector toplan="dedicated,byoc".tidb-cloud/tidb-cloud-support.md#L152-L157: change the selector toplan="dedicated,byoc".
📍 Affects 2 files
tidb-cloud/tidb-cloud-billing.md#L28-L34(this comment)tidb-cloud/tidb-cloud-support.md#L112-L116tidb-cloud/tidb-cloud-support.md#L152-L157
Source: Path instructions
| - Connect to Your {{{ .byoc }}} Instance | ||
| - [Connection Overview](/tidb-cloud/premium/connect-to-tidb-instance.md) | ||
| - [Connect via Public Endpoint](/tidb-cloud/premium/connect-to-premium-via-public-connection.md) | ||
| - [Connect via Private Endpoint with AWS](/tidb-cloud/premium/connect-to-premium-via-aws-private-endpoint.md) | ||
| - [Connect via Private Endpoint with Alibaba Cloud](/tidb-cloud/premium/connect-to-premium-via-alibaba-cloud-private-endpoint.md) | ||
| - [Back Up and Restore TiDB Cloud Data](/tidb-cloud/premium/backup-and-restore-premium.md) | ||
| - [Export Data from {{{ .premium }}}](/tidb-cloud/premium/premium-export.md) | ||
| - [Export Data from {{{ .byoc }}}](/tidb-cloud/premium/premium-export.md) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Keep the Manage Instances labels consistently BYOC-scoped.
This block now targets BYOC instances, but the same TOC still contains Delete a {{{ .premium }}} Instance at Line 118. Update that entry to the BYOC equivalent, or make its plan conditions explicit, so the BYOC navigation does not present a misleading Premium-only label.
First-time contributors' checklist
What is changed, added or deleted? (Required)
Which TiDB version(s) do your changes apply to? (Required)
Tips for choosing the affected version(s):
By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.
For details, see tips for choosing the affected versions.
What is the related PR or file link(s)?
AI agent involvement
Do your changes match any of the following descriptions?
Summary by CodeRabbit