diff --git a/docs/self-hosted/oel/keto/configuration.mdx b/docs/self-hosted/oel/keto/configuration.mdx
new file mode 100644
index 000000000..484a6248b
--- /dev/null
+++ b/docs/self-hosted/oel/keto/configuration.mdx
@@ -0,0 +1,10 @@
+---
+id: configuration
+title: OEL Configuration
+---
+
+```mdx-code-block
+import ConfigMarkdown from '@site/src/components/ConfigMarkdown';
+
+
+```
diff --git a/docs/self-hosted/oel/kratos/configuration.mdx b/docs/self-hosted/oel/kratos/configuration.mdx
new file mode 100644
index 000000000..bffd20a38
--- /dev/null
+++ b/docs/self-hosted/oel/kratos/configuration.mdx
@@ -0,0 +1,10 @@
+---
+id: configuration
+title: OEL Configuration
+---
+
+```mdx-code-block
+import ConfigMarkdown from '@site/src/components/ConfigMarkdown';
+
+
+```
diff --git a/docs/self-hosted/oel/oathkeeper/configuration.mdx b/docs/self-hosted/oel/oathkeeper/configuration.mdx
new file mode 100644
index 000000000..0e2645805
--- /dev/null
+++ b/docs/self-hosted/oel/oathkeeper/configuration.mdx
@@ -0,0 +1,10 @@
+---
+id: configuration
+title: OEL Configuration
+---
+
+```mdx-code-block
+import ConfigMarkdown from '@site/src/components/ConfigMarkdown';
+
+
+```
diff --git a/docs/self-hosted/oel/oauth2/configuration.mdx b/docs/self-hosted/oel/oauth2/configuration.mdx
new file mode 100644
index 000000000..6e9b315e1
--- /dev/null
+++ b/docs/self-hosted/oel/oauth2/configuration.mdx
@@ -0,0 +1,10 @@
+---
+id: configuration
+title: OEL Configuration
+---
+
+```mdx-code-block
+import ConfigMarkdown from '@site/src/components/ConfigMarkdown';
+
+
+```
diff --git a/package-lock.json b/package-lock.json
index 8a6e69573..285d60509 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,7 @@
"name": "ory-docs",
"version": "1.0.0",
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "11.7.3",
+ "@apidevtools/json-schema-ref-parser": "14.2.0",
"@docusaurus/core": "3.8.0",
"@docusaurus/plugin-client-redirects": "3.8.0",
"@docusaurus/plugin-content-docs": "3.8.0",
@@ -352,18 +352,21 @@
}
},
"node_modules/@apidevtools/json-schema-ref-parser": {
- "version": "11.7.3",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-14.2.0.tgz",
+ "integrity": "sha512-NaGMMWwppbByagq+LwQMq6PMXHFWVu6kSwwx+eJfYTJ5zdpOvb9TIk6ZWxEEeXMUvGdVOZq3JalYsjsTZDvtkA==",
"license": "MIT",
"dependencies": {
- "@jsdevtools/ono": "^7.1.3",
- "@types/json-schema": "^7.0.15",
"js-yaml": "^4.1.0"
},
"engines": {
- "node": ">= 16"
+ "node": ">= 20"
},
"funding": {
"url": "https://github.com/sponsors/philsturgeon"
+ },
+ "peerDependencies": {
+ "@types/json-schema": "^7.0.15"
}
},
"node_modules/@babel/code-frame": {
@@ -4736,10 +4739,6 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@jsdevtools/ono": {
- "version": "7.1.3",
- "license": "MIT"
- },
"node_modules/@jsep-plugin/assignment": {
"version": "1.3.0",
"license": "MIT",
diff --git a/package.json b/package.json
index 2b5d5a87e..4b0545282 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
]
},
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "11.7.3",
+ "@apidevtools/json-schema-ref-parser": "14.2.0",
"@docusaurus/core": "3.8.0",
"@docusaurus/plugin-client-redirects": "3.8.0",
"@docusaurus/plugin-content-docs": "3.8.0",
diff --git a/src/components/ConfigMarkdown/index.tsx b/src/components/ConfigMarkdown/index.tsx
index d2a93f89b..014175859 100644
--- a/src/components/ConfigMarkdown/index.tsx
+++ b/src/components/ConfigMarkdown/index.tsx
@@ -13,6 +13,9 @@ const parser = new RefParser()
const refs = {
"ory://tracing-config": `https://raw.githubusercontent.com/ory/x/master/otelx/config.schema.json`,
"ory://logging-config": `https://raw.githubusercontent.com/ory/x/master/logrusx/config.schema.json`,
+ "ory://serve-config": `https://raw.githubusercontent.com/ory/x/master/configx/serve.schema.json`,
+ "ory://cors-config": `https://raw.githubusercontent.com/ory/x/master/configx/cors.schema.json`,
+ "ory://tls-config": `https://raw.githubusercontent.com/ory/x/master/configx/tls.schema.json`,
}
const enhance =
@@ -113,7 +116,36 @@ const enhance =
export const oryResolver = {
order: 1,
canRead: /^ory:/i,
- read: ({ url }) => axios.get(refs[url]).then(({ data }) => data),
+ read: ({ url }) =>
+ axios.get(refs[url]).then(({ data }) => {
+ // Manually resolve internal $refs for schemas that have this issue
+ const resolveInternalRefs = (obj, definitions) => {
+ if (typeof obj === "object" && obj !== null) {
+ for (const key in obj) {
+ if (
+ key === "$ref" &&
+ typeof obj[key] === "string" &&
+ obj[key].startsWith("#/definitions/")
+ ) {
+ const defName = obj[key].replace("#/definitions/", "")
+ if (definitions && definitions[defName]) {
+ // Replace the $ref with the actual definition
+ delete obj["$ref"]
+ Object.assign(obj, definitions[defName])
+ }
+ } else if (typeof obj[key] === "object") {
+ resolveInternalRefs(obj[key], definitions)
+ }
+ }
+ }
+ }
+
+ if (data.definitions) {
+ resolveInternalRefs(data, data.definitions)
+ }
+
+ return data
+ }),
}
export default function ConfigMarkdown(props: { src: string; binary: string }) {
@@ -132,6 +164,10 @@ export default function ConfigMarkdown(props: { src: string; binary: string }) {
.then((r) => r.json())
.then((schema) => {
new Promise((resolve, reject) => {
+ if (schema.title === "ORY Oathkeeper Configuration") {
+ schema["$id"] =
+ "https://github.com/ory/oathkeeper/schema/config.schema.json"
+ }
parser.dereference(
schema,
{
diff --git a/src/sidebar.ts b/src/sidebar.ts
index 8bd87cb74..6b22a823c 100644
--- a/src/sidebar.ts
+++ b/src/sidebar.ts
@@ -1192,6 +1192,7 @@ const oel: SidebarItemsConfig = [
"self-hosted/oel/oauth2/token-prefix",
"self-hosted/oel/oauth2/migrate-postgresql-ttl",
"self-hosted/oel/oauth2/revert-database-migrations",
+ "self-hosted/oel/oauth2/configuration",
],
},
{
@@ -1200,6 +1201,7 @@ const oel: SidebarItemsConfig = [
items: [
"self-hosted/oel/oathkeeper/upgrade-oathkeeper",
"self-hosted/oel/oathkeeper/changelog",
+ "self-hosted/oel/oathkeeper/configuration",
],
},
{
@@ -1208,8 +1210,14 @@ const oel: SidebarItemsConfig = [
items: [
"self-hosted/oel/kratos/upgrade",
"self-hosted/oel/kratos/changelog",
+ "self-hosted/oel/kratos/configuration",
],
},
+ {
+ type: "category",
+ label: "Ory Keto Permissions",
+ items: ["self-hosted/oel/keto/configuration"],
+ },
{
type: "category",
label: "Ory Polis",