Skip to content

Lowercase RBAC resource name headings to match case-sensitive matching#4242

Open
nvanthao wants to merge 1 commit into
mainfrom
gerard/rbac-update
Open

Lowercase RBAC resource name headings to match case-sensitive matching#4242
nvanthao wants to merge 1 commit into
mainfrom
gerard/rbac-update

Conversation

@nvanthao

@nvanthao nvanthao commented Jul 9, 2026

Copy link
Copy Markdown
Member

What

Lowercases all H3 resource-name headings in docs/vendor/team-management-rbac-resource-names.md.

Why

The RBAC policy engine matches resource strings case-sensitively.

A prior heading-capitalization pass (commit e4aa305e0) inadvertently title-cased these case-sensitive names (KOTS, Integration, Registry, VM, Team, User, Installer, SupportBundle, download-URL). Copying a title-cased name into a policy would silently fail to match and deny access.

Scope

  • Only the 160 H3 resource-name headings were changed (160 insertions / 160 deletions).
  • H2 category headings (## KOTS, ## Team, ## Registry, ## User) are left as-is — they are display titles, not resource strings.

The vendor RBAC policy engine matches resource strings byte-exact (case-sensitive), and all canonical resource literals in vandoor are lowercase. A prior heading-capitalization pass wrongly title-cased these case-sensitive names (KOTS, Integration, Registry, VM, Team, User, Installer, SupportBundle, download-URL), which would silently fail to match if copied into a policy. Restore the H3 resource-name headings to lowercase.
@nvanthao nvanthao requested a review from a team as a code owner July 9, 2026 00:23
@netlify

netlify Bot commented Jul 9, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs-upgrade ready!

Name Link
🔨 Latest commit 329e871
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs-upgrade/deploys/6a4ee9ed0471200008666f42
😎 Deploy Preview https://deploy-preview-4242--replicated-docs-upgrade.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Jul 9, 2026

Copy link
Copy Markdown

Deploy Preview for replicated-docs ready!

Name Link
🔨 Latest commit 329e871
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs/deploys/6a4ee9ed3a1cd30008876926
😎 Deploy Preview https://deploy-preview-4242--replicated-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions Bot added type::docs Improvements or additions to documentation type::feature labels Jul 9, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

vale

docs/vendor/team-management-rbac-resource-names.md|137 col 5| [Replicated.Headings] 'kots/app/[:appid]/license/[:customerid]/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|141 col 5| [Replicated.Headings] 'kots/app/[:appid]/license/[:customerid]/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|145 col 5| [Replicated.Headings] 'kots/app/[:appid]/license/[:customerid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|153 col 5| [Replicated.Headings] 'kots/app/[:appid]/license/[:customerid]/slack-notifications/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|157 col 5| [Replicated.Headings] 'kots/app/[:appid]/license/[:customerid]/slack-notifications/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|161 col 5| [Replicated.Headings] 'kots/app/[:appid]/builtin-licensefields/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|165 col 5| [Replicated.Headings] 'kots/app/[:appid]/builtin-licensefields/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|173 col 5| [Replicated.Headings] 'kots/license/[:customerid]/archive' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|177 col 5| [Replicated.Headings] 'kots/license/[:customerid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|185 col 5| [Replicated.Headings] 'kots/app/[:appid]/licensefields/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|189 col 5| [Replicated.Headings] 'kots/app/[:appid]/licensefields/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|193 col 5| [Replicated.Headings] 'kots/app/[:appid]/licensefields/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|197 col 5| [Replicated.Headings] 'kots/app/[:appid]/licensefields/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|201 col 5| [Replicated.Headings] 'kots/app/[:appid]/release/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|205 col 5| [Replicated.Headings] 'kots/app/[:appid]/release/[:sequence]/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|209 col 5| [Replicated.Headings] 'kots/app/[:appid]/release/[:sequence]/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|213 col 5| [Replicated.Headings] 'kots/app/[:appid]/release/[:sequence]/archive' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|217 col 5| [Replicated.Headings] 'kots/app/[:appid]/releases/test' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|221 col 5| [Replicated.Headings] 'kots/app/[:appid]/customhostname/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|225 col 5| [Replicated.Headings] 'kots/app/[:appid]/customhostname/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|229 col 5| [Replicated.Headings] 'kots/app/[:appid]/customhostname/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|233 col 5| [Replicated.Headings] 'kots/app/[:appid]/customhostname/default/set' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|237 col 5| [Replicated.Headings] 'kots/app/[:appid]/customhostname/default/unset' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|241 col 5| [Replicated.Headings] 'kots/app/[:appid]/defaulthostname/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|245 col 5| [Replicated.Headings] 'kots/app/[:appid]/supportbundle/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|249 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/access/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|253 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/access/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|257 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/branding/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|261 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/branding/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|265 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-users/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|269 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-user/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|273 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-user/login' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|277 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-user/[:customerid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|281 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-allowed-domains/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|285 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-allowed-domains/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|289 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/customer-allowed-domains/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|293 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/documentation/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|297 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/documentation/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|301 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-domain/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|305 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-domain/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|309 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-domain/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|313 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-domain/verify' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|317 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-templates/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|321 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-templates/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|325 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/email-templates/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|329 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/failed-login-attempts/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|333 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/install-attempts/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|337 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/install-options/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|341 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/install-options/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|345 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/install-options/[:installoptionid]/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|349 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/install-options/[:installoptionid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|353 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/instances/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|357 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/service-accounts/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|361 col 5| [Replicated.Headings] 'kots/app/[:appid]/enterprise-portal/service-accounts/[:serviceaccountid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|367 col 5| [Replicated.Headings] 'registry/namespace/:namespace/pull' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|371 col 5| [Replicated.Headings] 'registry/namespace/:namespace/push' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|377 col 5| [Replicated.Headings] 'kots/cluster/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|381 col 5| [Replicated.Headings] 'kots/cluster/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|385 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|389 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]/upgrade' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|393 col 5| [Replicated.Headings] 'kots/cluster/tag/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|409 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|429 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]/port/expose' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|433 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]/port/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|437 col 5| [Replicated.Headings] 'kots/cluster/[:clusterid]/port/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|441 col 5| [Replicated.Headings] 'kots/cluster/list-quotas' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|445 col 5| [Replicated.Headings] 'kots/cluster/credits/buy' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|449 col 5| [Replicated.Headings] 'kots/cluster/increase-quota' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|453 col 5| [Replicated.Headings] 'kots/network/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|457 col 5| [Replicated.Headings] 'kots/network/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|461 col 5| [Replicated.Headings] 'kots/network/[:networkid]' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|465 col 5| [Replicated.Headings] 'kots/network/[:networkid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|469 col 5| [Replicated.Headings] 'kots/network/[:networkid]/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|511 col 5| [Replicated.Headings] 'team/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|515 col 5| [Replicated.Headings] 'team/auditlog/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|519 col 5| [Replicated.Headings] 'team/authentication/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|523 col 5| [Replicated.Headings] 'team/authentication/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|527 col 5| [Replicated.Headings] 'team/integration/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|531 col 5| [Replicated.Headings] 'team/integration/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|535 col 5| [Replicated.Headings] 'team/integration/[:integrationid]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|539 col 5| [Replicated.Headings] 'team/integration/[:integrationid]/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|543 col 5| [Replicated.Headings] 'team/members/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|547 col 5| [Replicated.Headings] 'team/member/invite' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|551 col 5| [Replicated.Headings] 'team/members/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|555 col 5| [Replicated.Headings] 'team/members/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|563 col 5| [Replicated.Headings] 'team/policy/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|567 col 5| [Replicated.Headings] 'team/policy/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|571 col 5| [Replicated.Headings] 'team/policy/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|575 col 5| [Replicated.Headings] 'team/policy/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|579 col 5| [Replicated.Headings] 'team/security/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|583 col 5| [Replicated.Headings] 'team/serviceaccount/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|587 col 5| [Replicated.Headings] 'team/serviceaccount/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|591 col 5| [Replicated.Headings] 'team/serviceaccount/[:name]/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|595 col 5| [Replicated.Headings] 'team/support-issues/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|619 col 5| [Replicated.Headings] 'team/support-issues/write' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|627 col 5| [Replicated.Headings] 'team/support-issues/triage' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|635 col 5| [Replicated.Headings] 'team/support-issues/admin' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|643 col 5| [Replicated.Headings] 'team/activity-stream/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|649 col 5| [Replicated.Headings] 'team/notifications/subscriptions/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|653 col 5| [Replicated.Headings] 'team/notifications/subscriptions/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|657 col 5| [Replicated.Headings] 'team/notifications/subscriptions/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|661 col 5| [Replicated.Headings] 'team/notifications/user/[:userid]/subscriptions/update' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|665 col 5| [Replicated.Headings] 'team/notifications/subscriptions/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|669 col 5| [Replicated.Headings] 'team/notifications/user/[:userid]/subscriptions/delete' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|673 col 5| [Replicated.Headings] 'team/notifications/types/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|677 col 5| [Replicated.Headings] 'team/notifications/events/read' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|683 col 5| [Replicated.Headings] 'user/token/list' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|687 col 5| [Replicated.Headings] 'user/token/create' should use sentence case.
docs/vendor/team-management-rbac-resource-names.md|691 col 5| [Replicated.Headings] 'user/token/delete' should use sentence case.

## Integration catalog

### Integration/catalog/list
### integration/catalog/list

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'integration/catalog/list' should use sentence case.

## KOTS

### KOTS/app/create
### kots/app/create

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/create' should use sentence case.

When allowed, the holder can create new applications.

### KOTS/app/[:appid]/read
### kots/app/[:appid]/read

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/read' should use sentence case.

Grants the holder permission to view the application. If the holder does not have permissions to view an application, it will not appear in lists.

### KOTS/app/[:appid]/delete
### kots/app/[:appid]/delete

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/delete' should use sentence case.

Grants the holder permission to delete an application.

### KOTS/app/[:appid]/update
### kots/app/[:appid]/update

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/update' should use sentence case.

Grants the holder permission to un-demote a previously demoted release on the specified channel of the specified applications.

### KOTS/app/[:appid]/Installer/create
### kots/app/[:appid]/installer/create

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/installer/create' should use sentence case.

Grants the holder permission to create kURL installers. For more information, see [Creating a kURL installer](packaging-embedded-kubernetes).

### KOTS/app/[:appid]/Installer/update
### kots/app/[:appid]/installer/update

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/installer/update' should use sentence case.

Grants the holder permission to update kURL installers. For more information, see [Creating a kURL installer](packaging-embedded-kubernetes).

### KOTS/app/[:appid]/Installer/read
### kots/app/[:appid]/installer/read

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/installer/read' should use sentence case.

Grants the holder permission to view kURL installers. For more information, see [Creating a kURL installer](packaging-embedded-kubernetes).

### KOTS/app/[:appid]/Installer/promote
### kots/app/[:appid]/installer/promote

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/installer/promote' should use sentence case.

:::

### KOTS/app/[:appid]/license/create
### kots/app/[:appid]/license/create

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'kots/app/[:appid]/license/create' should use sentence case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type::docs Improvements or additions to documentation type::feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants