RDoc-4094 Cloud docs update for the September 2026 deployment - #2640
Merged
Conversation
PFYasu
force-pushed
the
RDoc-4094
branch
8 times, most recently
from
September 1, 2026 13:07
d004383 to
d0325df
Compare
PFYasu
marked this pull request as ready for review
September 1, 2026 13:47
matz985
reviewed
Sep 1, 2026
matz985
approved these changes
Sep 1, 2026
PFYasu
force-pushed
the
RDoc-4094
branch
2 times, most recently
from
September 7, 2026 09:41
72894e4 to
53194d4
Compare
Document the user-facing changes in the September deployment window, and
close out RDoc-3556 along the way.
Alerts
- New "Alerts" section in Maintenance & Troubleshooting covering the daily
summary and custom alerts, subscribers, the per-product limits and the cases
where rules are removed automatically. Trigger events point at the existing
Labels table, which already carries the thresholds.
- Short generic "View the Alerts" section on the Products page, following the
Metrics / Cluster Health pattern.
Billing & Costs
- Document the Current billing period costs donut, the Unbilled total and the
Cost Details entry points.
- Document the Spending cost-category filter, the year-picker behaviour and the
"not calculated yet" states.
- New "Cost details" section for /billing/cost-details, which was undocumented.
Portal navigation
- Rewrite the Portal overview for the collapsible sidebar: the seven role-gated
views, the Help center menu (Support, Documentation, Community, Service
status) and the profile entry. Note that the account switcher identifies
accounts by domain name.
Support
- Document "Request support for this instance" from the product view and the
support resources panel shown on the product list and product view.
- Severity is the dominant gate on the response-time options and was
undocumented; replaced the two-condition admonition with a per-option table.
- Both step lists were missing the mandatory "Resources that may help you"
panel, which gates the rest of the form.
Login
- Google, GitHub and Microsoft sign-in, with the provider email-verification
requirements. Microsoft work/school accounts additionally need the tenant to
attest domain ownership. List the sign-in failure messages.
Provisioning
- Note that the Account and Billing wizard stages are skipped when the account
already has those details, and never shown for marketplace accounts.
Autoscaling
- RDBCL-3989 replaced the flat CPU thresholds with load average, available
memory and IO wait, each with its own low/high limit and duration. Separate
upscaling and downscaling tables, an Autoscaling range subsection, and a note
on why available memory drives the opposite direction from the other two.
- New Serverless Autoscaling subsection: always enabled, and its modal exposes
only the instance range.
Automatic Storage Extension (RDoc-3556)
- The threshold range is 70-95, not 0-100: the input carries min=0 max=100 but
both UpdateThresholdSchema and ProductValidator enforce 70-95.
- The setting is disk usage, not memory - the old wording predated the
"Memory Used Threshold" to "Disk Space Used Threshold" rename.
- Availability: Development and Production tiers, excluding Dev10 and PN-type
instances. An ineligible product has no feature row at all, so "I can't find
the setting" and "the setting is off" look identical in the UI.
- Enabled by default at 90%, and the feature itself is free: its pricing
percentage is 0, so only the larger disk is billed.
- How it works: nodes report usage and the disk moves to the next size the
instance type offers, not to the size that would merely clear the threshold.
The success email carries the old, new and maximum size.
- Azure Premium disks also gain the new size's IOPS and throughput when the
target performance tier is better.
- When storage is not extended: the four cases that send an email
(instance-type maximum, the 1000/1024/1000 GB root-disk limit on AWS/Azure/GCP
for root-only layouts, yearly contract, Free tier), at most one per product
per 24 hours.
- Storage modification rate: 6 h on AWS and 12 h on Azure Premium between two
storage changes. This gates automatic and manual changes alike and was
undocumented, so it is noted on the Scaling page too.
- Enabling and disabling: gated on ManageFeatures and an Active product.
- Two gating rules on the threshold itself were undocumented: the product must
be Active, and the threshold cannot be changed on yearly contracts.
Products tab
- Security and Allowed IPs split into separate sections; they are separate
cards and are not adjacent in the UI.
- Document the Certificate expiration date card (RDBCL-4473) and the renewal
schedule behind it.
- Instance Access rewritten: Open Studio moved to the product-details top bar
and becomes a per-node dropdown on multi-node products.
- New Subscription & support section (RDBCL-5326), with the Update available
release-channel pill, the marketplace guard and the Support-role gating.
Backup
- The mandatory backup is a Server-Wide Backup, so it covers every database
rather than being per-database. The view is Ongoing Tasks.
Link and alt-text hygiene
- 13 broken in-page anchors fixed across cloud/ and guides/, verified against
the rendered HTML rather than guessed. Three guides pointed at
#manage-product-the-security-tab, which exists on no page; their link text is
about adding a product, so they now target #provisioning-a-new-product.
- 152 image tags normalised:  put literal quotes inside
the alt attribute, and the Figure N prefixes rendered nowhere while costing a
renumber on every insertion. Now . Repaired a malformed tag in
cloud-aws-marketplace.mdx that was missing its closing quote.
Asset naming convention
- Filenames now read <surface>-<view>-<region>[-<state>], so the name is the
path you navigate to re-shoot the figure. 75 files renamed.
- Six names pointed at the wrong place: portal-tabs (it is the sidebar, not
tabs), portal-support-subscriptions-tab (it is on the product view),
provider-region-tier-selection (the Plan stage, completing the five-stage
wizard set), and the two emails, now under an email- prefix.
- The 38 positionally-numbered <page>-NNN-<desc> names are retired. That scheme
had already collided twice - two pricing-001 files with no pricing-002, and
two tiers-and-instances-0034 - which is the same defect the Figure N alt-text
prefixes had. Redistributed by real capture surface: portal-, studio-,
os-windows-, browser-.
- Opening them to assign surfaces showed the numbering had been hiding
duplication: security-002-wizard was the Windows Certificate Import Wizard,
throttling-003 was a browser on /debug/cpu-credits, and two pairs are the same
Studio view at two crops.
- -tab dropped from the seven portal groups (30 files), matching the prose that
now says views. The four view overviews are consistent:
portal-{account,api,home,support}-overview.
- migration-cloud-studio-manage-certificates was the last Studio figure without
the studio- prefix; it is now studio-server-dashboard-manage-certificates,
paired with the narrower -link crop of the same node card.
Duplicate and orphan assets
- Six basenames existed in both cloud/assets and cloud/portal/assets, three
already drifted apart. Consolidated onto the portal copy and repointed the
cloud/*.mdx references; this also retires a stale-chrome copy of
portal-product-list-manage-button.
- Deleted one unreferenced asset.
Screenshots
- Refreshed for the revamped portal chrome, plus a new figure for the storage
extension threshold's Edit dialog.
- The cluster-health figure had the Incidents History panel captured twice;
now one panel, with 2026 dates.
- The backup-task figure now shows Ongoing Tasks, matching the prose, and
evidences the 14-day retention policy the page claims.
- The tier and instance figures are refreshed off the pre-redesign theme, so
the product-create Plan set is uniform. Production tier limits rose to 64
cores / 256 GB RAM / 4000 GB disk, and the instance cards now carry IOPS and
throughput.
- The pricing figures now show list rather than discounted prices, and surface
Public IP, backup and per-feature costs the Additional Expenses section does
not yet cover.
Figure/prose corrections found by re-reading the figures
- cloud-scaling: the IO-limits admonition said the Disk Throughput is lower
than the Instance Throughput. It is the other way round in the figure - and
was in the previous figure too - which inverted the point of the advice that
follows it.
- cloud-overview: the Open Studio walkthrough quoted a certificate name
("free.serez") that no figure has shown for some time; the instruction now
points at the URL without quoting an example.
- cloud-pricing-payment-billing: the prose compared PB10 and PB20 while the two
figures are PB10 and PB30.
- Alt text: the email-notification figure in cloud-scaling was labelled
"Scaling storage", and two billing figures were labelled PayNow1 / PayNow2.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents the user-facing changes in the September deployment window.
Ticket: https://issues.ravendb.net/issue/RDoc-4094
Alerts
Billing & Costs
/billing/cost-details, which was previously undocumented, including the prediction caveat on unbilled periods and the marketplace notices.Portal navigation
Rewrote the Portal overview for the collapsible sidebar: the seven role-gated views, the Help center menu (Support, Documentation, Community, Service status) and the profile entry. Support and Service status are no longer top-level entries. Added the missing Users & Access entry, and noted that the account switcher identifies accounts by domain name.
Support
Request support for this instance from the product view (paid support only, pre-selects the product), plus the support resources panel on the product view.
Login
Google, GitHub and Microsoft sign-in, with each provider's email-verification requirement. Microsoft work/school (Entra ID) accounts additionally need the tenant to attest domain ownership via the
xms_edovoptional claim — worth calling out, because a tenant that does not emit it fails with "could not be verified" even though the address is correct. Also lists the actual sign-in failure messages.Provisioning
Noted that the Account and Billing wizard stages are skipped when the account already has those details, and are never shown for marketplace accounts — so the documented five-stage flow is the first-product case.
Second pass — validated against
hr/testEvery claim below was checked against the cloud portal source rather than inferred, and the whole set was re-validated after the September merge landed on
hr/test.Autoscaling — rewritten (RDBCL-3989)
RDBCL-3989 replaced the flat CPU thresholds with three independent metrics: load average, available memory and IO wait, each with its own low/high limit and duration. The old section described CPU only, and 4 of its 10 table rows no longer exist in the UI.
autoscalingThresholdFields.ts.ProductFeatureNamevalue that had no coverage. Always enabled (canDisableFeature={false}), and its modal exposes only the instance range; the thresholds are managed for you.Automatic Storage Extension — corrected
<input>carriesmin=0 max=100, but bothUpdateThresholdSchema.ts(Yup.number().min(70).max(95)) andProductValidator.csenforce 70–95. Entering 50 was rejected with no explanation in the docs.ModelExtensions.cs): the product must be Active, and the threshold cannot be changed at all on yearly contracts.Memory Used Threshold→Disk Space Used Thresholdrename.Products tab — restructured
Constants.Certificate,ProvisionProductCommandHandler).ProductEditAccessSectionis dead code onhr/test; Open Studio moved to the product-details top bar and becomes a per-node dropdown on multi-node products, so "opens the Studio of node A" was wrong for clusters.Support-role gating on the badge and CTA.Support — response times and the skipped step
severity === "Critical", Next business day requires Normal or Critical. A paying customer filing a Minor issue finds both greyed out. Replaced with a per-option condition table.isFamiliarWithResources, so the Expected Response Time section does not render until you click through it. Lists are now 7 and 10 steps, using the UI's own field labels.Backup
The mandatory backup is a Server-Wide Backup (
BackupHelpertakes aServerWideBackupConfiguration), so it covers every database rather than being per-database. The navigation said "Manage Ongoing Tasks"; the view is Ongoing Tasks.Link and alt-text hygiene
cloud/— verified old-broken / new-valid against the rendered HTML, not guessed slugs.put the literal quotes inside the alt attribute (alt=""…""), which screen readers announce. TheFigure Nprefixes were invisible (LazyImagerenders no caption) and referenced by no prose, while costing renumbering on every insertion. Now. Also repaired a malformed tag incloud-aws-marketplace.mdxthat was missing its closing quote.Third pass — folding in RDoc-3556
RDoc-3556 was closed as Obsolete together with its
PR #2393, which never merged. Only three of its claims (the 70–95 range, the yearly-contract block, and the
Memory→Diskcorrection) were already covered by the second pass above; the rest was not in the repo at all.Its content is folded in here, re-validated against
hr/test(83c55efe7) rather than carried over as written —one claim did not survive and several gaps in it were filled.
Automatic Storage Extension — the rest of the section
(
ProductFeaturesHelper.IsFeatureAvailable). Also noted that an ineligible product has no feature row at all —GetProductFeaturesDtoskips the row when the feature is absent from the PPC (RDBCL-5096), so "I can't find thesetting" and "the setting is off" look identical in the UI.
20260317db-patch backfilled existing products at 90;GetFeaturePercentagereturns 0 forAutomaticStorageExtension, so the feature carries no charge and only the larger disk is billed. RDoc-3556 better docs for automatic storage extension #2393 asserted"free of charge" without this, and there is an
AutomaticStorageExtensionFeaturecost line type, which makesthe claim look wrong until you follow the percentage.
/api/v2/node/storage/auto-extend; the disk then moves to thenext size the instance type offers, not to the size that would merely clear the threshold — worth stating,
because the jump is often much larger than the overflow. The success email carries the old, new and maximum
size (
AutoStorageExtend.html).better (
ExtendProductStorageVolumeHelper). Undocumented anywhere, and it changes the bill.StorageExtensionForbiddenReasonhas five, and they do not map one-to-one onto emails. Documented the four that notify you — instance-type maximum,
root-disk limit, yearly contract, Free tier — and left out
StorageSizeLocked(PN instances), which sends nothingand cannot be reached anyway, since PN products are not eligible. Also corrected the framing: the root-disk limit
(1,000 GB AWS/GCP, 1,024 GB Azure) applies only to root-only disk layouts, not to every product.
EmailNotificationPolicyre-registers each of these notifications at most once per24 hours per product.
Storage modification rate — new, and not from #2393
Constants.StorageChangeLimitExpirationMinutesenforces 6 h on AWS and 12 h on Azure Premium between twostorage changes. It gates
CanChangeStorageandCanExtendStorageAutomaticallyalike, so it silently delays anautomatic extension: a disk filling up fast can sit above its threshold for hours. Documented in the feature section
and, since it applies to manual resizes too, on Scaling → Change Storage.
Also
{#storage-extension-configuration}slug on the new Configuration heading — the page already has threeConfiguration sections, so it would otherwise have become
configuration-3.npm run build:currentclean.Before merge
cloud/portal/assets/portal-product-alerts.pngis a placeholder. Component-level capture with no portal chrome, so it does not match the framing of the neighbouring Metrics / Cluster Health figures. Needs a real-portal shot (sidebar + product header + Alerts tab active).portal-billing-costs-tab-current-billing-period.pngstill shows the 3% marketplace commission notice removed by RDBCL-4746;portal-billing-costs-tab-billing-history.pngpredates two column reworks (RDBCL-4739, RDBCL-4751). SNMPv3 Monitoring credentials has no figure while its sibling does.scripts/redirects.jsonentries, so it is out of scope here.Two features documented here are on
hr/testbut not onhr/prod:hr/testhr/prodCorrect for the September deployment; wrong if this merges before that ships. Please check the deploy order before merging.
Noted while working
#manage-product-the-security-tabexists on no page, so three guides were landing readers at the top of the Products page. Fixed here — and not with the anchor first suggested: the link text is "For more details on adding a new product", so the target is#provisioning-a-new-product, not the security section. Each link keeps its existing absolute or relative form; only the fragment changed.guides/connecting-c-application-to-ravendb-cloud.mdxguides/connecting-node-js-application-to-ravendb-cloud.mdxguides/how-to-setup-ravendb-with-asp-net-core-8-application.mdx(The previously-noted
#cloud-account-portal-productsfromcloud/cloud-migration.mdxis fixed here too.)Docusaurus validates page links but not anchors, which is why the build stays green either way — every anchor in this PR was checked against the rendered HTML instead.
Still unreferenced, and orphaned before this work:
cloud/assets/portal-product-details-storage-upgrade-to-premium-v2.png, a duplicate of theportal/assetscopy.Verified with
npm run build:current— clean, no warnings, no broken links.Asset naming convention
Filenames now read
<surface>-<view>-<region>[-<state>], so the name is the path you navigate to re-shoot the figure. 75 files renamed, all asgit mv.portal-tabs(it is the sidebar, not tabs),portal-support-subscriptions-tab(it is on the product view),provider-region-tier-selection(the Plan stage, completing the five-stage wizard set), plus the two emails, now under anemail-prefix.<page>-NNN-<desc>names are retired. That scheme had already collided twice — twopricing-001files with nopricing-002, and twotiers-and-instances-0034— which is the same defect as theFigure Nalt-text prefixes this PR already removed. Redistributed by real capture surface:portal-,studio-,os-windows-,browser-.-tabdropped from the seven portal groups (30 files), matching the prose that now says views. The four view overviews are consistent:portal-{account,api,home,support}-overview.Renames need no redirect entries:
scripts/redirects.jsonhas no asset paths, built asset URLs are content-hashed, and nothing outsidecloud/**/*.mdxreferences these files.Duplicate and orphan assets
Six basenames existed in both
cloud/assetsandcloud/portal/assets, three already drifted apart. Consolidated onto the portal copy and repointed thecloud/*.mdxreferences — which also retires a stale-chrome copy ofportal-product-list-manage-button. One unreferenced asset deleted.Screenshots
Figure/prose corrections found by re-reading the figures
cloud-scaling— the IO-limits admonition said the Disk Throughput is lower than the Instance Throughput. It is the other way round in the figure, and was in the previous figure too, which inverted the point of the advice that follows it.cloud-overview— the Open Studio walkthrough quoted a certificate name ("free.serez") that no figure has shown for some time; the instruction now points at the URL without quoting an example.cloud-pricing-payment-billing— the prose compared PB10 and PB20 while the figures are PB10 and PB30.cloud-scalingwas labelled "Scaling storage", and two billing figures were labelledPayNow1/PayNow2.Follow-ups, not in this PR
Screenshot values in these figures come from the test environment and are not a concern.
Stale figure content
portal-product-details-serverless.pngis the last figure on the pre-redesign product view — Manage / Metrics / Cluster Health as buttons, no Alerts tab, and the dead "Instance access" card. It contradicts the refreshedportal-product-details.pngon the same page.portal-product-create-customize-section.pngshows release channels LTS 5.4 / Stable 6.2 / Current (7.1);CURRENT_VERSIONis 7.2.studio-cluster-view-with-additional-nodes.pngshows RavenDB 6.2.0.portal-billing-costs-current-billing-period.pngcarries 2025 dates beside a September-2026 sibling;portal-billing-costs-billing-history.pnghas no 2026 in its year picker.studio-notification-*figures are dated 14 July 2019;portal-product-details-audit-logs.pngis December 2024;portal-api-create-api-key-modal.pngshows an expiration already in the past.Figures that show a control but not a result
product-features-powerbi-configuration.png— IP table is empty, headers only.portal-product-details-cluster-health.png— Instance changes in time is a blank plot area taking roughly 30% of the image height.registration-page-thank-you.png— roughly 70% empty canvas.Prose to check against the figures
cloud-scaling.mdx:133states Azure Standard disks are 500 IOPS and 60 MB/s, while the adjacent figure lists500 IOPS / 100 MBps (default)in the Premium Performance tier dropdown. Same IOPS, different throughput — these may describe different things, but a reader will take them as one claim. The AWS equivalent (3000 IOPS / 125 MB/s) does match its figure.Content the figures now show and the prose does not
The refreshed pricing figures surface Public IP $0.005/hour, backup at $1.00/GB/month after the free 1 GB, and PowerBi / OLAP ETL / Queue Sink at 10% of hosting cost — none covered by Additional Expenses. The first is what RDoc-2661 and RDoc-2662 ask for.
Separately, verify the hourly prices in
portal-product-create-plan-pricing-pb10/pb30.pngagainst current pricing. It is the only remaining item that could be actively wrong for a customer rather than merely dated.Near-duplicate pairs the renaming exposed
Two Studio views each exist as two crops used on two different pages:
studio-server-dashboard-manage-certificates{,-link}.pngandstudio-certificates-{client-certificate-menu,generate-client-certificate}.png. Each pair is a candidate to collapse, but that is a decision about the pages rather than a rename.Other
0%— no RDBCL ticket yet, andproduct-features-autoscaling-configuration-edit.pngships the behaviour as if correct.&render double-escaped. Pre-existing pipeline behaviour, deliberately out of scope here.