Skip to content

RDoc-4094 Cloud docs update for the September 2026 deployment - #2640

Open
PFYasu wants to merge 1 commit into
ravendb:mainfrom
PFYasu:RDoc-4094
Open

RDoc-4094 Cloud docs update for the September 2026 deployment#2640
PFYasu wants to merge 1 commit into
ravendb:mainfrom
PFYasu:RDoc-4094

Conversation

@PFYasu

@PFYasu PFYasu commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Documents the user-facing changes in the September deployment window.
Ticket: https://issues.ravendb.net/issue/RDoc-4094

Alerts

  • New Alerts section in Maintenance & Troubleshooting: daily summary vs. custom alerts, subscribers, the per-product limits (25 rules, 20 recipients, one daily summary) and the four cases where rules are removed automatically — including a last-recipient removal deleting the whole rule.
  • Trigger events point at the existing Labels table rather than restating them, since that table already carries the thresholds.
  • Short generic View the Alerts section on the Products page, following the Metrics / Cluster Health pattern (generic in the Portal pages, detail outside).

Billing & Costs

  • Current billing period costs donut, the Unbilled total and the Cost Details entry points.
  • Spending: the cost-category filter (all 18 categories), the year-picker behaviour and the "not calculated yet" states.
  • New Cost details section for /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_edov optional 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/test

Every 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.

  • Separate Upscaling and Downscaling tables, each row carrying the UI's enforced min/max from autoscalingThresholdFields.ts.
  • New Autoscaling range subsection for lowest/highest type.
  • Admonition on the asymmetry the code comments call out: downscaling watches the low load average and low IO wait but the high available memory, because available memory runs opposite to utilisation.
  • New Serverless Autoscaling subsection — the one ProductFeatureName value 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

  • The threshold range is 70–95, not 0–100. The <input> carries min=0 max=100, but both UpdateThresholdSchema.ts (Yup.number().min(70).max(95)) and ProductValidator.cs enforce 70–95. Entering 50 was rejected with no explanation in the docs.
  • Two gating rules were undocumented (ModelExtensions.cs): the product must be Active, and the threshold cannot be changed at all on yearly contracts.
  • The setting is disk usage, not memory — the old wording came from a screenshot predating the Memory Used ThresholdDisk Space Used Threshold rename.

Products tab — restructured

  • Security and Allowed IPs split into separate sections; they are separate cards and are not adjacent in the UI.
  • Documented the Certificate expiration date card (RDBCL-4473) and the renewal schedule behind it: certificates are issued for 5 years, a renewal email goes out at 60 days, and automatic regeneration happens at 30 days (Constants.Certificate, ProvisionProductCommandHandler).
  • Instance Access rewritten — ProductEditAccessSection is dead code on hr/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.
  • New Subscription & support section (RDBCL-5326): subscription details, the Update available release-channel pill, the marketplace guard, and the Support-role gating on the badge and CTA.
  • Section order now follows the UI, and figure numbering was reconciled.

Support — response times and the skipped step

  • The response-time admonition stated two conditions; the code has three. Severity is the dominant gate and was entirely undocumented: Within 2 hours additionally requires 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.
  • The tier restriction applies only to product-related questions — a general question is never tier-blocked.
  • Both step lists were missing a mandatory step: the Resources that may help you panel gates the rest of the form via 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 (BackupHelper takes a ServerWideBackupConfiguration), 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

  • 10 broken in-page anchors fixed across cloud/ — verified old-broken / new-valid against the rendered HTML, not guessed slugs.
  • 152 image tags normalised. !["Figure N - X"](…) put the literal quotes inside the alt attribute (alt="&quot;…&quot;"), which screen readers announce. The Figure N prefixes were invisible (LazyImage renders no caption) and referenced by no prose, while costing renumbering on every insertion. Now ![X](…). Also repaired a malformed tag in cloud-aws-marketplace.mdx that 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
