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",