Skip to content

docs: set redirects to premanent = true#2635

Open
unatasha8 wants to merge 10 commits into
masterfrom
una-update-redirects
Open

docs: set redirects to premanent = true#2635
unatasha8 wants to merge 10 commits into
masterfrom
una-update-redirects

Conversation

@unatasha8

@unatasha8 unatasha8 commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Sets all existing redirects to permanent = true

  • [ X] I have read the contributing guidelines and signed the CLA.
  • I have referenced an issue containing the design document if my change introduces a new feature.
  • [ X] I have read the security policy.
  • [X ] I confirm that this pull request does not address a security vulnerability.
    If this pull request addresses a security vulnerability,
    I confirm that I got approval (please contact security@ory.com) from the maintainers to push the changes.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added the necessary documentation within the code base (if appropriate).

Summary by CodeRabbit

  • Chores
    • Updated redirect configuration to use permanent redirects for documentation and product pages, improving SEO and cache handling across the platform.

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c3fdc5ed-f06c-4202-95b1-b6bace791f28

📥 Commits

Reviewing files that changed from the base of the PR and between 88324c8 and 3ed710a.

📒 Files selected for processing (1)
  • vercel.json

📝 Walkthrough

Walkthrough

All redirect entries in vercel.json are updated from permanent: false to permanent: true, converting every redirect from HTTP 302 (temporary) to HTTP 301 (permanent). No source/destination mappings, has conditions, or path patterns are changed.

Changes

Redirect Permanence Conversion

Layer / File(s) Summary
All redirects converted to permanent (301)
vercel.json
Root/docs entry points (lines 11–21), the main documentation redirect block covering versioned/product routes and conditional host/header rules (lines 38–1418), and trailing redirect sets for OSS/ecosystem, getting-started, self-hosted/OEL, security-compliance, identities, and solutions including /docs/solutions/solution_agentic (lines 1433–1648) all switch from permanent: false to permanent: true with no changes to source/destination values.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • ory/docs#2636: Both PRs modify vercel.json redirect rules — this PR flips permanent flags to true on existing entries, while that PR adds new /talos/... redirect entries also marked permanent: true.

Poem

🐇 Hop, hop, no more temp detours in sight,
Every redirect now permanently right!
Three-oh-one says: "This path shall remain,"
No more three-oh-two bouncing in vain.
The warren is tidy, the links are aligned —
A permanent home for all docs you will find! 🌟

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ❓ Inconclusive The PR description is incomplete; it lacks the 'Related Issue or Design Document' section and only partially fills the checklist, omitting detailed explanation of the change rationale. Add a 'Related Issue or Design Document' section explaining why this change is necessary, and provide more context about the impact of making redirects permanent.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'docs: set redirects to premanent = true' directly describes the main change, though it contains a typo ('premanent' instead of 'permanent').
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch una-update-redirects

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
vercel.json (1)

11-1643: ⚠️ Potential issue | 🟡 Minor

Test permanent redirects before deploying—verify destination accessibility and monitor browser caching.

This PR sets 329 redirects to permanent (301) status in Vercel's redirects configuration. Permanent redirects are aggressively cached by browsers and search engines, making them difficult to revert.

