Fix internal links: /docs/insights/ paths to their live /docs/discovery-governance/ targets - #21586
workprentice[bot] wants to merge 5 commits into
Conversation
The insights section was restructured to Discovery & Governance; /docs/insights/** now 301-redirects to /docs/discovery-governance/** (with one exception, the FAQ which consolidated to /docs/support/faq/policies/). This updates 93 files across blog and case-studies whose body content still linked to the pre-redirect paths, so internal links resolve directly instead of via a 301 hop. Each of the 22 distinct target URLs was verified live before the mechanical replacement: confirmed single-hop 301 -> 200, and (where the source link carried a fragment) that the fragment still exists on the destination page. Six fragment links into /docs/insights/policy/ and /docs/insights/policy/get-started/ point at headings that no longer exist on the restructured destination page (the content model changed from Advisory/Mandatory to Preventative/Audit); those base paths are fixed to eliminate the redirect hop, but the stale fragments are left as-is since correcting them is a content-authoring decision, not a link-target fix, and is out of scope here. Filing a follow-up card for that. Front matter alias/redirect declarations (which must keep the old paths so the redirects keep working) and one test fixture referencing a repo-relative path in sample data are deliberately left untouched.
|
@claude #new-review |
|
Follow-up tracked internally for the 6 stale-fragment links called out above (Advisory/Mandatory headings renamed to Preventative/Audit during the restructure, so those 6 anchors no longer resolve to a specific subsection). Ready for review. |
|
@claude F44: accepting as-is — will fix the 6 stale fragment links in a follow-up PR. #update-review |
|
🤖 Review updated on @workprentice[bot]'s request. |
|
@copilot resolve the merge conflicts in this pull request |
1 similar comment
|
@copilot resolve the merge conflicts in this pull request |
…covery-governance-sweep # Conflicts: # content/blog/deployment-guardrails-with-policy-as-code/index.md
Head branch was pushed to by a user without write access
|
🤖 Review updated on @workprentice[bot]'s request. |
The insights-to-discovery-governance link rewrite repointed page paths correctly but carried over anchor fragments from the old content structure. Each of the 8 flagged anchors is fixed here by pointing at the heading that now actually holds that content (verified against the current page source, not just the review's suggestion): - announcing-crossguard-preview, manage-infrastructure-with-pac: the local-run and org-enforcement instructions moved from get-started to policy-packs/authoring and policy-groups respectively. - self-hosted-search-and-deploy: Resource Search now has its own page. - policy-audit-scans-for-stacks, self-hosted-insights: audit policy groups are documented under the Types of policy groups heading now. - pulumi-release-notes-74: policy pack creation moved to the policy-packs authoring page. Also swept every /docs/discovery-governance/...#fragment link this PR touches (19 total) against the live heading structure of each target page; the 11 not flagged by the review all resolve correctly, so no further changes are needed.
|
Pushed fixes for all 8 flagged anchors (F1, F2, F9, F10, F12, F35, F36, F37), each verified against the current heading structure of the target page before applying:
I also swept every @claude I pushed fixes for F1, F2, F9, F10, F12, F35, F36, F37 #update-review |
|
🤖 Review updated on @workprentice[bot]'s request. |
There was a problem hiding this comment.
🧹 Optional style suggestions from the pre-merge review — apply or dismiss; none of them block.
Generated by Claude Code
| ### Centralized Governance and Compliance Controls | ||
|
|
||
| Many customers are using Pulumi and Kubernetes to stand up shared services platforms (SSP) to empower their developers to self-service new infrastructure environments. To keep these environments compliant with internal policies, Pulumi Business Critical Edition includes [CrossGuard](/docs/insights/policy/) policy-as-code capabilities built-in. This helps operators to ensure that configuration mistakes won’t reach production with policies that are enforced organization-wide. | ||
| Many customers are using Pulumi and Kubernetes to stand up shared services platforms (SSP) to empower their developers to self-service new infrastructure environments. To keep these environments compliant with internal policies, Pulumi Business Critical Edition includes [CrossGuard](/docs/discovery-governance/policy/) policy-as-code capabilities built-in. This helps operators to ensure that configuration mistakes won’t reach production with policies that are enforced organization-wide. |
There was a problem hiding this comment.
[style] spacing — Single space after the period
| Many customers are using Pulumi and Kubernetes to stand up shared services platforms (SSP) to empower their developers to self-service new infrastructure environments. To keep these environments compliant with internal policies, Pulumi Business Critical Edition includes [CrossGuard](/docs/discovery-governance/policy/) policy-as-code capabilities built-in. This helps operators to ensure that configuration mistakes won’t reach production with policies that are enforced organization-wide. | |
| Many customers are using Pulumi and Kubernetes to stand up shared services platforms (SSP) to empower their developers to self-service new infrastructure environments. To keep these environments compliant with internal policies, Pulumi Business Critical Edition includes [CrossGuard](/docs/discovery-governance/policy/) policy-as-code capabilities built-in. This helps operators to ensure that configuration mistakes won’t reach production with policies that are enforced organization-wide. |
| ### Compliance Ready Policies | ||
|
|
||
| We first released our [CrossGuard](https://www.pulumi.com/docs/insights/policy/) policy-as-code framework nearly 4 years ago, and have seen many large organizations leverage its rich expressiveness, flexibility and early prevention features to enforce key compliance criteria for their organization. Support in Pulumi Cloud for automatically enforcing these policies across all Pulumi updates within an organization allows platform teams to put compliance guardrails in place for users within their organization. | ||
| We first released our [CrossGuard](https://www.pulumi.com/docs/discovery-governance/policy/) policy-as-code framework nearly 4 years ago, and have seen many large organizations leverage its rich expressiveness, flexibility and early prevention features to enforce key compliance criteria for their organization. Support in Pulumi Cloud for automatically enforcing these policies across all Pulumi updates within an organization allows platform teams to put compliance guardrails in place for users within their organization. |
There was a problem hiding this comment.
[style] spacing — Single space after the period
| We first released our [CrossGuard](https://www.pulumi.com/docs/discovery-governance/policy/) policy-as-code framework nearly 4 years ago, and have seen many large organizations leverage its rich expressiveness, flexibility and early prevention features to enforce key compliance criteria for their organization. Support in Pulumi Cloud for automatically enforcing these policies across all Pulumi updates within an organization allows platform teams to put compliance guardrails in place for users within their organization. | |
| We first released our [CrossGuard](https://www.pulumi.com/docs/discovery-governance/policy/) policy-as-code framework nearly 4 years ago, and have seen many large organizations leverage its rich expressiveness, flexibility and early prevention features to enforce key compliance criteria for their organization. Support in Pulumi Cloud for automatically enforcing these policies across all Pulumi updates within an organization allows platform teams to put compliance guardrails in place for users within their organization. |
| ## CrossGuard | ||
|
|
||
| [CrossGuard Policy as Code](/docs/insights/policy/) allows an Organization to define global rules for how resources may be provisioned and prevent resources from being provisioned by Pulumi in any other configuration. Pulumi Stacks that do not meet the Organization’s financial, security, data protection, or other pre-defined standards are prevented from provisioning any resources, and the developer is instructed to correct their desired configuration or program in accordance with the Organization-wide policies. | ||
| [CrossGuard Policy as Code](/docs/discovery-governance/policy/) allows an Organization to define global rules for how resources may be provisioned and prevent resources from being provisioned by Pulumi in any other configuration. Pulumi Stacks that do not meet the Organization’s financial, security, data protection, or other pre-defined standards are prevented from provisioning any resources, and the developer is instructed to correct their desired configuration or program in accordance with the Organization-wide policies. |
There was a problem hiding this comment.
[style] spacing — Single space after the period
| [CrossGuard Policy as Code](/docs/discovery-governance/policy/) allows an Organization to define global rules for how resources may be provisioned and prevent resources from being provisioned by Pulumi in any other configuration. Pulumi Stacks that do not meet the Organization’s financial, security, data protection, or other pre-defined standards are prevented from provisioning any resources, and the developer is instructed to correct their desired configuration or program in accordance with the Organization-wide policies. | |
| [CrossGuard Policy as Code](/docs/discovery-governance/policy/) allows an Organization to define global rules for how resources may be provisioned and prevent resources from being provisioned by Pulumi in any other configuration. Pulumi Stacks that do not meet the Organization’s financial, security, data protection, or other pre-defined standards are prevented from provisioning any resources, and the developer is instructed to correct their desired configuration or program in accordance with the Organization-wide policies. |
|  | ||
|
|
||
| Throughout the workflow, you maintain full control. Select what you need, tweak it as required, and integrate on your terms. You can find full documentation and usage details in the [Visual Import docs](/docs/insights/discovery/visual-import/). | ||
| Throughout the workflow, you maintain full control. Select what you need, tweak it as required, and integrate on your terms. You can find full documentation and usage details in the [Visual Import docs](/docs/discovery-governance/discovery/visual-import/). |
There was a problem hiding this comment.
[style] spacing — Single space after the period
| Throughout the workflow, you maintain full control. Select what you need, tweak it as required, and integrate on your terms. You can find full documentation and usage details in the [Visual Import docs](/docs/discovery-governance/discovery/visual-import/). | |
| Throughout the workflow, you maintain full control. Select what you need, tweak it as required, and integrate on your terms. You can find full documentation and usage details in the [Visual Import docs](/docs/discovery-governance/discovery/visual-import/). |
|
@claude review:stale #update-review Generated by Claude Code |
|
🤖 Review updated on @CamSoper's request. |
|
@CamSoper CI is green at the current head ( The only outstanding review-bot comments are optional style suggestions (wordiness/spacing/cliché) marked as non-blocking; I'm leaving those as-is rather than reopening an 89-file diff for cosmetic wording. Auto-merge is already armed. Could you dismiss or re-review the stale CHANGES_REQUESTED so it can land? Happy to answer anything else first. |
What
93 files across
content/blog/andcontent/case-studies/link to the pre-restructure/docs/insights/**paths. That section is now/docs/discovery-governance/**(301-redirected), so every one of these internal links was sending readers and crawlers through an unnecessary redirect hop. This updates the body-content links to point directly at the live target.How the mapping was verified
Every one of the 22 distinct
/docs/insights/...base paths referenced anywhere in body content was resolved live (redirects disabled) before any file was touched:301 -> 200, never a redirect chain.#fragment, confirmed that fragment id still exists in the destination page's rendered HTML./docs/insights//docs/discovery-governance//docs/insights/context-api//docs/discovery-governance/context-api//docs/insights/discovery//docs/discovery-governance/discovery//docs/insights/discovery/accounts//docs/discovery-governance/discovery/accounts//docs/insights/discovery/connect-cloud-accounts//docs/discovery-governance/discovery/connect-cloud-accounts//docs/insights/discovery/data-export//docs/discovery-governance/discovery/data-export//docs/insights/discovery/discovered-stacks//docs/discovery-governance/discovery/discovered-stacks//docs/insights/discovery/discovered-stacks/migrate//docs/discovery-governance/discovery/discovered-stacks/migrate//docs/insights/discovery/get-started//docs/discovery-governance/discovery/get-started//docs/insights/discovery/search//docs/discovery-governance/discovery/search//docs/insights/discovery/visual-import//docs/discovery-governance/discovery/visual-import//docs/insights/guides/context-api//docs/discovery-governance/guides/context-api//docs/insights/policy//docs/discovery-governance/policy//docs/insights/policy/faq//docs/support/faq/policies//docs/insights/policy/get-started//docs/discovery-governance/policy/get-started//docs/insights/policy/integrations/aws-organizations-tag-policies//docs/discovery-governance/policy/integrations/aws-organizations-tag-policies//docs/insights/policy/policy-findings//docs/discovery-governance/policy/policy-findings//docs/insights/policy/policy-groups//docs/discovery-governance/policy/policy-groups//docs/insights/policy/policy-packs//docs/discovery-governance/policy/policy-packs//docs/insights/policy/policy-packs/authoring//docs/discovery-governance/policy/policy-packs/authoring//docs/insights/policy/policy-packs/pre-built-packs//docs/discovery-governance/policy/policy-packs/pre-built-packs//docs/insights/self-hosted//docs/discovery-governance/self-hosted/Only one target lands outside
/docs/discovery-governance/:/docs/insights/policy/faq/now consolidates into the sitewide FAQ hub at/docs/support/faq/policies/(perSTYLE-GUIDE.md's FAQ consolidation policy), which the live redirect confirms.What was deliberately left alone
aliases:blocks (34 files) — these declare the old paths on purpose, so the redirects keep working. Touching them would break the redirect, not fix a link.scripts/content-review/testdata/claims-sample.json) — a repo-relative path in sample data, not a live link./docs/insights/policy/#{advisory,mandatory,enforcement-levels,remediation-policies,resource-validation,stack-validation}and/docs/insights/policy/get-started/#{creating-a-policy-pack,enforcing-a-policy-pack,running-locally,writing-policies-in-python,writing-policies-in-typescript}— the base path is fixed (removes the redirect hop) but the fragment itself no longer matches any heading on the restructured page (the content model changed from Advisory/Mandatory/Resource-validation/Stack-validation to Preventative/Audit). Fixing the fragment target is a content-authoring judgment call on which heading is the right destination now, not a mechanical link-repair, so it's out of scope for this PR. Filing a separate follow-up card for it.Verification
/docs/insights/references remain in body content (only the 34 intentional alias declarations and the one test fixture remain, as expected).public/output: zerohref="...insights..."links to the old base paths, and the changed pages' rendered links correctly point at/docs/discovery-governance/.... The old alias redirect pages (e.g./docs/insights/policy/) still render theirrefreshredirect as expected.🧠 This PR was created by workprentice.