MemoryDisk correction) 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

  • Availability. Development and Production tiers, excluding Dev10 and PN-type instances
    (ProductFeaturesHelper.IsFeatureAvailable). Also noted that an ineligible product has no feature row at all —
    GetProductFeaturesDto skips the row when the feature is absent from the PPC (RDBCL-5096), so "I can't find the
    setting" and "the setting is off" look identical in the UI.
  • Enabled by default at 90%, and free. Verified both halves: RDBCL-4266 added it enabled by default and the
    20260317 db-patch backfilled existing products at 90; GetFeaturePercentage returns 0 for
    AutomaticStorageExtension, 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 AutomaticStorageExtensionFeature cost line type, which makes
    the claim look wrong until you follow the percentage.
  • How it works. The node reports usage to /api/v2/node/storage/auto-extend; the disk then moves to the
    next 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).
  • Azure Premium disks also gain the new size's IOPS and throughput when the target performance tier is
    better (ExtendProductStorageVolumeHelper). Undocumented anywhere, and it changes the bill.
  • When storage is not extended. RDoc-3556 better docs for automatic storage extension #2393 listed three cases from a guess at the enum; StorageExtensionForbiddenReason
    has 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 nothing
    and 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.
  • One warning per day. EmailNotificationPolicy re-registers each of these notifications at most once per
    24 hours per product.

Storage modification rate — new, and not from #2393

Constants.StorageChangeLimitExpirationMinutes enforces 6 h on AWS and 12 h on Azure Premium between two
storage changes. It gates CanChangeStorage and CanExtendStorageAutomatically alike, so it silently delays an
automatic 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

  • Cross-link from Scaling → Change Storage to the feature (RDoc-3556 better docs for automatic storage extension #2393 added this too).
  • Explicit {#storage-extension-configuration} slug on the new Configuration heading — the page already has three
    Configuration sections, so it would otherwise have become configuration-3.
  • Anchors verified against the rendered HTML, as in the second pass. npm run build:current clean.

Before merge

  • cloud/portal/assets/portal-product-alerts.png is 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).
  • Sections still without figures: Cost details, the Alerts subsections in Maintenance & Troubleshooting, and Serverless Autoscaling.
  • Stale figures: portal-billing-costs-tab-current-billing-period.png still shows the 3% marketplace commission notice removed by RDBCL-4746; portal-billing-costs-tab-billing-history.png predates two column reworks (RDBCL-4739, RDBCL-4751). SNMPv3 Monitoring credentials has no figure while its sibling does.
  • Terminology. The prose describes a sidebar and calls them "views", while the eight portal page titles and filenames still say "Tab". Renaming needs scripts/redirects.json entries, so it is out of scope here.

⚠️ Deploy ordering

Two features documented here are on hr/test but not on hr/prod:

Feature hr/test hr/prod
Autoscaling metrics (RDBCL-3989) yes no
"Sign in with Microsoft" (RDBCL-5283) yes no

Correct 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-tab exists 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.mdx
  • guides/connecting-node-js-application-to-ravendb-cloud.mdx
  • guides/how-to-setup-ravendb-with-asp-net-core-8-application.mdx

(The previously-noted #cloud-account-portal-products from cloud/cloud-migration.mdx is 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 the portal/assets copy.

Verified with npm run build:current — clean, no warnings, no broken links.

@PFYasu PFYasu added the Cloud label Aug 31, 2026
@PFYasu PFYasu self-assigned this Aug 31, 2026
@PFYasu
PFYasu force-pushed the RDoc-4094 branch 8 times, most recently from d004383 to d0325df Compare September 1, 2026 13:07
@PFYasu
PFYasu requested a review from matz985 September 1, 2026 13:47
@PFYasu
PFYasu marked this pull request as ready for review September 1, 2026 13:47
Comment thread cloud/portal/cloud-portal-billing-tab.mdx Outdated
Comment thread cloud/portal/cloud-portal-support-tab.mdx Outdated
Comment thread cloud/portal/cloud-portal.mdx Outdated
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: !["Figure N - X"](...) put literal quotes inside
  the alt attribute, and the Figure N prefixes rendered nowhere while costing a
  renumber on every insertion. Now ![X](...). Repaired a malformed tag in
  cloud-aws-marketplace.mdx that was missing its closing quote.

Screenshots refreshed for the revamped portal chrome, plus a new figure for the
storage extension threshold's Edit dialog.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants