From 8bec1955618a67f62c3ce2f96ba41c1c34cc09fa Mon Sep 17 00:00:00 2001 From: Svenum Date: Fri, 6 Jun 2025 11:07:28 +0200 Subject: [PATCH 01/11] add first api endpoint --- .../get-information-of-cache.api.mdx | 72 ++++++++++++++++ docs/API/Iglu Cache/iglu-cache-api.info.mdx | 35 ++++++++ docs/API/Iglu Cache/sidebar.ts | 24 ++++++ docusaurus.config.ts | 9 ++ static/api/cache.yml | 85 +++++++++++++++++++ 5 files changed, 225 insertions(+) create mode 100644 docs/API/Iglu Cache/get-information-of-cache.api.mdx create mode 100644 docs/API/Iglu Cache/iglu-cache-api.info.mdx create mode 100644 docs/API/Iglu Cache/sidebar.ts create mode 100644 static/api/cache.yml diff --git a/docs/API/Iglu Cache/get-information-of-cache.api.mdx b/docs/API/Iglu Cache/get-information-of-cache.api.mdx new file mode 100644 index 00000000..6df4a491 --- /dev/null +++ b/docs/API/Iglu Cache/get-information-of-cache.api.mdx @@ -0,0 +1,72 @@ +--- +id: get-information-of-cache +title: "Get information of {cache}" +description: "Get information about {cache}" +sidebar_label: "Get information of {cache}" +hide_title: true +hide_table_of_contents: true +api: eJylVV1v0zAU/SvWfQIpNB10QkTiYZoKTMA07eOFqg9Octt4JLZ3bZeGKP8d2U4hXbuBRF/qOPfjnPjc4w5KNAUJbYWSkMFHtEzIlaKG+x3Gc+Us6wpeVNhDAoRGK2nQQNbB6+nU/+1XuDjIthWyUAASKJS0KK1P41rXogiB6b3xuR2YosKG+5VtNUIGKr/HwkICmpRGsiJ2XgtbufzOIEne4CjeWBJyDQnglje69lvOIEGfgDBXLq9FMYrOlaqRy3H4itcG+wT+XrfEFXe19aU1UiOMEZHE0ynXyMsQT7hCIizPVaMJQ+ZXtJUqn8//aWzMD0RuxFoKuf6MrRmlcSLeQgLCYmP+iUF2+XaqPs1de3J/8/Pi2+l2/q18ON/M0tm7z/NrLB7Sqzemxpsv2/uL99D3CTgSz1eurNVZmg4bk0I1kbZQJGw7ypWuyZHGubNpH34JzI7J61KxyJ6ZSJ99x3ZfWBa3NtU1F8cldQTubYWETBgmj1VnK0XMVsJEFSeMlyVTElneMmd8kN8XW7ZGicQtvvqOreaCfs/Njs/skM+5j2CXyrIPysnyf5k8LrfrfHrYOQqOSWUZr2v1A/+7+VDRdz8bKsb+p8eNwvrxrdkN0gaJzYkU7UMI3VMP5F8hHC86CEpz4g1aJAPZogNPDDS3FezGHXY29VSr3jvggxOEJWSWHCaP5ckbZGoVPC+cBfTLBJphtmGNwct8zwzS0C39Y64mYI7gHNXDHJn9QUq5FunmJNT1Th1AChvZr2sX27Kzqwt4DO7Wa1iYAK5UhWtQ2mjUA+L9/AkLCfFZGKY52V3kIoRekfL2vHyxwxl9OcAU69q9MtXLCSTgWUUI08l0chK8QBnb8CCt4ds/vnrUanTv7BHp/mjkrxfWcH4jMQf/qoO8wjksfp96FhfLBCplrH/TdTk3eEd13/vtB4fUQrZYJrDhJHjuv/qig1IYvy6H6+MZuC+uB/m8ZIdSeQLtztil97kNr51/ggS88e0k2y/7BCrkJVJAFN+dFQVqO8o6uHP31Plxfgt9/wtrxsSv +sidebar_class_name: "get api-method" +info_path: docs/API/Iglu Cache/iglu-cache-api +custom_edit_url: null +hide_send_button: true +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Get information about \{cache\} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/API/Iglu Cache/iglu-cache-api.info.mdx b/docs/API/Iglu Cache/iglu-cache-api.info.mdx new file mode 100644 index 00000000..a8f08a88 --- /dev/null +++ b/docs/API/Iglu Cache/iglu-cache-api.info.mdx @@ -0,0 +1,35 @@ +--- +id: iglu-cache-api +title: "Iglu Cache API" +description: "This is the documentation of the Iglu Cache API. This Cache is part of the [Iglu Project](https://github.com/iglu-sh)." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +This is the documentation of the Iglu Cache API. This Cache is part of the [Iglu Project](https://github.com/iglu-sh). + + + \ No newline at end of file diff --git a/docs/API/Iglu Cache/sidebar.ts b/docs/API/Iglu Cache/sidebar.ts new file mode 100644 index 00000000..34a7bf2d --- /dev/null +++ b/docs/API/Iglu Cache/sidebar.ts @@ -0,0 +1,24 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +const sidebar: SidebarsConfig = { + apisidebar: [ + { + type: "doc", + id: "API/Iglu Cache/iglu-cache-api", + }, + { + type: "category", + label: "UNTAGGED", + items: [ + { + type: "doc", + id: "API/Iglu Cache/get-information-of-cache", + label: "Get information of {cache}", + className: "api-method get", + }, + ], + }, + ], +}; + +export default sidebar.apisidebar; diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 4928264f..2b12e5c9 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -86,6 +86,15 @@ const config: Config = { }, hideSendButton: true, } satisfies OpenApiPlugin.Options, + cache: { + specPath: "static/api/cache.yml", + outputDir: "docs/API/Iglu Cache", + sidebarOptions: { + groupPathsBy: "tag", + categoryLinkSource: "tag", + }, + hideSendButton: true, + } satisfies OpenApiPlugin.Options, } }, ] diff --git a/static/api/cache.yml b/static/api/cache.yml new file mode 100644 index 00000000..075ff63a --- /dev/null +++ b/static/api/cache.yml @@ -0,0 +1,85 @@ +openapi: 3.0.4 +info: + title: Iglu Cache API + description: |- + This is the documentation of the Iglu Cache API. This Cache is part of the [Iglu Project](https://github.com/iglu-sh). + version: 0.0.1 + +servers: + - url: https://example.com/api/v1 +paths: + /cache/{cache}: + parameters: + - in: path + name: cache + schema: + type: string + required: true + description: Name of the Cache + get: + summary: Get information of {cache} + description: |- + Get information about {cache} + responses: + "405": + description: Method not allowed + content: + text/plain: + schema: + type: string + example: Method Not Allowed + "404": + description: Cache Not Found + content: + text/plain: + schema: + type: string + example: Cache Not Found + "400": + description: No public signing key + content: + text/plain: + schema: + type: string + example: There is no public signing key for this cache, add one by using cachix generate-keypair {cache} + "200": + description: Information about the cache + content: + application/json: + schema: + type: object + properties: + githubUsername: + type: string + example: user + isPublic: + type: boolean + example: false + name: + type: string + example: default + permission: + type: string + example: Read + preferredCompressionMethod: + type: string + example: zstd + publicSigningKeys: + type: array + items: + type: string + example: default:N70oHEuy1jSzIZ5xEZdqCv4/49KERecq/P3sleSLxjI= + uri: + type: string + example: http://example.com + priority: + type: number + example: 40 + "500": + description: Internal Server Error + content: + plain/text: + schema: + type: string + example: Internal Server Error + From 5381e1adee4abffaa28745adae2ddbd1484016ff Mon Sep 17 00:00:00 2001 From: Svenum Date: Fri, 6 Jun 2025 16:20:19 +0200 Subject: [PATCH 02/11] add search + second api endpoint --- bun.lock | 120 ++++++++++++++---- .../get-information-of-cache.api.mdx | 72 ----------- docs/Components/Iglu Builder.md | 2 +- .../API/Iglu Builder/build.api.mdx | 10 +- .../API/Iglu Builder/healthcheck.api.mdx | 10 +- .../Iglu Builder/iglu-builder-api.info.mdx | 0 .../API/Iglu Builder/sidebar.ts | 10 +- .../Iglu Cache/api-v-1-cache-cache.api.mdx | 72 +++++++++++ .../Iglu Cache/cache-nix-cache-info.api.mdx | 72 +++++++++++ .../API/Iglu Cache/iglu-cache-api.info.mdx | 0 .../{ => Developer}/API/Iglu Cache/sidebar.ts | 12 +- docusaurus.config.ts | 30 ++--- package.json | 16 +-- static/api/builder.yml | 4 +- static/api/cache.yml | 90 +++++++++---- 15 files changed, 351 insertions(+), 169 deletions(-) delete mode 100644 docs/API/Iglu Cache/get-information-of-cache.api.mdx rename docs/{ => Developer}/API/Iglu Builder/build.api.mdx (64%) rename docs/{ => Developer}/API/Iglu Builder/healthcheck.api.mdx (62%) rename docs/{ => Developer}/API/Iglu Builder/iglu-builder-api.info.mdx (100%) rename docs/{ => Developer}/API/Iglu Builder/sidebar.ts (65%) create mode 100644 docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx create mode 100644 docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx rename docs/{ => Developer}/API/Iglu Cache/iglu-cache-api.info.mdx (100%) rename docs/{ => Developer}/API/Iglu Cache/sidebar.ts (51%) diff --git a/bun.lock b/bun.lock index c05ff745..fc130ffb 100644 --- a/bun.lock +++ b/bun.lock @@ -6,14 +6,14 @@ "dependencies": { "@docusaurus/core": "3.8.0", "@docusaurus/preset-classic": "3.8.0", - "@mdx-js/react": "^3.1.1", - "caniuse-lite": "^1.0.30001756", - "clsx": "^2.1.1", - "docusaurus-plugin-openapi-docs": "^4.5.1", - "docusaurus-theme-openapi-docs": "^4.5.1", - "prism-react-renderer": "^2.4.1", - "react": "^19.2.0", - "react-dom": "^19.2.0", + "@easyops-cn/docusaurus-search-local": "^0.50.0", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "docusaurus-plugin-openapi-docs": "^4.4.0", + "docusaurus-theme-openapi-docs": "^4.4.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", }, "devDependencies": { "@docusaurus/module-type-aliases": "3.8.0", @@ -414,6 +414,16 @@ "@docusaurus/utils-validation": ["@docusaurus/utils-validation@3.8.0", "", { "dependencies": { "@docusaurus/logger": "3.8.0", "@docusaurus/utils": "3.8.0", "@docusaurus/utils-common": "3.8.0", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "tslib": "^2.6.0" } }, "sha512-MrnEbkigr54HkdFeg8e4FKc4EF+E9dlVwsY3XQZsNkbv3MKZnbHQ5LsNJDIKDROFe8PBf5C4qCAg5TPBpsjrjg=="], + "@easyops-cn/autocomplete.js": ["@easyops-cn/autocomplete.js@0.38.1", "", { "dependencies": { "cssesc": "^3.0.0", "immediate": "^3.2.3" } }, "sha512-drg76jS6syilOUmVNkyo1c7ZEBPcPuK+aJA7AksM5ZIIbV57DMHCywiCr+uHyv8BE5jUTU98j/H7gVrkHrWW3Q=="], + + "@easyops-cn/docusaurus-search-local": ["@easyops-cn/docusaurus-search-local@0.50.0", "", { "dependencies": { "@docusaurus/plugin-content-docs": "^2 || ^3", "@docusaurus/theme-translations": "^2 || ^3", "@docusaurus/utils": "^2 || ^3", "@docusaurus/utils-common": "^2 || ^3", "@docusaurus/utils-validation": "^2 || ^3", "@easyops-cn/autocomplete.js": "^0.38.1", "@node-rs/jieba": "^1.6.0", "cheerio": "^1.0.0", "clsx": "^2.1.1", "comlink": "^4.4.2", "debug": "^4.2.0", "fs-extra": "^10.0.0", "klaw-sync": "^6.0.0", "lunr": "^2.3.9", "lunr-languages": "^1.4.0", "mark.js": "^8.11.1", "tslib": "^2.4.0" }, "peerDependencies": { "@docusaurus/theme-common": "^2 || ^3", "react": "^16.14.0 || ^17 || ^18 || ^19", "react-dom": "^16.14.0 || 17 || ^18 || ^19" } }, "sha512-wJQNa1jc1bGy8hLTnCynIjpAmldYEcwWVqqSQfKhBlIu0Px9Fw3i1PIbnbG5D1Da4Ep+FkOdWWsqFZqkiBah1Q=="], + + "@emnapi/core": ["@emnapi/core@1.4.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.2", "tslib": "^2.4.0" } }, "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="], + + "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="], + "@exodus/schemasafe": ["@exodus/schemasafe@1.3.0", "", {}, "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw=="], "@faker-js/faker": ["@faker-js/faker@5.5.3", "", {}, "sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw=="], @@ -450,6 +460,38 @@ "@mdx-js/react": ["@mdx-js/react@3.1.1", "", { "dependencies": { "@types/mdx": "^2.0.0" }, "peerDependencies": { "@types/react": ">=16", "react": ">=16" } }, "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw=="], + "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.10", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.9.0" } }, "sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ=="], + + "@node-rs/jieba": ["@node-rs/jieba@1.10.4", "", { "optionalDependencies": { "@node-rs/jieba-android-arm-eabi": "1.10.4", "@node-rs/jieba-android-arm64": "1.10.4", "@node-rs/jieba-darwin-arm64": "1.10.4", "@node-rs/jieba-darwin-x64": "1.10.4", "@node-rs/jieba-freebsd-x64": "1.10.4", "@node-rs/jieba-linux-arm-gnueabihf": "1.10.4", "@node-rs/jieba-linux-arm64-gnu": "1.10.4", "@node-rs/jieba-linux-arm64-musl": "1.10.4", "@node-rs/jieba-linux-x64-gnu": "1.10.4", "@node-rs/jieba-linux-x64-musl": "1.10.4", "@node-rs/jieba-wasm32-wasi": "1.10.4", "@node-rs/jieba-win32-arm64-msvc": "1.10.4", "@node-rs/jieba-win32-ia32-msvc": "1.10.4", "@node-rs/jieba-win32-x64-msvc": "1.10.4" } }, "sha512-GvDgi8MnBiyWd6tksojej8anIx18244NmIOc1ovEw8WKNUejcccLfyu8vj66LWSuoZuKILVtNsOy4jvg3aoxIw=="], + + "@node-rs/jieba-android-arm-eabi": ["@node-rs/jieba-android-arm-eabi@1.10.4", "", { "os": "android", "cpu": "arm" }, "sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA=="], + + "@node-rs/jieba-android-arm64": ["@node-rs/jieba-android-arm64@1.10.4", "", { "os": "android", "cpu": "arm64" }, "sha512-XyDwq5+rQ+Tk55A+FGi6PtJbzf974oqnpyCcCPzwU3QVXJCa2Rr4Lci+fx8oOpU4plT3GuD+chXMYLsXipMgJA=="], + + "@node-rs/jieba-darwin-arm64": ["@node-rs/jieba-darwin-arm64@1.10.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-G++RYEJ2jo0rxF9626KUy90wp06TRUjAsvY/BrIzEOX/ingQYV/HjwQzNPRR1P1o32a6/U8RGo7zEBhfdybL6w=="], + + "@node-rs/jieba-darwin-x64": ["@node-rs/jieba-darwin-x64@1.10.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-MmDNeOb2TXIZCPyWCi2upQnZpPjAxw5ZGEj6R8kNsPXVFALHIKMa6ZZ15LCOkSTsKXVC17j2t4h+hSuyYb6qfQ=="], + + "@node-rs/jieba-freebsd-x64": ["@node-rs/jieba-freebsd-x64@1.10.4", "", { "os": "freebsd", "cpu": "x64" }, "sha512-/x7aVQ8nqUWhpXU92RZqd333cq639i/olNpd9Z5hdlyyV5/B65LLy+Je2B2bfs62PVVm5QXRpeBcZqaHelp/bg=="], + + "@node-rs/jieba-linux-arm-gnueabihf": ["@node-rs/jieba-linux-arm-gnueabihf@1.10.4", "", { "os": "linux", "cpu": "arm" }, "sha512-crd2M35oJBRLkoESs0O6QO3BBbhpv+tqXuKsqhIG94B1d02RVxtRIvSDwO33QurxqSdvN9IeSnVpHbDGkuXm3g=="], + + "@node-rs/jieba-linux-arm64-gnu": ["@node-rs/jieba-linux-arm64-gnu@1.10.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-omIzNX1psUzPcsdnUhGU6oHeOaTCuCjUgOA/v/DGkvWC1jLcnfXe4vdYbtXMh4XOCuIgS1UCcvZEc8vQLXFbXQ=="], + + "@node-rs/jieba-linux-arm64-musl": ["@node-rs/jieba-linux-arm64-musl@1.10.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw=="], + + "@node-rs/jieba-linux-x64-gnu": ["@node-rs/jieba-linux-x64-gnu@1.10.4", "", { "os": "linux", "cpu": "x64" }, "sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g=="], + + "@node-rs/jieba-linux-x64-musl": ["@node-rs/jieba-linux-x64-musl@1.10.4", "", { "os": "linux", "cpu": "x64" }, "sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg=="], + + "@node-rs/jieba-wasm32-wasi": ["@node-rs/jieba-wasm32-wasi@1.10.4", "", { "dependencies": { "@napi-rs/wasm-runtime": "^0.2.3" }, "cpu": "none" }, "sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A=="], + + "@node-rs/jieba-win32-arm64-msvc": ["@node-rs/jieba-win32-arm64-msvc@1.10.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-nwMtViFm4hjqhz1it/juQnxpXgqlGltCuWJ02bw70YUDMDlbyTy3grCJPpQQpueeETcALUnTxda8pZuVrLRcBA=="], + + "@node-rs/jieba-win32-ia32-msvc": ["@node-rs/jieba-win32-ia32-msvc@1.10.4", "", { "os": "win32", "cpu": "ia32" }, "sha512-DCAvLx7Z+W4z5oKS+7vUowAJr0uw9JBw8x1Y23Xs/xMA4Em+OOSiaF5/tCJqZUCJ8uC4QeImmgDFiBqGNwxlyA=="], + + "@node-rs/jieba-win32-x64-msvc": ["@node-rs/jieba-win32-x64-msvc@1.10.4", "", { "os": "win32", "cpu": "x64" }, "sha512-+sqemSfS1jjb+Tt7InNbNzrRh1Ua3vProVvC4BZRPg010/leCbGFFiQHpzcPRfpxAXZrzG5Y0YBTsPzN/I4yHQ=="], + "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], "@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="], @@ -546,6 +588,8 @@ "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], + "@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="], + "@types/body-parser": ["@types/body-parser@1.19.5", "", { "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg=="], "@types/bonjour": ["@types/bonjour@3.5.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ=="], @@ -818,7 +862,7 @@ "charset": ["charset@1.0.1", "", {}, "sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg=="], - "cheerio": ["cheerio@1.0.0-rc.12", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "htmlparser2": "^8.0.1", "parse5": "^7.0.0", "parse5-htmlparser2-tree-adapter": "^7.0.0" } }, "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q=="], + "cheerio": ["cheerio@1.0.0", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "encoding-sniffer": "^0.2.0", "htmlparser2": "^9.1.0", "parse5": "^7.1.2", "parse5-htmlparser2-tree-adapter": "^7.0.0", "parse5-parser-stream": "^7.1.2", "undici": "^6.19.5", "whatwg-mimetype": "^4.0.0" } }, "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww=="], "cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="], @@ -854,6 +898,8 @@ "combine-promises": ["combine-promises@1.2.0", "", {}, "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ=="], + "comlink": ["comlink@4.4.2", "", {}, "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g=="], + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], "commander": ["commander@5.1.0", "", {}, "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="], @@ -920,7 +966,7 @@ "css-prefers-color-scheme": ["css-prefers-color-scheme@10.0.0", "", { "peerDependencies": { "postcss": "^8.4" } }, "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ=="], - "css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], + "css-select": ["css-select@5.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="], "css-tree": ["css-tree@2.3.1", "", { "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" } }, "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="], @@ -1026,6 +1072,8 @@ "encodeurl": ["encodeurl@2.0.0", "", {}, "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="], + "encoding-sniffer": ["encoding-sniffer@0.2.0", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg=="], + "enhanced-resolve": ["enhanced-resolve@5.18.1", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg=="], "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], @@ -1248,7 +1296,7 @@ "html-webpack-plugin": ["html-webpack-plugin@5.6.3", "", { "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" }, "peerDependencies": { "@rspack/core": "0.x || 1.x", "webpack": "^5.20.0" }, "optionalPeers": ["@rspack/core", "webpack"] }, "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg=="], - "htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], + "htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], "http-cache-semantics": ["http-cache-semantics@4.2.0", "", {}, "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ=="], @@ -1282,6 +1330,8 @@ "image-size": ["image-size@2.0.2", "", { "bin": { "image-size": "bin/image-size.js" } }, "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w=="], + "immediate": ["immediate@3.3.0", "", {}, "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q=="], + "immer": ["immer@9.0.21", "", {}, "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA=="], "immutable": ["immutable@5.1.2", "", {}, "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ=="], @@ -1408,6 +1458,8 @@ "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], + "klaw-sync": ["klaw-sync@6.0.0", "", { "dependencies": { "graceful-fs": "^4.1.11" } }, "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ=="], + "kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="], "latest-version": ["latest-version@7.0.0", "", { "dependencies": { "package-json": "^8.1.0" } }, "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg=="], @@ -1446,6 +1498,12 @@ "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "lunr": ["lunr@2.3.9", "", {}, "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow=="], + + "lunr-languages": ["lunr-languages@1.14.0", "", {}, "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA=="], + + "mark.js": ["mark.js@8.11.1", "", {}, "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ=="], + "markdown-extensions": ["markdown-extensions@2.0.0", "", {}, "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q=="], "markdown-table": ["markdown-table@2.0.0", "", { "dependencies": { "repeat-string": "^1.0.0" } }, "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A=="], @@ -1726,6 +1784,8 @@ "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="], + "parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="], + "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="], "pascal-case": ["pascal-case@3.1.2", "", { "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" } }, "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g=="], @@ -2260,6 +2320,8 @@ "typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="], + "undici": ["undici@6.21.3", "", {}, "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw=="], + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], "unicode-canonical-property-names-ecmascript": ["unicode-canonical-property-names-ecmascript@2.0.1", "", {}, "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg=="], @@ -2370,6 +2432,10 @@ "websocket-extensions": ["websocket-extensions@0.1.4", "", {}, "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="], + "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], + + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], + "whatwg-url": ["whatwg-url@5.0.0", "", { "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="], "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], @@ -2430,7 +2496,9 @@ "@docusaurus/mdx-loader/remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="], - "@docusaurus/theme-classic/@mdx-js/react": ["@mdx-js/react@3.1.0", "", { "dependencies": { "@types/mdx": "^2.0.0" }, "peerDependencies": { "@types/react": ">=16", "react": ">=16" } }, "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ=="], + "@docusaurus/plugin-content-blog/cheerio": ["cheerio@1.0.0-rc.12", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "htmlparser2": "^8.0.1", "parse5": "^7.0.0", "parse5-htmlparser2-tree-adapter": "^7.0.0" } }, "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q=="], + + "@easyops-cn/docusaurus-search-local/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], "@pnpm/network.ca-file/graceful-fs": ["graceful-fs@4.2.10", "", {}, "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="], @@ -2458,12 +2526,6 @@ "body-parser/iconv-lite": ["iconv-lite@0.4.24", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3" } }, "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="], - "browserslist/caniuse-lite": ["caniuse-lite@1.0.30001720", "", {}, "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g=="], - - "caniuse-api/caniuse-lite": ["caniuse-lite@1.0.30001720", "", {}, "sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g=="], - - "cheerio-select/css-select": ["css-select@5.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="], - "clean-css/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "cli-table3/string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], @@ -2488,10 +2550,6 @@ "css-minimizer-webpack-plugin/jest-worker": ["jest-worker@29.7.0", "", { "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" } }, "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw=="], - "css-select/domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], - - "css-select/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], - "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], "decompress-response/mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], @@ -2822,6 +2880,8 @@ "remark-stringify/@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], + "renderkid/css-select": ["css-select@4.3.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ=="], + "renderkid/htmlparser2": ["htmlparser2@6.1.0", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A=="], "renderkid/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], @@ -2864,8 +2924,6 @@ "svgo/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], - "svgo/css-select": ["css-select@5.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="], - "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], "unified/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], @@ -2924,6 +2982,8 @@ "@docusaurus/mdx-loader/remark-gfm/micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="], + "@docusaurus/plugin-content-blog/cheerio/htmlparser2": ["htmlparser2@8.0.2", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1", "entities": "^4.4.0" } }, "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA=="], + "@redocly/openapi-core/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -2946,8 +3006,6 @@ "css-minimizer-webpack-plugin/jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], - "css-select/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], - "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], "express/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], @@ -3132,6 +3190,10 @@ "remark-stringify/@types/mdast/@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], + "renderkid/css-select/domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], + + "renderkid/css-select/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], + "renderkid/htmlparser2/domhandler": ["domhandler@4.3.1", "", { "dependencies": { "domelementtype": "^2.2.0" } }, "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ=="], "renderkid/htmlparser2/domutils": ["domutils@2.8.0", "", { "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A=="], @@ -3222,8 +3284,6 @@ "cli-table3/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "css-select/domutils/dom-serializer/entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], - "file-loader/schema-utils/ajv/json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], "mdast-util-gfm-footnote/mdast-util-to-markdown/mdast-util-phrasing/unist-util-is": ["unist-util-is@5.2.1", "", { "dependencies": { "@types/unist": "^2.0.0" } }, "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw=="], @@ -3308,6 +3368,8 @@ "remark-gfm/unified/vfile/vfile-message": ["vfile-message@3.1.4", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" } }, "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw=="], + "renderkid/css-select/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], + "renderkid/htmlparser2/domutils/dom-serializer": ["dom-serializer@1.4.1", "", { "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag=="], "sucrase/glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], @@ -3370,6 +3432,8 @@ "react-markdown/remark-rehype/mdast-util-to-hast/micromark-util-sanitize-uri/micromark-util-encode": ["micromark-util-encode@1.1.0", "", {}, "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw=="], + "renderkid/css-select/domutils/dom-serializer/entities": ["entities@2.2.0", "", {}, "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="], + "@docusaurus/mdx-loader/rehype-raw/hast-util-raw/hast-util-from-parse5/hastscript/hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="], "@docusaurus/mdx-loader/remark-gfm/mdast-util-gfm/mdast-util-gfm-autolink-literal/micromark-util-character/micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], diff --git a/docs/API/Iglu Cache/get-information-of-cache.api.mdx b/docs/API/Iglu Cache/get-information-of-cache.api.mdx deleted file mode 100644 index 6df4a491..00000000 --- a/docs/API/Iglu Cache/get-information-of-cache.api.mdx +++ /dev/null @@ -1,72 +0,0 @@ ---- -id: get-information-of-cache -title: "Get information of {cache}" -description: "Get information about {cache}" -sidebar_label: "Get information of {cache}" -hide_title: true -hide_table_of_contents: true -api: eJylVV1v0zAU/SvWfQIpNB10QkTiYZoKTMA07eOFqg9Octt4JLZ3bZeGKP8d2U4hXbuBRF/qOPfjnPjc4w5KNAUJbYWSkMFHtEzIlaKG+x3Gc+Us6wpeVNhDAoRGK2nQQNbB6+nU/+1XuDjIthWyUAASKJS0KK1P41rXogiB6b3xuR2YosKG+5VtNUIGKr/HwkICmpRGsiJ2XgtbufzOIEne4CjeWBJyDQnglje69lvOIEGfgDBXLq9FMYrOlaqRy3H4itcG+wT+XrfEFXe19aU1UiOMEZHE0ynXyMsQT7hCIizPVaMJQ+ZXtJUqn8//aWzMD0RuxFoKuf6MrRmlcSLeQgLCYmP+iUF2+XaqPs1de3J/8/Pi2+l2/q18ON/M0tm7z/NrLB7Sqzemxpsv2/uL99D3CTgSz1eurNVZmg4bk0I1kbZQJGw7ypWuyZHGubNpH34JzI7J61KxyJ6ZSJ99x3ZfWBa3NtU1F8cldQTubYWETBgmj1VnK0XMVsJEFSeMlyVTElneMmd8kN8XW7ZGicQtvvqOreaCfs/Njs/skM+5j2CXyrIPysnyf5k8LrfrfHrYOQqOSWUZr2v1A/+7+VDRdz8bKsb+p8eNwvrxrdkN0gaJzYkU7UMI3VMP5F8hHC86CEpz4g1aJAPZogNPDDS3FezGHXY29VSr3jvggxOEJWSWHCaP5ckbZGoVPC+cBfTLBJphtmGNwct8zwzS0C39Y64mYI7gHNXDHJn9QUq5FunmJNT1Th1AChvZr2sX27Kzqwt4DO7Wa1iYAK5UhWtQ2mjUA+L9/AkLCfFZGKY52V3kIoRekfL2vHyxwxl9OcAU69q9MtXLCSTgWUUI08l0chK8QBnb8CCt4ds/vnrUanTv7BHp/mjkrxfWcH4jMQf/qoO8wjksfp96FhfLBCplrH/TdTk3eEd13/vtB4fUQrZYJrDhJHjuv/qig1IYvy6H6+MZuC+uB/m8ZIdSeQLtztil97kNr51/ggS88e0k2y/7BCrkJVJAFN+dFQVqO8o6uHP31Plxfgt9/wtrxsSv -sidebar_class_name: "get api-method" -info_path: docs/API/Iglu Cache/iglu-cache-api -custom_edit_url: null -hide_send_button: true ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; - - - - - - - - - - -Get information about \{cache\} - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/Components/Iglu Builder.md b/docs/Components/Iglu Builder.md index 0343576a..982a94ef 100644 --- a/docs/Components/Iglu Builder.md +++ b/docs/Components/Iglu Builder.md @@ -8,7 +8,7 @@ sidebar_position: 1 The **Iglu Builder** is the component of the Iglu Project that can build [nix derivations](https://nix.dev/manual/nix/2.25/language/derivations) and push it to [cachix](https://www.cachix.org/) compatible nix caches like our [Iglu Cache](/docs/Components/Iglu%20Cache). ## Websocket -This is the documentation to the [`/api/v1/build` Websocket](/docs/API/Iglu%20Builder/build) +This is the documentation to the [`/api/v1/build` Websocket](/docs/Developer/API/Iglu%20Builder/build) :::info This Endpoint accepts only **one** connection simultaneously! diff --git a/docs/API/Iglu Builder/build.api.mdx b/docs/Developer/API/Iglu Builder/build.api.mdx similarity index 64% rename from docs/API/Iglu Builder/build.api.mdx rename to docs/Developer/API/Iglu Builder/build.api.mdx index 6d47b3b9..04940593 100644 --- a/docs/API/Iglu Builder/build.api.mdx +++ b/docs/Developer/API/Iglu Builder/build.api.mdx @@ -1,13 +1,13 @@ --- id: build -title: "Start build websocket" +title: "/api/v1/build" description: "Create a websocket to start a build job." -sidebar_label: "Start build websocket" +sidebar_label: "/api/v1/build" hide_title: true hide_table_of_contents: true -api: eJzNVdtu4zYQ/RViigK7gGIlffRbGrRFsm03QHbRB69RUNJEYlbicGeGsV3DwP5D/7BfsiB9iesoCPrWJwnkzOE5M8PDNTQoNbugjjxM4YrRKhprFlgJ1Z9RjZIRtazGmiq6vjEPVE3MJ/8bMRrn74kHm7KNrSiq0Q7NH4fkFUVTW2/unW/MrEPG+ZuyoVrKKxoCefQq5XXbx+9/OP8xoSN/d8h+CwVQQM7w1w1MIROAAhglkBcUmK7h4vwiff4t5G7htO6cb80tk1JNvZh/vv6dqN1tqS0cN8bG+xYrG3UCBSzPDqoT4IAitsX0K+ib52fc3L3/3fwVB3OX6oPeoPMoJus4u6FKEmhNXtFnQBtC7+qspnyQBLEGXQWEKVD1gLVCAYGTYnVbaa3T14MYA4lT4tVRrCg738KmgIqtr7vRrdbpR0H2dsCX9t/hOCrjl+gY5TLqMXZF1KP1KcLTVU8exzaf8huYzg6R88Q2Fe99rrC8Lr0mxuMwH4cKOZ0+2GXqwOjeZ8TwZ0tJyShzXCrbS25lVLnEStRpVOTjAMtsV1CAUxzGEjcFKEdRbG5j1bv6Ha7+Y3pNw2C3c/iMVG3rzi1fL1iI8kK71HKLOgpug3tpDMS13vl2fPukzfns+enqXtVBw7OIdAlOBmNegDrtcW8JN1TBZptXo3vEET9AfkQ+u/S6oHxXFw7TvdUohfmVWjHUIJufseuRJwkswQ2oHSXjSaUpINg07FDubUgyqMB0tobIPUyhUw0yLUtc2iH0OKlpKG1w5eMFbOYFJLvMhdqRT85ndr5nLm+voTih/aFzYpxkV22ojgN63bot3efFU4SJySn7FScmJO/eRc9y+C1TGo75mz3b1mkXq0zWtX08k+5tsq6kbUvjfHI+uUj9DiQ62OxcW9eA7H27l+HJPk90rJ9s8P/3xOymVnGpZeity9cht3O96/hs9/DMC+hINC2s15UV/Mj9ZpOWv0RM9jubF/Bo2dkqtXc2Px6hX376AJvNN+8Gl2I= +api: eJzNVdtuG0cM/ZUBiwAJsNbafdSba7SFnbYx4AR9UIVidpbeHWd3OCE5llRBQP8hf5gvKWZ1iSKvYeStTxKG5JlzSM7ZNdQojn1UTwGmcMVoFY01C6yE3EdUo2RELauxpkq+q80DVRPzV/idGI0P98S9zdXGVpTUaIvmz0PxipJxNph7H2oza5Fx/rqsyUl5RX2kgEGlvG669OrH858yOvIPh+o3UABF5AH+uoYpDASgAEaJFAQFpmu4OL/IP98KuVt4da0PjbllUnLUifny7+dM7W5LbeG5NjbdN1jZpBMoYHl2UJ0BexSxDea/gqF+esfN3bs/zD+pN3e5PxgM+oBiBh1nN1RJBnUUFMMAaGPsvBvUlA+SIdagq4gwBaoe0CkUEDkrVr+V1nh9OYkxknglXh3lirIPDWwKqNgG146GGq8fBDnYHp+Lv8VxVMZPyTPKZdJj7IqoQxtyRqCrjgKOBb/W1zCdHTLnmW1u3ruhw/KydEeMx2kh9RVyvr23yzyB0dhHxPh3Q1nJKHNcKttLbmRUuaRK1GtS5OMEy2xXUIBX7McKNwUoJ1Gsb1PVefcWV99Z7qjv7XYPn5By1rV++XLDYpJnxqWWG9RRcBv9c2sgvgk+NOPhkzEPd89PT/eqDhqeZORHcLIY8wLUa4d7S7ihCjbbOof+EUf8APkR+ewy6IKGt7rwmN+tJinMb9SIoRrZ/IJthzzJYBmuR20pG09uTQHR5mWHcm9DMoAKTGdrSNzBFFrVKNOyxKXtY4cTR31poy8fL2AzLyDb5dCoHfnsfGbne+by9hqKE9rvWy/Gy+CqNbnUY9Ct29L9cHiKMDFDyf7Ei4nZu3fZsyH9likvx/z1nm3jtU3VQNY3XTqT9k22rqxtS+N8cj65yPOOJNrbwbm2rgE7eYeefMN//dX+/n+flt22Ki61jJ31wzMYxrjeTXq2++DMC2hJNB+s15UV/MDdZpOPPyXMtjubF/Bo2dsqj3U2P16dX39+D5vNf0T/k7s= sidebar_class_name: "get api-method" -info_path: docs/API/Iglu Builder/iglu-builder-api +info_path: docs/Developer/API/Iglu Builder/iglu-builder-api custom_edit_url: null hide_send_button: true --- @@ -23,7 +23,7 @@ import Heading from "@theme/Heading"; diff --git a/docs/API/Iglu Builder/healthcheck.api.mdx b/docs/Developer/API/Iglu Builder/healthcheck.api.mdx similarity index 62% rename from docs/API/Iglu Builder/healthcheck.api.mdx rename to docs/Developer/API/Iglu Builder/healthcheck.api.mdx index 9af78ed5..ccc5725b 100644 --- a/docs/API/Iglu Builder/healthcheck.api.mdx +++ b/docs/Developer/API/Iglu Builder/healthcheck.api.mdx @@ -1,13 +1,13 @@ --- id: healthcheck -title: "healthcheck" +title: "/api/v1/healthcheck" description: "Endpoint to check the service health of the Builder" -sidebar_label: "healthcheck" +sidebar_label: "/api/v1/healthcheck" hide_title: true hide_table_of_contents: true -api: eJylUsFu3CAQ/RU6p1Si603VXrhtpSjaQ6sc0tPKBxZPDA0GCmM3K4t/r8DrNru5tSfEMG/e472ZocOkoglkvAMBd64L3jhi5JnSqJ4ZaWQJ42QUMo3Skmb+qVa/jMZ2GIGDDxhlmbDvQMDSVdHAIWIK3iVMIGb4uN2W44pzwngibVzPTGJxdM64Hjgo7wgdFQDhCzXBSuPKLSmNg6z1U0AQkCguEHyRQ7D4Z2iZmRCHdJZ+egc558zh0/bzWyFfkbTvkDmjNDGMVo5H+l8hy1D2zRPbWet/YVclZA5DfQEBPRaWIEmDgObSvmI9xgTiMMMYbbGXKCTRNGeKjfJDI4NpplvILQfjnnxVZKjy73s7rlGx3cMe+NWvH7VJxfgSaefVOKCjGuaa8/WEDauQtWISCzLS2n2o7Q/R/0BF7c2qtjekx2MVa3o7fkj6/QY4lL8tMrab7eYWMofgEw2y+uvkgG8W6kL9/Decf9zdc3Kvgs18cXo+R3K4ENBy0D5RKc/zUSb8Hm3OpfxzxHgCcWg5TDIaeSz+H9rMC76QlQyf8QQCdkphKKFP0o7X9O2r1bi/e4ScfwOQ1EGl +api: eJylUsFu1DAQ/RUzpyKZZIvgktsiVdUeQD2UU5SD15nGpo5t7MnSVeR/R/Ym0E1vcIoynjfvzXszQ49RBu1JOwsN3NneO22JkWNSoXxmpJBFDCctkSkUhhRzT6X6ZdKmxwAcnMcg8oRDDw1cugoaOASM3tmIEZoZPu52+bPhPGE4k9J2YDqyMFmr7QAcpLOEljKA8IVqb4S2+S9KhaMo9bNHaCBSuEDwRYze4J+heWZEHOMi/fwOUkqJw6fd57dCviIp1yOzWipiGIyYjvS/Qi5D2TdHbG+M+4V9kZA4jOUFGhgws3hBChqor+3L1mOI0LQzTMFke4l8bOp6oaikG2vhdX26hdRx0PbJFUWaCv9hMNMaFds/HIBvtn5UOmbjc6S9k9OIlkqYa87bCRUrkLWiI/Mi0NrdlvaH4H6gpO5mVTtoUtOxiNWDmT5E9b4CDnm3i4xdtatuIXHwLtIoir9WjHmFZb2NM1dbzH9D+scbXhJ8FXDiF8fnJZr26rI7DspFyuV5PoqI34NJKZd/ThjO0LQdh5MIWhxzDm2XeMZnspzlM56hgb2U6HP4J2GmLX336kTu7x4hpd9W40QT sidebar_class_name: "get api-method" -info_path: docs/API/Iglu Builder/iglu-builder-api +info_path: docs/Developer/API/Iglu Builder/iglu-builder-api custom_edit_url: null hide_send_button: true --- @@ -23,7 +23,7 @@ import Heading from "@theme/Heading"; diff --git a/docs/API/Iglu Builder/iglu-builder-api.info.mdx b/docs/Developer/API/Iglu Builder/iglu-builder-api.info.mdx similarity index 100% rename from docs/API/Iglu Builder/iglu-builder-api.info.mdx rename to docs/Developer/API/Iglu Builder/iglu-builder-api.info.mdx diff --git a/docs/API/Iglu Builder/sidebar.ts b/docs/Developer/API/Iglu Builder/sidebar.ts similarity index 65% rename from docs/API/Iglu Builder/sidebar.ts rename to docs/Developer/API/Iglu Builder/sidebar.ts index 5b57c787..b3147266 100644 --- a/docs/API/Iglu Builder/sidebar.ts +++ b/docs/Developer/API/Iglu Builder/sidebar.ts @@ -4,7 +4,7 @@ const sidebar: SidebarsConfig = { apisidebar: [ { type: "doc", - id: "API/Iglu Builder/iglu-builder-api", + id: "Developer/API/Iglu Builder/iglu-builder-api", }, { type: "category", @@ -12,14 +12,14 @@ const sidebar: SidebarsConfig = { items: [ { type: "doc", - id: "API/Iglu Builder/build", - label: "Start build websocket", + id: "Developer/API/Iglu Builder/build", + label: "/api/v1/build", className: "api-method get", }, { type: "doc", - id: "API/Iglu Builder/healthcheck", - label: "healthcheck", + id: "Developer/API/Iglu Builder/healthcheck", + label: "/api/v1/healthcheck", className: "api-method get", }, ], diff --git a/docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx b/docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx new file mode 100644 index 00000000..d8b42569 --- /dev/null +++ b/docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx @@ -0,0 +1,72 @@ +--- +id: api-v-1-cache-cache +title: "/api/v1/cache/{cache}" +description: "Get settings of a {cache}" +sidebar_label: "/api/v1/cache/{cache}" +hide_title: true +hide_table_of_contents: true +api: eJylVcFu2zgQ/RViTi3AWk7XQbEC9hAEbjfobhDE6aWGD7Q0lphKJDOkXKuC/n1BUtrKiZMWiC+S6Hkzb8g3jx3kaDOSxkmtIIVP6JhF56QqLNM7JliXiazEHjgQWqOVRQtpB+/nc/84Rq8mSFciC1DgkGnlUDkPEMZUMhMekNxbj+rAZiXWwr+51iCkoLf3mDngYEgbJCdjzUK6stl+sUhK1DiJt46kKoADHkRtKr/UWCToOUh702wrmU2it1pXKNQ0fCcqiz2HX+fNcSeayvnUBqmW1srYxPOQWxR5iCfcIRHml7o2hAH5L7pS5y/jf1gX8aGRlSyUVMVnbO0EJohECxykw9r+Vgfp9Ye5/nvZtGf3qx9XX88Py6/5w+V+kSz+/Ly8xewhufnDVrj653B/9Rf0PYeG5MuZS+dMmiTDwizTdWxbapKunWBVU2+RptjFvA8/DotTwrrWLHbPbGyffcP2WFgODy4xlZCnJXWC7l2JhExapk5lZztNzJXSRhVzJvKcaYVs27LG+iC/Lg+sQIUkHL77hq0Rkv6fmLGfxdN+Ln0Eu9aOfdSNyl/byeN0Y+Xzp5Wj4ELsRVXp7/jq4icyxvrnp07ySjk/vhVbIe2R2JJI02spnE46CMoIEjU6JAvpugOfFYxwJYzjDqNNPVeq99730EjCHFJHDfLH8hQ1jp4XzgL6DYd6mG0oMHiZr5lCIoxM9mdJKJr8dFcbqEeODVXDONlxnvQwTxsOUu10ICld7L6omliWXdxcwWNyd17D0gZyuc6aGpUL/jsyPsbPWADEb2mZEeTGyHUIvSHt7XnzZiQYfdnzS2RRNe9s+XYGHHw7kcJ8Np+dBS/Q1tUinOuw989tx1EP3U95vHhDDcc2EVCwrcpniNu/BmGk53bmNTecexpfNhxKbZ0P6rqtsPiFqr73yw8NUgvpesNhL0iKrd/3dQe5tP49Hy6QF1i/uR0E9JY9FcszxEdrV97p9qJq/Bdw8NY3irbf9BxKFDlSYBT/u8gyNG6CenLrHunz0/IO+v4/RYm+Wg== +sidebar_class_name: "get api-method" +info_path: docs/Developer/API/Iglu Cache/iglu-cache-api +custom_edit_url: null +hide_send_button: true +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Get settings of a \{cache\} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx b/docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx new file mode 100644 index 00000000..e6e0f599 --- /dev/null +++ b/docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx @@ -0,0 +1,72 @@ +--- +id: cache-nix-cache-info +title: "/{cache}/nix-cache-info" +description: "Get cache information" +sidebar_label: "/{cache}/nix-cache-info" +hide_title: true +hide_table_of_contents: true +api: eJytVE1T2zAQ/SuaPcGMEocWLrox/RoO0LTQ4RByUOxNrNaWzGpNyXj03zuS45IP0gs9WVpr9719+6QOCvQ5mYaNs6DgC7LIdV6iMHbpqNYpLoHQN8569KA6eDeZxM9u5tXLeeGWgkvsC4GE3FlGyzGH8ZmzptLGxp3PS6x1iq8bBAWeydgVSMBnXTdVDN2yI/xoSInMmufMx+2DvdeWr7X331qktRJnD3ZKxpHhtRLnkwcLIYQg4Xzy/pDph9TfjWMxbReVyd/K8KDegH3+L+zPrrXF/4Puyw3IF4fI18ilK9LZy6pyv/HN4K9U7PEvXvcHI1ldiVukJyTxicjRWym8XjT0NBpNukZG8qBmHcSq0GguQYLVdUwfDHoMKkTjP7aGsADF1KLca+pG1zi4Pc0CwlxCnYSJaM4zyB5UQdYlvBB9PErLUbxkET+x72m2VIGCkrnxKstSqw7HuatT6ZQQeRruBVhVbY8sLqdXsM/vrjReGJ/4FS5va7S8c0V388ciJfR740WjiYeTs3R0Su4n5jw/GQiuDJftIvLLzKpqR748HYOE2E5PYTKejM+iklGMWqfRbuQ/LshOF92LR46+T5u5bTkoyF7KbiP/DNQw7j24uYQyDkrNoOsW2uMPqkKI4cf4uoCazSU8aTJ6ETWfdVAYH9cFqKWu/L4rtvmefN/451QceuUI7U1Q23UUUldt3IGEX7j+69kwDxJK1AVSYtT/u8xzbHgra7vwtjGnX2/vIIQ/GioJ5g== +sidebar_class_name: "post api-method" +info_path: docs/Developer/API/Iglu Cache/iglu-cache-api +custom_edit_url: null +hide_send_button: true +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Get cache information + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/API/Iglu Cache/iglu-cache-api.info.mdx b/docs/Developer/API/Iglu Cache/iglu-cache-api.info.mdx similarity index 100% rename from docs/API/Iglu Cache/iglu-cache-api.info.mdx rename to docs/Developer/API/Iglu Cache/iglu-cache-api.info.mdx diff --git a/docs/API/Iglu Cache/sidebar.ts b/docs/Developer/API/Iglu Cache/sidebar.ts similarity index 51% rename from docs/API/Iglu Cache/sidebar.ts rename to docs/Developer/API/Iglu Cache/sidebar.ts index 34a7bf2d..7167856d 100644 --- a/docs/API/Iglu Cache/sidebar.ts +++ b/docs/Developer/API/Iglu Cache/sidebar.ts @@ -4,7 +4,7 @@ const sidebar: SidebarsConfig = { apisidebar: [ { type: "doc", - id: "API/Iglu Cache/iglu-cache-api", + id: "Developer/API/Iglu Cache/iglu-cache-api", }, { type: "category", @@ -12,10 +12,16 @@ const sidebar: SidebarsConfig = { items: [ { type: "doc", - id: "API/Iglu Cache/get-information-of-cache", - label: "Get information of {cache}", + id: "Developer/API/Iglu Cache/api-v-1-cache-cache", + label: "/api/v1/cache/{cache}", className: "api-method get", }, + { + type: "doc", + id: "Developer/API/Iglu Cache/cache-nix-cache-info", + label: "/{cache}/nix-cache-info", + className: "api-method post", + }, ], }, ], diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 2b12e5c9..35e413b7 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -49,21 +49,6 @@ const config: Config = { 'https://github.com/iglu-sh/docs/tree/main/', docItemComponent: "@theme/ApiItem", }, - blog: { - showReadingTime: true, - feedOptions: { - type: ['rss', 'atom'], - xslt: true, - }, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/iglu-sh/docs/tree/main/', - // Useful options to enforce blogging best practices - onInlineTags: 'warn', - onInlineAuthors: 'warn', - onUntruncatedBlogPosts: 'warn', - }, theme: { customCss: './src/css/custom.css', }, @@ -79,7 +64,7 @@ const config: Config = { config: { builder: { specPath: "static/api/builder.yml", - outputDir: "docs/API/Iglu Builder", + outputDir: "docs/Developer/API/Iglu Builder", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -88,7 +73,7 @@ const config: Config = { } satisfies OpenApiPlugin.Options, cache: { specPath: "static/api/cache.yml", - outputDir: "docs/API/Iglu Cache", + outputDir: "docs/Developer/API/Iglu Cache", sidebarOptions: { groupPathsBy: "tag", categoryLinkSource: "tag", @@ -99,7 +84,16 @@ const config: Config = { }, ] ], - themes: ["docusaurus-theme-openapi-docs"], + themes: [ + "docusaurus-theme-openapi-docs", + [ + require.resolve("@easyops-cn/docusaurus-search-local"), + /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */ + ({ + hashed: true, + }), + ], + ], themeConfig: { // Replace with your project's social card image: 'img/logo.jpeg', diff --git a/package.json b/package.json index cb94378c..2dbb1b8c 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,14 @@ "dependencies": { "@docusaurus/core": "3.8.0", "@docusaurus/preset-classic": "3.8.0", - "@mdx-js/react": "^3.1.1", - "caniuse-lite": "^1.0.30001756", - "clsx": "^2.1.1", - "docusaurus-plugin-openapi-docs": "^4.5.1", - "docusaurus-theme-openapi-docs": "^4.5.1", - "prism-react-renderer": "^2.4.1", - "react": "^19.2.0", - "react-dom": "^19.2.0" + "@easyops-cn/docusaurus-search-local": "^0.50.0", + "@mdx-js/react": "^3.0.0", + "clsx": "^2.0.0", + "docusaurus-plugin-openapi-docs": "^4.4.0", + "docusaurus-theme-openapi-docs": "^4.4.0", + "prism-react-renderer": "^2.3.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { "@docusaurus/module-type-aliases": "3.8.0", diff --git a/static/api/builder.yml b/static/api/builder.yml index 4f6cfc9e..cf62c403 100644 --- a/static/api/builder.yml +++ b/static/api/builder.yml @@ -12,7 +12,7 @@ servers: paths: /build: get: - summary: Start build websocket + summary: /api/v1/build description: |- Create a websocket to start a build job. More information about the Websocket you can find [here](/docs/Components/Iglu%20Builder#Websocket) @@ -31,7 +31,7 @@ paths: description: Server-Antworten wie Status, Logs oder Fehler. /healthcheck: get: - summary: healthcheck + summary: /api/v1/healthcheck description: Endpoint to check the service health of the Builder operationId: healthcheck responses: diff --git a/static/api/cache.yml b/static/api/cache.yml index 075ff63a..672caad3 100644 --- a/static/api/cache.yml +++ b/static/api/cache.yml @@ -6,9 +6,9 @@ info: version: 0.0.1 servers: - - url: https://example.com/api/v1 + - url: https://exampoe.com paths: - /cache/{cache}: + /api/v1/cache/{cache}: parameters: - in: path name: cache @@ -17,24 +17,12 @@ paths: required: true description: Name of the Cache get: - summary: Get information of {cache} + summary: /api/v1/cache/{cache} description: |- - Get information about {cache} + Get settings of a {cache} responses: - "405": - description: Method not allowed - content: - text/plain: - schema: - type: string - example: Method Not Allowed "404": - description: Cache Not Found - content: - text/plain: - schema: - type: string - example: Cache Not Found + $ref: "#/components/responses/cacheNotFound" "400": description: No public signing key content: @@ -43,7 +31,7 @@ paths: type: string example: There is no public signing key for this cache, add one by using cachix generate-keypair {cache} "200": - description: Information about the cache + description: Settings of the cache content: application/json: schema: @@ -75,11 +63,69 @@ paths: priority: type: number example: 40 + "405": + $ref: "#/components/responses/methodNotFound" "500": - description: Internal Server Error + $ref: "#/components/responses/internalServerError" + /{cache}/nix-cache-info: + parameters: + - in: path + name: cache + schema: + type: string + required: true + description: Name of the Cache + post: + summary: /{cache}/nix-cache-info + description: |- + Get cache information + responses: + "200": + description: Information of the cache content: - plain/text: + text/plain: schema: type: string - example: Internal Server Error - + example: | + StoreDir: /nix/store + WantMassQuery: 1 + Priority: 40 + "404": + $ref: "#/components/responses/cacheNotFound" + "403": + description: Cache Not Public + content: + text/plain: + schema: + type: string + example: Cache Not Public + "405": + $ref: "#/components/responses/methodNotFound" + "500": + $ref: "#/components/responses/internalServerError" + + +components: + responses: + "methodNotFound": + description: Method Not Allowed + content: + text/plain: + schema: + type: string + example: Method Not Allowed + "internalServerError": + description: Internal Server Error + content: + text/plain: + schema: + type: string + example: Internal Server Error + "cacheNotFound": + description: Cache Not Found + content: + text/plain: + schema: + type: string + example: Cache Not Found + From 65d71924658c3a7dfb35516efb6cada0ee2305e5 Mon Sep 17 00:00:00 2001 From: Svenum Date: Fri, 6 Jun 2025 16:22:47 +0200 Subject: [PATCH 03/11] add component --- static/api/cache.yml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/static/api/cache.yml b/static/api/cache.yml index 672caad3..a6408169 100644 --- a/static/api/cache.yml +++ b/static/api/cache.yml @@ -10,12 +10,7 @@ servers: paths: /api/v1/cache/{cache}: parameters: - - in: path - name: cache - schema: - type: string - required: true - description: Name of the Cache + - $ref: "#/components/parameters/cache" get: summary: /api/v1/cache/{cache} description: |- @@ -69,12 +64,7 @@ paths: $ref: "#/components/responses/internalServerError" /{cache}/nix-cache-info: parameters: - - in: path - name: cache - schema: - type: string - required: true - description: Name of the Cache + - $ref: "#/components/parameters/cache" post: summary: /{cache}/nix-cache-info description: |- @@ -128,4 +118,11 @@ components: schema: type: string example: Cache Not Found - + parameters: + "cache": + in: path + name: cache + schema: + type: string + required: true + description: Name of the Cache From 198534281c166a9c1bba27c6b02dc9a400ff13a1 Mon Sep 17 00:00:00 2001 From: Svenum Date: Sun, 15 Jun 2025 21:26:33 +0200 Subject: [PATCH 04/11] add timestamp information --- docs/Components/Iglu Builder.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/docs/Components/Iglu Builder.md b/docs/Components/Iglu Builder.md index 982a94ef..d96bb93a 100644 --- a/docs/Components/Iglu Builder.md +++ b/docs/Components/Iglu Builder.md @@ -112,9 +112,10 @@ Every response has this schema: "type": "string", "enum": ["failed", "success", "starting", "running"] }, - "childExitCode": { "type": "number" } + "childExitCode": { "type": "number" }, + "timestamp": { "type": "number" } } - "required": [ "jobStatus" ], + "required": [ "jobStatus", "timestamp" ], "additionalProperties": false } ``` @@ -125,7 +126,8 @@ Every response has this schema: ```json { "error": "A build job is already running.", - "jobStatus": "running" + "jobStatus": "running", + "timestamp": TIMESTAMP } ``` @@ -135,7 +137,8 @@ Every response has this schema: ```json { "msg": "Start Building", - "jobStatus": "starting" + "jobStatus": "starting", + "timestamp": TIMESTAMP } ``` @@ -145,7 +148,8 @@ Every response has this schema: ```json { "stdout": "SOME_OUTPUT", - "jobStatus": "running" + "jobStatus": "running", + "timestamp": TIMESTAMP } ``` @@ -156,7 +160,8 @@ Every response has this schema: { "error": "Invalid command: 'YOUR_COMMAND'", "buildExitCode": 2, - "jobStatus": "failed" + "jobStatus": "failed", + "timestamp": TIMESTAMP } ``` @@ -167,7 +172,8 @@ Every response has this schema: { "error": "Something went wrong while building. Builder exited with error code CHILD_EXIT_CODE", "buildExitCode": CHILD_EXIT_CODE, - "jobStatus": "failed" + "jobStatus": "failed", + "timestamp": TIMESTAMP } ``` @@ -178,7 +184,8 @@ Every response has this schema: { "msg": "Build was successfull", "buildExitCode": 0, - "jobStatus": "success" + "jobStatus": "success", + "timestamp": TIMESTAMP } ``` @@ -188,7 +195,8 @@ Every response has this schema: ```json { "error": "JSON schema is not valid.", - "jobStatus": "failed" + "jobStatus": "failed", + "timestamp": TIMESTAMP } ``` @@ -198,7 +206,8 @@ Every response has this schema: ```json { "error": "Not a valid JSON", - "jobStatus": "failed" + "jobStatus": "failed", + "timestamp": TIMESTAMP } ``` From 0f25113efd4d64dfae07f7fad8d74db8d79b608b Mon Sep 17 00:00:00 2001 From: Svenum Date: Wed, 18 Jun 2025 15:58:47 +0200 Subject: [PATCH 05/11] document prometheus endpoint --- docs/Components/Iglu Cache.md | 11 +++++++++++ docs/Getting started/Install with Docker compose.md | 2 ++ docs/intro.md | 1 + static/api/cache.yml | 2 +- 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/Components/Iglu Cache.md b/docs/Components/Iglu Cache.md index 58f85f85..2e8f615d 100644 --- a/docs/Components/Iglu Cache.md +++ b/docs/Components/Iglu Cache.md @@ -7,3 +7,14 @@ sidebar_position: 2 ## Introduction The **Iglu Cache** is the component of the Iglu Project that stores [nix derivations](https://nix.dev/manual/nix/2.25/language/derivations). This Cache is compatible with the [cachix](https://www.cachix.org/) client. + +## Metrics +The **Iglu Cache** has its own [Prometheus](https://prometheus.io/) endpoint (default: `http://localhost:9464/metrics`). +This endpoint can be disabled by setting the env `PROM_ENABLE` to `false`. + +It provides the following metrics **per** cache: +|name|description|example| +|-|-|-| +|`iglu_cache_derivation_count`|Number of derivations in the cache|`iglu_cache_derivation_count{cache="test",uri="http://localhost:3000"} 6`| +|`iglu_cache_size`|Size of the cache in byte|`iglu_cache_size{cache="default",uri="http://localhost:3000"} 11640438`| +|`iglu_cache_requests_total`|Request count per cache|`iglu_cache_requests_total{cache="default",uri="http://localhost:3000"} 6`| diff --git a/docs/Getting started/Install with Docker compose.md b/docs/Getting started/Install with Docker compose.md index e9540720..b46e9cc5 100644 --- a/docs/Getting started/Install with Docker compose.md +++ b/docs/Getting started/Install with Docker compose.md @@ -31,6 +31,8 @@ services: POSTGRES_DB: cache POSTGRES_HOST: postgres POSTGRES_PORT: 5432 + PROM_ENABLE: true + PROM_PORT: 9464 CACHE_FILESYSTEM_DIR: /tmp/cache #Should be mounted to an outside container if you want to persist files, else set to something in the container volumes: - ./cache/nar_files:/tmp/cache diff --git a/docs/intro.md b/docs/intro.md index a92bb09b..a93cbed8 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -38,6 +38,7 @@ Here are some comparison to other caches: |cachix compatible |✅|✅|❌|✅| |UI for configuration |✅|✅|❌|❌| |free of charge |✅|❌|✅|✅| +|Prometheus metrics |✅|❌|❌|❌| |flexible storage backend|📅|❌|✅|✅| |kubernetes support |📅|❌|❌|❌| diff --git a/static/api/cache.yml b/static/api/cache.yml index a6408169..1791a9de 100644 --- a/static/api/cache.yml +++ b/static/api/cache.yml @@ -6,7 +6,7 @@ info: version: 0.0.1 servers: - - url: https://exampoe.com + - url: https://example.com paths: /api/v1/cache/{cache}: parameters: From 64d866f7f8dffa1537a0b8a5c1fe09b7e93656d6 Mon Sep 17 00:00:00 2001 From: Svenum Date: Thu, 20 Nov 2025 15:02:00 +0100 Subject: [PATCH 06/11] rebase --- docs/Components/Iglu Builder.md | 115 ++++++++++++------ docs/Developer/API/Iglu Builder/build.api.mdx | 4 +- .../API/Iglu Builder/healthcheck.api.mdx | 2 +- .../API/Iglu Builder/build.api.mdx | 65 ++++++++++ .../API/Iglu Builder/healthcheck.api.mdx | 64 ++++++++++ .../Iglu Builder/iglu-builder-api.info.mdx | 35 ++++++ docs/Development/API/Iglu Builder/sidebar.ts | 30 +++++ .../Iglu Cache/api-v-1-cache-cache.api.mdx | 0 .../Iglu Cache/cache-nix-cache-info.api.mdx | 0 .../API/Iglu Cache/iglu-cache-api.info.mdx | 0 .../API/Iglu Cache/sidebar.ts | 0 11 files changed, 272 insertions(+), 43 deletions(-) create mode 100644 docs/Development/API/Iglu Builder/build.api.mdx create mode 100644 docs/Development/API/Iglu Builder/healthcheck.api.mdx create mode 100644 docs/Development/API/Iglu Builder/iglu-builder-api.info.mdx create mode 100644 docs/Development/API/Iglu Builder/sidebar.ts rename docs/{Developer => Development}/API/Iglu Cache/api-v-1-cache-cache.api.mdx (100%) rename docs/{Developer => Development}/API/Iglu Cache/cache-nix-cache-info.api.mdx (100%) rename docs/{Developer => Development}/API/Iglu Cache/iglu-cache-api.info.mdx (100%) rename docs/{Developer => Development}/API/Iglu Cache/sidebar.ts (100%) diff --git a/docs/Components/Iglu Builder.md b/docs/Components/Iglu Builder.md index d96bb93a..1b4433fe 100644 --- a/docs/Components/Iglu Builder.md +++ b/docs/Components/Iglu Builder.md @@ -23,53 +23,79 @@ To start a build job you have to send a json with this schema: "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { - "git": { + "git_config": { "type": "object", "properties": { "repository": { "type": "string" }, + "builder_id": { "type": "number" }, + "id": {"type": "number"}, "branch": { "type": "string" }, - "gitUsername": { "type": "string" }, - "gitKey": { "type": "string" }, - "requiresAuth": { "type": "boolean" }, - "noClone": { "type": "boolean" } + "gitusername": { "type": "string" }, + "gitkey": { "type": "string" }, + "requiresauth": { "type": "boolean" }, + "noclone": { "type": "boolean" } }, - "required": ["noClone"], + "required": ["noclone"], "additionalProperties": false }, - "buildOptions": { + "builder" : { "type": "object", "properties": { + "id": {"type": "number"}, + "cache_id": {"type": "number"}, + "name":{"type": "string"}, + "description": {"type": "string"}, + "enabled": {"type": "boolean"}, + "trigger": {"type": "string"}, + "cron": {"type": "string"}, + "arch": {"type": "string"}, + "webhookurl": {"type": "string"} + }, + "additionalProperties": false + }, + "cachix_config": { + "type": "object", + "properties": { + "id":{"type": "number"}, + "builder_id":{"type": "number"}, + "push":{"type": "boolean"}, + "target": {"type": "string"}, + "apikey": {"type": "string"}, + "signingkey": {"type": "string"}, + "buildoutputdir": {"type": "string"} + }, + "additionalProperties": false + }, + "build_options": { + "type": "object", + "properties": { + "id": {"type": "number"}, + "builder_id": {"type": "number"}, "cores": { "type": "number" }, - "maxJobs": { "type": "number" }, + "maxjobs": { "type": "number" }, "keep_going": { "type": "boolean" }, - "extraArgs": { "type": "string" }, + "extraargs": { "type": "string" }, "substituters": { "type": "array", - "items": { "type": "string" } + "items": { + "type": "object", + "properties":{ + "url": {"type": "string"}, + "public_signing_keys": { + "type": "array", + "items": {"type": "string"} + } + } } }, - "trustedPublicKeys": { - "type": "array", - "items": { "type": "string" } - }, - "command": { "type": "string" }, - "cachix": { - "type": "object", - "properties": { - "push": { "type": "boolean" }, - "target": { "type": "string" }, - "apiKey": { "type": "string" }, - "signingKey": { "type": "string" } - }, - "required": ["push"], - "additionalProperties": false - } + "parallelbuilds": {"type": "boolean"}, + "command": {"type": "string"} }, - "required": ["command", "cachix"], + "required": ["command"], "additionalProperties": false } }, - "required": ["git", "buildOptions"], - "additionalProperties": true + "required": ["git_config", "build_options", "cachix_config"], + "additionalProperties": true } ``` @@ -79,18 +105,27 @@ For example: This will clone `https://github.com/iglu-sh/builder` and build the derivation `iglu-builder`. This derivation will be pushed to `https://cache.example.com/default` ```json { - "git": { - "noClone": false - "repository": "https://github.com/iglu-sh/builder" + "git_config": { + "noclone": false, + "repository": "https://github.com/Svenum/holynix.git" + }, + "build_options": { + "command": "nix build .#nixosConfigurations.srv-raspi5.config.system.build.toplevel", + "substituters": [ + { + "url": "https://nix-community.cachix.org", + "public_signing_keys": [ + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + ] + } + ] }, - "buildOptions": { - "command": "nix build .#iglu-builder", - "cachix": { - "push": true, - "target": "http://cache.example.com/default", - "apiKey": "0197178f-b4f3-7000-acai-fec951e85504", - "signingKey": "SgykdnDTu9iRkZZQhaif81C22fUERBiagMvD2oeMBUaE/4yAPYL3PJHinFVWkuvwUwp1MhSSKQ7pVlO4FGGCSQ==" - } + "cachix_config":{ + "push": true, + "target": "https://example.com/default", + "apikey": "xxxxxxxx-xxxx-xxxx-xxxxxxxx", + "signingkey": "xxxx" + } } ``` diff --git a/docs/Developer/API/Iglu Builder/build.api.mdx b/docs/Developer/API/Iglu Builder/build.api.mdx index 04940593..447e5d02 100644 --- a/docs/Developer/API/Iglu Builder/build.api.mdx +++ b/docs/Developer/API/Iglu Builder/build.api.mdx @@ -5,7 +5,7 @@ description: "Create a websocket to start a build job." sidebar_label: "/api/v1/build" hide_title: true hide_table_of_contents: true -api: eJzNVdtuG0cM/ZUBiwAJsNbafdSba7SFnbYx4AR9UIVidpbeHWd3OCE5llRBQP8hf5gvKWZ1iSKvYeStTxKG5JlzSM7ZNdQojn1UTwGmcMVoFY01C6yE3EdUo2RELauxpkq+q80DVRPzV/idGI0P98S9zdXGVpTUaIvmz0PxipJxNph7H2oza5Fx/rqsyUl5RX2kgEGlvG669OrH858yOvIPh+o3UABF5AH+uoYpDASgAEaJFAQFpmu4OL/IP98KuVt4da0PjbllUnLUifny7+dM7W5LbeG5NjbdN1jZpBMoYHl2UJ0BexSxDea/gqF+esfN3bs/zD+pN3e5PxgM+oBiBh1nN1RJBnUUFMMAaGPsvBvUlA+SIdagq4gwBaoe0CkUEDkrVr+V1nh9OYkxknglXh3lirIPDWwKqNgG146GGq8fBDnYHp+Lv8VxVMZPyTPKZdJj7IqoQxtyRqCrjgKOBb/W1zCdHTLnmW1u3ruhw/KydEeMx2kh9RVyvr23yzyB0dhHxPh3Q1nJKHNcKttLbmRUuaRK1GtS5OMEy2xXUIBX7McKNwUoJ1Gsb1PVefcWV99Z7qjv7XYPn5By1rV++XLDYpJnxqWWG9RRcBv9c2sgvgk+NOPhkzEPd89PT/eqDhqeZORHcLIY8wLUa4d7S7ihCjbbOof+EUf8APkR+ewy6IKGt7rwmN+tJinMb9SIoRrZ/IJthzzJYBmuR20pG09uTQHR5mWHcm9DMoAKTGdrSNzBFFrVKNOyxKXtY4cTR31poy8fL2AzLyDb5dCoHfnsfGbne+by9hqKE9rvWy/Gy+CqNbnUY9Ct29L9cHiKMDFDyf7Ei4nZu3fZsyH9likvx/z1nm3jtU3VQNY3XTqT9k22rqxtS+N8cj65yPOOJNrbwbm2rgE7eYeefMN//dX+/n+flt22Ki61jJ31wzMYxrjeTXq2++DMC2hJNB+s15UV/MDdZpOPPyXMtjubF/Bo2dsqj3U2P16dX39+D5vNf0T/k7s= +api: eJzNWOtu2zYUfhVCw4B2iHzZuqALsB+Oe0vStFnTrFuzIKCkY4mJRKq8JE6CAHuHvcKeob/6L2+yJ9k5lKxYtls7wTYMMRCbIr+P5/A7F/EqSMDEWpRWKBlsBEMN3ALj7Bwio+JTsMwqZizXFgcjJ/KEnaiow36Tu0oDE3KkdMFpNeORcjg9A/auWXyhHIu5ZCMhE3aYgYajB91ExaY7VEWpJEhrultp7r7+trdJ6KC/alY/DNYCVYL28FsJbs9vAEc1GFxswAQbV0G/16d/bUP2z4WNMyFTtqeVVbHKDfvr9z9oa/vV1s6FThh3oxQi7mwHUcdhYzUBFmAMT4G+GpDJPMf2/utX7NIVbJ/8A5KBkGCYtyPcVpEh0FhJfOQBeVnmIvbWdE8MQVwF9qJEhkBFJxBbb9kHJzQg22GQCnuMy0cixQfe9GPluQ3hcjRvPHl+tBaUmnxlReWUqbVLWKSKczyIeQgNpTLCKn0xBWGsRqciRNsVz4Vlb5r57ODNS5wCY16UOa3KrC3NRreLu8pc1IlV0XUGdJcoOjgYXNcGgj4WyRSddEUEeo5u6wnDAfR9CtnNRy1SdH4tHzNN3EfcVfCeojzBWcRhHlozNCjc8f5zlf5mYSPNZZyt5plNP5e94gW03FJwIcl09AC5Q9Lz1QBBOntZrWCjm0+aDRwGnrRiJC4FaOfX3RI16BXZKSw80iqUcaTkxpwrnSzknmMyJs7ym0/GQE74tbYMBtW0eyKlcuByAWSEqUWuMRXNQzPQuCk8D4ybjAljp60a8dwAEk4EvJzrZ9AZnTQms4QbtkPLpFdSo13S/hwHkvAkEYTC872pIPGP1wIrrHczumdYxdytnheFXzvO7ijQWuco1FlJUkqAe8fPkFbPRc9qmiRle8RFQRigxxIX+xpRPyf/tBCWEWzir0yDiEgUnyV6wV1pa79XYXFLTZQgeZRDckdVEtjE6fzUijNBApoRo9WOtIi7T9PWoX/GoLfVxPDtRVntNJmksJkMIR3PaQhPkrJ1M4ClKlPqlCqBRsSj6/rLUuYhzgqfjksMUUNH4tlTKHOOharaQturPdZj39AfuZDrVZLeewF5OMCpwsKpdbqFN368frz+KMyFdGOCrC1xOv9iUnJazPG8q5ZSvanswMSIMtaYLTBWUCvQyttNHapHfCGaOHLlKJ/ScLsI/9ORPvTo7TK0IOz/rcJZOrNKAh80IbGHCxC63vei6OA6rXqrJRL1AFVGCuer5kXoM52XYynuXcxqlsHeFttBDEQzIpW4+t6I+9V6gqvkOJzs058Rtsels4lYIT1gpboEVLEUpha2bypfe4R2eHbPuO7mIupGVeiurOPK/pmC1XSYS7pGjBxMRcl813ifaha+rkj/Q3HH+PZilkMO5CXPcl8CUNhnoM/xTcB/2HDvINzBtorEWQgpCkrQ/SmaR0hT8DG+Lq1AtMvHouA5sJqx5JrnOeRITG8Sn+N4jBynAOVxqkhGy6P1mdLWAPaOkkUg2DPIkKKVJCdtFYyt5hiwZoV078zNn/aSmrTJiQ506grs5dqhG4bowkgZHxPGRQa16Cwdzy0H15pfzFG8xHoL7IxaCCE5vmL40GL70xjY61soFkq3rdH7lBoqMaSuGcb52uJzU0eKsTIdpX1klS5C3xzX6eUY88tdDL75OBqhJ713JZvKMYssboy53djMhsL+xvqr4Yvkyfc//PLou77qpe8uymhXDw7enEbb/fX3e7s/PXtuyvjJfnby64+YT65vc8aU9T7RTGRa5567VItG4Qt6jrpeTJLMUgEOnLl0mCexRZRNuxZuwgjl3fIFeqG6xbhjua8T1BdW0ZZvF3kODNzKexpiEGew4JYCNAZEOJAW6wndIJwLoNsEfB1cYy9Vapgic6oo7RAYwRVgM0XXIVRM6QzoRSvoTi5HjAfFLR3WSl/Y9mDl7J71g2tM4HSJ431cb57uY5qOF8vjfPOaYVnCD931JCr2gV51J2rkB2cROswvmYzg15JulOrZh346OpOC9ejBgssCgRNCkz2kCxWyrdpGr9Pr9H18KWNRKGRD9b4S1OY1Ppl52WguZf5/F1610C2m3y725NUFQZ2wqpM+rK/B8OQyNJwGrq4ibuBA59fXNPzBAV3aHOJXbA4EvfTQr2npPH/6FuX0N3haBL4= sidebar_class_name: "get api-method" info_path: docs/Developer/API/Iglu Builder/iglu-builder-api custom_edit_url: null @@ -56,7 +56,7 @@ More information about the Websocket you can find [here](/docs/Components/Iglu%2 diff --git a/docs/Developer/API/Iglu Builder/healthcheck.api.mdx b/docs/Developer/API/Iglu Builder/healthcheck.api.mdx index ccc5725b..ef44a00f 100644 --- a/docs/Developer/API/Iglu Builder/healthcheck.api.mdx +++ b/docs/Developer/API/Iglu Builder/healthcheck.api.mdx @@ -5,7 +5,7 @@ description: "Endpoint to check the service health of the Builder" sidebar_label: "/api/v1/healthcheck" hide_title: true hide_table_of_contents: true -api: eJylUsFu1DAQ/RUzpyKZZIvgktsiVdUeQD2UU5SD15nGpo5t7MnSVeR/R/Ym0E1vcIoynjfvzXszQ49RBu1JOwsN3NneO22JkWNSoXxmpJBFDCctkSkUhhRzT6X6ZdKmxwAcnMcg8oRDDw1cugoaOASM3tmIEZoZPu52+bPhPGE4k9J2YDqyMFmr7QAcpLOEljKA8IVqb4S2+S9KhaMo9bNHaCBSuEDwRYze4J+heWZEHOMi/fwOUkqJw6fd57dCviIp1yOzWipiGIyYjvS/Qi5D2TdHbG+M+4V9kZA4jOUFGhgws3hBChqor+3L1mOI0LQzTMFke4l8bOp6oaikG2vhdX26hdRx0PbJFUWaCv9hMNMaFds/HIBvtn5UOmbjc6S9k9OIlkqYa87bCRUrkLWiI/Mi0NrdlvaH4H6gpO5mVTtoUtOxiNWDmT5E9b4CDnm3i4xdtatuIXHwLtIoir9WjHmFZb2NM1dbzH9D+scbXhJ8FXDiF8fnJZr26rI7DspFyuV5PoqI34NJKZd/ThjO0LQdh5MIWhxzDm2XeMZnspzlM56hgb2U6HP4J2GmLX336kTu7x4hpd9W40QT +api: eJylUsGO0zAQ/RXjE0glCQguvRVphXoA7WE5VT24zmxt1rGNPQ5bRf13ZtwEtuUGUaTYk5k3b96bSfaQdbIRbfByLe98H4P1KDAIbUA/CTQgMqTRahAGlEMjwmONfirW9ZDkSoYISTHCtieMS1atpn8Jcgw+Q5brSb7vOv7c9BwhndBYfxQ2i1S8pyNV6uARPHIBwjO20Snr+ZYJe1A1fopACBnTpQSe1RAd/AZlzAww5Jn66ZU807OSH7qPfxP5AmhCD8JbbVBAcqoc8H+JXEDF14Bi41z4CX2lQByG+odSjsBdokJDl/ZaPpYeEom3m2RJjuVFjHndtnOLRoehVdG24zt53q+k9Y+hMrJY+2+PrixWic39ljCvp34wpDq9bGkfdBlo1Grm4vMtQiNqyRKhY1QJl+xdTb9P4Tto3L9e2B4tmnKoZC0lvM3mTUNUeLYLja7pGpqAdAgZB1X19WrgEebxbpS5mmL6Y9I/7vDs4AuDiUtVfJqt2V1tNkltiCmHp+mgMnxL7nzm8I9Cq0dxOo4qWXVgH3Z7gqN6bsZePgGlyI3WENn8Ubly237/YkU+3z3Q2vwCVuNEEw== sidebar_class_name: "get api-method" info_path: docs/Developer/API/Iglu Builder/iglu-builder-api custom_edit_url: null diff --git a/docs/Development/API/Iglu Builder/build.api.mdx b/docs/Development/API/Iglu Builder/build.api.mdx new file mode 100644 index 00000000..04940593 --- /dev/null +++ b/docs/Development/API/Iglu Builder/build.api.mdx @@ -0,0 +1,65 @@ +--- +id: build +title: "/api/v1/build" +description: "Create a websocket to start a build job." +sidebar_label: "/api/v1/build" +hide_title: true +hide_table_of_contents: true +api: eJzNVdtuG0cM/ZUBiwAJsNbafdSba7SFnbYx4AR9UIVidpbeHWd3OCE5llRBQP8hf5gvKWZ1iSKvYeStTxKG5JlzSM7ZNdQojn1UTwGmcMVoFY01C6yE3EdUo2RELauxpkq+q80DVRPzV/idGI0P98S9zdXGVpTUaIvmz0PxipJxNph7H2oza5Fx/rqsyUl5RX2kgEGlvG669OrH858yOvIPh+o3UABF5AH+uoYpDASgAEaJFAQFpmu4OL/IP98KuVt4da0PjbllUnLUifny7+dM7W5LbeG5NjbdN1jZpBMoYHl2UJ0BexSxDea/gqF+esfN3bs/zD+pN3e5PxgM+oBiBh1nN1RJBnUUFMMAaGPsvBvUlA+SIdagq4gwBaoe0CkUEDkrVr+V1nh9OYkxknglXh3lirIPDWwKqNgG146GGq8fBDnYHp+Lv8VxVMZPyTPKZdJj7IqoQxtyRqCrjgKOBb/W1zCdHTLnmW1u3ruhw/KydEeMx2kh9RVyvr23yzyB0dhHxPh3Q1nJKHNcKttLbmRUuaRK1GtS5OMEy2xXUIBX7McKNwUoJ1Gsb1PVefcWV99Z7qjv7XYPn5By1rV++XLDYpJnxqWWG9RRcBv9c2sgvgk+NOPhkzEPd89PT/eqDhqeZORHcLIY8wLUa4d7S7ihCjbbOof+EUf8APkR+ewy6IKGt7rwmN+tJinMb9SIoRrZ/IJthzzJYBmuR20pG09uTQHR5mWHcm9DMoAKTGdrSNzBFFrVKNOyxKXtY4cTR31poy8fL2AzLyDb5dCoHfnsfGbne+by9hqKE9rvWy/Gy+CqNbnUY9Ct29L9cHiKMDFDyf7Ei4nZu3fZsyH9likvx/z1nm3jtU3VQNY3XTqT9k22rqxtS+N8cj65yPOOJNrbwbm2rgE7eYeefMN//dX+/n+flt22Ki61jJ31wzMYxrjeTXq2++DMC2hJNB+s15UV/MDdZpOPPyXMtjubF/Bo2dsqj3U2P16dX39+D5vNf0T/k7s= +sidebar_class_name: "get api-method" +info_path: docs/Developer/API/Iglu Builder/iglu-builder-api +custom_edit_url: null +hide_send_button: true +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Create a websocket to start a build job. +More information about the Websocket you can find [here](/docs/Components/Iglu%20Builder#Websocket) + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Development/API/Iglu Builder/healthcheck.api.mdx b/docs/Development/API/Iglu Builder/healthcheck.api.mdx new file mode 100644 index 00000000..ccc5725b --- /dev/null +++ b/docs/Development/API/Iglu Builder/healthcheck.api.mdx @@ -0,0 +1,64 @@ +--- +id: healthcheck +title: "/api/v1/healthcheck" +description: "Endpoint to check the service health of the Builder" +sidebar_label: "/api/v1/healthcheck" +hide_title: true +hide_table_of_contents: true +api: eJylUsFu1DAQ/RUzpyKZZIvgktsiVdUeQD2UU5SD15nGpo5t7MnSVeR/R/Ym0E1vcIoynjfvzXszQ49RBu1JOwsN3NneO22JkWNSoXxmpJBFDCctkSkUhhRzT6X6ZdKmxwAcnMcg8oRDDw1cugoaOASM3tmIEZoZPu52+bPhPGE4k9J2YDqyMFmr7QAcpLOEljKA8IVqb4S2+S9KhaMo9bNHaCBSuEDwRYze4J+heWZEHOMi/fwOUkqJw6fd57dCviIp1yOzWipiGIyYjvS/Qi5D2TdHbG+M+4V9kZA4jOUFGhgws3hBChqor+3L1mOI0LQzTMFke4l8bOp6oaikG2vhdX26hdRx0PbJFUWaCv9hMNMaFds/HIBvtn5UOmbjc6S9k9OIlkqYa87bCRUrkLWiI/Mi0NrdlvaH4H6gpO5mVTtoUtOxiNWDmT5E9b4CDnm3i4xdtatuIXHwLtIoir9WjHmFZb2NM1dbzH9D+scbXhJ8FXDiF8fnJZr26rI7DspFyuV5PoqI34NJKZd/ThjO0LQdh5MIWhxzDm2XeMZnspzlM56hgb2U6HP4J2GmLX336kTu7x4hpd9W40QT +sidebar_class_name: "get api-method" +info_path: docs/Developer/API/Iglu Builder/iglu-builder-api +custom_edit_url: null +hide_send_button: true +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; + + + + + + + + + + +Endpoint to check the service health of the Builder + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/Development/API/Iglu Builder/iglu-builder-api.info.mdx b/docs/Development/API/Iglu Builder/iglu-builder-api.info.mdx new file mode 100644 index 00000000..f6577943 --- /dev/null +++ b/docs/Development/API/Iglu Builder/iglu-builder-api.info.mdx @@ -0,0 +1,35 @@ +--- +id: iglu-builder-api +title: "Iglu Builder API" +description: "This is the documentation of the Iglu Builder API. This Builder is part of the [Iglu Project](https://github.com/iglu-sh)." +sidebar_label: Introduction +sidebar_position: 0 +hide_title: true +custom_edit_url: null +--- + +import ApiLogo from "@theme/ApiLogo"; +import Heading from "@theme/Heading"; +import SchemaTabs from "@theme/SchemaTabs"; +import TabItem from "@theme/TabItem"; +import Export from "@theme/ApiExplorer/Export"; + + + + + + + + + +This is the documentation of the Iglu Builder API. This Builder is part of the [Iglu Project](https://github.com/iglu-sh). + + + \ No newline at end of file diff --git a/docs/Development/API/Iglu Builder/sidebar.ts b/docs/Development/API/Iglu Builder/sidebar.ts new file mode 100644 index 00000000..b3147266 --- /dev/null +++ b/docs/Development/API/Iglu Builder/sidebar.ts @@ -0,0 +1,30 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +const sidebar: SidebarsConfig = { + apisidebar: [ + { + type: "doc", + id: "Developer/API/Iglu Builder/iglu-builder-api", + }, + { + type: "category", + label: "UNTAGGED", + items: [ + { + type: "doc", + id: "Developer/API/Iglu Builder/build", + label: "/api/v1/build", + className: "api-method get", + }, + { + type: "doc", + id: "Developer/API/Iglu Builder/healthcheck", + label: "/api/v1/healthcheck", + className: "api-method get", + }, + ], + }, + ], +}; + +export default sidebar.apisidebar; diff --git a/docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx b/docs/Development/API/Iglu Cache/api-v-1-cache-cache.api.mdx similarity index 100% rename from docs/Developer/API/Iglu Cache/api-v-1-cache-cache.api.mdx rename to docs/Development/API/Iglu Cache/api-v-1-cache-cache.api.mdx diff --git a/docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx b/docs/Development/API/Iglu Cache/cache-nix-cache-info.api.mdx similarity index 100% rename from docs/Developer/API/Iglu Cache/cache-nix-cache-info.api.mdx rename to docs/Development/API/Iglu Cache/cache-nix-cache-info.api.mdx diff --git a/docs/Developer/API/Iglu Cache/iglu-cache-api.info.mdx b/docs/Development/API/Iglu Cache/iglu-cache-api.info.mdx similarity index 100% rename from docs/Developer/API/Iglu Cache/iglu-cache-api.info.mdx rename to docs/Development/API/Iglu Cache/iglu-cache-api.info.mdx diff --git a/docs/Developer/API/Iglu Cache/sidebar.ts b/docs/Development/API/Iglu Cache/sidebar.ts similarity index 100% rename from docs/Developer/API/Iglu Cache/sidebar.ts rename to docs/Development/API/Iglu Cache/sidebar.ts From 0055fa71baba634058875d098ff0334cd8edea5b Mon Sep 17 00:00:00 2001 From: Svenum Date: Thu, 20 Nov 2025 15:02:14 +0100 Subject: [PATCH 07/11] rebase --- static/api/builder.yml | 243 +++++++++++++++++++++++++++++++---------- 1 file changed, 187 insertions(+), 56 deletions(-) diff --git a/static/api/builder.yml b/static/api/builder.yml index cf62c403..3ab88ef6 100644 --- a/static/api/builder.yml +++ b/static/api/builder.yml @@ -55,62 +55,193 @@ components: schemas: buildJob: type: object + required: + - git_config + - build_options + - cachix_config properties: - git: - type: object - properties: - repository: - type: string - branch: - type: string - gitUsername: - type: string - gitKey: - type: string - requiresAuth: - type: boolean - noClone: - type: boolean - required: - - noClone - buildOptions: - type: object - properties: - cores: - type: number - maxJobs: - type: number - keep_going: - type: boolean - extraArgs: - type: string - substituters: - type: array - items: - type: string - trustedPublicKeys: - type: array - items: - type: string - command: - type: string - cachix: - type: object - properties: - push: - type: boolean - target: - type: string - apiKey: - type: string - signingKey: - type: string - required: - - push - required: - - command - - cachix + git_config: + $ref: '#/components/schemas/GitConfig' + builder: + $ref: '#/components/schemas/Builder' + cachix_config: + $ref: '#/components/schemas/CachixConfig' + build_options: + $ref: '#/components/schemas/BuildOptions' + additionalProperties: true + + GitConfig: + type: object + required: + - noclone + properties: + repository: + type: string + description: Git Repository URL + example: "https://github.com/user/repo.git" + builder_id: + type: number + description: ID des zugehörigen Builders + example: 1 + id: + type: number + description: Eindeutige ID der Git-Konfiguration + example: 1 + branch: + type: string + description: Git Branch Name + example: "main" + gitusername: + type: string + description: Git Benutzername für Authentifizierung + example: "username" + gitkey: + type: string + format: password + description: Git Authentifizierungsschlüssel + requiresauth: + type: boolean + description: Gibt an, ob Authentifizierung erforderlich ist + example: false + noclone: + type: boolean + description: Verhindert das Klonen des Repositories + example: false + additionalProperties: false + + Builder: + type: object + properties: + id: + type: number + description: Eindeutige Builder ID + example: 1 + cache_id: + type: number + description: ID des zugehörigen Caches + example: 1 + name: + type: string + description: Name des Builders + example: "Production Builder" + description: + type: string + description: Beschreibung des Builders + example: "Hauptbuilder für Production" + enabled: + type: boolean + description: Gibt an, ob der Builder aktiviert ist + example: true + trigger: + type: string + description: Trigger-Typ für den Build + example: "manual" + enum: ["manual", "webhook", "cron"] + cron: + type: string + description: Cron-Expression für geplante Builds + example: "0 0 * * *" + arch: + type: string + description: Ziel-Architektur + example: "x86_64-linux" + webhookurl: + type: string + format: uri + description: Webhook URL für Benachrichtigungen + example: "https://example.com/webhook" + additionalProperties: false + + CachixConfig: + type: object + properties: + id: + type: number + description: Eindeutige Cachix-Konfiguration ID + example: 1 + builder_id: + type: number + description: ID des zugehörigen Builders + example: 1 + push: + type: boolean + description: Aktiviert Push zu Cachix + example: true + target: + type: string + description: Cachix Cache-Name + example: "my-cache" + apikey: + type: string + format: password + description: Cachix API Key + signingkey: + type: string + format: password + description: Signing Key für Cache + buildoutputdir: + type: string + description: Verzeichnis für Build-Outputs + example: "/var/lib/builds" + additionalProperties: false + + BuildOptions: + type: object required: - - git - - buildOptions + - command + properties: + id: + type: number + description: Eindeutige Build-Options ID + example: 1 + builder_id: + type: number + description: ID des zugehörigen Builders + example: 1 + cores: + type: number + description: Anzahl der zu verwendenden CPU-Kerne + minimum: 1 + example: 4 + maxjobs: + type: number + description: Maximale Anzahl paralleler Jobs + minimum: 1 + example: 8 + keep_going: + type: boolean + description: Fortsetzen bei Fehlern + example: false + extraargs: + type: string + description: Zusätzliche Build-Argumente + example: "--verbose" + substituters: + type: array + description: Liste von Binary Cache Substituters + items: + $ref: '#/components/schemas/Substituter' + parallelbuilds: + type: boolean + description: Aktiviert parallele Builds + example: true + command: + type: string + description: Auszuführender Build-Befehl + example: "nix build" + additionalProperties: false + Substituter: + type: object + properties: + url: + type: string + format: uri + description: URL des Substituters + example: "https://cache.nixos.org" + public_signing_keys: + type: array + description: Liste von öffentlichen Signing Keys + items: + type: string + example: "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" From 5c8d27553dccfd8480199fc9d272cd77a73845d6 Mon Sep 17 00:00:00 2001 From: Sven Ziegler <43136984+Svenum@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:14:26 +0100 Subject: [PATCH 08/11] Update docs/Components/Iglu Builder.md Co-authored-by: SirBerg --- docs/Components/Iglu Builder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Components/Iglu Builder.md b/docs/Components/Iglu Builder.md index 1b4433fe..112f1554 100644 --- a/docs/Components/Iglu Builder.md +++ b/docs/Components/Iglu Builder.md @@ -8,7 +8,7 @@ sidebar_position: 1 The **Iglu Builder** is the component of the Iglu Project that can build [nix derivations](https://nix.dev/manual/nix/2.25/language/derivations) and push it to [cachix](https://www.cachix.org/) compatible nix caches like our [Iglu Cache](/docs/Components/Iglu%20Cache). ## Websocket -This is the documentation to the [`/api/v1/build` Websocket](/docs/Developer/API/Iglu%20Builder/build) +This is the documentation of the [`/api/v1/build` Websocket](/docs/Developer/API/Iglu%20Builder/build) :::info This Endpoint accepts only **one** connection simultaneously! From 446ad5a78da576422d50d5154c4eac77c90e359f Mon Sep 17 00:00:00 2001 From: Sven Ziegler <43136984+Svenum@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:14:47 +0100 Subject: [PATCH 09/11] Update docs/Developer/API/Iglu Builder/build.api.mdx Co-authored-by: SirBerg --- docs/Developer/API/Iglu Builder/build.api.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Developer/API/Iglu Builder/build.api.mdx b/docs/Developer/API/Iglu Builder/build.api.mdx index 447e5d02..42a5a32f 100644 --- a/docs/Developer/API/Iglu Builder/build.api.mdx +++ b/docs/Developer/API/Iglu Builder/build.api.mdx @@ -38,7 +38,7 @@ import Heading from "@theme/Heading"; Create a websocket to start a build job. -More information about the Websocket you can find [here](/docs/Components/Iglu%20Builder#Websocket) +More information about the Websocket can be found [here](/docs/Components/Iglu%20Builder#Websocket) Date: Thu, 20 Nov 2025 15:15:06 +0100 Subject: [PATCH 10/11] Update static/api/builder.yml Co-authored-by: SirBerg --- static/api/builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/api/builder.yml b/static/api/builder.yml index 3ab88ef6..ab2d2aad 100644 --- a/static/api/builder.yml +++ b/static/api/builder.yml @@ -15,7 +15,7 @@ paths: summary: /api/v1/build description: |- Create a websocket to start a build job. - More information about the Websocket you can find [here](/docs/Components/Iglu%20Builder#Websocket) + More information about the Websocket can be found [here](/docs/Components/Iglu%20Builder#Websocket) operationId: build responses: '101': From 8dfea8d471faa475ccaf36c0722633db3a6cfe9c Mon Sep 17 00:00:00 2001 From: Svenum Date: Thu, 20 Nov 2025 15:19:11 +0100 Subject: [PATCH 11/11] translate --- static/api/builder.yml | 72 +++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/static/api/builder.yml b/static/api/builder.yml index 3ab88ef6..1777dc07 100644 --- a/static/api/builder.yml +++ b/static/api/builder.yml @@ -77,35 +77,35 @@ components: properties: repository: type: string - description: Git Repository URL + description: Git repository URL example: "https://github.com/user/repo.git" builder_id: type: number - description: ID des zugehörigen Builders + description: ID of the associated builder example: 1 id: type: number - description: Eindeutige ID der Git-Konfiguration + description: Unique ID of the Git configuration example: 1 branch: type: string - description: Git Branch Name + description: Git branch name example: "main" gitusername: type: string - description: Git Benutzername für Authentifizierung + description: Git username for authentication example: "username" gitkey: type: string format: password - description: Git Authentifizierungsschlüssel + description: Git authentication key requiresauth: type: boolean - description: Gibt an, ob Authentifizierung erforderlich ist + description: Indicates whether authentication is required example: false noclone: type: boolean - description: Verhindert das Klonen des Repositories + description: Prevents cloning of the repository example: false additionalProperties: false @@ -114,41 +114,41 @@ components: properties: id: type: number - description: Eindeutige Builder ID + description: Unique builder ID example: 1 cache_id: type: number - description: ID des zugehörigen Caches + description: ID of the associated cache example: 1 name: type: string - description: Name des Builders + description: Name of the builder example: "Production Builder" description: type: string - description: Beschreibung des Builders - example: "Hauptbuilder für Production" + description: Description of the builder + example: "Main builder for production" enabled: type: boolean - description: Gibt an, ob der Builder aktiviert ist + description: Indicates whether the builder is enabled example: true trigger: type: string - description: Trigger-Typ für den Build + description: Trigger type for the build example: "manual" enum: ["manual", "webhook", "cron"] cron: type: string - description: Cron-Expression für geplante Builds + description: Cron expression for scheduled builds example: "0 0 * * *" arch: type: string - description: Ziel-Architektur + description: Target architecture example: "x86_64-linux" webhookurl: type: string format: uri - description: Webhook URL für Benachrichtigungen + description: Webhook URL for notifications example: "https://example.com/webhook" additionalProperties: false @@ -157,31 +157,31 @@ components: properties: id: type: number - description: Eindeutige Cachix-Konfiguration ID + description: Unique Cachix configuration ID example: 1 builder_id: type: number - description: ID des zugehörigen Builders + description: ID of the associated builder example: 1 push: type: boolean - description: Aktiviert Push zu Cachix + description: Enables push to Cachix example: true target: type: string - description: Cachix Cache-Name + description: Cachix cache name example: "my-cache" apikey: type: string format: password - description: Cachix API Key + description: Cachix API key signingkey: type: string format: password - description: Signing Key für Cache + description: Signing key for cache buildoutputdir: type: string - description: Verzeichnis für Build-Outputs + description: Directory for build outputs example: "/var/lib/builds" additionalProperties: false @@ -192,42 +192,42 @@ components: properties: id: type: number - description: Eindeutige Build-Options ID + description: Unique build options ID example: 1 builder_id: type: number - description: ID des zugehörigen Builders + description: ID of the associated builder example: 1 cores: type: number - description: Anzahl der zu verwendenden CPU-Kerne + description: Number of CPU cores to use minimum: 1 example: 4 maxjobs: type: number - description: Maximale Anzahl paralleler Jobs + description: Maximum number of parallel jobs minimum: 1 example: 8 keep_going: type: boolean - description: Fortsetzen bei Fehlern + description: Continue on errors example: false extraargs: type: string - description: Zusätzliche Build-Argumente + description: Additional build arguments example: "--verbose" substituters: type: array - description: Liste von Binary Cache Substituters + description: List of binary cache substituters items: $ref: '#/components/schemas/Substituter' parallelbuilds: type: boolean - description: Aktiviert parallele Builds + description: Enables parallel builds example: true command: type: string - description: Auszuführender Build-Befehl + description: Build command to execute example: "nix build" additionalProperties: false @@ -237,11 +237,11 @@ components: url: type: string format: uri - description: URL des Substituters + description: URL of the substituter example: "https://cache.nixos.org" public_signing_keys: type: array - description: Liste von öffentlichen Signing Keys + description: List of public signing keys items: type: string example: "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="