Skip to content

docs(cloud): document the operations Layer5 Cloud refuses against platform-provisioned Environments - #1238

Merged
miacycle merged 2 commits into
masterfrom
fm/docs-platform-provisioned-environments
Sep 8, 2026
Merged

docs(cloud): document the operations Layer5 Cloud refuses against platform-provisioned Environments#1238
miacycle merged 2 commits into
masterfrom
fm/docs-platform-provisioned-environments

Conversation

@miacycle

@miacycle miacycle commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

What this does

Documents that some Environments are provisioned for an organization by Layer5 Cloud rather than created by someone in it - the Environment behind an organization's own identity providers is the shipping example - and that the interface refuses several operations against them.

Two commits:

  1. The original note (recovered onto current master): the Environments page refuses deleting such an Environment and assigning or removing its Connections.
  2. Re-verification against meshery-cloud@master, plus the corrections that verification turned up.

Re-verified against the product

Every claim was checked against origin/master in meshery-cloud, not against a summary:

Operation Behavior Source
Delete Environment refused, 403 ErrProvisionedEnvironmentDeletionRefused (meshery_cloud-3272), server/dao/environment.go:371
Assign Connection refused, 403 ErrEnvironmentConnectionAssignmentRefused (meshery_cloud-3270), server/dao/environment.go:537
Remove Connection refused, 403 same code, server/dao/environment.go:620
Link to a Workspace refused, 403 ErrProvisionedEnvironmentWorkspaceMappingRefused (meshery_cloud-3273), server/dao/workspace.go:739
Unlink from a Workspace allowed, by design WorkspaceDAO.RemoveEnvironmentFromWorkspace carries no purpose predicate
Edit name / description allowed UpdateEnvironment is unguarded

What had drifted

The refusal set is four operations, not three. The workspace-mapping guard landed in meshery-cloud on 2026-09-05 at 18:02, about an hour after the documentation note was drafted at 16:54, so the note was accurate when written and is not any more. A mapping is a link in the inherited-access chain (workspaces_environments_mappings -> workspaces_teams_mappings), so linking a managed Environment into a Workspace would grant that Workspace's teams read on its Connections and the identity-provider credential behind them. Unlinking is deliberately left unguarded - it only ever ends access, and it is the remediation for rows written before the guard existed - and the new note says so, since a reader who cannot link will otherwise assume they cannot unlink either.

Also in this PR (flagged for reviewers)

  • Provider naming. The recovered commit had written around the product name ("the platform"). This repository is the user-facing documentation for the hosted product, so the name is restored: the branding rule targets the Cloud interface, whose display name resolves per organization, not these docs.
  • Concrete destination. Both notes now link to the Identity Providers tab rather than describing an unnamed "settings page that owns the feature", and state that a managed Environment can still be renamed - only Connection membership, deletion and Workspace linking are refused.
  • Adjacent correction, out of the original scope. The Identity Providers bullet on the Organization Management page named the control Delete All "Identity Providers" (the button reads Delete All Identity Providers) and described the teardown as deleting "the environment named, 'Identity Providers'". Resolution no longer keys on that name - the name-based lookup was the escalation the purpose column replaced - and the revert target is Layer5's default identity providers, not "Provider Organization's defaults".

Verification

  • hugo builds clean; all three ref shortcodes resolve and the #configuring-identity-providers-bring-your-own-credentials target anchor exists in the built HTML.
  • Built master and this branch to separate directories and diffed the id= attribute of every <h1>-<h6> across both trees: no anchor changed, so no external heading link breaks.

Summary by CodeRabbit

  • Documentation
    • Updated identity-provider deletion guidance to explain the Delete All Identity Providers action, including its effects on provisioned Environments and default identity providers.
    • Added guidance for managing Layer5-managed Environments, including Workspace linking, Connection membership, deletion limitations, and editable properties.

…e and connection changes

Some Environments are provisioned for an organization by the platform rather
than created by someone in it, and they hold configuration the platform relies
on. The Environments page refuses three operations against them: deleting the
Environment, and assigning or removing its Connections. Those Connections are
managed from the settings page that owns the feature instead.

Documents the refusal where a reader meets it rather than only where it is
implemented. Both notes say what to do instead, and the delete note explains why
such an Environment stays visible rather than being hidden, since a reader who
cannot delete something they can see will otherwise assume a fault.

Avoids naming a brand in the new copy: the product's display name resolves from
the organization, so the notes describe the platform rather than hardcoding a
name.

Signed-off-by: miacycle <184569369+miacycle@users.noreply.github.com>
…the managed-Environment notes