Specific concerns to address:

  1. Destination validation: External URLs containing regex patterns (:path, $) cannot be easily validated via HTTP checks, but a sample of concrete destinations (e.g., https://www.ory.com/docs/welcome, https://github.com/ory/kratos/blob/master/CHANGELOG.md) should be verified as accessible.

  2. Redirect stability: Confirm that destination URLs have been stable for at least 6 months and are unlikely to change soon. Changes after permanent redirect deployment require updating the rules.

  3. No problematic chains found: The detected redirect patterns (e.g., /docs/oauth2-oidc used as both source and destination in different rules) are intentional consolidation patterns, not circular chains.

Recommendation: Test in staging environment for at least 1-2 weeks before rolling out to production. Monitor 301 response counts and verify no unexpected 404s occur on destination URLs.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vercel.json` around lines 11 - 1643, Test and validate the permanent
redirects configuration in vercel.json before deploying to production. First,
deploy the redirect rules to a staging environment and test for 1-2 weeks,
monitoring HTTP responses for unexpected 404s on destination URLs. Verify that a
representative sample of destination URLs (such as
https://www.ory.com/docs/welcome,
https://github.com/ory/kratos/blob/master/CHANGELOG.md, and several destination
paths using pattern variables like :path) are currently accessible and stable.
Confirm that none of the redirect source and destination pairs form circular
chains or problematic redirect loops. Only proceed to production deployment
after validation is complete and stable behavior has been confirmed in the
staging environment.
🧹 Nitpick comments (2)
vercel.json (2)

391-398: ⚡ Quick win

Consider whether business/marketing pages warrant permanent redirects.

These redirects point to business-oriented pages (pricing, cloud landing). Marketing and pricing pages typically change more frequently than technical documentation due to evolving business needs.

Permanent redirects (301) limit flexibility for future restructuring. If these are recent redirects or might change with business strategy updates, consider keeping them temporary (302).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vercel.json` around lines 391 - 398, The redirect entries with source paths
/docs/cloud/developer and /docs/cloud/cloud-roadmap are configured with
permanent set to true, but should be changed to temporary redirects. Update the
permanent property from true to false for both of these redirect objects in the
vercel.json configuration to maintain flexibility for future business page
restructuring.

216-233: Verify GitHub master branch stability before permanent redirects.

These redirects point to CHANGELOG files on GitHub's master branch. The current URLs are all functional (HTTP 200), and all four Ory projects (hydra, keto, oathkeeper, kratos) currently use master as their default branch.

However, permanent 301 redirects are cached indefinitely by browsers. If these projects rename master to main in the future, these redirects will break. Consider either:

  • Updating redirects to use a stable branch name (e.g., latest-release or a specific release tag)
  • Monitoring for branch renames and updating redirects accordingly
  • Using temporary (302) redirects instead of permanent (301) ones for better flexibility
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@vercel.json` around lines 216 - 233, The CHANGELOG redirect rules for hydra,
keto, oathkeeper, and kratos projects use permanent (301) redirects pointing to
the master branch on GitHub. Change the "permanent": true flag to "permanent":
false for all four CHANGELOG redirect rules (the ones with sources matching
/docs/hydra/(CHANGELOG|changelog), /docs/keto/(CHANGELOG|changelog),
/docs/oathkeeper/(CHANGELOG|changelog), and /docs/kratos/(CHANGELOG|changelog))
to use temporary (302) redirects instead, which will allow these redirects to be
updated in the future if the projects change their default branch names without
breaking cached redirects.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@vercel.json`:
- Around line 366-369: The contributing redirect pattern at the destination URL
uses GitHub's master branch, which presents the same branch stability risk as
mentioned in the CHANGELOG redirects at lines 216-233. Update the destination
URL in this redirect rule to use a more stable branch (such as main instead of
master), or if keeping master, ensure this change is coordinated with the
CHANGELOG redirect verification to confirm that the master branch is stable
across all four Ory repositories (kratos, hydra, keto, oathkeeper) before
marking the redirect as permanent.
- Around line 41-48: The redirect rule with source "/keto/docs/(|v0.5/):engine"
has a destination URL that returns HTTP 404 and is marked as permanent
(permanent: true). To fix this, either update the destination URL to point to a
valid working resource (verify the correct GitHub path exists), or change the
permanent property from true to false to use temporary redirects until the
correct destination URL is confirmed. Do not keep permanent redirects pointing
to non-existent URLs as they will be cached indefinitely by browsers and search
engines.

---

Outside diff comments:
In `@vercel.json`:
- Around line 11-1643: Test and validate the permanent redirects configuration
in vercel.json before deploying to production. First, deploy the redirect rules
to a staging environment and test for 1-2 weeks, monitoring HTTP responses for
unexpected 404s on destination URLs. Verify that a representative sample of
destination URLs (such as https://www.ory.com/docs/welcome,
https://github.com/ory/kratos/blob/master/CHANGELOG.md, and several destination
paths using pattern variables like :path) are currently accessible and stable.
Confirm that none of the redirect source and destination pairs form circular
chains or problematic redirect loops. Only proceed to production deployment
after validation is complete and stable behavior has been confirmed in the
staging environment.

---

Nitpick comments:
In `@vercel.json`:
- Around line 391-398: The redirect entries with source paths
/docs/cloud/developer and /docs/cloud/cloud-roadmap are configured with
permanent set to true, but should be changed to temporary redirects. Update the
permanent property from true to false for both of these redirect objects in the
vercel.json configuration to maintain flexibility for future business page
restructuring.
- Around line 216-233: The CHANGELOG redirect rules for hydra, keto, oathkeeper,
and kratos projects use permanent (301) redirects pointing to the master branch
on GitHub. Change the "permanent": true flag to "permanent": false for all four
CHANGELOG redirect rules (the ones with sources matching
/docs/hydra/(CHANGELOG|changelog), /docs/keto/(CHANGELOG|changelog),
/docs/oathkeeper/(CHANGELOG|changelog), and /docs/kratos/(CHANGELOG|changelog))
to use temporary (302) redirects instead, which will allow these redirects to be
updated in the future if the projects change their default branch names without
breaking cached redirects.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ee47737c-7d70-4d4b-9eff-0966bbd9f565

📥 Commits

Reviewing files that changed from the base of the PR and between 2d2873d and 3802e21.

📒 Files selected for processing (1)
  • vercel.json

Comment thread vercel.json Outdated
Comment thread vercel.json

@MikeSagnelli MikeSagnelli 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.

LGTM

wassimoo and others added 6 commits June 19, 2026 14:42
* feat: Ory Network CTA for OSS deployment only

* refactor: simplify image source handling in OryNetworkCta component
* feat: improve actions ux docs

* feat: apply suggestion remove bold

* feat: apply suggestion on for one

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/reference/api.json`:
- Around line 8502-8506: The notify_previous_addresses_config_recipients field
documents the allowed values ("all", "all_verified", "removed") only in the
description text but does not enforce them at the schema level, which allows
invalid values to pass validation. Add an enum property to the
notify_previous_addresses_config_recipients field definition with the three
allowed values to ensure the schema enforces valid inputs rather than relying
solely on documentation.

In `@src/theme/TOC/index.js`:
- Around line 11-18: The isOssDeployment function incorrectly assumes the
sidebar parameter is an object with an items property, but useDocsSidebar()
actually returns an array of PropSidebarItem objects. Fix this by iterating the
sidebar array directly instead of accessing sidebar?.items, and when you
encounter category items within the array, recursively check their nested
item.items arrays to search for the OSS_SIDEBAR_LABEL. This will ensure the
category label check properly detects non-migrated OSS sections instead of being
dead code.

In `@vercel.json`:
- Line 1648: In the vercel.json file, the redirect configuration at line 1648
still has `permanent: false` which contradicts this PR's objective to make
redirects permanent. Change `permanent: false` to `permanent: true` for this
redirect entry, unless this specific route has a documented reason to remain
temporary (in which case add a comment explaining why it is intentionally exempt
from the permanent redirect requirement).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f1e71084-ab28-4f77-9f21-097cce1e32fd

📥 Commits

Reviewing files that changed from the base of the PR and between 13314ad and 88324c8.

⛔ Files ignored due to path filters (5)
  • docs/guides/integrate-with-ory-cloud-through-webhooks.mdx is excluded by !**/*.mdx
  • docs/kratos/_static/manage-identities/import-user-accounts-identities/pw-migration-webhook-step-1.png is excluded by !**/*.png
  • docs/kratos/_static/manage-identities/import-user-accounts-identities/pw-migration-webhook-step-2.png is excluded by !**/*.png
  • docs/kratos/_static/manage-identities/import-user-accounts-identities/pw-migration-webhook-table.png is excluded by !**/*.png
  • docs/kratos/manage-identities/25_import-user-accounts-identities.mdx is excluded by !**/*.mdx
📒 Files selected for processing (6)
  • docs/reference/api.json
  • docusaurus.config.ts
  • src/components/OryNetworkCta/ory-network-cta.tsx
  • src/theme/TOC/index.css
  • src/theme/TOC/index.js
  • vercel.json
💤 Files with no reviewable changes (1)
  • docusaurus.config.ts

Comment thread docs/reference/api.json
Comment thread src/theme/TOC/index.js
Comment thread vercel.json Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants