-
Notifications
You must be signed in to change notification settings - Fork 489
chore: add page on feature deprecations #2453
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,80 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| id: index | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title: Feature Deprecations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sidebar_label: Feature Deprecations | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| This section lists all behavior that has been deprecated in Ory Kratos. It is recommended to check this section regularly to stay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| up-to-date with the latest changes and to avoid relying on deprecated functionality in your implementation. While Ory Kratos is | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| designed to be backward compatible, some improvements require changes to the underlying implementation, which may lead to the | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| deprecation of certain functionality. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
vinckr marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Ory is committed to maintaining a high level of quality and performance in our products, and deprecating features is a rare but | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| necessary step to ensure that we can continue to innovate and improve our offerings. We understand that deprecations can be | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| disruptive, and we strive to provide clear communication and ample time for users to adapt to changes. We encourage users to | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| review the deprecation information provided in this section and to reach out to our support channels if they have any questions or | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| concerns about the deprecation of features in any Ory product. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
vinckr marked this conversation as resolved.
Outdated
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Who does this apply to? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Users of the Ory Network, Ory Kratos (open source) and the OEL (Ory Enterprise License) are affected by this section. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## How to use this section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Each entry in this section provides information about the deprecated feature, including: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - A brief description of the feature and its purpose. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - The reason for deprecation, if available. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - The version in which the feature was deprecated. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Any recommended alternatives or migration paths, if applicable. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| If you're using an Ory Network project, your configuration will not change, unless you have explicitly disabled the deprecated | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| feature via a project level feature flag. To check which flags are currently enabled, go to | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| feature via a project level feature flag. To check which flags are currently enabled, go to | |
| feature via a project-level feature flag. To check which flags are currently enabled, go to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix minor grammar: “project level” → “project-level”.
Hyphenate “project-level” for consistent compound-adjective formatting.
🛠️ Proposed fix
-If you're using an Ory Network project, your configuration will not change, unless you have explicitly disabled the deprecated
-feature via a project level feature flag. To check which flags are currently enabled, go to
+If you're using an Ory Network project, your configuration will not change, unless you have explicitly disabled the deprecated
+feature via a project-level feature flag. To check which flags are currently enabled, go to
<ConsoleLink route="project.settings.advanced" />.[r a i s e _ m i n o r _ i s s u e]
[guidelines_check]
As per static analysis hint: “Use a hyphen to join words.” (QB_NEW_EN_HYPHEN)
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| If you're using an Ory Network project, your configuration will not change, unless you have explicitly disabled the deprecated | |
| feature via a project level feature flag. To check which flags are currently enabled, go to | |
| <ConsoleLink route="project.settings.advanced" />. | |
| If you're using an Ory Network project, your configuration will not change, unless you have explicitly disabled the deprecated | |
| feature via a project-level feature flag. To check which flags are currently enabled, go to | |
| <ConsoleLink route="project.settings.advanced" />. |
🧰 Tools
🪛 LanguageTool
[grammar] ~24-~24: Use a hyphen to join words.
Context: ...led the deprecated feature via a project level feature flag. To check which flags...
(QB_NEW_EN_HYPHEN)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/kratos/deprecations/index.mdx` around lines 23 - 25, Replace the
unhyphenated compound adjective "project level" with the hyphenated form
"project-level" in the sentence that references the ConsoleLink component
(ConsoleLink route="project.settings.advanced") so the phrase reads "...unless
you have explicitly disabled the deprecated feature via a project-level feature
flag." This ensures consistent compound-adjective formatting across the
deprecations page.
Copilot
AI
Apr 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This entry is framed as an "improvement" and focuses on "benefiting" from it, but the page is about deprecated behavior. It would be clearer to explicitly state what behavior is deprecated (e.g., relying on the extend endpoint returning the updated session) and, if known, the removal/default-change timeline so readers understand why they need to adapt.
| This improvement may impact users who are using the `/admin/sessions/{id}/extend` endpoint ([`extendSession`](../reference/api#tag/identity/operation/extendSession) SDK operation) to | |
| extend their users' sessions. The new implementation may result in faster response times and improved performance when extending | |
| sessions. | |
| - Why was this change made? | |
| The change was made to improve the performance and efficiency of the session extension process. By decoupling the session | |
| extension from the retrieval of the updated session information, we can reduce the processing time and resource usage for | |
| extending sessions, especially in scenarios with high traffic or large session data. | |
| - How to adapt to this change? | |
| If your application is using the updated session returned by the `/admin/sessions/{id}/extend` endpoint after the session | |
| extension, you will need to update your implementation to retrieve the updated session information separately, using the | |
| `/admin/sessions/{id}` endpoint ([`getSession`](../reference/api#tag/identity/operation/getSession) SDK operation) after the session extension. | |
| After you reviewed your usage of this API, follow the instructions below based on your deployment type to ensure that you are | |
| benefiting from the improved session extension process. | |
| <Tabs> | |
| <TabItem value="network" label="Ory Network"> | |
| Go to <ConsoleLink route="project.settings.advanced" hash="kratos_feature_flags_faster_session_extend" /> and enable the | |
| "Faster session extension" feature flag to benefit from this improvement. | |
| </TabItem> | |
| <TabItem value="self-hosted" label="Self-hosted (OSS or OEL)"> | |
| Starting with [Ory Kratos v1.3.0](https://github.com/ory/kratos/releases/tag/v1.3.0), the faster session extension process is | |
| enabled by default. If you need to disable this feature for any reason, you can set the `feature_flags.faster_session_extend` | |
| configuration option to `false` in your Kratos configuration file. | |
| This deprecation impacts users who rely on the `/admin/sessions/{id}/extend` endpoint | |
| ([`extendSession`](../reference/api#tag/identity/operation/extendSession) SDK operation) returning the updated session after | |
| extending a user's session. With `faster_session_extend` enabled, session extension is decoupled from returning the updated | |
| session data. | |
| - Why was this change made? | |
| The previous behavior was deprecated to improve the performance and efficiency of the session extension process. By decoupling | |
| session extension from retrieval of the updated session information, Ory Kratos can reduce processing time and resource usage, | |
| especially in scenarios with high traffic or large session data. | |
| - How to adapt to this change? | |
| If your application uses the updated session returned by the `/admin/sessions/{id}/extend` endpoint, update your implementation | |
| to retrieve the updated session separately after extending it by calling `/admin/sessions/{id}` | |
| ([`getSession`](../reference/api#tag/identity/operation/getSession) SDK operation). | |
| After reviewing your usage of this API, follow the instructions below based on your deployment type to adopt the non-deprecated | |
| behavior. | |
| <Tabs> | |
| <TabItem value="network" label="Ory Network"> | |
| Go to <ConsoleLink route="project.settings.advanced" hash="kratos_feature_flags_faster_session_extend" /> and enable the | |
| "Faster session extension" feature flag. | |
| </TabItem> | |
| <TabItem value="self-hosted" label="Self-hosted (OSS or OEL)"> | |
| Starting with [Ory Kratos v1.3.0](https://github.com/ory/kratos/releases/tag/v1.3.0), the faster session extension behavior | |
| is enabled by default. If your code still relies on `/admin/sessions/{id}/extend` returning the updated session, update it | |
| to call `getSession` separately, or temporarily set `feature_flags.faster_session_extend` to `false` in your Kratos | |
| configuration file. |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -4,6 +4,7 @@ import { projectPaths, workspacesPaths } from "./console-nav-data" | |||||||||||||
|
|
||||||||||||||
| type ConsoleLinkProps = { | ||||||||||||||
| route: string | ||||||||||||||
| hash?: string | ||||||||||||||
| } | ||||||||||||||
|
|
||||||||||||||
| const flatConsolePaths = [...projectPaths, ...workspacesPaths].flatMap((p) => { | ||||||||||||||
|
|
@@ -33,7 +34,7 @@ const flatConsolePaths = [...projectPaths, ...workspacesPaths].flatMap((p) => { | |||||||||||||
| * @param route a (possible nested) accesor from the routes object | ||||||||||||||
|
||||||||||||||
| * @param route a (possible nested) accesor from the routes object | |
| * @param route a (possible nested) accessor from the routes object |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Normalize and encode the fragment before appending it.
Passing hash through verbatim makes links brittle: hash="#section" renders ##section, and spaces/special characters are not encoded. Normalizing the leading # and encoding the fragment avoids malformed console links.
Suggested fix
const renderedRoute =
"https://console.ory.sh" +
resolvedRoute.replace("[project]", "current") +
- (hash ? `#${hash}` : "")
+ (hash ? `#${encodeURIComponent(hash.replace(/^#/, ""))}` : "")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "https://console.ory.sh" + | |
| resolvedRoute.replace("[project]", "current") + | |
| (hash ? `#${hash}` : "") | |
| "https://console.ory.sh" + | |
| resolvedRoute.replace("[project]", "current") + | |
| (hash ? `#${encodeURIComponent(hash.replace(/^#/, ""))}` : "") |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@src/components/ConsoleLink/console-link.tsx` around lines 65 - 67, The URL
builder currently appends the fragment verbatim causing double hashes and
unencoded characters; update the fragment handling where the URL is constructed
(using resolvedRoute and the hash variable) to first normalize by stripping any
leading '#' from hash, then apply encodeURIComponent to the normalized fragment,
and finally append it only if non-empty as `#${encodedFragment}` so spaces and
special characters are encoded and you never produce `##...`.
Copilot
AI
Apr 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hash is appended as #${hash} without any normalization/encoding. If a caller passes a value that already starts with # (or contains spaces/special chars), the resulting URL will be malformed. Consider stripping a leading # and applying encodeURIComponent to the fragment before concatenation.
Uh oh!
There was an error while loading. Please reload this page.