Re-verifying the preceding commit against meshery-cloud found the refusal set has
grown since it was written. The Environments page refuses three operations
against a platform-provisioned Environment, but a fourth verb refuses one page
over: linking such an Environment to a Workspace
(ErrProvisionedEnvironmentWorkspaceMappingRefused, meshery_cloud-3273, landed
after the note was drafted). A mapping is a link in the inherited-access chain,
so it would hand a Workspace's teams read on the Environment's Connections and
the identity-provider credential behind them. Unlinking is deliberately
unguarded - it only ever ends access, and it is the remediation for rows written
before the guard existed - so the new note says so.

Names Layer5 Cloud rather than "the platform". This repository is the
user-facing documentation for the hosted product, so the product name is the
correct wording here; the branding rule targets the Cloud interface, whose
display name resolves per organization.

Points both existing notes at the Identity Providers tab by link instead of
describing an unnamed "settings page that owns the feature", and states that a
managed Environment can still be renamed - only Connection membership, deletion
and Workspace linking are refused. The delete note also covers bulk selection,
which is refused per row like the single-card delete.

Corrects the Identity Providers bullet on the Organization Management page while
adjacent to it: it named the control "Delete All \"Identity Providers\"" (the
button reads Delete All Identity Providers) and described the teardown as
deleting "the environment named, 'Identity Providers'". Resolution no longer
keys on that name - the name-based lookup was the escalation the purpose column
replaced - and the revert target is Layer5's default identity providers, not
"Provider Organization's defaults".

Verified by building master and this branch to separate directories and diffing
the id= attribute of every heading across both trees: no anchor changed.

Signed-off-by: miacycle <184569369+miacycle@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 82e29b27-5417-405c-a081-bdb4058c2b72

📥 Commits

Reviewing files that changed from the base of the PR and between cbe440d and 86b379a.

📒 Files selected for processing (2)
  • content/en/cloud/guides/organizations/org-management/_index.md
  • content/en/cloud/guides/workspaces/managing-environments/index.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The documentation updates describe managed Environment restrictions and the Delete All Identity Providers action. They explain membership, Workspace linking, editing, and deletion behavior.

Changes

Managed Environment documentation

Layer / File(s) Summary
Managed Environment restrictions
content/en/cloud/guides/workspaces/managing-environments/index.md
Documents restrictions for Workspace linking, Connection membership, deletion, and editing of managed Environments.
Identity-provider deletion workflow
content/en/cloud/guides/workspaces/managing-environments/index.md, content/en/cloud/guides/organizations/org-management/_index.md
Documents Delete All Identity Providers as the action that removes configured providers, deletes the provisioned Environment, and restores default identity providers.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 86b37

The documentation now clearly explains managed Environment restrictions and the Delete All Identity Providers workflow, with no current merge-readiness risk identified.

Suggested reviewers: hortison

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the documentation change and the main subject: operations that Layer5 Cloud refuses for platform-provisioned Environments. It matches the primary changes in the pull reque…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fm/docs-platform-provisioned-environments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI 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.

🟢 Approval recommended

The changes are clear, internally consistent with existing linking patterns, and limited to low-risk documentation updates in the intended sections.

Pull request overview

This PR updates Layer5 Cloud documentation to clarify that certain organization-provisioned (“managed”) Environments are intentionally restricted in the UI, and explains why those restrictions exist (notably around identity-provider credentials access) while calling out the few operations that remain allowed.

Changes:

  • Adds info callouts explaining that managed Environments cannot be linked to Workspaces, cannot have Connections reassigned from the Environments page, and cannot be deleted from the Environments page (with guidance to the Identity Providers tab instead).
  • Clarifies that unlinking managed Environments from Workspaces remains allowed (as a remediation path), and that renaming/editing managed Environments is still permitted.
  • Fixes the Identity Providers documentation wording to match the UI control name and correct the described teardown behavior.
File summaries
File Description
content/en/cloud/guides/workspaces/managing-environments/index.md Documents managed Environment restrictions for workspace linking, connection membership changes, and deletion, including rationale and remediation guidance.
content/en/cloud/guides/organizations/org-management/_index.md Corrects Identity Providers bullet text to match the UI label and accurately describe the “Delete All Identity Providers” effect.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Preview deployment: https://docs.layer5.io/pr-preview/pr-1238/

Note: Preview may take a moment (GitHub Pages deployment in progress). Please wait and refresh. Track deployment here

@miacycle
miacycle merged commit f2cbf69 into master Sep 8, 2026
6 checks passed
@miacycle
miacycle deleted the fm/docs-platform-provisioned-environments branch September 8, 2026 21:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants