From b292b752c964e94f4ca36c7ec4fcd73fbeb68a70 Mon Sep 17 00:00:00 2001 From: SirBerg Date: Fri, 16 Oct 2026 22:15:36 +0200 Subject: [PATCH 1/4] feat(docs): Add an Update guide and start security advisories directory --- cache/lib/determine_version.ts | 2 +- ...3-nixos-module.mdx => 05-nixos-module.mdx} | 0 docs/docs/04-versions/index.mdx | 39 ++ docs/docs/04-versions/v0.0.2.mdx | 73 +++ docs/docs/04-versions/v0.0.3.mdx | 6 + docs/docs/05-security/Issues/.template | 83 +++ .../05-security/Issues/01-IGLU-2026-001.mdx | 85 +++ .../05-security/Issues/02-IGLU-2026-002.mdx | 96 ++++ .../05-security/Issues/03-IGLU-2026-003.mdx | 93 +++ .../05-security/Issues/04-IGLU-2026-004.mdx | 88 +++ docs/docs/05-security/index.mdx | 14 + ...nt-deployment-websocket.ParamsDetails.json | 0 ...nt-deployment-websocket.RequestSchema.json | 0 ...gent-deployment-websocket.StatusCodes.json | 0 .../cachix-agent-deployment-websocket.api.mdx | 0 ...ix-agent-idle-websocket.ParamsDetails.json | 0 ...ix-agent-idle-websocket.RequestSchema.json | 0 ...chix-agent-idle-websocket.StatusCodes.json | 0 .../cachix-agent-idle-websocket.api.mdx | 0 ...ashes-is-already-cached.ParamsDetails.json | 0 ...ashes-is-already-cached.RequestSchema.json | 0 ...rhashes-is-already-cached.StatusCodes.json | 0 ...ray-of-narhashes-is-already-cached.api.mdx | 0 .../create-a-new-tenant.ParamsDetails.json | 0 .../create-a-new-tenant.RequestSchema.json | 0 .../create-a-new-tenant.StatusCodes.json | 0 .../02-restapi/create-a-new-tenant.api.mdx | 0 .../create-access-rules.ParamsDetails.json | 0 .../create-access-rules.RequestSchema.json | 0 .../create-access-rules.StatusCodes.json | 0 .../02-restapi/create-access-rules.api.mdx | 0 .../create-new-api-key.ParamsDetails.json | 0 .../create-new-api-key.RequestSchema.json | 0 .../create-new-api-key.StatusCodes.json | 0 .../02-restapi/create-new-api-key.api.mdx | 0 .../delete-a-tenant.ParamsDetails.json | 0 .../delete-a-tenant.RequestSchema.json | 0 .../delete-a-tenant.StatusCodes.json | 0 .../02-restapi/delete-a-tenant.api.mdx | 0 .../delete-access-rule.ParamsDetails.json | 0 .../delete-access-rule.RequestSchema.json | 0 .../delete-access-rule.StatusCodes.json | 0 .../02-restapi/delete-access-rule.api.mdx | 0 .../delete-api-key.ParamsDetails.json | 0 .../delete-api-key.RequestSchema.json | 0 .../delete-api-key.StatusCodes.json | 0 .../02-restapi/delete-api-key.api.mdx | 0 .../delete-derivation.ParamsDetails.json | 0 .../delete-derivation.RequestSchema.json | 0 .../delete-derivation.StatusCodes.json | 0 .../02-restapi/delete-derivation.api.mdx | 0 ...signing-key-tenant-link.ParamsDetails.json | 0 ...signing-key-tenant-link.RequestSchema.json | 0 ...c-signing-key-tenant-link.StatusCodes.json | 0 ...tes-public-signing-key-tenant-link.api.mdx | 0 .../fetch-a-nix-binary.ParamsDetails.json | 0 .../fetch-a-nix-binary.RequestSchema.json | 0 .../fetch-a-nix-binary.StatusCodes.json | 0 .../02-restapi/fetch-a-nix-binary.api.mdx | 0 .../finish-a-given-upload.ParamsDetails.json | 0 .../finish-a-given-upload.RequestSchema.json | 0 .../finish-a-given-upload.StatusCodes.json | 0 .../02-restapi/finish-a-given-upload.api.mdx | 0 ...tenant-in-cachix-format.ParamsDetails.json | 0 ...tenant-in-cachix-format.RequestSchema.json | 0 ...a-tenant-in-cachix-format.StatusCodes.json | 0 .../get-a-tenant-in-cachix-format.api.mdx | 0 .../get-access-rule.ParamsDetails.json | 0 .../get-access-rule.RequestSchema.json | 0 .../get-access-rule.StatusCodes.json | 0 .../02-restapi/get-access-rule.api.mdx | 0 ...-available-signing-keys.ParamsDetails.json | 0 ...-available-signing-keys.RequestSchema.json | 0 ...et-available-signing-keys.StatusCodes.json | 0 .../get-available-signing-keys.api.mdx | 0 .../get-available-tenants.ParamsDetails.json | 0 .../get-available-tenants.RequestSchema.json | 0 .../get-available-tenants.StatusCodes.json | 0 .../02-restapi/get-available-tenants.api.mdx | 0 ...get-deployment-overview.ParamsDetails.json | 0 ...get-deployment-overview.RequestSchema.json | 0 .../get-deployment-overview.StatusCodes.json | 0 .../get-deployment-overview.api.mdx | 0 ...mation-about-derivation.ParamsDetails.json | 0 ...mation-about-derivation.RequestSchema.json | 0 ...ormation-about-derivation.StatusCodes.json | 0 .../get-information-about-derivation.api.mdx | 0 .../get-nix-cache-info.ParamsDetails.json | 0 .../get-nix-cache-info.RequestSchema.json | 0 .../get-nix-cache-info.StatusCodes.json | 0 .../02-restapi/get-nix-cache-info.api.mdx | 0 ...n-in-nix-caching-format.ParamsDetails.json | 0 ...n-in-nix-caching-format.RequestSchema.json | 0 ...ion-in-nix-caching-format.StatusCodes.json | 0 ...x-derivation-in-nix-caching-format.api.mdx | 0 ...get-registered-api-keys.ParamsDetails.json | 0 ...get-registered-api-keys.RequestSchema.json | 0 .../get-registered-api-keys.StatusCodes.json | 0 .../get-registered-api-keys.api.mdx | 0 ...signing-key-information.ParamsDetails.json | 0 ...signing-key-information.RequestSchema.json | 0 ...t-signing-key-information.StatusCodes.json | 0 .../get-signing-key-information.api.mdx | 0 .../get-tenant-information.ParamsDetails.json | 0 .../get-tenant-information.RequestSchema.json | 0 .../get-tenant-information.StatusCodes.json | 0 .../02-restapi/get-tenant-information.api.mdx | 0 .../02-restapi/healthcheck.RequestSchema.json | 0 .../02-restapi/healthcheck.StatusCodes.json | 0 .../02-cache/02-restapi/healthcheck.api.mdx | 0 .../02-cache/02-restapi/index.mdx | 0 .../modify-api-key-access.ParamsDetails.json | 0 .../modify-api-key-access.RequestSchema.json | 0 .../modify-api-key-access.StatusCodes.json | 0 .../02-restapi/modify-api-key-access.api.mdx | 0 .../pin-derivation.ParamsDetails.json | 0 .../pin-derivation.RequestSchema.json | 0 .../pin-derivation.StatusCodes.json | 0 .../02-restapi/pin-derivation.api.mdx | 0 .../retrieve-new-upload-id.ParamsDetails.json | 0 .../retrieve-new-upload-id.RequestSchema.json | 0 .../retrieve-new-upload-id.StatusCodes.json | 0 .../02-restapi/retrieve-new-upload-id.api.mdx | 0 .../retrieve-upload-url.ParamsDetails.json | 0 .../retrieve-upload-url.RequestSchema.json | 0 .../retrieve-upload-url.StatusCodes.json | 0 .../02-restapi/retrieve-upload-url.api.mdx | 0 ...search-for-access-rules.ParamsDetails.json | 0 ...search-for-access-rules.RequestSchema.json | 0 .../search-for-access-rules.StatusCodes.json | 0 .../search-for-access-rules.api.mdx | 0 .../search-for-derivation.ParamsDetails.json | 0 .../search-for-derivation.RequestSchema.json | 0 .../search-for-derivation.StatusCodes.json | 0 .../02-restapi/search-for-derivation.api.mdx | 0 .../search-for-tenants.ParamsDetails.json | 0 .../search-for-tenants.RequestSchema.json | 0 .../search-for-tenants.StatusCodes.json | 0 .../02-restapi/search-for-tenants.api.mdx | 0 .../see-logs-of-deployment.ParamsDetails.json | 0 .../see-logs-of-deployment.RequestSchema.json | 0 .../see-logs-of-deployment.StatusCodes.json | 0 .../02-restapi/see-logs-of-deployment.api.mdx | 0 .../02-cache/02-restapi/sidebar.ts | 0 .../update-a-tenant.ParamsDetails.json | 0 .../update-a-tenant.RequestSchema.json | 0 .../update-a-tenant.StatusCodes.json | 0 .../02-restapi/update-a-tenant.api.mdx | 0 .../update-access-rule.ParamsDetails.json | 0 .../update-access-rule.RequestSchema.json | 0 .../update-access-rule.StatusCodes.json | 0 .../02-restapi/update-access-rule.api.mdx | 0 .../update-signing-key.ParamsDetails.json | 0 .../update-signing-key.RequestSchema.json | 0 .../update-signing-key.StatusCodes.json | 0 .../02-restapi/update-signing-key.api.mdx | 0 .../upload-a-nix-binary.ParamsDetails.json | 0 .../upload-a-nix-binary.RequestSchema.json | 0 .../upload-a-nix-binary.StatusCodes.json | 0 .../02-restapi/upload-a-nix-binary.api.mdx | 0 ...tivate-a-new-deployment.ParamsDetails.json | 0 ...tivate-a-new-deployment.RequestSchema.json | 0 ...activate-a-new-deployment.StatusCodes.json | 0 ...load-and-activate-a-new-deployment.api.mdx | 0 ...-new-cachix-signing-key.ParamsDetails.json | 0 ...-new-cachix-signing-key.RequestSchema.json | 0 ...ad-new-cachix-signing-key.StatusCodes.json | 0 .../upload-new-cachix-signing-key.api.mdx | 0 .../02-cache/index.mdx | 0 .../03-builder/index.mdx | 0 .../04-versioning.mdx | 0 .../index.mdx | 0 docs/docusaurus.config.ts | 5 + docs/src/pages/index.module.css | 3 + .../version-v0.0.3/docs/01-index.mdx | 29 + .../01-getting-started/01-container.mdx | 266 +++++++++ .../02-cache/01-getting-started/02-nix.mdx | 56 ++ .../02-cache/01-getting-started/index.mdx | 5 + .../01-advanced/01-deployments.mdx | 44 ++ .../01-advanced/02-signing.mdx | 58 ++ .../02-configuration/01-advanced/index.mdx | 3 + .../docs/02-cache/02-configuration/index.mdx | 136 +++++ .../docs/02-cache/05-nixos-module.mdx | 106 ++++ .../version-v0.0.3/docs/02-cache/index.mdx | 5 + .../01-getting-started/01-container.mdx | 38 ++ .../02-configuration/index.mdx | 41 ++ .../03-builder/01-getting-started/index.mdx | 5 + .../version-v0.0.3/docs/03-builder/index.mdx | 3 + .../version-v0.0.3/docs/04-versions/index.mdx | 39 ++ .../docs/04-versions/v0.0.2.mdx | 73 +++ .../docs/04-versions/v0.0.3.mdx | 6 + .../docs/05-security/Issues/.template | 83 +++ .../05-security/Issues/01-IGLU-2026-001.mdx | 85 +++ .../05-security/Issues/02-IGLU-2026-002.mdx | 96 ++++ .../05-security/Issues/03-IGLU-2026-003.mdx | 93 +++ .../05-security/Issues/04-IGLU-2026-004.mdx | 88 +++ .../version-v0.0.3/docs/05-security/index.mdx | 14 + ...nt-deployment-websocket.ParamsDetails.json | 10 + ...nt-deployment-websocket.RequestSchema.json | 1 + ...gent-deployment-websocket.StatusCodes.json | 36 ++ .../cachix-agent-deployment-websocket.api.mdx | 71 +++ ...ix-agent-idle-websocket.ParamsDetails.json | 13 + ...ix-agent-idle-websocket.RequestSchema.json | 1 + ...chix-agent-idle-websocket.StatusCodes.json | 36 ++ .../cachix-agent-idle-websocket.api.mdx | 71 +++ ...ashes-is-already-cached.ParamsDetails.json | 12 + ...ashes-is-already-cached.RequestSchema.json | 10 + ...rhashes-is-already-cached.StatusCodes.json | 122 ++++ ...ray-of-narhashes-is-already-cached.api.mdx | 71 +++ .../create-a-new-tenant.ParamsDetails.json | 11 + .../create-a-new-tenant.RequestSchema.json | 37 ++ .../create-a-new-tenant.StatusCodes.json | 225 ++++++++ .../02-restapi/create-a-new-tenant.api.mdx | 71 +++ .../create-access-rules.ParamsDetails.json | 13 + .../create-access-rules.RequestSchema.json | 20 + .../create-access-rules.StatusCodes.json | 303 ++++++++++ .../02-restapi/create-access-rules.api.mdx | 71 +++ .../create-new-api-key.ParamsDetails.json | 10 + .../create-new-api-key.RequestSchema.json | 22 + .../create-new-api-key.StatusCodes.json | 176 ++++++ .../02-restapi/create-new-api-key.api.mdx | 71 +++ .../delete-a-tenant.ParamsDetails.json | 12 + .../delete-a-tenant.RequestSchema.json | 1 + .../delete-a-tenant.StatusCodes.json | 177 ++++++ .../02-restapi/delete-a-tenant.api.mdx | 71 +++ .../delete-access-rule.ParamsDetails.json | 19 + .../delete-access-rule.RequestSchema.json | 1 + .../delete-access-rule.StatusCodes.json | 177 ++++++ .../02-restapi/delete-access-rule.api.mdx | 71 +++ .../delete-api-key.ParamsDetails.json | 10 + .../delete-api-key.RequestSchema.json | 1 + .../delete-api-key.StatusCodes.json | 149 +++++ .../02-restapi/delete-api-key.api.mdx | 71 +++ .../delete-derivation.ParamsDetails.json | 18 + .../delete-derivation.RequestSchema.json | 1 + .../delete-derivation.StatusCodes.json | 177 ++++++ .../02-restapi/delete-derivation.api.mdx | 71 +++ ...signing-key-tenant-link.ParamsDetails.json | 12 + ...signing-key-tenant-link.RequestSchema.json | 1 + ...c-signing-key-tenant-link.StatusCodes.json | 205 +++++++ ...tes-public-signing-key-tenant-link.api.mdx | 71 +++ .../fetch-a-nix-binary.ParamsDetails.json | 6 + .../fetch-a-nix-binary.RequestSchema.json | 1 + .../fetch-a-nix-binary.StatusCodes.json | 68 +++ .../02-restapi/fetch-a-nix-binary.api.mdx | 71 +++ .../finish-a-given-upload.ParamsDetails.json | 13 + .../finish-a-given-upload.RequestSchema.json | 53 ++ .../finish-a-given-upload.StatusCodes.json | 229 ++++++++ .../02-restapi/finish-a-given-upload.api.mdx | 71 +++ ...tenant-in-cachix-format.ParamsDetails.json | 12 + ...tenant-in-cachix-format.RequestSchema.json | 1 + ...a-tenant-in-cachix-format.StatusCodes.json | 149 +++++ .../get-a-tenant-in-cachix-format.api.mdx | 71 +++ .../get-access-rule.ParamsDetails.json | 18 + .../get-access-rule.RequestSchema.json | 1 + .../get-access-rule.StatusCodes.json | 191 +++++++ .../02-restapi/get-access-rule.api.mdx | 71 +++ ...-available-signing-keys.ParamsDetails.json | 12 + ...-available-signing-keys.RequestSchema.json | 1 + ...et-available-signing-keys.StatusCodes.json | 160 ++++++ .../get-available-signing-keys.api.mdx | 71 +++ .../get-available-tenants.ParamsDetails.json | 10 + .../get-available-tenants.RequestSchema.json | 1 + .../get-available-tenants.StatusCodes.json | 154 +++++ .../02-restapi/get-available-tenants.api.mdx | 71 +++ ...get-deployment-overview.ParamsDetails.json | 11 + ...get-deployment-overview.RequestSchema.json | 1 + .../get-deployment-overview.StatusCodes.json | 131 +++++ .../get-deployment-overview.api.mdx | 71 +++ ...mation-about-derivation.ParamsDetails.json | 18 + ...mation-about-derivation.RequestSchema.json | 1 + ...ormation-about-derivation.StatusCodes.json | 235 ++++++++ .../get-information-about-derivation.api.mdx | 71 +++ .../get-nix-cache-info.ParamsDetails.json | 5 + .../get-nix-cache-info.RequestSchema.json | 1 + .../get-nix-cache-info.StatusCodes.json | 45 ++ .../02-restapi/get-nix-cache-info.api.mdx | 71 +++ ...n-in-nix-caching-format.ParamsDetails.json | 6 + ...n-in-nix-caching-format.RequestSchema.json | 1 + ...ion-in-nix-caching-format.StatusCodes.json | 73 +++ ...x-derivation-in-nix-caching-format.api.mdx | 71 +++ ...get-registered-api-keys.ParamsDetails.json | 12 + ...get-registered-api-keys.RequestSchema.json | 1 + .../get-registered-api-keys.StatusCodes.json | 190 +++++++ .../get-registered-api-keys.api.mdx | 71 +++ ...signing-key-information.ParamsDetails.json | 10 + ...signing-key-information.RequestSchema.json | 1 + ...t-signing-key-information.StatusCodes.json | 157 ++++++ .../get-signing-key-information.api.mdx | 71 +++ .../get-tenant-information.ParamsDetails.json | 12 + .../get-tenant-information.RequestSchema.json | 1 + .../get-tenant-information.StatusCodes.json | 169 ++++++ .../02-restapi/get-tenant-information.api.mdx | 71 +++ .../02-restapi/healthcheck.RequestSchema.json | 1 + .../02-restapi/healthcheck.StatusCodes.json | 34 ++ .../02-cache/02-restapi/healthcheck.api.mdx | 61 ++ .../02-cache/02-restapi/index.mdx | 3 + .../modify-api-key-access.ParamsDetails.json | 10 + .../modify-api-key-access.RequestSchema.json | 22 + .../modify-api-key-access.StatusCodes.json | 177 ++++++ .../02-restapi/modify-api-key-access.api.mdx | 71 +++ .../pin-derivation.ParamsDetails.json | 18 + .../pin-derivation.RequestSchema.json | 1 + .../pin-derivation.StatusCodes.json | 180 ++++++ .../02-restapi/pin-derivation.api.mdx | 71 +++ .../retrieve-new-upload-id.ParamsDetails.json | 24 + .../retrieve-new-upload-id.RequestSchema.json | 1 + .../retrieve-new-upload-id.StatusCodes.json | 187 ++++++ .../02-restapi/retrieve-new-upload-id.api.mdx | 71 +++ .../retrieve-upload-url.ParamsDetails.json | 14 + .../retrieve-upload-url.RequestSchema.json | 16 + .../retrieve-upload-url.StatusCodes.json | 212 +++++++ .../02-restapi/retrieve-upload-url.api.mdx | 71 +++ ...search-for-access-rules.ParamsDetails.json | 14 + ...search-for-access-rules.RequestSchema.json | 1 + .../search-for-access-rules.StatusCodes.json | 224 ++++++++ .../search-for-access-rules.api.mdx | 71 +++ .../search-for-derivation.ParamsDetails.json | 13 + .../search-for-derivation.RequestSchema.json | 1 + .../search-for-derivation.StatusCodes.json | 268 +++++++++ .../02-restapi/search-for-derivation.api.mdx | 71 +++ .../search-for-tenants.ParamsDetails.json | 12 + .../search-for-tenants.RequestSchema.json | 1 + .../search-for-tenants.StatusCodes.json | 172 ++++++ .../02-restapi/search-for-tenants.api.mdx | 71 +++ .../see-logs-of-deployment.ParamsDetails.json | 17 + .../see-logs-of-deployment.RequestSchema.json | 1 + .../see-logs-of-deployment.StatusCodes.json | 36 ++ .../02-restapi/see-logs-of-deployment.api.mdx | 71 +++ .../02-cache/02-restapi/sidebar.ts | 530 ++++++++++++++++++ .../update-a-tenant.ParamsDetails.json | 12 + .../update-a-tenant.RequestSchema.json | 37 ++ .../update-a-tenant.StatusCodes.json | 225 ++++++++ .../02-restapi/update-a-tenant.api.mdx | 71 +++ .../update-access-rule.ParamsDetails.json | 18 + .../update-access-rule.RequestSchema.json | 21 + .../update-access-rule.StatusCodes.json | 275 +++++++++ .../02-restapi/update-access-rule.api.mdx | 71 +++ .../update-signing-key.ParamsDetails.json | 12 + .../update-signing-key.RequestSchema.json | 19 + .../update-signing-key.StatusCodes.json | 241 ++++++++ .../02-restapi/update-signing-key.api.mdx | 71 +++ .../upload-a-nix-binary.ParamsDetails.json | 7 + .../upload-a-nix-binary.RequestSchema.json | 1 + .../upload-a-nix-binary.StatusCodes.json | 146 +++++ .../02-restapi/upload-a-nix-binary.api.mdx | 71 +++ ...tivate-a-new-deployment.ParamsDetails.json | 10 + ...tivate-a-new-deployment.RequestSchema.json | 24 + ...activate-a-new-deployment.StatusCodes.json | 113 ++++ ...load-and-activate-a-new-deployment.api.mdx | 71 +++ ...-new-cachix-signing-key.ParamsDetails.json | 18 + ...-new-cachix-signing-key.RequestSchema.json | 16 + ...ad-new-cachix-signing-key.StatusCodes.json | 162 ++++++ .../upload-new-cachix-signing-key.api.mdx | 71 +++ .../docs/06-development/02-cache/index.mdx | 106 ++++ .../docs/06-development/03-builder/index.mdx | 77 +++ .../docs/06-development/04-versioning.mdx | 14 + .../docs/06-development/index.mdx | 61 ++ .../version-v0.0.3-sidebars.json | 8 + docs/versions.json | 2 +- 360 files changed, 12711 insertions(+), 2 deletions(-) rename docs/docs/02-cache/{03-nixos-module.mdx => 05-nixos-module.mdx} (100%) create mode 100644 docs/docs/04-versions/index.mdx create mode 100644 docs/docs/04-versions/v0.0.2.mdx create mode 100644 docs/docs/04-versions/v0.0.3.mdx create mode 100644 docs/docs/05-security/Issues/.template create mode 100644 docs/docs/05-security/Issues/01-IGLU-2026-001.mdx create mode 100644 docs/docs/05-security/Issues/02-IGLU-2026-002.mdx create mode 100644 docs/docs/05-security/Issues/03-IGLU-2026-003.mdx create mode 100644 docs/docs/05-security/Issues/04-IGLU-2026-004.mdx create mode 100644 docs/docs/05-security/index.mdx rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-a-new-tenant.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-access-rules.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-access-rules.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-access-rules.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-access-rules.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-new-api-key.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-new-api-key.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-new-api-key.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/create-new-api-key.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-a-tenant.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-a-tenant.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-a-tenant.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-access-rule.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-access-rule.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-access-rule.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-access-rule.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-api-key.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-api-key.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-api-key.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-api-key.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-derivation.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-derivation.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-derivation.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/delete-derivation.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/fetch-a-nix-binary.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/finish-a-given-upload.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-access-rule.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-access-rule.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-access-rule.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-access-rule.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-signing-keys.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-tenants.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-tenants.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-tenants.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-available-tenants.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-deployment-overview.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-deployment-overview.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-deployment-overview.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-information-about-derivation.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-cache-info.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-registered-api-keys.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-signing-key-information.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-signing-key-information.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-signing-key-information.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-tenant-information.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-tenant-information.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-tenant-information.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/get-tenant-information.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/healthcheck.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/healthcheck.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/healthcheck.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/index.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/modify-api-key-access.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/modify-api-key-access.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/modify-api-key-access.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/pin-derivation.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/pin-derivation.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/pin-derivation.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/pin-derivation.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-new-upload-id.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/retrieve-upload-url.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-access-rules.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-access-rules.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-access-rules.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-derivation.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-derivation.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-derivation.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-derivation.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-tenants.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-tenants.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-tenants.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/search-for-tenants.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/see-logs-of-deployment.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/sidebar.ts (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-a-tenant.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-a-tenant.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-a-tenant.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-a-tenant.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-access-rule.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-access-rule.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-access-rule.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-access-rule.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-signing-key.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-signing-key.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-signing-key.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/update-signing-key.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-a-nix-binary.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json (100%) rename docs/docs/{04-development => 06-development}/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx (100%) rename docs/docs/{04-development => 06-development}/02-cache/index.mdx (100%) rename docs/docs/{04-development => 06-development}/03-builder/index.mdx (100%) rename docs/docs/{04-development => 06-development}/04-versioning.mdx (100%) rename docs/docs/{04-development => 06-development}/index.mdx (100%) create mode 100644 docs/versioned_docs/version-v0.0.3/docs/01-index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx create mode 100644 docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx create mode 100644 docs/versioned_sidebars/version-v0.0.3-sidebars.json diff --git a/cache/lib/determine_version.ts b/cache/lib/determine_version.ts index 3aa756e..ee1ac7c 100644 --- a/cache/lib/determine_version.ts +++ b/cache/lib/determine_version.ts @@ -22,6 +22,7 @@ export default async function determine_version(): Promise { const fetch_options: RequestInit = { method: "GET", }; + const package_json = require("../package.json"); const versions = await fetch( `https://api.github.com/repos/iglu-sh/iglu/tags`, fetch_options, @@ -53,7 +54,6 @@ export default async function determine_version(): Promise { return; } - const package_json = require("../package.json"); if (current_version.name.replace("v", "") !== package_json.version) { Logger.info(`** NEW VERSION AVAILABLE **`); Logger.info(`You're on version: ${package_json.version}`); diff --git a/docs/docs/02-cache/03-nixos-module.mdx b/docs/docs/02-cache/05-nixos-module.mdx similarity index 100% rename from docs/docs/02-cache/03-nixos-module.mdx rename to docs/docs/02-cache/05-nixos-module.mdx diff --git a/docs/docs/04-versions/index.mdx b/docs/docs/04-versions/index.mdx new file mode 100644 index 0000000..24d1dd4 --- /dev/null +++ b/docs/docs/04-versions/index.mdx @@ -0,0 +1,39 @@ +--- +title: Versions & Update Guide +slug: versioning +--- +Hey there! If you're looking to update your Iglu services you've come to the right place. A version update usually should not require you to +have to do anything. Sometimes Iglu does require more involvement on major updates this is usually while jumping from one major version to another. + +See below for all supported versions and if there's an upgrade guide available for it. +## Support policy +We support the latest major version and all minor versions or patches in that major version window. We do not backport anything to past major versions, except for very critical security fixes. +For security advisories see this page: TODO + +## Versions + +:::warning + +Iglu is currently in heavy development and we do not currently "support" any version after they are released. Releases are tested before going out and they are expected to work +in a vacuum but they may contain bugs and unfinished features. We do not plan on porting back any security fixes to any version in the v0.x.x phase, except in extraordinary circumstances. + +If you do encounter any issues please, please, PLEASE report them to us at https://github.com/iglu-sh/iglu/issues + +::: + +Currently supported Major Versions: None until v1.0.0 +Currently supported Versions: +- v0.0.2 + + +Legend: +- ✅ Full support, backported security fixes, etc. +- 🚧 Limited support, some backported security fixes, no new features +- ❌ Unsupported, no backported security fixes +- 📅 Pre-release, active development but released as a tag for you to use and try out the latest features. This is inherently unstable and you should only use these tags as a testbench for upcoming features + +|Version|Supported|Lifecycle state|Update Guide |Release Notes | +|-------|---------|---------------|-------------|----------------| +|v0.0.3 |📅 |Pre-release |None yet |None yet | +|v0.0.2 |🚧 |Released |None required|[v0.0.2](v0.0.2)| + diff --git a/docs/docs/04-versions/v0.0.2.mdx b/docs/docs/04-versions/v0.0.2.mdx new file mode 100644 index 0000000..8ff5a73 --- /dev/null +++ b/docs/docs/04-versions/v0.0.2.mdx @@ -0,0 +1,73 @@ +--- +title: v0.0.2 +slug: v0.0.2 +--- +## Meta Information +- Link to Github release: [Github](https://github.com/iglu-sh/iglu/releases/tag/v0.0.2) + +--- +## Original Github Release +This is the initial alpha release of Iglu. + +--- +## Features +### Cache +- Derivation Upload by a cachix client +- Cachix Deploy Feature +- Basic Nix Derivation retrieval by a Nix client +- Server Side or Client Side signing of derivations +- Typescript SDK and Rest API for interacting with the Cache Service +- S3 or local storage file backend for serving derivations +- Postgres or SQLite Support +- Deploy as Container or Nix Service + +### Builder +- Basic Nix Derivation Builder implementation + +## What's Changed +* feat(DB)!: Initial DB Configuration, DAOs by @SirBerg in https://github.com/iglu-sh/iglu/pull/1 +* feat(cachix+nix): Base Caching Implementation by @SirBerg in https://github.com/iglu-sh/iglu/pull/2 +* feat(nix)!: Implement cache invalidation by @SirBerg in https://github.com/iglu-sh/iglu/pull/3 +* Feat builder init by @Svenum in https://github.com/iglu-sh/iglu/pull/4 +* chore(cachix): Fix reflected cross site scripting vulnerability in cachix narinfo endpoint by @SirBerg in https://github.com/iglu-sh/iglu/pull/5 +* chore(db): Introduce DB schemas for supporting cachix deploy by @SirBerg in https://github.com/iglu-sh/iglu/pull/6 +* feat(flake): package builder by @Svenum in https://github.com/iglu-sh/iglu/pull/7 +* feat(flake): add pre-commit hook by @Svenum in https://github.com/iglu-sh/iglu/pull/8 +* tests(DAOs): Introduce DAO tests by @SirBerg in https://github.com/iglu-sh/iglu/pull/11 +* feat(flake): dockerize builder by @Svenum in https://github.com/iglu-sh/iglu/pull/10 +* chore(workflow): add code check for PRs by @Svenum in https://github.com/iglu-sh/iglu/pull/9 +* feat(builder): add cache settings to config.toml + fix some bugs by @Svenum in https://github.com/iglu-sh/iglu/pull/12 +* feat(deploy)!: Introduce the cachix deploy endpoints by @SirBerg in https://github.com/iglu-sh/iglu/pull/15 +* chore!: Initialize the workspace reorganization by @SirBerg in https://github.com/iglu-sh/iglu/pull/17 +* test(routes): Introduce tests for the REST routes of the cache by @SirBerg in https://github.com/iglu-sh/iglu/pull/18 +* chore: fix biome + lint everything by @Svenum in https://github.com/iglu-sh/iglu/pull/19 +* feat(db): Feat postgres support by @SirBerg in https://github.com/iglu-sh/iglu/pull/21 +* feat: dockerize cache by @Svenum in https://github.com/iglu-sh/iglu/pull/22 +* chore: add build action by @Svenum in https://github.com/iglu-sh/iglu/pull/23 +* fix: add missing arch in tag by @Svenum in https://github.com/iglu-sh/iglu/pull/24 +* fix: fix some build failures + increase debugging capability of the build action by @Svenum in https://github.com/iglu-sh/iglu/pull/25 +* feat(rest): Introduce a REST Api for interacting with the basic cache functions by @SirBerg in https://github.com/iglu-sh/iglu/pull/26 +* feat(builder): add pre defined build options by @Svenum in https://github.com/iglu-sh/iglu/pull/27 +* feat(s3): Introduce S3 compatibility by @SirBerg in https://github.com/iglu-sh/iglu/pull/29 +* docs: Create templates for how to use the iglu cache by @SirBerg in https://github.com/iglu-sh/iglu/pull/30 +* feat(info): Add an info page for tenants by @SirBerg in https://github.com/iglu-sh/iglu/pull/31 +* chore(flake): restructure flake by @Svenum in https://github.com/iglu-sh/iglu/pull/32 +* chore: fix module + improve its check by @Svenum in https://github.com/iglu-sh/iglu/pull/33 +* feat: enable derivation deduplication by @Svenum in https://github.com/iglu-sh/iglu/pull/37 +* feat(docs): document all routes in openapi zod schemas by @SirBerg in https://github.com/iglu-sh/iglu/pull/34 +* feat: add IGLU_CACHE_RAW_CONF to load the config from a env by @Svenum in https://github.com/iglu-sh/iglu/pull/38 +* feat(logger): Enable the logger to display which function called the log by @SirBerg in https://github.com/iglu-sh/iglu/pull/39 +* chore(pre-commit): enable write for biomejs by @Svenum in https://github.com/iglu-sh/iglu/pull/43 +* fix(upload): Fix the upload logic to not allow 'cross-contamination' by @SirBerg in https://github.com/iglu-sh/iglu/pull/45 +* feat(sdks/typescript): Init of Typescript SDK by @SirBerg in https://github.com/iglu-sh/iglu/pull/40 +* feat(workflows): Add workflows to publish npm packages by @SirBerg in https://github.com/iglu-sh/iglu/pull/47 +* fix(workflows): Fix npm workflows by @SirBerg in https://github.com/iglu-sh/iglu/pull/48 +* feat(docs): init by @Svenum in https://github.com/iglu-sh/iglu/pull/41 +* fix(docs): increase the sidbar width by @Svenum in https://github.com/iglu-sh/iglu/pull/50 +* feat(signing): Implement serverside signing of derivations by @SirBerg in https://github.com/iglu-sh/iglu/pull/49 + +## New Contributors +* @SirBerg made their first contribution in https://github.com/iglu-sh/iglu/pull/1 +* @Svenum made their first contribution in https://github.com/iglu-sh/iglu/pull/4 + +**Full Changelog**: https://github.com/iglu-sh/iglu/commits/v0.0.2 diff --git a/docs/docs/04-versions/v0.0.3.mdx b/docs/docs/04-versions/v0.0.3.mdx new file mode 100644 index 0000000..f8fb62b --- /dev/null +++ b/docs/docs/04-versions/v0.0.3.mdx @@ -0,0 +1,6 @@ +--- +title: v0.0.3 +slug: v0.0.3 +--- + +## Placeholder page for the v0.0.3 Releasenotes diff --git a/docs/docs/05-security/Issues/.template b/docs/docs/05-security/Issues/.template new file mode 100644 index 0000000..eef0279 --- /dev/null +++ b/docs/docs/05-security/Issues/.template @@ -0,0 +1,83 @@ + +# IGLU-YYYY-NNNN: *Short, specific title — what kind of flaw, in which component* + +> **Summary:** One or two sentences a user can read to decide whether they are +> affected and how urgent it is. Example: *"A path traversal in the static file +> handler of iglu ≤ 2.3.1 allows unauthenticated attackers to read arbitrary +> files. Upgrade to 2.3.2."* + +||| +|---|---| +| **Severity** | High (CVSS 4.0: 8.7) | +| **Affected versions** | `>= 2.0.0, < 2.3.2` · `< 1.9.8` | +| **Fixed versions** | `2.3.2`, `1.9.8` | +| **Published** | YYYY-MM-DD | + +
+ CVSS Calculator v4 values + + + +
+Use this calculator to get them: https://nvd.nist.gov/vuln-metrics/cvss/v4-calculator + +## Impact + +What an attacker can achieve and under which conditions. Be concrete: + +- Who can exploit it (unauthenticated remote attacker, local user, malicious input file, …) +- What they gain (code execution, data disclosure, denial of service, …) +- Preconditions or non-default configuration required +- Whether exploitation in the wild is known + +## Affected configurations + +Describe who is *not* affected as clearly as who is — e.g. "Only deployments +with `serve_static = true` are affected." + +## Remediation + +**Upgrade** to a fixed version: + +``` +*install / upgrade command* +``` + +### Workarounds + +If users cannot upgrade immediately, list mitigations here — or state +explicitly: *"No workaround is available."* + +## Technical details + +Root cause and how the fix addresses it. Keep exploit detail proportionate: +enough for users and downstream packagers to verify the fix, not a ready-made +exploit. Consider holding back a full proof-of-concept for a period after +publication. + +## Timeline + +| Date | Event | +|---|---| +| YYYY-MM-DD | Report received | +| YYYY-MM-DD | Report acknowledged | +| YYYY-MM-DD | Issue confirmed, severity assessed | +| YYYY-MM-DD | CVE requested / assigned | +| YYYY-MM-DD | Fix released, advisory published | + +## Credits + +Thanks to *name / handle, affiliation* for reporting this issue responsibly. +*(Only with the reporter's consent — ask how they want to be credited.)* + +## References + +- Fix commit: *url* +- Release notes: *url* +- GitHub advisory: *url* + +## Revision history + +| Date | Change | +|---|---| +| YYYY-MM-DD | Initial publication | diff --git a/docs/docs/05-security/Issues/01-IGLU-2026-001.mdx b/docs/docs/05-security/Issues/01-IGLU-2026-001.mdx new file mode 100644 index 0000000..bd2c52f --- /dev/null +++ b/docs/docs/05-security/Issues/01-IGLU-2026-001.mdx @@ -0,0 +1,85 @@ +--- +title: IGLU-2026-001 +slug: iglu-2026-001 +--- +# IGLU-2026-001: Denial of Service by pushing the same path at the same time + +> **Summary:** A missing unique index in Iglu's Database schema allowed disabling a path by pushing the same path simultaneously + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.8) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/AU:Y/R:I`
+ +## Impact + +An attacker **with access to a tenant** may disable a given nix store path (making Iglu return 404) by pushing it multiple times at the same time + +## Affected configurations + +All configurations are affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +Make sure no untrusted person can access your Iglu Tenant. + +## Technical details + +The root cause was a missing unique index over the fields `derivations_id` and `tenants_id` in the Table `derivations_tenants_links` which allowed inserting more than one link record between a tenant and a derivation (i.e nix store path). +This caused the associated DAO Class to correctly determine that it couldn't reliably return a database record and it returned null instead causing the endpoint returning nix derivations to no longer return the affected store path. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-16 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/1172e0ca35edd47a70efa855b0129edd412ca2de) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/docs/05-security/Issues/02-IGLU-2026-002.mdx b/docs/docs/05-security/Issues/02-IGLU-2026-002.mdx new file mode 100644 index 0000000..e25103c --- /dev/null +++ b/docs/docs/05-security/Issues/02-IGLU-2026-002.mdx @@ -0,0 +1,96 @@ +--- +title: IGLU-2026-002 +slug: iglu-2026-002 +--- +# IGLU-2026-002: Any API Key can modify any other API Key using the Iglu-REST API + +> **Summary:** Any well-formed `POST` request to the `api/v1/iglu/rest/keys/auth/modify` endpoint may modify the tenant access list for any API key (provided a valid API Key is presented in the request) + +||| +|---|---| +| **Severity** | High (CVSS 4.0: 7.2) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N/AU:Y/R:I/V:C/RE:L/U:Amber`
+ +## Impact + +Any User with any API Key may update any other API Key by sending a normal update request to the API Route: (POST) `api/v1/iglu/rest/keys/auth/modify` +allowing them to override the tenants the victim API Key is a part of and therefore giving an Attacker a way of taking over entire Tenants using API Requests. + +## Affected configurations + +Any configuration that has set the +```toml +... +[server] +enable_rest = false +``` +is **not** affected. Any configuration that has set this feature flag to true is affected. + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +If you do not rely on the Iglu Rest API, turn it off by setting the `enable_rest` Feature flag in the `server` section of the Iglu-Cache configuration to `false`: +```toml +... +[server] +enable_rest = false +``` + +## Technical details + +The root cause of this issue was the fundamental flaw in which the tenant access logic in this endpoint was implemented. It has since been removed, a replacement endpoint is planned and any access configuration of tenants will be moved to the tenant API routes. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-14 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/dedfc000225dd20c37987c07ca439e8df51c8c59) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-14 | Initial publication | diff --git a/docs/docs/05-security/Issues/03-IGLU-2026-003.mdx b/docs/docs/05-security/Issues/03-IGLU-2026-003.mdx new file mode 100644 index 0000000..62e3033 --- /dev/null +++ b/docs/docs/05-security/Issues/03-IGLU-2026-003.mdx @@ -0,0 +1,93 @@ +--- +title: IGLU-2026-003 +slug: iglu-2026-003 +--- + +# IGLU-2026-003: The X-Forwarded-For header is trusted unconditionally + +> **Summary:** The Iglu-Cache trusts the X-Fowarded-For header unconditionally, allowing a Hacker to circumvent any IP blocking rules + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.1) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
+ CVSS Calculator v4 values + + CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/AU:Y/V:D/U:Green + +
+Use this calculator to get them: https://nvd.nist.gov/vuln-metrics/cvss/v4-calculator + +## Impact + +Any attacker with the right headers (namely the `X-Forwarded-For` header) could circumvent Iglu's own IP +filtering rules (`called access_rules`). + +## Affected configurations + +All configurations are affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + +### Workarounds + +Set ACLs on a system level or on a reverse proxy level + +## Technical details + +The root cause was a flaw in Iglu's IP filtering middleware (`shared/utils/rest/IPFiltering.ts`) that trusted any arbitrary +X-Forwarded-For Header implicitly. +This has since been fixed by introducing a `trusted_proxies` configuration option that sets which x-forwarded-for headers +should be trusted and from where. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-12 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/6a3dd73f9e0bea8c9dafcbaf9c8e9b058259f009) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/docs/05-security/Issues/04-IGLU-2026-004.mdx b/docs/docs/05-security/Issues/04-IGLU-2026-004.mdx new file mode 100644 index 0000000..f216e8d --- /dev/null +++ b/docs/docs/05-security/Issues/04-IGLU-2026-004.mdx @@ -0,0 +1,88 @@ +--- +title: IGLU-2026-004 +slug: iglu-2026-004 +--- + +# IGLU-2026-004: Deduplication allows any tenant to overwrite any other tenant's files + +> **Summary:** Uploading a derivation to an Iglu tenant may overwrite that same file for other tenants if that same nix derivation path is present in the victim tenant, allowing a hacker to potentially serve malware + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.9) | +| **Affected versions** | `>= 2.0.0, < 2.3.2` · `< 1.9.8` | +| **Fixed versions** | `2.3.2`, `1.9.8` | +| **Published** | YYYY-MM-DD | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/S:P/AU:Y/R:I/RE:H/U:Amber`
+ +## Impact + +An attacker may be able to upload malware on any tenant by uploading an already cached derivation on the Iglu-Cache Server due to a flaw in Iglu's deduplication logic. + +## Affected configurations + +All configurations affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +If users cannot upgrade immediately, list mitigations here — or state +explicitly: *"No workaround is available."* + +## Technical details + +The root cause of this issue was a flaw in the deduplication logic of iglu which didn't check for either if the file hash of the uploaded file +matches the potentially already stored file hash or if that file already existed in the target filesystem backend, +causing the file to be overwritten by iglu with potentially malicous files + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-13 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/b22ea05034e32251d4ee5e49aaea66903b4c1110) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/docs/05-security/index.mdx b/docs/docs/05-security/index.mdx new file mode 100644 index 0000000..fe8c549 --- /dev/null +++ b/docs/docs/05-security/index.mdx @@ -0,0 +1,14 @@ +--- +title: Security +slug: security-advisories +--- +See below for a list of security advisories and which versions these issues were fixed in. + +All Severity scores in CVSS v4.0 format. + +|Issue|Severity|Fixed in| +|-----|--------|--------| +|[IGLU-2026-004: Deduplication allows any tenant to overwrite any other tenant's files](Issues/iglu-2026-004)|Medium 5.9|[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-003: The X-Forwarded-For header is trusted unconditionally](Issues/iglu-2026-003)|Medium 5.1|[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-002: Any API Key can modify any other API Key using the Iglu-REST API](Issues/iglu-2026-002)|High 7.2 |[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-001: Denial of Service by pushing the same path at the same time](Issues/iglu-2026-001)|Medium 5.8|[v0.0.3](../versions/v0.0.3)| diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx b/docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx b/docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.api.mdx b/docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-a-new-tenant.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-access-rules.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-access-rules.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-access-rules.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-access-rules.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-access-rules.api.mdx b/docs/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-access-rules.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/create-new-api-key.api.mdx b/docs/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/create-new-api-key.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.api.mdx b/docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-a-tenant.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-access-rule.api.mdx b/docs/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-access-rule.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-api-key.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-api-key.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-api-key.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-api-key.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-api-key.api.mdx b/docs/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-api-key.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-derivation.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-derivation.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-derivation.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-derivation.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/delete-derivation.api.mdx b/docs/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/delete-derivation.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx b/docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx b/docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.api.mdx b/docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/finish-a-given-upload.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-access-rule.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-access-rule.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-access-rule.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-access-rule.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-access-rule.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-access-rule.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-signing-keys.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-available-tenants.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-available-tenants.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-deployment-overview.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-information-about-derivation.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-cache-info.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-registered-api-keys.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-signing-key-information.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/get-tenant-information.api.mdx b/docs/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/get-tenant-information.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/healthcheck.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/healthcheck.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/healthcheck.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/healthcheck.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/healthcheck.api.mdx b/docs/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/healthcheck.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/index.mdx b/docs/docs/06-development/02-cache/02-restapi/index.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/index.mdx rename to docs/docs/06-development/02-cache/02-restapi/index.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.api.mdx b/docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/modify-api-key-access.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/pin-derivation.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/pin-derivation.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/pin-derivation.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/pin-derivation.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/pin-derivation.api.mdx b/docs/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/pin-derivation.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx b/docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.api.mdx b/docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/retrieve-upload-url.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.api.mdx b/docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-access-rules.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-derivation.api.mdx b/docs/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-derivation.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/search-for-tenants.api.mdx b/docs/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/search-for-tenants.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx b/docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/sidebar.ts b/docs/docs/06-development/02-cache/02-restapi/sidebar.ts similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/sidebar.ts rename to docs/docs/06-development/02-cache/02-restapi/sidebar.ts diff --git a/docs/docs/04-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-a-tenant.api.mdx b/docs/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-a-tenant.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-access-rule.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-access-rule.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-access-rule.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-access-rule.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-access-rule.api.mdx b/docs/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-access-rule.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-signing-key.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-signing-key.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-signing-key.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-signing-key.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/update-signing-key.api.mdx b/docs/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/update-signing-key.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx b/docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx b/docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json b/docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json rename to docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json b/docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json rename to docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json b/docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json rename to docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json diff --git a/docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx b/docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx similarity index 100% rename from docs/docs/04-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx rename to docs/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx diff --git a/docs/docs/04-development/02-cache/index.mdx b/docs/docs/06-development/02-cache/index.mdx similarity index 100% rename from docs/docs/04-development/02-cache/index.mdx rename to docs/docs/06-development/02-cache/index.mdx diff --git a/docs/docs/04-development/03-builder/index.mdx b/docs/docs/06-development/03-builder/index.mdx similarity index 100% rename from docs/docs/04-development/03-builder/index.mdx rename to docs/docs/06-development/03-builder/index.mdx diff --git a/docs/docs/04-development/04-versioning.mdx b/docs/docs/06-development/04-versioning.mdx similarity index 100% rename from docs/docs/04-development/04-versioning.mdx rename to docs/docs/06-development/04-versioning.mdx diff --git a/docs/docs/04-development/index.mdx b/docs/docs/06-development/index.mdx similarity index 100% rename from docs/docs/04-development/index.mdx rename to docs/docs/06-development/index.mdx diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index dacfd11..ada0969 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -53,6 +53,11 @@ const config: Config = { "v0.0.2": { banner: "none", }, + "v0.0.3": { + label: "v0.0.3", + path: "v0.0.3", + banner: "unreleased", + }, }, }, blog: { diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css index 1bbdab4..9555fcf 100644 --- a/docs/src/pages/index.module.css +++ b/docs/src/pages/index.module.css @@ -8,6 +8,9 @@ text-align: center; position: relative; overflow: hidden; + display: flex; + flex-direction: row; + justify-content: center; } @media screen and (max-width: 996px) { diff --git a/docs/versioned_docs/version-v0.0.3/docs/01-index.mdx b/docs/versioned_docs/version-v0.0.3/docs/01-index.mdx new file mode 100644 index 0000000..d2405b9 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/01-index.mdx @@ -0,0 +1,29 @@ +--- +title: Iglu +slug: iglu +--- + +## What iglu is +**Iglu** is an automation suite for the [nix](https://nixos.org) ecosystem. It has the following components: +- Cache: Caching of derivations. +- Builder: Build derivations based on flakes via API or scheduler. +- Controller: Web interface to manage builder and cache (not implemented yet). + + +## Features: +- ✅: supported +- 🚧: work in progress +- ❌: not supported +- 📅: planned + +|Feature|Component|Status|Description| +|---|---|---|---| +|[cachix](https://cachix.org) compatible|Cache|🚧|Supports the cachix client to push new derivations| +|multi tenant|Cache|✅|Every instance can manage multiple caches| +|deduplication|Cache|✅|Derivations get deduplicated over every tenant| +|container|Cache
Builder|✅|Deployable via docker/podman| +|nix module|Cache
Builder|✅
📅|Ready to use nix module| +|S3|Cache|✅|Store your derivations in an S3 bucket| +|local storage|Cache|✅|Store your derivations local on a disk| +|Cloudflare workers|Cache|📅|Run the cache completely via Cloudflare Workers| +|Web-controller|Controller|📅|A Web-App that can manage the cache and builders| diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx new file mode 100644 index 0000000..4443c98 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx @@ -0,0 +1,266 @@ +--- +title: Container +slug: container +--- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +We provide three examples of `docker-compose.yaml`. Look at each and select the best for your usecase. + + + + +This is a basic usage example of how you can use the Iglu Cache. +It utilizes Postgres and the Iglu Cache so you can just go ahead and use it as a production deployment should you elect to use the config.toml values given here, however for a permanent deployment we recommend using an S3 compaitble storage backend instead of the local path in this example. + +```yaml title="docker-compose.yaml" +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: + image: "ghcr.io/iglu-sh/iglu-cache:stable" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +The different configuration values can be found [here](../configuration). +```toml title="config.toml" +[database] +database_type = 'postgres' +user = 'postgres' +password = 'postgres' +host = 'postgres' +port = 5432 +database_name = 'iglu' + +[logger] +logging_format = 'pretty' +logging_prefix = 'cache' +logging_prefix_color = 'magenta' +log_level = 'info' +should_log_requests = false + +[server] +hostname = 'http://127.0.0.1:80' # Set this to your ACTUAL hostname (this is important for cachix) +hashing_secret = 'your very long and randomly generated hashing secret if you change this after the fact all of your generated authtokens will be rendered useless' +enable_rest = true # Enables the Iglu REST Api (needed for any CLI or management tool to interact with the cache so it is recommended to leave this on) +[server.encryption] +secret_file = "secret.key" + +[storage] +storage_type = 'fs' +binary_storage_directory = '/binaries' # This is where you binaries will end up, we recommend setting this to an SSD Path for faster access times / faster uploads + +# The following will create a tenant with the name 'default' once iglu starts up and it will also display an api key for you to use to push to this cache +# You may also define an infinite number of tenants by repeating the [[tenants.definitions]] pattern layed out here as long as you define unique tenant names +[tenants] +create_tenants_from_config = true +[[tenants.definitions]] +github_username = "" #Set to your Github Username, as far as we can tell this field is largely unused +is_public = true # True adds an allow rule with CIDR 0.0.0.0/0 and priority 100 to your cache, setting to false does the opposite. You can change this later. +name = 'default' # Needs to be a **unique** name of your cache, for example "personal" +preferred_compression_method = 'zstd' # May either be xz or zstd +priority = 1 # Sets the priority of this nix cache, this affects which cache gets asked first for a cache hit during nix build processes +api_key_id = 'generated' # May be generated or an actual ID of a key (can be found by using the cli) +ttl = '5w' # Sets the time to live of a given cached derivation (So when a given derivation is considered to be "outdated"). You may set this to a really large value to largely stop the cache from expiring any derivations +signing_method = "server" # Sets the signing method to "server" which we recommend as then you won't have to worry about signing derivations +``` + + + + + +This is a basic example utilizing Minio as the Storage Backend. + +:::info +For S3 Support to work your S3 backend **must** be accessible to the client pulling nix binaries and the client that pushes these binaries +::: + +```yaml title="docker-compose.yaml" +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "postgres" + POSTGRES_DB: "iglu" + iglu: + image: "ghcr.io/iglu-sh/iglu-cache:stable" + volumes: + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml # Sets which directory should be searched for your config.toml" + depends_on: + - "postgres" + ports: + - "80:80" + minio: + image: "minio/minio" + ports: + - "9000:9000" + - "9001:9001" + environment: + MINIO_ROOT_USER: "iglu" + MINIO_ROOT_PASSWORD: "changeme" # Set this to something very secure, if someone aquires this password they have control over your data stored in minio + command: "server /data --console-address ':9001'" +``` + +The different configuration values could be found [here](../configuration). +```toml title="config.toml" +[database] +database_type = 'postgres' +user = 'postgres' +password = 'postgres' +host = 'postgres' +port = 5432 +database_name = 'iglu' + +[logger] +logging_format = 'pretty' +logging_prefix = 'cache' +logging_prefix_color = 'magenta' +log_level = 'info' +should_log_requests = false + +[server] +hostname = 'http://127.0.0.1:80' # Set this to your ACTUAL hostname (this is important for cachix) +hashing_secret = 'your very long and randomly generated hashing secret if you change this after the fact all of your generated authtokens will be rendered useless' +enable_rest = true # Enables the Iglu REST Api (needed for any CLI or management tool to interact with the cache so it is recommended to leave this on) +[server.encryption] +secret_file = "secret.key" + +[storage] +storage_type = 'fs' +[storage.s3] +access_key_id = "iglu" # If you use minio this is the same as the value you set as MINIO_ROOT_USER +secret_access_key = "iglu_pw" # If you use minio this is the same as the value you set as MINIO_ROOT_PASSWORD +# In the case of Minio, you'll need to create this bucket manually in the admin interface +bucket = "iglu" +endpoint = "http://localhost:9000" # As mentioned in the README.md file, this must be an endpoint accessible to the clients (as cachix will push directly to S3 and the nix client will pull directly from S3) + +# The following will create a tenant with the name 'default' once iglu starts up and it will also display an api key for you to use to push to this cache +# You may also define an infinite number of tenants by repeating the [[tenants.definitions]] pattern layed out here as long as you define unique tenant names +[tenants] +create_tenants_from_config = true +[[tenants.definitions]] +github_username = "" #Set to your Github Username, as far as we can tell this field is largely unused +is_public = true # True adds an allow rule with CIDR 0.0.0.0/0 and priority 100 to your cache, setting to false does the opposite. You can change this later. +name = 'default' # Needs to be a **unique** name of your cache, for example "personal" +preferred_compression_method = 'zstd' # May either be xz or zstd +priority = 1 # Sets the priority of this nix cache, this affects which cache gets asked first for a cache hit during nix build processes +api_key_id = 'generated' # May be generated or an actual ID of a key (can be found by using the cli) +ttl = '5w' # Sets the time to live of a given cached derivation (So when a given derivation is considered to be "outdated"). You may set this to a really large value to largely stop the cache from expiring any derivations +signing_method = "server" # Sets the signing method to "server" which we recommend as then you won't have to worry about signing derivations +``` + + + + +This is a setup example on how you can use the cachix deploy feature in Iglu. Explaining what this is would be beyond the scope of this document though so if you want to find out more about cachix deploy, checkout the official cachix docs here: [Cachix Docs](https://docs.cachix.org/deploy/) + +```yaml title="docker-compose.yaml" +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: + image: "ghcr.io/iglu-sh/iglu-cache:stable" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +The different configuration values could be found [here](../configuration). +```toml title="config.toml" +[database] +database_type = 'postgres' +user = 'postgres' +password = 'postgres' +host = 'postgres' +port = 5432 +database_name = 'iglu' + +[logger] +logging_format = 'pretty' +logging_prefix = 'cache' +logging_prefix_color = 'magenta' +log_level = 'info' +should_log_requests = false + +[server] +hostname = 'http://127.0.0.1:80' # Set this to your ACTUAL hostname (this is important for cachix) +hashing_secret = 'your very long and randomly generated hashing secret if you change this after the fact all of your generated authtokens will be rendered useless' +enable_rest = true # Enables the Iglu REST Api (needed for any CLI or management tool to interact with the cache so it is recommended to leave this on) +[server.encryption] +secret_file = "secret.key" + +[storage] +storage_type = 'fs' +binary_storage_directory = '/binaries' # This is where you binaries will end up, we recommend setting this to an SSD Path for faster access times / faster uploads + +# The following will create a tenant with the name 'default' once iglu starts up and it will also display an api key for you to use to push to this cache +# You may also define an infinite number of tenants by repeating the [[tenants.definitions]] pattern layed out here as long as you define unique tenant names +[tenants] +create_tenants_from_config = true +[[tenants.definitions]] +github_username = "" #Set to your Github Username, as far as we can tell this field is largely unused +is_public = true # True adds an allow rule with CIDR 0.0.0.0/0 and priority 100 to your cache, setting to false does the opposite. You can change this later. +name = 'default' # Needs to be a **unique** name of your cache, for example "personal" +preferred_compression_method = 'zstd' # May either be xz or zstd +priority = 1 # Sets the priority of this nix cache, this affects which cache gets asked first for a cache hit during nix build processes +api_key_id = 'generated' # May be generated or an actual ID of a key (can be found by using the cli) +ttl = '5w' # Sets the time to live of a given cached derivation (So when a given derivation is considered to be "outdated"). You may set this to a really large value to largely stop the cache from expiring any derivations +signing_method = "server" # Sets the signing method to "server" which we recommend as then you won't have to worry about signing derivations + +# Define your deployment keys here (the things you use with cachix deploy) +# You may define both activation or agent keys here (refer to the cachix documentation for more information on that) +# CAREFULL: You will only see the generated token once in the console! +[deployments] +create_deployments_from_config = true +enable_deployments = true +[[deployments.definitions]] +name = 'An agent token' # This name can be unique but it does not have to be +type = 'agent' # or 'activate' for an activation token +expires_at = '-1' # a date in iso format (e.g 2026-05-02T14:30:00Z) or -1 for no expiry +tenant_name = 'default' # the tenant name you are adding this deployment to (as defined in the tenants.definitions section) +[[deployments.definitions]] +name ='Activation Token' +type = 'activate' +expires_at = '-1' +tenant_name = 'default' +``` + + + + + +After selecting your example, just copy the `docker-compose.yaml` to a directory on your system. Next to it create a directory with the name `config`: +```bash +mkdir config +``` +and copy the `config.toml` to the created directory. + +Change the values in the `docker-compose.yaml` and `config.toml` to your liking. + +The last step is to run: +```bash +docker compose up -d +``` +in the folder with the `docker-compose.yaml`. diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx new file mode 100644 index 0000000..06cddfe --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx @@ -0,0 +1,56 @@ +--- +title: NixOS Module +slug: nix +--- + +This section will show you how you can create a cache with the nixos module. + +first you need to include Iglu in your `flake.nix`: + +```nix title="flake.nix" +{ + inputs = { + ... + iglu.url = "github:iglu-sh/iglu"; + ... + }; + + outputs = {nixpkgs, auto-cpufreq, ...} @ inputs: { + nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs; }; + modules = [ + ./configuration.nix + auto-cpufreq.nixosModules.default + ]; + }; + }; + }; +}; +``` + +next you have to enable the cache (and configure it using the provided options): +```nix title="configuration.nix +services.iglu-cache = { + enable = true; + database = { + type = "postgres"; + createLocally = true; + }; + settings = { + server = { + hostname = "https://iglu.yourdomain.com"; + port = 8080; + hashing_secret_file = "/path/to/secret"; + # or with sops + #hashing_secret_file = config.sops.secrets."services/iglu/hashing_secret".path; + }; + tenants.definitions = [ + { + name = "default"; + github_username = "iglu-sh"; + is_public = true; + } + ]; + }; +}; +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx new file mode 100644 index 0000000..42b0d57 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx @@ -0,0 +1,5 @@ +--- +title: Getting Started +--- + +You can deploy the Iglu-Cache as a **[Container](./container)** or as a **[NixOS Module](./nix)**. diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx new file mode 100644 index 0000000..3dea857 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx @@ -0,0 +1,44 @@ +--- +title: Deployments +slug: deployments +--- + +As we are a cache that aims to provide a fully cachix compatible API, we've also implemented the cachix deploy feature. +For the best documentation on how all of the cachix deploy features work, you should probably go and checkout the cachix documentation, which is hosted [here](https://docs.cachix.org/deploy/) + +### Configuring deployments in iglu +Deployments require two kinds of secrets: Agent and Activation Tokens. Both of which can be configured through the config.toml: +```toml title="config.toml" +[deployments] +create_deployments_from_config = true +enable_deployments = true # If you do not require this feature at all you can disable it here +``` +The above code snippet only configures iglu to offer the deployments endpoints to your cachix client, it doesn't configure any of the tokens mentioned, to do that you'll have to define keys like this: + +:::danger +The token that you define here will only be shown **once** at the startup of your iglu cache. They **WONT** be shown again afterwards so take note of them +::: + +```toml title="config.toml" +[[deployments.definitions]] +name = 'Some Agent' # This name can be unique but it does not have to be +type = 'agent' # or 'activate' for an activation token +expires_at = '-1' # a date in iso format (e.g 2026-05-02T14:30:00Z) or -1 for no expiry +tenant_name = 'default' # the tenant name you are adding this deployment to +``` +For an initial setup, you can use the below as a starting point (it configures an agent key and an activation key and enables the deployments feature): +```toml title="config.toml" +[deployments] +create_deployments_from_config = true +enable_deployments = true +[[deployments.definitions]] +name = 'Some agent token' # This name can be unique but it does not have to be +type = 'agent' # or 'activate' for an activation token +expires_at = '-1' # a date in iso format (e.g 2026-05-02T14:30:00Z) or -1 for no expiry +tenant_name = 'default' # the tenant name you are adding this deployment to +[[deployments.definitions]] +name ='Some Activation Token' +type = 'activate' +expires_at = '-1' +tenant_name = 'default' +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx new file mode 100644 index 0000000..51c34df --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx @@ -0,0 +1,58 @@ +--- +title: Signing +slug: signing +--- +Iglu provides two methods of signing: Client or Server. We recommend you choose the Server signing method, but if you're interested in what each method does, we've documented each option here: + +|Feature|Server-side|Client-side| +|-------|-----------|-----------| +|Derivation uploading|Supported (but iglu signs derivations)|Supported| +|Amount of public keys to trust|Always 1|As many as there are authtokens registered| + +## Server Side Signing +This option makes the iglu tenant take over the task of signing derivations. +This means that your authtoken does not need a public key attached to it and regardless of how many authokens you have assigned to your tenant, you only need to trust one specific public key. + +:::info +We recommend you choose server side as your signing configuration. This is mainly due to the fact that some features are **not** available when using the client side signing method. +::: + +:::danger +If you are running an Iglu server and you change the value defined at `[server.encryption.secret_file]` after the first boot, this will make any server side signing keypair invalid. You should probably back up this key, if you are running the cache in any production environment to prevent that. +::: + +### Example on how to configure server side signing +If you have already set up the `[server.encryption.secret_file]` option in your config, all you have to do is set the "signing_method" from "client" to "server" in your tenant definition +```toml +[[tenants.definitions]] +github_username = "username" +is_public = true +name = '' +preferred_compression_method = "zstd" +priority = 1 +api_key_id = "generated" +ttl = '5w' +signing_method = 'server' #All you have to do is set this to "server" +``` + +:::info +If you want to just checkout server side signing and later switch back to client side: That's possible! Just set the signing_method back to "client" once you're done checking things out. +**Do note though that this will invalidate all stored derivations in that tenant** +::: + +## Client-side Signing +This option makes the uploading cachix client create signatures using a private/public key. Iglu then does not have any authority on how the signatures are generated and subsequently some features may not be available that are available in the server_side model. +Iglu does perform signature verification on any uploaded binary to make sure that it is actually uploaded by an authorized private/publickey pair. +### Example on how to configure server side signing +This is the default way in which to setup an iglu tenant. Just use any provided config example and you should be good to go: +```toml +[[tenants.definitions]] +github_username = "username" +is_public = true +name = '' +preferred_compression_method = "zstd" +priority = 1 +api_key_id = "generated" +ttl = '5w' +signing_method = 'client' +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx new file mode 100644 index 0000000..f8c158a --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx @@ -0,0 +1,3 @@ +--- +title: Advanced +--- diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx new file mode 100644 index 0000000..e1ca621 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx @@ -0,0 +1,136 @@ +--- +title: Configuration +--- + +The iglu cache configuration is written in TOML. It follows a schema defined at `cache/helpers/load_config.ts`. +This is what the different paramaters actually do: + +## Values +### [database] +Configuration values referring to the database only + +|Key|Values|Description| +|---|------|-----------| +|`database_type`|`sqlite`\|`postgres`|Sets the type of the database to use. At the moment it only supports `sqlite` and `postgres` but we also plan to support `surrealdb` at some point before v1.0.0| +|`database_file_location`|``|Required if database_type = sqlite, sets the path of the database file| +|`user`|`username`|Used for DB Authentication, Required if your database_type is not set to sqlite| +|`password`|`password`|Used for DB Authentication, Required if your database_type is not set to sqlite| +|`host`|`hostname_of_db`|Used for DB Authentication, Required if your database_type is not set to sqlite| +|`port`|``|Used for DB Authentication, Required if your database_type is not set to sqlite| +|`database_name`|`string` (default `iglu`)|Used for DB Authentication, Required if your database_type is not set to sqlite| +### [logger] +Configuration values referring to the logger only +|Key|Values|Description| +|---|------|-----------| +|`logging_format`|`pretty`\|`json`| Sets the output format of the logger, pretty is probably better for developing while json may be preferred in production environments | +|`logging_prefix`|``|Sets a prefix before the cache logging outputs, this may be preferrable to set depending on how many iglu products are running simultaneously| +|`logging_prefix_color`|``|Respected only if logging_format = pretty, changes the color of the prefix tag set using logging_prefix| +|`log_level`|`debug`\|`info`\|`warn`\|`error`| Filters log output depending on what level you set, `debug` can get pretty chatty after a while so use with caution :)| + +### [server] +General Server configuration, anything that's not hyper specific can go here +|Key|Values|Description| +|---|------|-----------| +|`hostname`|``| The base url of the cache | +|`hashing_secret`|``| This is the secret used to hash api keys in the database | +|`hashing_secret_file`|``| This the path to a file containing the secret used to hash api keys in the database | +|`interface`|``| This the interface on which the server will listen on| +|`port`|``| This the port on which teh server will listen on | +|`enable_rest`|``| Wether to enable the Iglu Rest API | +|`enable_info`|``| Wether to enable an info overview page for your tenants, you can access this page by going to `/` in your browser| + +#### [server.encryption] +Configuration values relating to stuff the Iglu server has to encrypt in the database. +|Key|Values|Description| +|---|------|-----------| +|`secret_file`|``| (Default `secret.key`) This is a path to a file where Iglu may store an encryption key to encrypt stuff in the database. The file can exist but it does not have to be. If it doesn't exist, Iglu will generate a new 32 Byte encryption key, if it does exist Iglu expects a 32 Byte encryption key to be there. DO NOT CHANGE THIS VALUE AFTER THE FIRST STARTUP| + +### [storage] +Config values referring to storage and how derivations are stored +|Key|Values|Description| +|---|------|-----------| +|`storage_type`|`fs \| s3` | Sets the Storage type: fs for filesystem storage, s3 for S3 storage backends | +|`binary_storage_directory`|``| The directory where iglu should store binaries, required if storage_type = fs | +#### [storage.s3] +Optional S3 config, required if storage_type = `s3` +|Key|Values|Description| +|---|------|-----------| +|`endpoint`|``| Sets the Endpoint of your S3 storage solution. IMPORTANT: This needs to be accessible by both the cachix client and any nix clients trying to pull from your cache | +|`access_key_id`|``| The ID of the access key you want to use | +|`secret_access_key`|``| The access key secret you want to use | +|`bucket`|``| The bucket you want to use | +| `region`|``| The Region in which your bucket is located | +|`forcePathStyle`|``| OPTIONAL, default `true`. Sets the forcePathStyle option while connecting to S3. If you are unsure what this does, do not set or change this value| +|`request_checksum_calculation`|`WHEN_SUPPORTED \| WHEN_REQUIRED`| OPTIONAL, default `WHEN_REQUIRED`. Sets the requestChecksumCalculation option while connecting to S3. If you are unsure what this does, do not set or change this value| +|`request_checksum_validation`|`WHEN_SUPPORTED \| WHEN_REQUIRED`| OPTIONAL, default `WHEN_REQUIRED`. Sets the responseChecksumValidation option while connecting to S3. If you are unsure what this does, do not set or change this value| + + +### [tenants] +|Key|Values|Description| +|---|------|-----------| +|`create_tenants_from_config`|``|Wether or not iglu should create tenants from the config file, if this is set to true, any tenants defined under tenants.definitions will get created or overriden during startup| + +#### [tenants.definitions] +Any caches that should be created during startup +|Key|Values|Description| +|---|------|-----------| +|`github_username`|``|A github username, as far as we know this does not have any influence on how the cachix client behaves but we allow it to be set for api compatibility| +|`is_public`|``|If this is set to true, any client from any IP is allowed to access derivations or push (provided they have a valid api key set) to the cache. If this is set to false, none are allowed| +|`name`|``|The name of the cache, must be unique| +|`preferred_compression_method`|`zstd`\|`xz`|The preferred compression method that the cachix client will use to push to the cache| +|`priority`|``|The priority of this cache, caches with lower priority get hit first by `nix build`| +|`api_key_id`|``\|`generated`|If set to generated, will generate a new API Key on cache creation, if set to an actual API Key, that api key is connected to the cache on creation| +|`ttl`|`s`\|`m`\|`h`\|`d`\|`w`|Sets how long a derivation is valid in the cache, after that amount of time the derivation is considered to be "stale" and no longer server / removed on hit. The stale derivations get cleaned out on cache startup as well| +|`signing_method`|`client`\|`server`|Sets how the Iglu tenant should behave when signing or verifying derivation signatures. **We recommend setting this to "server"** to let Iglu sign derivations (some features are not available in client signing mode). You can read more about signing and the two options [here](advanced/signing)| + +### [deployments] +Configuration values for the cachix deploy feature. For more information on cachix deploy, go to the official cachix documentation: https://docs.cachix.org/deploy/ +|Key|Values|Description| +|---|------|-----------| +|`create_deployments_from_config`|``|Wether you want to define deployment keys from your config.toml or later via the cli| +|`enable_deployments`|``|Wether you want to enable the deployment feature or not| + +#### [deployments.definitions] +Any deployment keys you want to define. +|Key|Values|Description| +|---|------|-----------| +|`name`|``|A name for the deployment key| +|`type`|`agent \| activate`| The type of key you are creating, for more information on this and which keys you need, please go to the official cachix docs| +|`expires_at`|``| The expiry of the Key you are defining, set to "-1" (as a string) to disable key expiry| +|`tenant_name`|``| The tenant you are attaching this key to, must mach the tenant name exactly (case sensitive!)| + +## Example config +```toml +[database] +database_type = 'sqlite' +database_file_location = './out.db' + +[logger] +logging_format = 'pretty' +logging_prefix = 'cache' +logging_prefix_color = 'magenta' +log_level = 'debug' + +[server] +hostname = 'http://127.0.0.1:3000' #Set this to your hostname +hashing_secret = 'set this to something secure gawd damn' #This is the salt we are using to salt hashes in the DB, set this to something secure on your **initial** startup, changing this later will automatically make any API key unusuable +[server.encryption] +secret_file = "secret.key" + +[storage] +storage_type = 'fs' #Only option for now, in the future we plan to also allow S3 compatible storage systems +binary_storage_directory = '/tmp/iglu' #This may be an existing or not existing path + +# Define your tenants here, or if you wish to use either the CLI or the Controller set this variable to true: +[tenants] +create_tenants_from_config = true +[[tenants.definitions]] +github_username = "SirBerg" #Set to your Github Username, as far as we can tell this field is largely unused +is_public = true #True adds an allow rule with CIDR 0.0.0.0/0 and priority 100 to your cache, setting to false does the opposite. You can change this later. +name = 'default' #Needs to be a **unique** name of your cache, for example "personal" +preferred_compression_method = 'zstd' #May either be xz or zstd +priority = 1 #Sets the priority of this nix cache, this affects which cache gets asked first for a cache hit during nix build processes +api_key_id = 'generated' #May be generated or an actual ID of a key (can be found by using the cli) +ttl = '5w' +signing_method = "server" #May be server or client +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx new file mode 100644 index 0000000..ee724d2 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx @@ -0,0 +1,106 @@ +--- +title: NixOS Module +slug: nixos-module +--- +The NixOS module `services.iglu-cache` is the easiest way to deploy the Iglu-Cache on NixOS. +The definition can be found [here](https://github.com/iglu-sh/iglu/blob/main/nix/modules/services/iglu-cache.nix). + +## `services.iglu-cache.` + +|Option|Default|Type|Description| +|-|-|-|-| +|`enable`|`false`|bool|Iglu-cache service.| +|`package`|`pkgs.iglu-cache`|package|The Iglu cache package to runs.| +|`user`|`"iglu"`|str|User account under which iglu-cache runs.| +|`group`|`"iglu"`|str|Group under which iglu-cache runs.| +|`dataDir`|`"/var/lib/iglu-cache"`|str|Path where derivations are stored.| +|`openFirewall`|`false`|bool|Open ports in the firewall for the iglu-cache.| + +## `services.iglu-cache.database.` +This options configure the database. It creates a postgresql instance if you set `services.iglu-cache.database.type = "postgres";` and `services.iglu-cache.database.createLocally = true;`. +Additionally are the database settings in the `config.toml` set by this config. + +`host`, `port`, `user`, `passwordFile` only matter for `postgres`. `createLocally` requires `type = "postgres"`. + +|Option|Default|Type|Description| +|-|-|-|-| +|`type`|`"sqlite"`|enum: `sqlite`, `postgres`|Which database type is used.| +|`createLocally`|`false`|bool|Create the database and database user locally.| +|`name`|`"iglu"`|str|Database name.| +|`user`|`cfg.user`|str|Database user.| +|`passwordFile`|`null`|nullOr str|Full path to a file containing the database password.| +|`host`|`"/var/run/postgresql"`|str|Host where the database is stored.| +|`port`|`5432`|port|Port of the database connection.| + +## `services.iglu-cache.settings.server.` + +|Option|Default|Type|Description| +|-|-|-|-| +|`hostname`|`"http://127.0.0.1:8080"`|str|Public hostname which the client will access.| +|`interface`|`"127.0.0.1"`|str|Interface the cache listens on.| +|`port`|`8080`|port|Port the cache listens on.| +|`hashing_secret_file`|`""`|str|Path to the file containing the hashing secret.| +|`enable_rest`|`true`|bool|Enable rest configuration endpoint.| +|`enable_info`|`true`|bool|Enable an info page for each tenant.| + +## `services.iglu-cache.settings.server.encryption` +|Option|Default|Type|Description| +|-|-|-|-| +|`secret_file`|`"${cfg.dataDir}/secret.key"`|str|A path to a file where an encryption secret can be stored. This file may or may not exist (if it doesn't Iglu will create it and generate a random secret for you)| + + +## `services.iglu-cache.settings.storage.` + +:::danger +S3 settings are not implemented yet! +::: + +|Option|Default|Type|Description| +|-|-|-|-| +|`storage_type`|`"fs"`|enum: `fs`, `s3`|`fs` for filesystem, `s3` for an S3 instance.| +|`binary_storage_directory`|`"${cfg.dataDir}/data"`|str|Data location when `fs` is used.| + +## `services.iglu-cache.settings.logger.` + +|Option|Default|Type|Description| +|-|-|-|-| +|`logging_format`|`"pretty"`|enum: `pretty`, `json`|Print the log pretty or as json.| +|`logging_prefix`|`"cache"`|str|Prefix before each log entry.| +|`logging_prefix_color`|`"magenta"`|enum: `magenta`, `black`, `red`, `green`, `yellow`, `blue`, `cyan`, `white`|Color of the prefix before each log entry.| +|`log_level`|`"info"`|enum: `debug`, `info`, `warn`, `error`|Log level of the logger.| +|`should_log_requests`|`false`|bool|Log all requests.| + +## `services.iglu-cache.settings.tenants.` + +|Option|Default|Type|Description| +|-|-|-|-| +|`definitions`|`[ ]`|listOf submodule|Definitions of tenants.| + +## `services.iglu-cache.settings.tenants.definitions.*` + +|Option|Default|Type|Description| +|-|-|-|-| +|`name`|`"default"`|str|Name of the tenant.| +|`github_username`|`""`|str|The GitHub username of the cache.| +|`is_public`|`false`|bool|Make this cache public.| +|`preferred_compression_method`|`"zstd"`|enum: `zstd`, `xz`|Default compression method.| +|`priority`|`1`|ints.positive|Priority of the cache.| +|`api_key_id`|`"generated"`|str|Set an api_key_id or generate one with `"generated"`.| +|`ttl`|`"5w"`|str|How long the derivations live.| +|`signing_method`|`"client"`|enum: `client`, `server`|Sets how the Iglu tenant should behave when signing or verifying derivation signatures. We recommend setting this to "server" to let Iglu sign derivations (some features are not available in client signing mode). You can read more about signing and the two options [here](configuration/advanced/signing)| + +## `services.iglu-cache.settings.deployments.` + +|Option|Default|Type|Description| +|-|-|-|-| +|`enable_deployments`|`cfg.settings.deployments.definitions != [ ]`|bool|Enable deployment endpoints.| +|`definitions`|`[ ]`|listOf submodule|Definitions of deployment endpoints.| + +## `services.iglu-cache.settings.deployments.definitions.*` + +|Option|Default|Type|Description| +|-|-|-|-| +|`name`|`""`|str|Name of the deployment.| +|`type`|`"agent"`|enum: `agent`, `activate`|`agent` or `activate` (activation token).| +|`expires_at`|`"-1"`|str|ISO format (e.g. `2026-05-02T14:30:00Z`) or `"-1"` for no expiry.| +|`tenant_name`|`"default"`|str|Name of the tenant to use.| diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx new file mode 100644 index 0000000..262ba13 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx @@ -0,0 +1,5 @@ +--- +title: Cache +--- + +The Iglu-Cache is a nix derivation cache, which aims to be 100% cachix compatible. diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx new file mode 100644 index 0000000..c17af67 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx @@ -0,0 +1,38 @@ +--- +title: Container +--- + +This is one example how you can deploy a Iglu-Builder with a `docker-compose.yaml`. + +```yaml title="docker-compose.yaml +services: + iglu: + image: ghcr.io/iglu-sh/iglu-builder:latest + volumes: + - /path/to/config.toml:/config/config.toml + - /path/to/workdir:/tmp/iglu_builder # Optional if you want access the directory where the repositories get pulled to + ports: + - 80:8000 + environment: + - IGLU_BUILDER_CONF=/config +``` + +You'll also need to configure your builder. This is done through a config.toml. For your reference here are all the config keys with all possible values: + +```toml title="config.toml" +[builder] +work_dir = "/tmp/iglu_builder" # directory in which the repositories get pulled to +# !!! Warning: the following option could be used to allow ANY command remotely via websocket +allowed_commands = ["nix", "nix-build"] # all allowed command that could be executed via the websocket. + +# The following part is optional if you want to set a default cache to push to +[builder.cache] +signing_key = "some_secret_key" +url = "https://cache.example.com/name" +auth_token = "some_secret_token" + +[server] +port = 8000 # port on which the websocket will listen to +host = "localhost" # hostname to which the websocket will listen to +dev_mode = false # enables the developer mode (live reload of files) +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx new file mode 100644 index 0000000..5643634 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx @@ -0,0 +1,41 @@ +--- +title: Configuration +--- + +The iglu builder configuration is written in TOML. +This is what the different parameters actually do: + +## Values +### [builder] +|Key|Values|Default|Description| +|-|-|-|-| +|`work_dir`|``|`/tmp/iglu_builder`|Path where are the jobs get executed| +|`allowed_commands`|`>`|`["nix", "nix-build"]`|Defines which commands can be executed by a build job| + +### [builder.cache] +This section is completely **optional**. If this is set every job **without** a provided cache config will use this config. +If a config is provided by the job it will override this one here. +|Key|Values|Default|Description| +|-|-|-|-| +|`signing_key`|``|``|The signingkey which is used to sign every derivation| +|`url`|``|``|Url of the cachix compatible cache| +|`auth_token`|``|``|The authtoken of the cachix compatible cache| + +### [server] +|Key|Values|Default|Description| +|-|-|-|-| +|`dev_mode`|``|`false`|If `true` the webserver refreshes after file change| +|`port`|``|`8000`|The port on which the server is listening| +|`host`|``|`0.0.0.0`|The host on which the server is listening| + +## Example config +```toml +[builder] +work_dir = "/tmp/iglu_builder" +allowed_commands = ["nix", "nix-build"] + +[server] +port = 8000 +host = "localhost" +dev_mode = true +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx new file mode 100644 index 0000000..6fc4b76 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx @@ -0,0 +1,5 @@ +--- +title: Getting Started +--- + +You can deploy the Iglu-Builder as a **[Container](./container)** or (soon) as a **NixOS Module**. diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx new file mode 100644 index 0000000..b0318b1 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx @@ -0,0 +1,3 @@ +--- +title: Builder +--- diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx new file mode 100644 index 0000000..c10546d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx @@ -0,0 +1,39 @@ +--- +title: Versions & Update Guide +slug: versioning +--- +Hey there! If you're looking to update your iglu cache you've come to the right place. A version update usually should not require you to +have to do anything. Sometimes Iglu does require more involvement on major updates this is usually while jumping from one major version to another. + +See below for all supported versions and if there's an upgrade guide available for it. +## Support policy +We support the latest major version and all minor versions or patches in that major version window. We do not backport anything to past major versions, except for very critical security fixes. +For security advisories see this page: TODO + +## Versions + +:::warning + +Iglu is currently in heavy development and we do not currently "support" any version after they are released. Releases are tested before going out and they are expected to work +in a vacuum but they may contain bugs and unfinished features. We do not plan on porting back any security fixes to any version in the v0.x.x phase except in extraordinary circumstances. + +If you do encounter any issues please, please, PLEASE report them to us at https://github.com/iglu-sh/iglu/issues + +::: + +Currently supported Major Versions: None until v1.0.0 +Currently supported Versions: +- v0.0.2 + + +Legend: +- ✅ Full support, backported security fixes, etc. +- 🚧 Limited support, some backported security fixes, no new features +- ❌ Unsupported, no backported security fixes +- 📅 Pre-release, active development but released as a tag for you to use and try out the latest features. This is inherently unstable and you should only use these tags as a testbench for upcoming features + +|Version|Supported|Lifecycle state|Update Guide |Release Notes | +|-------|---------|---------------|-------------|----------------| +|v0.0.3 |📅 |Pre-release |None yet |None yet | +|v0.0.2 |🚧 |Released |None required|[v0.0.2](v0.0.2)| + diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx b/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx new file mode 100644 index 0000000..8ff5a73 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx @@ -0,0 +1,73 @@ +--- +title: v0.0.2 +slug: v0.0.2 +--- +## Meta Information +- Link to Github release: [Github](https://github.com/iglu-sh/iglu/releases/tag/v0.0.2) + +--- +## Original Github Release +This is the initial alpha release of Iglu. + +--- +## Features +### Cache +- Derivation Upload by a cachix client +- Cachix Deploy Feature +- Basic Nix Derivation retrieval by a Nix client +- Server Side or Client Side signing of derivations +- Typescript SDK and Rest API for interacting with the Cache Service +- S3 or local storage file backend for serving derivations +- Postgres or SQLite Support +- Deploy as Container or Nix Service + +### Builder +- Basic Nix Derivation Builder implementation + +## What's Changed +* feat(DB)!: Initial DB Configuration, DAOs by @SirBerg in https://github.com/iglu-sh/iglu/pull/1 +* feat(cachix+nix): Base Caching Implementation by @SirBerg in https://github.com/iglu-sh/iglu/pull/2 +* feat(nix)!: Implement cache invalidation by @SirBerg in https://github.com/iglu-sh/iglu/pull/3 +* Feat builder init by @Svenum in https://github.com/iglu-sh/iglu/pull/4 +* chore(cachix): Fix reflected cross site scripting vulnerability in cachix narinfo endpoint by @SirBerg in https://github.com/iglu-sh/iglu/pull/5 +* chore(db): Introduce DB schemas for supporting cachix deploy by @SirBerg in https://github.com/iglu-sh/iglu/pull/6 +* feat(flake): package builder by @Svenum in https://github.com/iglu-sh/iglu/pull/7 +* feat(flake): add pre-commit hook by @Svenum in https://github.com/iglu-sh/iglu/pull/8 +* tests(DAOs): Introduce DAO tests by @SirBerg in https://github.com/iglu-sh/iglu/pull/11 +* feat(flake): dockerize builder by @Svenum in https://github.com/iglu-sh/iglu/pull/10 +* chore(workflow): add code check for PRs by @Svenum in https://github.com/iglu-sh/iglu/pull/9 +* feat(builder): add cache settings to config.toml + fix some bugs by @Svenum in https://github.com/iglu-sh/iglu/pull/12 +* feat(deploy)!: Introduce the cachix deploy endpoints by @SirBerg in https://github.com/iglu-sh/iglu/pull/15 +* chore!: Initialize the workspace reorganization by @SirBerg in https://github.com/iglu-sh/iglu/pull/17 +* test(routes): Introduce tests for the REST routes of the cache by @SirBerg in https://github.com/iglu-sh/iglu/pull/18 +* chore: fix biome + lint everything by @Svenum in https://github.com/iglu-sh/iglu/pull/19 +* feat(db): Feat postgres support by @SirBerg in https://github.com/iglu-sh/iglu/pull/21 +* feat: dockerize cache by @Svenum in https://github.com/iglu-sh/iglu/pull/22 +* chore: add build action by @Svenum in https://github.com/iglu-sh/iglu/pull/23 +* fix: add missing arch in tag by @Svenum in https://github.com/iglu-sh/iglu/pull/24 +* fix: fix some build failures + increase debugging capability of the build action by @Svenum in https://github.com/iglu-sh/iglu/pull/25 +* feat(rest): Introduce a REST Api for interacting with the basic cache functions by @SirBerg in https://github.com/iglu-sh/iglu/pull/26 +* feat(builder): add pre defined build options by @Svenum in https://github.com/iglu-sh/iglu/pull/27 +* feat(s3): Introduce S3 compatibility by @SirBerg in https://github.com/iglu-sh/iglu/pull/29 +* docs: Create templates for how to use the iglu cache by @SirBerg in https://github.com/iglu-sh/iglu/pull/30 +* feat(info): Add an info page for tenants by @SirBerg in https://github.com/iglu-sh/iglu/pull/31 +* chore(flake): restructure flake by @Svenum in https://github.com/iglu-sh/iglu/pull/32 +* chore: fix module + improve its check by @Svenum in https://github.com/iglu-sh/iglu/pull/33 +* feat: enable derivation deduplication by @Svenum in https://github.com/iglu-sh/iglu/pull/37 +* feat(docs): document all routes in openapi zod schemas by @SirBerg in https://github.com/iglu-sh/iglu/pull/34 +* feat: add IGLU_CACHE_RAW_CONF to load the config from a env by @Svenum in https://github.com/iglu-sh/iglu/pull/38 +* feat(logger): Enable the logger to display which function called the log by @SirBerg in https://github.com/iglu-sh/iglu/pull/39 +* chore(pre-commit): enable write for biomejs by @Svenum in https://github.com/iglu-sh/iglu/pull/43 +* fix(upload): Fix the upload logic to not allow 'cross-contamination' by @SirBerg in https://github.com/iglu-sh/iglu/pull/45 +* feat(sdks/typescript): Init of Typescript SDK by @SirBerg in https://github.com/iglu-sh/iglu/pull/40 +* feat(workflows): Add workflows to publish npm packages by @SirBerg in https://github.com/iglu-sh/iglu/pull/47 +* fix(workflows): Fix npm workflows by @SirBerg in https://github.com/iglu-sh/iglu/pull/48 +* feat(docs): init by @Svenum in https://github.com/iglu-sh/iglu/pull/41 +* fix(docs): increase the sidbar width by @Svenum in https://github.com/iglu-sh/iglu/pull/50 +* feat(signing): Implement serverside signing of derivations by @SirBerg in https://github.com/iglu-sh/iglu/pull/49 + +## New Contributors +* @SirBerg made their first contribution in https://github.com/iglu-sh/iglu/pull/1 +* @Svenum made their first contribution in https://github.com/iglu-sh/iglu/pull/4 + +**Full Changelog**: https://github.com/iglu-sh/iglu/commits/v0.0.2 diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx b/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx new file mode 100644 index 0000000..f8fb62b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx @@ -0,0 +1,6 @@ +--- +title: v0.0.3 +slug: v0.0.3 +--- + +## Placeholder page for the v0.0.3 Releasenotes diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template new file mode 100644 index 0000000..eef0279 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template @@ -0,0 +1,83 @@ + +# IGLU-YYYY-NNNN: *Short, specific title — what kind of flaw, in which component* + +> **Summary:** One or two sentences a user can read to decide whether they are +> affected and how urgent it is. Example: *"A path traversal in the static file +> handler of iglu ≤ 2.3.1 allows unauthenticated attackers to read arbitrary +> files. Upgrade to 2.3.2."* + +||| +|---|---| +| **Severity** | High (CVSS 4.0: 8.7) | +| **Affected versions** | `>= 2.0.0, < 2.3.2` · `< 1.9.8` | +| **Fixed versions** | `2.3.2`, `1.9.8` | +| **Published** | YYYY-MM-DD | + +
+ CVSS Calculator v4 values + + + +
+Use this calculator to get them: https://nvd.nist.gov/vuln-metrics/cvss/v4-calculator + +## Impact + +What an attacker can achieve and under which conditions. Be concrete: + +- Who can exploit it (unauthenticated remote attacker, local user, malicious input file, …) +- What they gain (code execution, data disclosure, denial of service, …) +- Preconditions or non-default configuration required +- Whether exploitation in the wild is known + +## Affected configurations + +Describe who is *not* affected as clearly as who is — e.g. "Only deployments +with `serve_static = true` are affected." + +## Remediation + +**Upgrade** to a fixed version: + +``` +*install / upgrade command* +``` + +### Workarounds + +If users cannot upgrade immediately, list mitigations here — or state +explicitly: *"No workaround is available."* + +## Technical details + +Root cause and how the fix addresses it. Keep exploit detail proportionate: +enough for users and downstream packagers to verify the fix, not a ready-made +exploit. Consider holding back a full proof-of-concept for a period after +publication. + +## Timeline + +| Date | Event | +|---|---| +| YYYY-MM-DD | Report received | +| YYYY-MM-DD | Report acknowledged | +| YYYY-MM-DD | Issue confirmed, severity assessed | +| YYYY-MM-DD | CVE requested / assigned | +| YYYY-MM-DD | Fix released, advisory published | + +## Credits + +Thanks to *name / handle, affiliation* for reporting this issue responsibly. +*(Only with the reporter's consent — ask how they want to be credited.)* + +## References + +- Fix commit: *url* +- Release notes: *url* +- GitHub advisory: *url* + +## Revision history + +| Date | Change | +|---|---| +| YYYY-MM-DD | Initial publication | diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx new file mode 100644 index 0000000..bd2c52f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx @@ -0,0 +1,85 @@ +--- +title: IGLU-2026-001 +slug: iglu-2026-001 +--- +# IGLU-2026-001: Denial of Service by pushing the same path at the same time + +> **Summary:** A missing unique index in Iglu's Database schema allowed disabling a path by pushing the same path simultaneously + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.8) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/AU:Y/R:I`
+ +## Impact + +An attacker **with access to a tenant** may disable a given nix store path (making Iglu return 404) by pushing it multiple times at the same time + +## Affected configurations + +All configurations are affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +Make sure no untrusted person can access your Iglu Tenant. + +## Technical details + +The root cause was a missing unique index over the fields `derivations_id` and `tenants_id` in the Table `derivations_tenants_links` which allowed inserting more than one link record between a tenant and a derivation (i.e nix store path). +This caused the associated DAO Class to correctly determine that it couldn't reliably return a database record and it returned null instead causing the endpoint returning nix derivations to no longer return the affected store path. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-16 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/1172e0ca35edd47a70efa855b0129edd412ca2de) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx new file mode 100644 index 0000000..e25103c --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx @@ -0,0 +1,96 @@ +--- +title: IGLU-2026-002 +slug: iglu-2026-002 +--- +# IGLU-2026-002: Any API Key can modify any other API Key using the Iglu-REST API + +> **Summary:** Any well-formed `POST` request to the `api/v1/iglu/rest/keys/auth/modify` endpoint may modify the tenant access list for any API key (provided a valid API Key is presented in the request) + +||| +|---|---| +| **Severity** | High (CVSS 4.0: 7.2) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N/AU:Y/R:I/V:C/RE:L/U:Amber`
+ +## Impact + +Any User with any API Key may update any other API Key by sending a normal update request to the API Route: (POST) `api/v1/iglu/rest/keys/auth/modify` +allowing them to override the tenants the victim API Key is a part of and therefore giving an Attacker a way of taking over entire Tenants using API Requests. + +## Affected configurations + +Any configuration that has set the +```toml +... +[server] +enable_rest = false +``` +is **not** affected. Any configuration that has set this feature flag to true is affected. + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +If you do not rely on the Iglu Rest API, turn it off by setting the `enable_rest` Feature flag in the `server` section of the Iglu-Cache configuration to `false`: +```toml +... +[server] +enable_rest = false +``` + +## Technical details + +The root cause of this issue was the fundamental flaw in which the tenant access logic in this endpoint was implemented. It has since been removed, a replacement endpoint is planned and any access configuration of tenants will be moved to the tenant API routes. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-14 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/dedfc000225dd20c37987c07ca439e8df51c8c59) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-14 | Initial publication | diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx new file mode 100644 index 0000000..62e3033 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx @@ -0,0 +1,93 @@ +--- +title: IGLU-2026-003 +slug: iglu-2026-003 +--- + +# IGLU-2026-003: The X-Forwarded-For header is trusted unconditionally + +> **Summary:** The Iglu-Cache trusts the X-Fowarded-For header unconditionally, allowing a Hacker to circumvent any IP blocking rules + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.1) | +| **Affected versions** | `<= v0.0.2` | +| **Fixed versions** | `v0.0.3` | +| **Published** | 2026-10-16 | + +
+ CVSS Calculator v4 values + + CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/AU:Y/V:D/U:Green + +
+Use this calculator to get them: https://nvd.nist.gov/vuln-metrics/cvss/v4-calculator + +## Impact + +Any attacker with the right headers (namely the `X-Forwarded-For` header) could circumvent Iglu's own IP +filtering rules (`called access_rules`). + +## Affected configurations + +All configurations are affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + +### Workarounds + +Set ACLs on a system level or on a reverse proxy level + +## Technical details + +The root cause was a flaw in Iglu's IP filtering middleware (`shared/utils/rest/IPFiltering.ts`) that trusted any arbitrary +X-Forwarded-For Header implicitly. +This has since been fixed by introducing a `trusted_proxies` configuration option that sets which x-forwarded-for headers +should be trusted and from where. + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-12 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/6a3dd73f9e0bea8c9dafcbaf9c8e9b058259f009) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx new file mode 100644 index 0000000..f216e8d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx @@ -0,0 +1,88 @@ +--- +title: IGLU-2026-004 +slug: iglu-2026-004 +--- + +# IGLU-2026-004: Deduplication allows any tenant to overwrite any other tenant's files + +> **Summary:** Uploading a derivation to an Iglu tenant may overwrite that same file for other tenants if that same nix derivation path is present in the victim tenant, allowing a hacker to potentially serve malware + +||| +|---|---| +| **Severity** | Medium (CVSS 4.0: 5.9) | +| **Affected versions** | `>= 2.0.0, < 2.3.2` · `< 1.9.8` | +| **Fixed versions** | `2.3.2`, `1.9.8` | +| **Published** | YYYY-MM-DD | + +
CVSS Calculator v4 values +`CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N/S:P/AU:Y/R:I/RE:H/U:Amber`
+ +## Impact + +An attacker may be able to upload malware on any tenant by uploading an already cached derivation on the Iglu-Cache Server due to a flaw in Iglu's deduplication logic. + +## Affected configurations + +All configurations affected + +## Remediation + +**Upgrade** to a fixed version by updating the Iglu Docker or Nix Service: + +### Docker Compose: + +```diff +services: + postgres: + image: "postgres:18.3" + environment: + POSTGRES_PASSWORD: "changeme" + POSTGRES_DB: "iglu" + iglu: +- image: "ghcr.io/iglu-sh/iglu-cache:v0.0.2" ++ image: "ghcr.io/iglu-sh/iglu-cache:v0.0.3" + volumes: + - "./binaries:/binaries" + - "./config:/config" + environment: + IGLU_CACHE_CONF: "/config/config.toml" # Sets which directory should be searched for your config.toml + depends_on: + - "postgres" + ports: + - "80:80" +``` + +### Nix Service: +Run `nix flake update` and re-start the Iglu service. + + +### Workarounds + +If users cannot upgrade immediately, list mitigations here — or state +explicitly: *"No workaround is available."* + +## Technical details + +The root cause of this issue was a flaw in the deduplication logic of iglu which didn't check for either if the file hash of the uploaded file +matches the potentially already stored file hash or if that file already existed in the target filesystem backend, +causing the file to be overwritten by iglu with potentially malicous files + +## Timeline + +| Date | Event | +|---|---| +| 2026-10-12 | Report received | +| 2026-10-12 | Issue confirmed, severity assessed | +| 2026-10-13 | Fix released, advisory published | + +## References + +- Fix commit: [Github](https://github.com/iglu-sh/iglu/commit/b22ea05034e32251d4ee5e49aaea66903b4c1110) +- Release notes: [v0.0.3](../../versions/v0.0.3) +- GitHub advisory: None published + +## Revision history + +| Date | Change | +|---|---| +| 2026-10-16 | Initial publication | diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx new file mode 100644 index 0000000..fe8c549 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx @@ -0,0 +1,14 @@ +--- +title: Security +slug: security-advisories +--- +See below for a list of security advisories and which versions these issues were fixed in. + +All Severity scores in CVSS v4.0 format. + +|Issue|Severity|Fixed in| +|-----|--------|--------| +|[IGLU-2026-004: Deduplication allows any tenant to overwrite any other tenant's files](Issues/iglu-2026-004)|Medium 5.9|[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-003: The X-Forwarded-For header is trusted unconditionally](Issues/iglu-2026-003)|Medium 5.1|[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-002: Any API Key can modify any other API Key using the Iglu-REST API](Issues/iglu-2026-002)|High 7.2 |[v0.0.3](../versions/v0.0.3)| +|[IGLU-2026-001: Denial of Service by pushing the same path at the same time](Issues/iglu-2026-001)|Medium 5.8|[v0.0.3](../versions/v0.0.3)| diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json new file mode 100644 index 0000000..b2a7685 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json @@ -0,0 +1,36 @@ +{ + "responses": { + "101": { + "description": "Returned if the server acknowledges the connection upgrade and switches to websocket (see iglu deployment docs for websocket information or cachix docs)", + "content": {} + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx new file mode 100644 index 0000000..fc58916 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx @@ -0,0 +1,71 @@ +--- +id: cachix-agent-deployment-websocket +title: "Cachix agent deployment websocket" +description: "Attach an agent to the required deployment websocket" +sidebar_label: "Cachix agent deployment websocket" +hide_title: true +hide_table_of_contents: true +api: eJydVE1vEzEQ/SuWTyAtSSrEJbcKEOoNIThVUeV4J7tuvbbrmU0aVvnvzHiTdlOCQOSStefrzZs3HnQNaLNL5GLQS31NZGyrTFCmgUCKoqIWVIbH3mWoVQ3Jx30nph2sMdoHIF1pMg3q5a22HOye+GL006tKJ5NNBwRZHAaNtoXO6OWgaZ+AKyJlFxp9qPSpiF5S7qHSgePYwfTUxux+mgKx0k5wtmBqyPqwkjBMMSCgJL1aXMnfeVPfgPocGL3blG4Q8hayMvYhxJ2HugEs9zaGAFaCVJ+azBWYiFrhzhGjRiHjuWn1BgGUa3w/5aSOFtUm5omfC3zuCnjFhpGh4viWm+GSxIGM+cAMfFi8/zv6DRi+AP52qHLsiWGgYppJxY18hkgKgllzZ2cVtEnJO1ugzO9Rkl+YR1zfMwccmHJMkMmNxCJxVbyzsYaJc+i7tYyhOtk7QGTlXJyvwzvIOeaJcR2jBxPEWhv6BxglwV0NZJzHC1XOZHT7yn3FVnIMkUyXLnTxKnja8m8NTto5Yp/mXh3kV2kWfhs5mW7KmiRDLR/mO3z3IhrJXQQ5LkifveibKOFyPheBzeCJc3qY2djNi+RFU4JfgkaRLGaL2VWBQF5auhFhXn+9Kas4VdPJoD6dpNojCyiofewzS3kLPqYCi+GniNSZopPjMn4c5Ts+Dn94DM4KDi8C/O/HZZwSwRPNkzeuyKXQNBwZvdXnjDJFLUMXwzCsDcKP7A8HuX7sIe/5nj+3JjtZEjlxwuOLIiN4gL2gtRaS1N8a35eH6PX6yCieJ/zl83dW0C9sVt20 +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Attach an agent to the required deployment websocket + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json new file mode 100644 index 0000000..3f705f3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json @@ -0,0 +1,13 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "name", "in": "header" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "version", "in": "header" }, + { "schema": { "type": "string" }, "required": true, "name": "system", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json new file mode 100644 index 0000000..b2a7685 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json @@ -0,0 +1,36 @@ +{ + "responses": { + "101": { + "description": "Returned if the server acknowledges the connection upgrade and switches to websocket (see iglu deployment docs for websocket information or cachix docs)", + "content": {} + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx new file mode 100644 index 0000000..79cd45b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx @@ -0,0 +1,71 @@ +--- +id: cachix-agent-idle-websocket +title: "Cachix agent idle websocket" +description: "Attach an agent to the 'idle' cachix agent websocket" +sidebar_label: "Cachix agent idle websocket" +hide_title: true +hide_table_of_contents: true +api: eJy1VE1v2zAM/SuCLm2BIEkx7JJbsQ5Db0OxnYqgUGzGVitLqkgnzYz895GK0zpt9oGizSWWSD0+ko/sdAlYJBvJBq9n+oLIFLUyXpkKPCkKimpQJ7Z0cKIKttnH3rSGBYbiHkiPNJkK9exG7xz4ooTowkbPRzqaZBogSOLQaSxqaIyedZo2ETgiUrK+0tuRTvDQ2gSlnlFqYaQ9v2OH/DfSVujVYEpI7PwWINNSHZL9ZXKu74G44qzeCws3SNC8hJqLP8bgEVDQzqfn8nfYtGugNnkolV3mbiEkZqZMce/D2kFZAeb7IngPhTxSbawSR+BGlwrXlpguSrOfmqpOEUDZyrVq18tGel6GAtUypIGf9Xxuck0VG3qJiOMZJ8MhiR8y5y2n/nn66d/sl2D4AvjbokqhJaaBimVEKizl0wdS4M2CMzuIoE2MzhaZyuQOBfxII8LijmvAD2MKERLZXWGROCreFqGEgbNvm0Xu6N7eACLL/2hjLd5CSiENjIsQHBgv1tLQf9DIALclkLEOj0Q50M/NC/c5W8kyRTJNPJLFi8fDlF8lOEin5z7Enm/lN9I82HVgMF3lNRAN1XyYrFEAswp3U98mJ6ImijibTERVY3hkIAfjIjSTrHMRkpDeD9VMT8fT8XmOS07yuBI1Xny/yvtlKKG9QV3u9dkiq8arTWgT63cFLkQRsDQiBqTGZHH0o/dluNZk0x3stoNQ3bPe3rwrd00heKRJdMZmdeQCdX0BbzQXkCtSM1M5dd3CIPxMbruV64cW0obv+XNlkpVBkBOj9FtDKl5a3E3IbGkcwl/SOL3uNXGm/sTuHjbPi3hlXCsuec99QJjnpfrRkZ5W7kGgne2iKCDSwPZquYhmn/T/7esPnq/fyuGEdA== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Attach an agent to the 'idle' cachix agent websocket + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json new file mode 100644 index 0000000..2892ed2 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json @@ -0,0 +1,10 @@ +{ + "title": "Body", + "body": { + "description": "Array of Nix Store Hashes that should be checked if they are already cached", + "required": true, + "content": { + "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json new file mode 100644 index 0000000..7153c5a --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json @@ -0,0 +1,122 @@ +{ + "responses": { + "200": { + "description": "A list of hashes that are not already stored in the tenant", + "content": { + "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } + } + }, + "400": { + "description": "Invalid Body: This is returned when your request body is not in the proper format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx new file mode 100644 index 0000000..203c2f3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx @@ -0,0 +1,71 @@ +--- +id: checks-if-a-given-array-of-narhashes-is-already-cached +title: "Checks if a given array of narhashes is already cached" +description: "Checks if a given array of narhashes is already cached" +sidebar_label: "Checks if a given array of narhashes is already cached" +hide_title: true +hide_table_of_contents: true +api: eJztV8Fy2zYQ/RUMLm1mZNNuc9LNSZuJL2kmcU8ejWdJrEQkJMAAS1mKRv/eXYCyKEvJdNx20oN1kChiudi3b3fxuNEGYxVsR9Y7PdWva6w+R2XnCtTCLtEpCAHWys+Vg1BDrJFXo4ImIJi1qqCq0eiJJlhEPb3V0NlieVmk+3xbfu1Kzya6gwAtEgYx2+jI6y3o6UbTukPeOVKwbqG3Ex3wS28De51S6HGiHT/HBoQOHLFPK4F2QDUbP8UR9FT7YL9Cwjz4qxkOhid67COGM1jgPrydu1l+BiO98mYtPg/zfbXL7ju7Uh/JB1Rvc5KpBlKx9n1jVImqEmLQCDNU45ppwWMSHodXeUcSFG8LXdfYKkEuPkXZ+wTQxLVAIGzjiQTIR3aJnXcRk8UvFxcnUKnGRhJY9QiMhOw8PYQdBS4jcoJIPdD73wT98lSc124JjTVKuJmqm9qm2g5IfXAc2X3N9b/2fVADh6pkQzERGEPcXfAdBjX3oYWnhO/LT1jJg9kR2ZzXSEB9vKu8wZGx69syVeluvcUYufBOFquNdxiCD6PF0vsGwcmqAfobYSQHdwYJbHMyueOiu31kPuNVshwiQdudQPHo4THkI4AjOEPsY9+zHcmXxyTfMEmfuWOYSHWPXIN95NB3LAas/MLZr6l/nrn7kdz9eszdGx9Kawy34Zl659XB5J4otNyAIRFrrHE/kTTj0hqejO7QVuV5rHzI/Tz8PezkV8gT6rmT/yfV8PJ0Jw+TmKdzPjCU8ZhZxFU6c4RL5pVP5CWGZxZ/IIvsjgVf7Y3INR8TGFFtU12MVWKxyUxuC1aY1s29bJbYy0qxD40IKqIuTovCLpr+HFe8SYPnlW+LpLGEzQ97nfV7Xs8gUmJmosvYNYMWx7meLs4vzi9T3CTG+pp9q6v314LoUCcMC+o3X0UZEHyGoIyNNEwMLrHxXStVxpgFagupuAZ5+GRRfRDFZl/K/0CmZ8YJV1R0DdhUeinDm4GcJOHZcnk5yHfhevqgznYccUJr4ZTtN5sSIv4Zmu1WbjMLgZXuLV8u2RjKRAT3so1yzdUwhybid9D9/GGowhfqWyHvtJ8T5ccirpd/fMkH/f5VYSsFPyjxfz2CvNOB8n+IQ94i8vrr7PLsRlzsLY4m0f6Jq6rCjr5rOxs11vs/Pt6wcTm8XbRpPukA9/I6wN8pKz5BTPMi3dvoBtyiT4NKZ5/y+Qvdpecw +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Checks if a given array of narhashes is already cached + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json new file mode 100644 index 0000000..bf5bc29 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json @@ -0,0 +1,11 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json new file mode 100644 index 0000000..ac30d3a --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json @@ -0,0 +1,37 @@ +{ + "title": "Body", + "body": { + "description": "The new tenant", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { "type": "string", "enum": ["client", "server"] } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json new file mode 100644 index 0000000..01fb2de --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json @@ -0,0 +1,225 @@ +{ + "responses": { + "201": { + "description": "Success response containing the newly created tenant", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "Returned if either your auth header was malformed or the api key you provided does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Returned if you did not provide all required headers or these headers where malformed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "409": { + "description": "Returned if there is a naming conflict (i.e if you chose a name for your tenant that already exists)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Returned when your request body does not adhere to the required schema", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when iglu had an issue processing your request. This was iglu's fault", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx new file mode 100644 index 0000000..4513c28 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx @@ -0,0 +1,71 @@ +--- +id: create-a-new-tenant +title: "Create a new tenant" +description: "Create a new tenant" +sidebar_label: "Create a new tenant" +hide_title: true +hide_table_of_contents: true +api: eJztWEtvGzkM/iuCLtsCru1kdw/1rY899LRFmj0FhkHP0B61mtGsHk68Rv77ktJMZhyPnaIoYCzWOQQeiaRIfiQlcidzdJlVtVemkjP5wSJ4FCAqvBceK6i8HEkPaydndxJqNdlcTdRah4lF5yeJwhEJr8n5SNZgoUSPlhl20mUFliBnO+m3NdIBzltVreXjSFr8OyiLuZx5G3AkK+IjAgi+MFb9A1EjEsxqFQg5WuL6EYnBoX0Da4ym7ImbJx6y5L3Jtyxz3xu3Be47IjOVZzlECXWtVRa1nHx1TD6gm1l+xYwZa2tqtF6h412VD+q/Vr4IywXrm1QfoDm6QeJL5ZxKmhxsK7eow5I07u0ujdEIVeS2uEJLvltkpqSPKGhBQBZmWNdg1bAaVhF6ftvbrEK5jOBJ7/XgulPriviPnjeSSMQcgZlWCUfy0YaY5497uN+xaw8d2bhtz0l9l7xgf7K2Z1uy5EBvUiap42pTuQT19fTqMK6+hCyjI0RLKTiuQLEs4VPM6a3IYi7mPz36nAcfHBma4zAaab8kDSlrjkUTecvYgWB6wmoF2uGciHPwl5z4/+YEbSiKJQ9lPWDoM1X7sXkQib24a6KqL7vJvt+GEu4GfbAV5ZJaCSRHoBVbE6zgy0ak20DcgxMl6JWxJREaGzORbjzxDbdMLSheNyqnvdygE5XxAh+U+88k5ndnYhSwyJEqknYDpzyDbJ/8DHj/ehpvhi5XeQSsgVCA1qJVo8HfNZBTNW4X7ilOsIuJC9BnBvrtaaB9hEs5fr1CyXcpwbUikLx4pcbYxkJWGIeJBgUhmypBumRJBniKDrp5821Kb/f6gvt5cb++PoE75WiVEGxe8mJJT/muREMeo8KbWM6fcr5B7ILsOZH9fTp9CVluK0UBuQD67VxALuH8dub07sM+FrcFpT5f4szzixMrCPpyOZ8b4RcuZ07KFbU5gXOUAbQm+FjEa7BemBX/jE+tCpb6cgefFU8S13Yjsjbx5VuDL+hrcmIylLqSNA4KVvP4xfvazSaReowPJF/jmHqMSZzIMJA33VTmj7Tftohd+3PQGXZbz7/7fWC32mv/0rzodMPXMcY+ryf9qb2bNu3c9LB9a7s0DptqZdgc9kpSaTqejq+ivz1bKj9x1Xv3+RMjsZc67Yb4aDIXHy9kvlDNDZjjBrWpy+YchqiEmBSNQ4ane3tH7Lr8OjYMTDHm8cFPag2qSq1v7GJTOMRBIVFurtrBYByKROYmLAjngiOIaHe7JTj8y+rHR14m4C258o5+bsAqznr+ojOaqR3HUa5cKgezOGU4YcOrmyYBXotjulN/93xKuAEdmDBOHNP+hyTyzS2L6CgOSlDH8S7LsPYnaee9jPr855dbIl42k8gyFiZp4Z69R/9Jm5E00cRYKOLaTmqo1iFWKJlk8t+/D8qtGA== +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Create a new tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json new file mode 100644 index 0000000..723ae6e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json @@ -0,0 +1,13 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": false, "name": "confirm", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json new file mode 100644 index 0000000..018d9fc --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json @@ -0,0 +1,20 @@ +{ + "title": "Body", + "body": { + "description": "The access rule to create", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ip_block": { "type": "string" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": ["ip_block", "priority", "action", "name"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json new file mode 100644 index 0000000..f97f53d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json @@ -0,0 +1,303 @@ +{ + "responses": { + "201": { + "description": "Response cotaining the new Rule", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "ip_block": { "type": "string" }, + "start_ip": { "type": "number" }, + "end_ip": { "type": "number" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": [ + "id", + "tenants_id", + "ip_block", + "start_ip", + "end_ip", + "priority", + "action", + "name" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "406": { + "description": "Returned when your route params are not in the correct format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Returned if the request body is in an invalid state", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "423": { + "description": "Returned if a new rule would lock out the IP you are requesting from. This can be done regardless of the locking by providing the confirm=true query param", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned if the rule creation failed on Iglu's Part", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx new file mode 100644 index 0000000..6c16f70 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx @@ -0,0 +1,71 @@ +--- +id: create-access-rules +title: "Create access rules" +description: "Create a new access rule for the given tenant" +sidebar_label: "Create access rules" +hide_title: true +hide_table_of_contents: true +api: eJztWd9v2zYQ/lcIvnQDnNjJuj0Y2EPbbUBetiDLngrDoMSzzUYiVZJy4hr+33tH0pYUy/kxFPA6OA+BLB6Px/vujsdPay7B5VZVXhnNx/yDBeGBCabhnok8B+eYrQtgM2OZXwCbqyVo5kEL7fmAezF3fPyRi0oNlxdDNS/qoQXnh1HCoQi945MBr4QVJXiwNGHNXb6AUvDxmvtVBbi081bpOd8MuIXPtbIg+djbGgZc4zwU2C2qyNJK+AUKv1DRTBSu0ZQbPVO23Kr6XINdvVxXxyhR+4Wx6osIDkwKFyAk2H+psXZgz8Qcmq1u1U3iHHTveyNXpLML3i3i08bMG5YHPFERbtmTSpwkqqpQeTB4+MnRzB4zTfYJcrKgsqYC6xU4GlXVNCtMfte7ocoqdIVftQZ1XWbBE1zk0crH8wYcUIhiSOJKnARzqDyfbLYe2Vup47uPjU0tC3brJSWTzSZOc5XRLu7lcnSx78ObJMFy44XSuF4Ie0qHG/Tpt/Ok88LXbpobCb3+SuMloonB0Otv5aZgrbGtwcyYAoRuvBoCn3wphX8JvrJ3pZTN087w61TMlV/U2ZSi+wCsB/HGFcCWyrneAIqOqOoMoejxRIhLmKGjQKK3S/wRFKFnMXP7ba2ten2Ae1/0A6nmFEYH12sSIC9UzHr00RInT/YiXfJ9Rya3dZzUdskz+4+77aQO7WTPboqhJ7MfA9b6qap6nQBaHho6VtWgrbfietCuI7u97Cx/sragIoWJ6kXZt8VHC7cTfy/NW0mdUratO1Wxt32Fi4r/HazYytTsHiyw2lHxUo5p45mF3CCcX0B+LxXsxSUrKJhKwHJduOdx74ofAbuf9rH7w9hMSYmN1Rn707BOTzFggAkPNgArldRvPEMHLJXEw153ZVnsFJgJ0nb7M8WA0uEoew/C4kts6ErhT9Fw5Gh425/Jqc8DmVptJg1EFOFBOc8MYYm4ppPihOJxUfylr5H0tdUI4P0C8zqkozU13q3CPcgxTMJ2VuYGD+jcn9LyPwHo5eUTgKpZQCylKMvwLkYlFoHEeqz0UhRKMlr2u7kt/G9h7Dlr2zBGmiPcle9NXUhG7R/DLA0AX12HM5cSNWFNDdXMmvKc3VLxzRHvDLA0a5KYCysLunubGB+kiyZkq3Reb++SiX34lW79LHAPsSacouWo0fLzaPSCpKdYCaQKtVsztBTH8OlqXtRvHLvGa8MJxiPD+EzSE4wzBLDGvA49VDyW8QGz0FP2pn4ZG6+sOF2YjoonqtvyJrwyLmyGiN8xHx6inIfr+LAZRi50SjnrdqxKZJ9rWxCx6n3lxsOg4xwecNUCznNTDgPXSvDeNHzr73E8UFw7HqThIxoaY9TQFlt2IlG7LRz1zJAmMihKjs5H5xfBAZ4W4VRR2LvrK3JNJ5a3A+w3k7vAy9cOqPsIPaaEJRSmKilciVxBn5UiRGmyYcvwNzyxe7zEugn4138QiOHg4cEPq0IoHfm0QI1F5MLHApRcXmw/DgRe1jd0DD6Ndwo7ICIqC4oCVLJeZ8LBP7bYbOh15PAJWqlczNst6X8Hqw7njw1aTTYGkJfCKhLvn3rQLT/cpCD/kR3adHop9Kq95tactL8N5VPi97+5BXGlzveEZu+DdRr/EFWe3ZKKRmKv0DUz3kWu7SnZSStvr//6+xaFs/TNogzlj1txT8Dj/+AVE7YYylF4t+aF0PM61EEeddLfVw6FWBU= +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Create a new access rule for the given tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json new file mode 100644 index 0000000..1a746f2 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json @@ -0,0 +1,22 @@ +{ + "title": "Body", + "body": { + "description": "Schema for creating new Key", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "name": { "type": "string" }, + "tenants": { + "type": "array", + "items": { "type": "string", "format": "uuid" } + } + }, + "required": ["name", "tenants"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json new file mode 100644 index 0000000..a1f8403 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json @@ -0,0 +1,176 @@ +{ + "responses": { + "200": { + "description": "Name, id and secret of new API Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string", "format": "uuid" }, + "name": { "type": "string" }, + "key": { "type": "string", "format": "uuid" } + }, + "required": ["id", "name", "key"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "400": { + "description": "Your request body was malformed or not in the right format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The API Key used was either not recognized or does not have access to some of the tenants in the tenants key of the request body", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "You haven't presented an auth header.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Iglu encountered an error while creating the API Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx new file mode 100644 index 0000000..05299ef --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: create-new-api-key +title: "Create new API Key" +description: "Create a new API Key that is authorized for given tenants" +sidebar_label: "Create new API Key" +hide_title: true +hide_table_of_contents: true +api: eJztV0tv40YM/iuDufQiW3Ee3ta37baHRYF2sZseisAIaImyZivNqDOUs67h/15yJNV2rLYBWsAokBwCS8Ph4/tIitzpHEPmTUPGWb3Q7zwCoQJl8Um9/fBe/YBbRSWQMkFBS6Xz5nfMVeG8WpsNWkVowVLQiSZYB7140NCYdDNLzbpqU4+B0l9xK+fyQi8T3YCHGgm9SO90yEqsQS92mrYNsg+BvLFrvU+0x99a4zHXC/ItJtryPRYY/IDoNCsWz0uEHL3eL7trbPdbl29F7WmEn6K5GEAmwbKpGCwHqs8tZs5ygCRqoGkqk0Wb6ecgukZ8d6vPmBErarxr0JPBIKed4yMRDugdzsB7EE8MYR3O7ySaPa+BPdJta3K935/g9NCZOihe7nuJ0DgbOm+ur67OcfmR7yXK5ApsrgIyNqRccZwH+j+DIxBQGx4zlx+jYtt6JQwmw3mNIcB6HDgTHtF7548OV85VCJIQyKoYiwKqgEsWzoFe4BWj+c9wJ3/NJaf5S/g6pYtfJQNnokDcJcORE9TNCDjPrh8jeYbbEUo9Bse6+8y4HUuGX1zrVV9GasV1pJ4gqBoqCYbLn4vHOu4JXP4lKm/WJak+zv9Jkrw4K6KCxxwJTDVSj88JORW/AJuzczbvmaOhl7eB6RMy0TB1HY0eM7e2sa8zsbnDEF+XsOEvQZaxfUVOBVejdARhvO8uQwIMj5zAg8Rx8rzmxIVz4ma0wiPB9itSDX8dmByU3h8/8qr7mE5fibsocXdjrfk9T1EKbeZaJsZ3nEVF6qk0FR6GGjpU/SuPF+ZxpAA/IrXeMn+ma5gF09Z67qUlT9retTyF8w+eleMYZrqWzH12VWH+yucF+WR1vL2UjpXpxoUYDFDJT+no5pNKRxVL6DfDztP6SlYWoiYs0ig/xS9socJp5uo0bjFC5cfDJvN9d37YJg4T5p9LxIO+KeDru2J+O7l7M3szub2bX09WN0U2uc6+md8U8zkUMI+AGVs40SUudQl5Nb2azmK4JGa6RsMNRIA470DSWb5zWYiLFA8VMgpsZWrMcYOVa2pJTrYjCNVgj9zuV8zTxeLEwu6Q3f9uIe3ygPALpU0FJiZkhH7XUxaXVZbczIb9NK5K1A3joiOSx2yUwjTL73YrCPizr/Z7ec30eJ76H/jnBryR6pQnttPvo8J2XAz0uy6myb14JeJVG/e959W7T4Ybb3n2auhvZZdHyfjhp0/3LLzq19461rT28CRB8f+F5h8uYhxrLL7b6Qrsuo3FrTud8vcHdhGaBg== +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Create a new API Key that is authorized for given tenants + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json new file mode 100644 index 0000000..9064af6 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json @@ -0,0 +1,177 @@ +{ + "responses": { + "201": { + "description": "Informational response after tenant deletion", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["Tenant deleted successfully"] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when the creation failed on iglu's part. Referr to the error information for more detail", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx new file mode 100644 index 0000000..dc39f26 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx @@ -0,0 +1,71 @@ +--- +id: delete-a-tenant +title: "Delete a tenant" +description: "Delete a given tenant" +sidebar_label: "Delete a tenant" +hide_title: true +hide_table_of_contents: true +api: eJztV1Fr2zAQ/itCL9sgjZOte/FbRzsojDFK91RCUexzrE6WPElOm5r8991JTmI36ShlEAZ9iiOd7r677+6ka3kOLrOy9tJonvJzUOCBCbaQS9DMgxba8xH3YuF4esNFLZPlNJEL1SQWnE+ihEMRWuOzEa+FFRUqsXSg5S4roRI8bblf1YAmnLdSL/h6xC38bqSFnKfeNjDiGs+hwNaoJES18CUKv0aRaHxprHwUwblOXwkiB/tKjY0DeyIWsIO3UTejM6422oEjjR8nU/oZRvdSF8ZWAY5QbCPPRIHR6mLNcmIg4s2M9mQK9Yi6VjILJ5M7R8oOwDfzO8gIWW1NDdbLCMV54Rt3m5kcesK6qeYhDpv9CpxD1w6GQ7pbsNbY3ubcGAWCYAKqQqoLoRzMUDgX/gWo5C4W+ya3Svl1LyqQM9dkGeIsGqVWfLYeMHUz0ElIvESnvKjqA34/OdoP0l5IegHo3OvrRhik7fQQ49clsF+wYivTsHuwwBqH/jHpmDYeMyAzCy0fEcJ/wvaL6Q0KbnPwQip3wMqT8A/Fj8Ddp33uvho7l3mObfCEfTds0E1GDKQvsWqJ2Fzm+p1nGIClzLGc9VCWxR7BTJC2m79dDkjsspgkX0BYXIz5+5YNR86G08OVTGZQFPvQplkbiCzCg3SeGeISecVbYgn2jcWjsvh5Mtln8Qp8YzUSeF9CLLzMQqzSAmHiBn7RS+adY/iQ8WN2BQVaYt4E6WCU9e4ZqlhWGezs0dE30o9M+oFGviVdFoHEAhlvkLFQq9Y0+OCVkW5mik1fxgKfq7eL+ah8ojqcJEqDynh8AZI7NBCkPHluFEna+LEmk6ERx0GksYre697XLk3CsTE8oCkF48xUSXjCU2GTW3Qo5s5kPBlPAzKvyNNLPMfOflwS5uHbvttg5yZzoSvgsEC3e7jzc1iCMnVFeYRe1cb5SoT06SaL7eC1nX4G6ttdFj4/o0UuPDz4pFZChqQIXrdd0ML8hpLL6WZeC1NLOLyd49JOIYajRJh0qm3nwsFPq9ZrWsZL0K5wHT+XwkqqkxDhXLpYM2mYBf7iwvurLks+sOeAd4tCrwiwUA39w098Te9mxDUlZDeC/XME0dJg5NvioPEx7p/hQFL39/Z6BCXWNo3PL75dXF9gpfwB3sFsMQ== +sidebar_class_name: "delete api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Delete a given tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json new file mode 100644 index 0000000..1a1c04f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json @@ -0,0 +1,19 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "access_rules_id", + "in": "path" + }, + { "schema": { "type": "string" }, "required": false, "name": "confirm", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json new file mode 100644 index 0000000..747355f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json @@ -0,0 +1,177 @@ +{ + "responses": { + "200": { + "description": "Informational Response after the rule is deleted", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["Access rule deleted successfully!"] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "423": { + "description": "Returned when attempting to delete the last access rule without the confirm query param", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx new file mode 100644 index 0000000..6b7cf4f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx @@ -0,0 +1,71 @@ +--- +id: delete-access-rule +title: "Delete Access Rule" +description: "Delete a given Access Rule" +sidebar_label: "Delete Access Rule" +hide_title: true +hide_table_of_contents: true +api: eJztV1Fr2zAQ/iuaXrZBVqfd9pK3jXZQGGOU7mmUoNiXRJ0sudIpbWry33cnO42dpKyUsTDoU1Pr9Onu++6ku1oWEHKvK9TOypE8BQMIQomZXoAVn/IcQhAX0YAcSFSzIEc/pap0tjjO9MzEzEPADMEqi4FM+Ju8GshKeVUSkucNtQz5HEolR7XEZQV0TkCv7UyuBtLDTdQeCjlCH2EgLe0jgwaSEdmtSuGcjJ8DpFIIY08hhLEunoc4VSZsIHNnp9qXa6ibCH75XO8izp3X9yrx3wLOQRXgn4kYA/h3agYb8tZwV7wnVM4GCIx4Mhzyn34CnNup82VyRxlx0doLNSUtBc5BMJFCB1GkTGE+iQ7k4whLVZXRedqdXQcG3BOCm1xDzt5V3lXgUTfuBFQYwzh3BXSMbSwniYv1eklqUnh7KdFhDN4731mcOGdAMbVAUJSMScorMi4UPsErveFj98gHUNkWSiKnZUaEmD5OozHLV/Jq1dPsZw+Z/UFNoaEqqz3Rb23tUrVDTIeGNsguNrnBaB+Gx7vaX5K8v2Apli6KW/AgYqAoWWzrUHjI3czq+/9H8yeLnADGBaDSJuw5ZYv+vvkBtHu/q90X5ye6KOjOfie+OdG7VwYCNJWuT8IWurCvURABC11QYdu+rWhuC+GStV//2+aAtukO+AzK08cmf1+y4cDZ8GF/JfMxZEoXUfOWisJBoyLc6YDCsZakK70XC/AvKh5WxZM9NX0BGL0lAW/nVNcKEUpaohsZXfvIpGo0itRUnQfolqrdRUyLba8iUpMiUlv2IvVBpf647/p+kFpPk2xTIGAPTYV6EjP1XCQf1e10fRtTWU/My3N8UD0JjuacuSMw2dQkh8PDxUhmjw1KWd38WGXd6SSrt2aVFXuUbudmiorecDuPWIVRllCP4I48MXCUuzJLHT53lRw1b2pSa3g0PDpOjqNhIs5pn/j0/ZxD6rf+7YI4dXngx536P+AnPzUCBSzAuKrkNKOgKxewVCm72sGjHR37I2PvhHqTp38YNBvJEO4wq4zSKXdS9HXLbRpCyXJxvB4603DDubQZRkcPQ2SXWF7YHgqJuDkFxLh1PVEBfnizWvHnZrhj9gsdmnJbT4PUKveGwYUykd1OOiyU12y+f+ujtLy5aHPzrXiMh/ajssvumWt32pB5dvyHp27zueIqbOfOv05Ac2Rvzt1QT3E365xRVXdt52JkmR5q9/Ts69nlGV0PvwGd5PhS +sidebar_class_name: "delete api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Delete a given Access Rule + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json new file mode 100644 index 0000000..f5e9e8d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json @@ -0,0 +1,149 @@ +{ + "responses": { + "200": { + "description": "Informational response to acknowledge deletion of key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["This API Key has been deleted."] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The API Key you provided does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "You haven't presented an auth header.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Iglu encountered an error while deleting the API Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx new file mode 100644 index 0000000..e919206 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: delete-api-key +title: "Delete api key" +description: "Delete the currently used api key" +sidebar_label: "Delete api key" +hide_title: true +hide_table_of_contents: true +api: eJztVk1v2zAM/SuCLrsEcbKPS24F2kOxHYahOwxFUCg2E6uVJVWi3GZG/vtI2WmTxofeggE9xZGoJ5KPIl8nK4hl0B61s3IhL8EAgsAaRJlCAItmK1KESiivxQNs5USi2kS5uJW0UrTzQm9MKgJELGg70j4vyOVEehVUQ2iBrTsZyxoaJRedxK0Huiti0HYjdxMZ4DHpAJVcYEgwkZbOkYFKWLug/6rsHAGzhzWoCoLcLflY9M5GiAz6eTbjn+Nwru3ahSafV0bs7QU6ocoH654MVBsQFQdNJsKthxBLZ5FiZ0DlvdFlhijuI6OOhOJW91AiHfTBeQioe58iKkzxrnQVHBjb1Kw4gsl+v4EY1QZGU6PjHYTgwsHmyjkDihMCBEW5XSsTYUnGlcJ3eKVfk3J65QuovKl1FBc/r8V32IpaRbECsH2uoJrK5e6IuNsjWHYGNcWFqvEjob85epink6wc5GCI8BCb3GC0r7P5Kfs3VMX7ALYuCUpDqyuq5cpBFNahgGcd8X/h+90EZ4C7ClBpE0dueZP9Y/MzUPfllLo/RFetWrCfkGiDSORwD7KCe4Loe8D0g7izEvdttONS8xdgS5eImNBzloHEU63NvtfaTR4xw+P84PHMPI48wF+AKVjiT68zVWsg4MDKgKZCcIlEAn3QiEeemnpop1ataKR+8HlGPgmORFftCEz2w5rDUVjT/2JUshXcU/kuCO1erKVgWGsh+rgosv0UnukOA9PSNUWWXzzwOR4+1BfNbDqbzrNLaGDfDOiRs7OnXYJf/6UroyDdwBpTaMtjOlCPaME433ABUTjeRWxUrptBGA4q9VWSHqF3r9X3Pj3b84HwjIU3SufCyAnohsRlrUuW7Xwvb7P45EIZNG9OIeWkJl/ZvutWKsLvYHY7Xn5MELa0Tp+tCppfCf+jewY5yzlnbxbyoizBM3KrTMoq+O374dy/UHx59ePq5oqq6B+5GR/5 +sidebar_class_name: "delete api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Delete the currently used api key + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json new file mode 100644 index 0000000..8650f1e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string", "format": "uuid" }, + "required": true, + "name": "derivation_id", + "in": "path" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json new file mode 100644 index 0000000..f024432 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json @@ -0,0 +1,177 @@ +{ + "responses": { + "201": { + "description": "Informational response after the deletion", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["Derivation deleted successfully"] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned if iglu was unable to fullfill the request, but the error happend on iglu's part", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx new file mode 100644 index 0000000..3c02d0b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx @@ -0,0 +1,71 @@ +--- +id: delete-derivation +title: "Delete derivation" +description: "Manually delete a given derivation" +sidebar_label: "Delete derivation" +hide_title: true +hide_table_of_contents: true +api: eJztV1FvGzcM/iuCXroBbs7Zuhe/tUgGBNiGoeieiiCgT7StTifdJMqNa/i/j5TOsa9ximAYZgzIk30S9YnkR0r6ttpgaqPtyQavZ/pX8Bmc2yiDDgkVqKVdo+fPaNdQjCaaYJn07KOG3jbry8YuXW4iJmoIPXhKbCJj+naie4jQMVCUBVud2hV2oGdbTZseeb9E0fql3k10xL+yjWj0jGLGifa8jg0qpCCKez3Qio2fBproRYgdEI/kbM03gA8R3bHdc/GfxoNMqxDtl32SCt4Kgff5h4g5YXwNSzyEv4e7lTWpDz5hEsQfppfyM6byxtdU8Bc4tbdXsGA2FK2wUlydbYMn2YdBoO+dbcuy5lMSpBO+h/knbMWtPoYeI9nqRyKgnO7aYPDI2OduXpKwn+8wJY7rZC5susMYQzyanIfgEMRNZCiuowW4hLdsbICe4ZU9JOJUwQyg+uqhIIbiNyrltmVfF5k7Qt/uRlR9HOGKN2Q5MIKuPxH7V0uPE/UoLUdJGEI8xmY3BO3NKco/MKt/4kZtQlafMaLKiWNUNikfiEugDUtvv6D5vzD+bIoLwJ1BAuvSiV2+Sv/Y/Azc/fiYu59DnFtj+Kx9rX4LanScTBRa7thYiDXW+FekOAFra7if/dhW1UNChWId959DDVhfWv8dQuTB4ax8qYbzVsOb050s27Apn0P1ElQmYGUR720iFYRL5pWviTXGFxbPyuJP0+ljFt8j5eiZQLtQ8iJSnyGp7GHuUFFQcq8srHOlJQe2J2qeqQyUHdWKmURvhGxBeJUUP6leWvbcZJ84wI/JFv4WyMB8B5cejSHza9pW9lRY7M9jLMXwciGfk0+GY4myCqaoAnn5STiiBGa6eUrjNNv6Z9cchAQPjlTFTtwph3NVPzk6ecQT9WnWFMgLvGc3HF60oWvKu14elRKyLKp1Nb2YXlwWr8lJFm7kIHn7+43EM37wDxPqKrRJ7nZ+/qHc+OUdYHCNLvSd1BhH3IdEHZTSGuTGVVV8I6U32mB7qNFn6sRKG+E9Nb0DW+qnJGE75LdoSLZcX+41Y1E2Uk8HLTl70IBHqZbxsYTj5K04KAHdbueQ8I/odjsZ5oM1bnic/64hWum4woexqXbfrCiKb4T73fuh3r5XT8U1DILfSDzgsnzxX36PH2SsCMH/cNdxgnbSV4OE/NfDrxuOJOuDOxJ1nX/Leqo/nnt01EkPPHTj1fUv1x+uueH/Bgc31fI= +sidebar_class_name: "delete api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Manually delete a given derivation + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json new file mode 100644 index 0000000..1e5e6d8 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json @@ -0,0 +1,205 @@ +{ + "responses": { + "201": { + "description": "Informational response to acknolwedge deletion of key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["Signing key deleted successfully"] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "499": { + "description": "Returned when the given API Key is not allowed to edit the requested Signing Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when iglu encounters an error during the update", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx new file mode 100644 index 0000000..d9a830f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx @@ -0,0 +1,71 @@ +--- +id: deletes-public-signing-key-tenant-link +title: "Deletes public signing key - tenant link" +description: "Deletes the link between the public signing key associated with the presented api key and the chosen tenant" +sidebar_label: "Deletes public signing key - tenant link" +hide_title: true +hide_table_of_contents: true +api: eJztWN1vGzcM/1cEvawDnJyzdQ/1W4tkQNBhGLruqQgC+UT71OgkTaLsuIb/95G681d83YpimNEhTz5LFL9+JEVqLTWkOpqAxjs5kddgASEJbEBY4x7EFHAJ4MpCyFNrapHM3Bk3Fw+wEiolXxuFoMXSYNORRUjgeEkF01E5XXbqxifmBU45lCOJap7k5IMkumpxVZm5zRUdxooOJdrnBXk3kkFF1ZJekanXMtUNtEpO1hJXAUjrhJEUkpuRjPBnNhG0nGDMMJKOzhHBTqJhI4PChoi/hpHK2PhoPqnir55fA0pD/EqOOUG8UHPYq7dld8dnUvAuQWKOP4yv+OcYsFs387Et6igrtvQCvVD1g/N2CXoOQjOsRCL8jAEhSbUnhEgmMVQhEKyFRfUxMdcBO/z0I9SsYog+QETT6ZRQYU73tddwQOxyOy0O2e63kBLZOOgXk+4hRh8PNqfeW1DsXyBWhPlM2QR3RKwVfoFWZu+UU5E7pvL3g0AuHqKQTbmuSdlZtnYl7zZHuH04YszqoCHLULVhwPgnRw89deKXAy/0Nh7yJjWY28sh/N9TWrH+K5/FEiKInNgkk4TzSPFQe7LxE6nwjUD+xRgXBvcaUBmbBqQ8cf8x+Rmw+/EUu599nBqtqSJeiF8pYQ9ry0gA1VOIBVhttPsOqbD6hdFA5fSYVnQVQ/hCHbd/+xgwXfF+AyrSYhe/z9Fw5mh4OZzJLIZIqQ51N5bQHjoU4dEkFJ6xJFzpzlhAfEbxvCi+enWK4jvAHB23Q03fNc3Ngr5e/3Yr3lKd7pNSWeuXDLMXoA0Wwj3424vp7bdzVf9PMf5pPP4njLlJFeBqnx13qFydC1ehM1tUoM2BBMAzlmfGcuAO3mFpZgWpGRBjaqNKmY0+I3DK0gCC3Dv32Uu1eWqfe6qz4knsaCRsPDGTXfPO5vBkN5HV4EBZ9YNrte4u1w3LLRdpN1bmaHn6QgxpUpWzl/BI8ixc1r6tykDGAwDbxoe6ABpfji+vinpo2dxbLgdU7Vnx40mt3xDXvk7ch1GrDtydlZ5NwwKsDy0HE5kWfMJWlRjq58TtZD4whF9suwWe2J/KXe9j9L+e7jv8ER6xClaZEojFyeseqDL5E+Xiajvsl5GXD/cvAL029DXp+RIIJAf58Ho9VQn+iHaz4WW6PeOK1ulzoaLhFC24apO6dJ2UMfJv/PPiXR+g34vP6d8vKsc380LZzP86fffvDBvOhX6M/9c16CQdPRvs9OAniG7/NY2x4XDvpDxxOO8y6Prml5v3N5SkfwFihVmz +sidebar_class_name: "delete api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Deletes the link between the public signing key associated with the presented api key and the chosen tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json new file mode 100644 index 0000000..13d7071 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json @@ -0,0 +1,6 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "derivation", "in": "path" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json new file mode 100644 index 0000000..ff999a9 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json @@ -0,0 +1,68 @@ +{ + "responses": { + "200": { + "description": "Returned if the binary was found in the given tenant and the server wants to start sending the file. CAREFUL: The response is a binary stream of a nix archive", + "content": { "x-nix-nar": { "schema": { "type": "string" } } } + }, + "302": { + "description": "Returned if the iglu server references you to an S3 server to fetch the binary from there", + "content": {} + }, + "400": { + "description": "Returned if your request parameters were malformed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "Returned if either the tenant OR the derivation does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx new file mode 100644 index 0000000..e625590 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx @@ -0,0 +1,71 @@ +--- +id: fetch-a-nix-binary +title: "Fetch a nix binary" +description: "Fetch a nix binary" +sidebar_label: "Fetch a nix binary" +hide_title: true +hide_table_of_contents: true +api: eJztVcFu2zAM/RVBpw1I46ztybdia4cCAzZk3SkoCsamY3W25Ep0msDIv49UnMXp0nbYYbssl1gkRfKRT2SncwyZNw0ZZ3Wqr5CyUoGyZqXmxoJf65EmWASdzjQL9e1IN+ChRkIvwk6HrMQadNppWjfIPgJ5Yxd6M9IeH1rjMdcp+RZH2vI9NiC0YIkdGwnZAJVs/CeOcvRmCTH1A2e3ciM0zgYM4u90MpG/Q6hTpNZbzJUpFJXYw1WPEFThWstyG+ULs0T+ijkrYLkIA/oleja2FBQ5FQg8sdTmnHG0KEyFY/X+Ynp59e1Tqm5YtMtJmcAl7uMxSIRauaKvOvis5IgMKHOWo5Jkvjph1Qnby+HZOvFvpM8mp69jNYuq3WHwWKBHm2FQa9cKGLDq69lOzecikmJQo8K7Ws7+ME0Jf/5aqTmGxHxoMZDaU0k9sjdVQ1U4X3OjD+BD01Qmi41O7oO4PFIFN7/HTFjVeNegJ7PtPXeG2nCXuRwHxrat5+iFWr2+xhBggUfZZ8Ideu/8QDl3rkKwos2BfiON6OAuRwJThWO9G5J89sT8lrVkOEWCujmC4snlIeRfAA7g9LkPfd9uSXQ+OX+5i2ik/ZET/cv4PI2n/ZNUuWNKWUcKVybQ/47+w46yO35mpWNneoERiwzKVCfdtn2bhB920u27t5E4cQJsp3zrKzYviZqQJonMjzGu2D8PuczVSZy5xhZOsMilLWUm48n4XUyHKoF3LXPn4su1JHrArZ1CfXCZzF+vWpmTdjsuclxi5ZpayMNQGheohsiZfhEcXVsHEbo9+55ZctsGEK4oaSowkQkRddcXa8bbZ7e5ZBSPdDpYQIy/5LzErOvmEPCbrzYbEfOo4wjpjD+X4A3MpRRc0twE+eaeFFAFfCHhN9OeC2/Vc5n2QrCCZQlVKyf+/I7r/caVLfsXow6qsxHClwgsiti3BhdZhg0Nru73nPDpJ2U/Xt7wk/gB0G8BqA== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Fetch a nix binary + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json new file mode 100644 index 0000000..f584c07 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json @@ -0,0 +1,13 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "uid", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json new file mode 100644 index 0000000..936b967 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json @@ -0,0 +1,53 @@ +{ + "title": "Body", + "body": { + "description": "Meta information about the derivation", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "narInfoCreate": { + "type": "object", + "properties": { + "cDeriver": { "type": "string" }, + "cFileHash": { "type": "string" }, + "cFileSize": { "type": "number" }, + "cNarHash": { "type": "string" }, + "cNarSize": { "type": "number" }, + "cReferences": { "type": "array", "items": { "type": "string" } }, + "cSig": { "type": "string" }, + "cStoreHash": { "type": "string" }, + "cStoreSuffix": { "type": "string" } + }, + "required": [ + "cDeriver", + "cFileHash", + "cFileSize", + "cNarHash", + "cNarSize", + "cReferences", + "cSig", + "cStoreHash", + "cStoreSuffix" + ] + }, + "parts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "eTag": { "type": "string" }, + "partNumber": { "type": "number" } + }, + "required": ["eTag", "partNumber"] + } + } + }, + "required": ["narInfoCreate", "parts"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json new file mode 100644 index 0000000..0b01e99 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json @@ -0,0 +1,229 @@ +{ + "responses": { + "200": { "description": "Empty success response", "content": {} }, + "400": { + "description": "Returned if your body was not in the correct format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "408": { + "description": "Returned if the upload ID you were using is no longer valid (timed out)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "The given upload ID was not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "424": { + "description": "The given nar fingerprint is invalid (i.e not signed by a recognized key)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Iglu encountered an error finishing the upload", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx new file mode 100644 index 0000000..3c7f359 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx @@ -0,0 +1,71 @@ +--- +id: finish-a-given-upload +title: "Finish a given upload" +description: "Finish a given upload by uploading cachix meta information about the derivation" +sidebar_label: "Finish a given upload" +hide_title: true +hide_table_of_contents: true +api: eJztWE1v4zYQ/SsEL90FHMtJU6DwbXezQXNoukjSU2AElDi2uZVIlaSceA3/986QciTZcjZYpHUPziGQyeFwZh4fP96KS3CZVaVXRvMxv1RauTkTbKYWoFlV5kZIli7rL6VnLBPZXD2xArxgSk+NLQQNZiI1lWd+DkyCVYvQyAfci5nj43suSpUsThMaDdgcvfDJgJfCCnQGlsxW3GF/Ifh4xf2yBAzJeYvT8vWAW/i7UhYkH3tbwYBrHIcGHrTQHn0qyqAUfo7GP+KoUvINvIjKz41V3zYFCP7mILAqPxqXA3siZtAkuXE3iWPA+Y9GLslnF87fXwnS9sSZ0Z6mQ4eiLHOVBcPkqyOvPSmY9CtkFF1pTQnWK3DUq4W9wsk/WRAevm+eXVBMmFdfbbJLlcNvws33996qb+1ZdFWkoeY8uxZ2/1Ds3D/yBqZgQWcxwrpfWCuWhIWHwvU4pYG3atY/3a039oVEQvdtNZ0iO3o9N1jdNxVr16ddjVburUy7edXBdkLbCmSyDjz1rynCHnDhTvQXhPxex4LvIrCVb3DSGTJZb9t0F90mbrILhq402sWQzkajXcp8Lkq/ZK7KsDSObex5mxPk6Lxv7A34ymqQTE3Z0lSWpchK9igc08YjDwPxMmMtFohFUvI3I5vzwlfuITOyfynX/QWmhXtJLxTKPYC1pg1EakwOQlOvFP4VYQQHDxI3HpXv4UYH0Y45rTOvMEQvivL7y6Gd8k6CrXTq2Nu+6/VwPjrdhfEOUfoLlgQhe0SWsMrRwacijAiemWmkkTxid2Dsft7F7tLYVEmJd5cTdm1Y5zAeMFDIQBuAlUrqnzzDAiyUBCZ015bFI5YZG5lc/1QdKn8EYbHxyOT/xWo472dyfUHCXTleFJk0EFGEJ+U8M4Ql4oqXrPokPaJ4QBR/fflYJdrVr5Kri94dmuVGz5CVC5Eryd7RFJLhrff9EdrDQnt21k/QzlMTQd3cl6am0scz9tCg7dlVI2h412ZTRXQrMXpPBFS6Jp4aQoDRqRlxN10y0bo70QXryMjDgvtL3xvmapZXDB+GSD6PO6ukm1FwREArN6d9ttmEjwgeEEF0VwDeWSUJVsaFZEi3GvOkrbYlq3jxWSdFlXtF7+ETJG6yqpRcJ5kpyhzCSznegKIMV9mcdCbvSzdOEoWLYghPgkyHOCIJ0hNBfNPIT59jf6/w00g7m0p2FJ2txijHjNrCTcviWa8Zbekz9xujyUZ/aY1qyS7brRu1ZUuUiIWIukUzpC1XjNaEOOlrlCPVLnJoNBwNTwNenuoROfXhyxUhuUs27GAXJnP0jsCLDNDrIrw5JCwgN2VB7KKYEOJC6FjfIAz2qrXbk6wahv4b8m5c4R6efFLmQgWqhcWzqhdjkH7RcnFay7601MbPom1nTVJPVGGflyViOae1jX5Wq1Q4+NPm6zU148KzS2zHz4WwSqRUa0RMKkffyIqpyB28UI53NzUb37N9qWzELk1SF55sFf3CTzy+GumZZN3/cFaqUFh5tQz85knX07Rl5+cgKNfY/ym6PLkjF43FziHQjPiQZVD6F20nrT3tyx+3d2ic1tJ2EY4GbsUjKdb4P5TEhBTDVh3aVjwXelaFM4JHn/T3D408sw8= +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Finish a given upload by uploading cachix meta information about the derivation + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json new file mode 100644 index 0000000..e763ea4 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json @@ -0,0 +1,149 @@ +{ + "responses": { + "200": { + "description": "Cachix format with required information", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "githubUsername": { "type": "string" }, + "isPublic": { "type": "boolean" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "preferredCompressionMethod": { + "type": "string", + "enum": ["XZ", "ZSTD"] + }, + "publicSigningKeys": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "string" } + }, + "required": [ + "githubUsername", + "isPublic", + "name", + "permission", + "preferredCompressionMethod", + "publicSigningKeys", + "uri", + "priority" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "406": { + "description": "This error occured because the client does not have the user agent header set", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx new file mode 100644 index 0000000..4880008 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-a-tenant-in-cachix-format +title: "Get a tenant in cachix format" +description: "Get a tenant by its id in the cachix format" +sidebar_label: "Get a tenant in cachix format" +hide_title: true +hide_table_of_contents: true +api: eJztV99P2zAQ/lcsv2yTOlI2tIe+7SdC0yY0QJpACDnx0ZoldmZfCqXq/747O4WEhmlDSLzw1NR3vvvuvs/OZSk1hMKbGo2zciJ3AYUSCFZZFPlCGAzCaGGswBmIQhUzcyXOna8UypFENQ1yciJVbbL5dsZmoOXkJk9HslZeVYDg2W0pA9krJSdLiYsaKF1Ab+xUrkbSw+/GeNBygr6BkbS0jxwSEoppGF2tcEbODwmkGpw5b65VLLSNNwOlwT8wYhPAv1ZTuIW3DnfKe0LtbIDAEd+Mx/zT7/THbi/FpcGZWCeidqflBLVwFjkLhVB1XZoiGrKLwHEGkLv8AgoGVXtXg0eTUEwpRZMfEepUwEClJuw3OSXoGHPnSlCWrfduoySVCcEkPJtmD+fgqa6PrqLn6PgNiA696T6SYJuKNfXzmP4cHxx+kqccI+I6MFNLXl9hEQYzNd7cg8AQ97gYMPb4PbnbpE5L2vp71f61tiHQCWIH0OlqxRB2xtubCjmkE/cLFmLhGnEJHkQTKI4wQViHJJbCUeBr0I8nkYAKm3BWON0lmgjJ4ylZ2yuqk4R/j4TOqB/OD0tIK/wHGDHAmQZUphwi+g5nfXdWCxqCiKqqB6q4s7lb8kaBnXJa7N3YN9y93eTui/O50RqseC2+O9G7fUYCSGXgI7HaaPsCBTVgbjQIZfu+It0pwkVvv/7baqC9lj+A8rR4cy0/q+Ep1bAzfJI5DbnS7d6+XbWDxCJcmYDCMZfEK109c/DPLD4xi++GWCR64k7hiqLhF3UOhaI5IA1HpYEurTM1TwYeFEQcFNbHN8DzMX1Kgilc1Q4gchq5iJPlRGbdSTZbppO64hzxVKYptvElD3uIdZhkmZmWzRZcUewStgpXZXH+4wmO6+BNST3jrfHWdoSCJZe2R/vE+/09BtmT2dogPrki8KXOAuKrPr4ANMyhdHXFwuHJxgWsVNRLO5b2JnjadXdm7yVb3orwf0f/RBDCFWZ1qYxN81fJMVMz42cBec63208CpmbSDvTUohlBZ6/lMlcBjny5WvEy3ZKeBrUTepwrb1TO3aKuaxP4mSg7V2WAvxTy8kcrlVfiPqDtorILBqjKhv/RI41btx8dK1ZlO9M/OoKUqfcNcYODv0eS/X1RQN21bVwULLYbLe9+PqSz8gezudOB +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get a tenant by its id in the cachix format + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json new file mode 100644 index 0000000..68497ae --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "access_rules_id", + "in": "path" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json new file mode 100644 index 0000000..575e3b7 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json @@ -0,0 +1,191 @@ +{ + "responses": { + "200": { + "description": "Response containing the access rule", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "ip_block": { "type": "string" }, + "start_ip": { "type": "number" }, + "end_ip": { "type": "number" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": [ + "id", + "tenants_id", + "ip_block", + "start_ip", + "end_ip", + "priority", + "action", + "name" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx new file mode 100644 index 0000000..0eca24e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-access-rule +title: "Get Access Rule" +description: "Get detailed information about the Access rule" +sidebar_label: "Get Access Rule" +hide_title: true +hide_table_of_contents: true +api: eJztV02P2zYQ/SsEL20BZ+Vt04tvG7QNcimKRXpaLARKHNtMJFIlR+5uDP/3zpCyLdl0ki6CLgrsSR8khzPvzZDztlJDqL3p0DgrF/ItoNCAyjSghbFL51vFQ0JVrkeBaxA3dQ0hCN83IGcS1SrIxZ1UnSk214VZNX3hIWCBYJXFQFP4n7yfyU551QKC5wVbGeo1tEouthIfO6C9A3pjV3I3kx7+6o0HLRfoe5hJS+toQjLJFtnVTuGaJj/FkIohlBxCKI3+FhZ7XDtvPkWw9vbWoDT4J1rsA/hXagXHgPfm7nlN6JwNENjij/M5P6ZE3g4zRO0s0Wlps8iemrDHg7wDLVdd15g6+l98CGwj47WrPkDNDnXedeDRJA8CKuxDWTsNo8m2b6sY/n68pZ0poiwKJpTgvfOjwcq5BhSjCWSKcmapmgD3NFkr/AqviNjcTkNilpPhf2diZXDdVyVTlNjKzLk4QOZbE4JJEOeA6PqKqMggwas9LAko0IR2Sx/RECFL6Zf3tfcm74Y3lLD4mCUMsckTaVacSRf3O1Al68ak1CWMNrT4fjdJ9TsZy+4UyAG2CUhjSL4Qf4p2FFuK5MxvziHTlVXj6o9ZcChhPZamy4IAVl8a+iyoqsYs6UfQNCWfnMXjqcPo5YUsymE5yutRdKNYDp5PABq8GrbiPdFQoaJqcyGebDwu/LMyHxX1ULJj25QQbO31/Pr88HpPB9VHeBSPrhd/gwfRBz6/TBDWofBQO6LzE+j/ywn21UdWNFCmCzh8mffp9Gfg7qdz7n5zvjJagxWvxO9OTC7GmQAqePCRWG20/Q4FAbAxmi4mO50r0nUnXJzt959DDhgbb7M3oDz9TG3KSzY8cza8zlcyb0NTqaFMR5TQDhKL8GACCsdcEq/DTfHC4nOy+HOupm8Be29ZESxj2S2BDNOxHGnzJAyA65L6eyJzuS9R4rpqXs7oZ+WTzO1bNbmCGAtrnIUsLum1YptedsVYJBXbE8m0O3R2Scz1vmGFgtiFRRGtXsEDudHAFfVpRRQtLCc5ZF6U8mp+Nb+6jl5jwyi8o3Xi5o93HM8kAfcD4hdXBz7uqSMAvgTi1aBhA43rWs4xbsJcwFbF1Bq0FKvaQbbeJuEzMb89ZugTBHAiEOEBi64hpZWa7tg/J7CjOKaZm+u9GI4CDo89G70tDuJ2jDQPnIpVQnJNEbLd7bZSAf70zW7Hv+mY9dR63tHrRnnD5RfJ0SakUlxEBfWZ6L+/HZLvB3EptOGnstw8blTT8xe9Ur92lOgsef/DXU8h2nGZDXL5mwOQtpzI84NDHHcav0k9/HHs7OTjkjgU59tf31Px/wPTMSBT +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get detailed information about the Access rule + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json new file mode 100644 index 0000000..020a002 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json @@ -0,0 +1,160 @@ +{ + "responses": { + "200": { + "description": "Response containing all signing keys associated with tenant", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "key": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "name": { "type": "string" } + }, + "required": ["id", "key", "api_keys_id", "name"] + } + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx new file mode 100644 index 0000000..f70c19a --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-available-signing-keys +title: "Get available signing keys" +description: "Get information about signing keys associated with the tenant" +sidebar_label: "Get available signing keys" +hide_title: true +hide_table_of_contents: true +api: eJztV8Fu2zAM/RVBl21AFidbd8mtw7ail2EoulMRBIrFxOpsyZPotGmQfx8p22ncuCvaDSsG9BRHIimSj6SeNlJDSL0p0TgrJ/IEUBi7cL5QvCLU3FUogllaY5fiB6yDUCG41CgELa4MZgIzEAhWWZQDiWoZ5ORCqtIkq3FilnmVeAiYsCrt84KcDmSpvCoAwbP0RoY0g0LJyUbiugTyI6CnA+V2ID38rIwHLSfoKxhIS3oksDvRsNulwoyEn2JIVZg5b25ivK29DJQG/0SLVQD/Vi3h1r3W3JR1QulsgMAW341G/NOF4KyREKmzqExMvMrzB0Bo08FKfDKZVWWZmzTGlVwGtt0TjZtfQsqKpXcleDS1ZwEVVmGWOg17wrYq5jEt7X4BIVCkvdkxYQbeO7+3OXcuB8VZBjJFyC9UHmBKwlrhvlfKe7Xm7CEU4WFvje71gDLVu07FOeMszjp6j7OdqZD1btRFcLDRKZcLttrYaDSmj1Pl0LqB7OyQOBoCBlVR9mB3x9o+0Aew7oHYQLRvm45ia0ej8WERn9NQIM/E2lXiCjyIKnDtmiCsQ+EhdVTMN6D/l4o9LNF73IgGZhqoc/PwMJhd8em/x+79IXZfnJ8brcGKt+KrE50BORBA4wZ8BFYbbV+hoASsjAahbFdW1GNPuCjt279NDRgbb46PoDwt1jfOSzU8czUc9XcyH0OidNnU94zQDmoU4doEFI6xJFzp4luBf0HxWVH80NfTZ4CVtwSgWcS2WwAZprEcYfPE8YD7klgZgbloW5SwnucvM/pZ8SRzxJMzR8bkEmIszHUnMuml2EnDEpNN3albPjR2ZU20K58zH0UswySJukO4psNyGKauSCJFZf7PgbFSXT2j4Wg4jr5hzrGekp44/nbKXnfKrN0Qn1waeKjTvQ886uMFoGEFuSsLriSKq3QBCxULqGHO/PpQK0oz112H8N49aXNbkn/+ZqkBRLjGpMyJcbNzMVGbJtnxPUOSq3H7hIlEHmsixs41p9HXpLFLicwoQFbebOYqwHefb7e8TLPUEzG9oM+V8oZjjdhoE+p+m0Ra/JuIX581FfZG3Od/S6Qt88SVyiv+1xDH3etpy8XcPE7+ugf1SZ3H0M4PfljV+8dpCuX+3sF84ZLctcDJ53NqsV+VWCJ5 +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get information about signing keys associated with the tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json new file mode 100644 index 0000000..8701f75 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json @@ -0,0 +1,154 @@ +{ + "responses": { + "200": { + "description": "Tenant IDs and meta information about the key used in authentication", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string", "format": "uuid" }, + "name": { "type": "string" }, + "tenants": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { + "type": "string" + }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + } + } + }, + "required": ["id", "name", "tenants"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "Unauthorized - Key not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Unauthorized - No Auth Header presented", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx new file mode 100644 index 0000000..b2714ad --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-available-tenants +title: "Get available tenants" +description: "Get all Tenants your api key has access to" +sidebar_label: "Get available tenants" +hide_title: true +hide_table_of_contents: true +api: eJztVk1v2zAM/SuCzlmc7OOSW4EOXTFgGIb2VASFYjOxOtlyKSpoFuS/j5TjzklctNulGNCTZYkiH/ko6W11ASFH25D1tZ7pCyBlnFNXUJuagtr4iMo0Vv2EjSpNUCbPIQRFXo80mVXQsxvN69l6mtmVixlCoIyNA6/LhJ6PdGPQVECAYr3VIS+hMnq21bRpgIMGQluv9G6kEe6jRSj0jDDCSNe8jw1MpNKj/WUSSnYsUEswBaDezWVbaHwdIIjT95OJfA7zavNRl+ecQV0oRmOUrZceq+RTmYWPpKiElGgMUPCykrhQk827wLmviSfEv2kat1/I7oIEGcjML+4gJ97YoG8AybYQAxmK4Tb3BfSM61gtJKFRt15xpc0KBitlwy0geuwtLrx3YAQmsCsu9dK4AHM2Lgy9AJUtTiONdFsjnomRDXYdJwOQqO2Z3ppBNBvhi6AK/waA/a4slXFxy6Tgk7GfXGD3lQ3BtgQNlbGJCyZyoI6yG2HJZYaCuar4JzliXrgdh7FGtMMw0HID02aQbiI33AZ2VfP+J+M9Eq1zZ6UteQvgmjfPdweH6UZKe1rIfdkOitQvyTP5t9n2cmszOcHNYIbQ7GN3XSN9SpZbnkzVDJTjyEX/CJ0cmN7x2Dd/37fgYW8fJ9PTe+K67u4avgHeqa98GdSeFELuOSee/F8ugRef+uTgtuAL0bowEOWo7ofmr0Dah2dJ++bVGf+rL+mBUNK2TNcbda9M3ach6n4ARazltV2m13cJ7BiBxzYo5DcZFA9YQJDySxnKaeQbY+He+HxVPtld9yzpFaRcDJX8kw2qwUxO6OP71OrAiE5kHFETZlmyH8MDB3Aw5tcmS8pONJokI5vajpmMJ+NpwkNO8rvkfers+6UgPWitbkGd+zwoljEi60TVJU1bwBqcbyrpHnmffaDKpKbZa86khNdcWuk11b1SR0G2fzrwL6VzSw7BA2WNM7ZuxUPSAW0hk6xmy/W0U9JJ50ql9/I6lZRrVDJ2sd9uFybANbrdTqbvIyDrjRserg1aSUP+OM5eOQsH7IphnDGyRjyvjYtJuB0fJuHike+Lz1fcT78BuHZE/w== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get all Tenants your api key has access to + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json new file mode 100644 index 0000000..daf577f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json @@ -0,0 +1,11 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "deployment_id", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json new file mode 100644 index 0000000..d735939 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json @@ -0,0 +1,131 @@ +{ + "responses": { + "200": { + "description": "Information about the deployment", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "closureSize": { "type": "number", "nullable": true }, + "createdOn": { "type": "string", "format": "date-time" }, + "finishedOn": { + "type": "string", + "nullable": true, + "format": "date-time" + }, + "id": { "type": "string", "format": "uuid" }, + "index": { "type": "number" }, + "startedOn": { "type": "string", "format": "date-time" }, + "status": { + "type": "string", + "enum": [ + "InProgress", + "Pending", + "Cancelled", + "Failed", + "Succeeded" + ] + }, + "storePath": { "type": "string" } + }, + "required": [ + "closureSize", + "createdOn", + "finishedOn", + "id", + "index", + "startedOn", + "status", + "storePath" + ] + } + } + } + }, + "401": { + "description": "Not authorized to view deployment", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The deployment does not exist on the server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx new file mode 100644 index 0000000..f66e75b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-deployment-overview +title: "Get deployment overview" +description: "Get an overview of a given deployment (by deployment id)" +sidebar_label: "Get deployment overview" +hide_title: true +hide_table_of_contents: true +api: eJztVktv2zAM/iuCTi2Q1enWXXIr9ih62Yq2Ow1FoNhMrE6WVD2ypIH/+0jZTew6LfbA0EtPUSSRIvl9pL8NL8DnTtogjeYTfgaBCc3MEtxSwk9m5kywhVyCZgVYZdYV6MAOZuvuX1kc8hEPYuH55DsXVmbL46w5x/1c5KVc4aLduRlxK5yoIIAjgw33eQmV4JMND2sLGIUPTuoFr0fcwV2UDgo+CS7CiGu0wwu7x6eyQNeSYrcilGjzN/5EDKVx8l6kMrT+ShAFOF7fkJm3Rnvw5PTteEw//cKd67lxVbJnYmZiYKGETpGoEEYHWqGtsFbJPN3Obj052BO1md1CTobWGQsuyOb5XBkfHVzJe+hc1rGaYbCYUVRKzBQ0GWLKuQMRoPiqhwUZ8SZoqijeeRMkVgNN5lJLXz5l03/hKR+Iy3PvxYgX6JouYDXMA098EO4P40aTEP2++4B+iZzn+sKZBcLpcfMCdNEcfxA6B6WAuPRZyGZxFfMcoMD1TfJtHFwQxYa86hHrew+hbv17hU0Vesi/m+02je6bN3VNr5yMj4fU+2KwZ1sCQ8GCYal1/wf3msimuSn2cG8LwLTC+ooF7O1A6afgnHGdw5kxCoSmU4TzN8JIDqYFBIRqD9yP8ehfJzCJMBhrZfdk8ci4m/IgwU46bexd31vQToagXfemAysMeKYRSFhJHxgOERofHqdwaupX+F4Ovvfjd0P4LiFEp7Hb5DwhNccex5bHtfTM4fgHhgv8zgX6hMoWW01js3jF8wXxRHeoPEqDzvgCUi5ppvOsp1uyXW9mm57aqOnZ1JeNeIlOkVYIwfpJlsmFikewwucUHOWmypJ8kCgOKDUyavgzPhofHafoAn1I+TnasdOL8ySTerqiPWAfTe4ZfvZY9MgtzdYmOpwgS1DGpiGPmVnjQyUShVphQ3quM2YedN3jZzY7Rv6TBGygC7AKmVVCJg6lAm3aMid5iDeXxztBOOK9T9WkL+6wfCWmRaabzUx4+OZUXdP2XQS3xn1cLoWTjSRBRArpmz6bzIXy8EyqB5ctsw7ZU9G3m0JTnEuhIv3D5Q9YD3RoTVxuVSMF0tw5RRVhQ8d60PFEkS0pzz5dI+l/AfCXCfg= +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get an overview of a given deployment (by deployment id) + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json new file mode 100644 index 0000000..8650f1e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string", "format": "uuid" }, + "required": true, + "name": "derivation_id", + "in": "path" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json new file mode 100644 index 0000000..4409d09 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json @@ -0,0 +1,235 @@ +{ + "responses": { + "200": { + "description": "Response containing the derivation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "derivations_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "cderiver": { "type": "string" }, + "cfilehash": { "type": "string" }, + "cfilesize": { "type": "number" }, + "cnarhash": { "type": "string" }, + "cnarsize": { "type": "string" }, + "creferences": { "type": "string" }, + "cstorehash": { "type": "string" }, + "cstoresuffix": { "type": "string" }, + "parts": { "type": "string" }, + "compression": { + "type": "string", + "enum": ["xz", "zstd"] + } + }, + "required": [ + "id", + "cderiver", + "cfilehash", + "cfilesize", + "cnarhash", + "cnarsize", + "creferences", + "cstorehash", + "cstoresuffix", + "parts", + "compression" + ] + }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "pin": { "type": "boolean" }, + "csig": { "type": "string" }, + "signing_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "key": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "name": { "type": "string" } + }, + "required": ["id", "key", "api_keys_id", "name"] + } + }, + "required": [ + "id", + "derivations_id", + "tenants_id", + "pin", + "csig", + "signing_keys_id" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx new file mode 100644 index 0000000..26aa3f2 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-information-about-derivation +title: "Get information about derivation" +description: "Get detailed information about a given derivation" +sidebar_label: "Get information about derivation" +hide_title: true +hide_table_of_contents: true +api: eJztGMtu4zbwVwhe2gLeyGm3F9920Xaxl6IItqfAMGhpbHMrkSofrmPD/94ZUrJFm0qzm6JBgZwscx6c9wznwCuwpZGtk1rxGf8AjlXghKyhYlKttGkEgZhYau+YYGu5BYUoRm4DgE+4E2vLZ/dctLLY3hZyXfvCgHWFAyWUs4hCZ3w+4a0wogEHhggO3JYbaASfHbh7aAGvt85ItebHCTfwp5cGKj5zxsOEK6RDhMiSOJK0rXAbRB5nNOFRAzzxXlaPMD5rtEC8p/If5ye822gj972RAr8NCLznKzl6C+aNWMNZ/Z7dnGhsq5UFSxy/n07pJ/XsXYfBSq3QvwovY24DqSsJRhcgtWjbWpYBUHy2xCIjtF5+hpLkaY1uwTgZBbBOOG8Xpa5ggKx8swza9/AGrEWFskaQdgHGaDMALrWuQZCYgKwwgFaitjBH5Eq4J0iFfs3ddDaAXSQoX8amDHzA5IErTKiNsJtxqJX7vLFKJcw4KQIvKAdAAyswoMoo+DXcOm0eESuArV+t5C6LgNnsRjjrpkVSK2PcXCZl5z++2+OfvXUVnx+TwL/nIQlPNh1acGivgXUGtkg1T/S80KrXIZWYQqqrXc+JiLV0G79cUN7GFM7gjAKQfSNHDBjTo/VLTNBMfhB10B9NuRjohfmGNSkvqzcyL4aRWMXcQzYynavz6S3XVF5G7zsHQFnLWM/QRuTnfBhcGrIzW2KkoUn+Qf+o7UC3qMmV3BQGrVR5C5eInLVYz+QPeHhW9CB99hy77LN5j6b8SDjmnNKlU6CYfxkpqZYqcuKTQ78o0EluRg917rg2fshkiX3GiabNxOrFdcO+ddWlBj2p6zhD3ig6cXs7vb1uvZ+wzaJE7EF79heWJeYtdV9pmdKOGSg1Sr2H6v/SgJ/ccQODRZwnc43iwvwp+gv47odr3/2izVJWFc68b9ivmiVj3YQBViYwwbGVrNQ3jqEBtrICJlSKy+KwxnTANv3fLgakCrPYexAGD7uZ9TUaXjYa3uYzma5BVHwfxTrEKg3Ri7CT1jFNvkS/di3t1Ysv6cUfczl9B84bRQ/cVUi7FSBjLMvBbQbfuUB5SZMh06s+RdHXy/q1Rr+oP5FdP1PyNQRd6IU+48XY7qE4xI9jMZgiikPy2j+e5s+4lfCmpse1c62dFYHlDexQhhpucJoswnubViOkLxHFoJreTG9ug8iuJhN8RDr27rePYYAZRl8PYD/p0lKtx3EAqAOEvlDBFmrdNhRgNH9q6xoR4qpbA9CG5noxk7zik/sO53j9uu1O9KiDnSvaWkgVnwth8o/WD5sfxNze9puesI9w50kNv2anzc3AEXSeLl7QtBtUmZgeDkth4XdTH490jEXX4ER8j59bYSQlY/BWJW1MzFlYBzyi/bd3XSh+x8b06g6FogF1K2pP/7qJ9bR8ovXNf3hraqAjpVy3+PnX1Y8XJoumkzikdYS/K0toh7CrKkgZckrUDz9/wkLwN+0pHv4= +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get detailed information about a given derivation + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json new file mode 100644 index 0000000..ccd462b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json @@ -0,0 +1,5 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json new file mode 100644 index 0000000..680cd72 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json @@ -0,0 +1,45 @@ +{ + "responses": { + "200": { + "description": "Standardized nix cache info response", + "content": { + "text/x-nix-cache-info": { + "schema": { + "type": "string", + "enum": [ + "\nStoreDir: /nix/store\nWantMassQuery: 1\nPriority: \n " + ] + } + } + } + }, + "404": { + "description": "Returned when the tenant does not exist or your route params were in the wrong format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx new file mode 100644 index 0000000..bb5484d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-nix-cache-info +title: "Get nix cache info" +description: "Get the standardized nix cache info response" +sidebar_label: "Get nix cache info" +hide_title: true +hide_table_of_contents: true +api: eJyVVE1v2zAM/SuCThuQxOnQkzEMKNCh6GFA127YoQkCxWYTdbakUnSbzMh/Hyk7a5KmQ+uLJfHrkXxkq0uIBdpA1jud6wsgRUtQkYwrDZb2D5TK2ZUqTMHP1t15hRCDdxH0QJNZRJ3fatbQ04EOBk0NBCiPrY5sUhudt5rWAdh7JLRuoTcDjfDQWIRS54QNDLRjO1YgcMYRO7YCJhha6s1UtLuIUXx9Go/lt4/75m14C+84BCVIsKJsNWTdYdIdiq4IXkM90OCaWrKduBvyCOcWc5WxgyzKdeJ+MfZvJsbvDeA6VycTd4XWoyW+fO5Sm4X+5cvEqXd9errhb6BPx6cv078GatBx6k9LcKmBXThVeojKeVKwspGUR7X2DSr0DYFK7YrqCVAqlcye0LuFuvNYG9qvlwmhsoWRgNl9lKhHSuXn91CIYUAfAMl2LWM2URNnhS9hR5mrOQcUNvTyGmI0CzhKGBtngOhxRzj3vgLjRFoaegOM5GBWAhlbxSNR9nh5e6A+ZSlZhkimDkeyODDeTflFgjvp9Nh3fadGszuepKVnZ3oBKReZhlxnbdfaTXZAXY4C+LidvQYrVl4ShZhnmV1UzQhW7L2CUeHrLI3VlvFi1PFoPBqPThIYqiS5S7ZTZ1eXAnOPcFuBOvdFFL6oJiYSJXqV8AiVD7VQhxMJPlJtEmP6OZc1sz+lhxHaZ+69eyl1jUkDHipjE0NSPdq+iLe8drab5qCKXJYlwxWdtp2bCD+x2mzk+UGmmt/5+GjQmrlUiCtd2ihnbtSdqSL8J48P1z1BPqrXYPaPxq21hKkaufHxN6yf1+NGuLgEUzLvBEEnPCsKCLRjdnzDSeP/Mevi6w9m7l9TPQ1J +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get the standardized nix cache info response + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json new file mode 100644 index 0000000..664ae78 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json @@ -0,0 +1,6 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "hash", "in": "path" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json new file mode 100644 index 0000000..b1c0793 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json @@ -0,0 +1,73 @@ +{ + "responses": { + "200": { + "description": "Nix plain text response", + "content": { + "text/x-nix-narinfo": { + "schema": { + "type": "string", + "enum": [ + "\nStorePath: /nix/store/-\nURL: nar/\nCompression: \nFileHash: sha256:\nFileSize: \nNarHash: \nNarSize: \nReferences: \nDeriver: \nSig: : \n " + ] + } + } + } + }, + "400": { + "description": "Returned if your request params were malformed", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "Either the requested tenant or nar does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx new file mode 100644 index 0000000..c5921fe --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-nix-derivation-in-nix-caching-format +title: "Get nix derivation in nix caching format" +description: "Get a nix derivation in the normal nix caching format" +sidebar_label: "Get nix derivation in nix caching format" +hide_title: true +hide_table_of_contents: true +api: eJztVU1P20AQ/SurPbVSiFNEe7CiSKhQilQhFMqJRNHGHsdL7V13Z50mtfLfO7N2IIGAKi691Bev5/PNzvNMI1PAxOnKa2tkLC/ACyWMXokUnF4qFgtthM9BGOtKVQRlopJcm4XIWORlT3q1QBnfSVLKaU9WyqkSPDgWNhKTHEol40b6dQWUBr0jd7npSQc/a+0glbF3NfSkIT8y8GCU4cCaUVXK52T8lkC5wnw/zJRtsbIGATnS8WDAr/17uKIiq0Jx5bDyYutAkRJrCJwPGEgVrY6o5iOjCEdmWfoSxp4EU5d8SRNz462Da4ITi4jcI+TvaBhejHh01J6xzjK9Gk3M7fhbLCjJrs3EfLZlRUZImGMxTB6/SPdFF/CVzGKBuTr++CkeZiTpHFl5o38DebEU6UjSK+VajyFl6ixJ1hmSrLMbQwYOTALYZi3VDKECpzyks0Kjn9ls9oATcCQm5ozpBI4c0vZEcW70gr7bVs+4X6N4iHoxEuGZGPHKI6cbenry5FD3xuBrZyAVOhNrWzvB5AD0IvASxS+CL4jLTF9izF5TVVUVOgnEj+6Rwx1oqZ3fQ8L0rJylwr1uqYRe+RpniU1hx5i6PgfHHO30JTVJLeAgjTXOwDnrdpRzawtQhrWp8n8BIwSYpeCVLvBAlr2/5e6J+ZS0XhNEr8rqQBVPnHdLflbgTjkd9t3YDx08ed7Bc00Tx4Wx0/WOutkyRVjHf4JILSDNJC9gRZT738R/2EQKR9M+txRMLiDUwqM2llHT9mwTNTwKNv1uTvY9ciJwy+2KqF3B09r7CuMo0oui7sOKEhTQpwkThbG9nbDs1NJk0B/0PwQ8vuD6LslPnF5fMtI9Pm0V4swmyGtL1Ai82MJ4SGEJha1KZg/VUln0pQqk6bYIr8XnS/HgJtzL2zyS8u2rtW1dWDZhJTHEcF1Nd813tPO2+7JpL3rvpunqciqJDZtmrhBuXbHZsJj+LLcmOR2XZK/mfIvUjVQjn6mfmSoQXqnq3bjj0XvxEtZOqMxacpqi5i86/oD146bfMGVzUHQ3AUGrPE0SqPyO24GVy8x4YN/F+Xdi9x+oUxIm +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get a nix derivation in the normal nix caching format + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json new file mode 100644 index 0000000..2d3ebf6 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json @@ -0,0 +1,190 @@ +{ + "responses": { + "200": { + "description": "The Registered API Keys", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { + "type": "string" + }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + } + }, + "required": ["id", "api_keys_id", "tenants_id"] + } + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx new file mode 100644 index 0000000..f89c70e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-registered-api-keys +title: "Get registered API Keys" +description: "Get all registerd API Keys for this tenant (excluding hashes)" +sidebar_label: "Get registered API Keys" +hide_title: true +hide_table_of_contents: true +api: eJztV1GP2zYM/iuCXtYC6Tm3dS95a7GtKAYMw6F7OgSBYjGxOlnyJDq7NMh/Hyk5d3aj7LB22GHAPSW2SOoj+ZEmD1JDrIPp0HgnF/IdoFDWigBbExGCFm9+fS9+hn0UGx8ENiYKBKccihdwV9teG7cVjYoNxJdyJlFto1zcStWZanddma3tqwARq9/JBJ3zC7mcyU4F1QJdwNIHGesGWiUXB4n7DghHxECG5XEmA/zRmwBaLjD0MJOO9Eggg2CLDLtT2JDwlxhSPTY+mE8qRWCw14DSEL7QYh8hvFJbeIB3Mrdkndh5FyGyxW/nc/6ZpuBDA+JmCD88xJ9s1d4hWyUV1XXW1Alz9TGyXgGpX3+EmkF0wXcQ0ORbIyrs46r2GkbCrm/XyeXTeQsxkhdFz01cQQg+jA7X3ltQHEEgU5TVjbIRliSsFY5RqRDUniOD0MbH0RpdREAEWzGnVpPzf2aDaVs8yIk8O5ik/JatDjYGDXY28/KrYG0NNv16xTS6AOQiQroBQmtiNJkSpcR1/ZqoU8gcawfYUGJBEztaekiGiAlUImWsfTBlGMFQUeG+SDBEWyae2TrSv3jfPbVkbU0uL4rRjpSXxdx8HsghbJMgjUPyiP/Z25Fv2ZMz3GUwY8JOaJLE0VC5oWq7QmA+szYu37NiHZXmUHhj23QVW3s9vy63HcIn9r4Xf1LnEX3k1k793nmk70HtyclPoP8vfei88VyAkQysNKAyNj5e9VPx5X+fu+/Oc/eTD2ujNTjxSvzixeSTNhNAZQAhJVYb7b5BQQHYGQ1CuamsyB8q4ZN0OD0OHDCOvv8g3oIK9JLGgVbhMxuemA2vy5XM15AozQ/DtKY95CzCHU0Wwrs8yw398zmLT5nF70s1fQPYB0cJNJtUdhsgw9SWU9qC7xG4LmmOpmRuTiVKuV7b5x79pPkkc6cBRm4h+cLbyUJWxaWo4g5cHXKZHu9HmrwX9cHy+oDYxUWVFK/gjm6ycEUDSpU2CuM2nr1ipUyd+dX86joBQ8uOvic93iMY8oRjpwPxg6/zgkezEvf51P017MD6rmUa8UjnI7YqsWdYdHhZDMVNZXLN4YGMX79f5tQh3GHVWWVcHkLTPJnDnHZPktxdn9bNtHRxHoYdlANOP4thhaQQNuQaax4OaxXht2CPR35NLTTQBHtLf3cqGC6tlBVtYi6zRdpx/sbdFzcDsV6KS+BPW5HjeXKnbM9PGezDmntkDg9b5L+OIN802VrvcfAGnM/f1DV047OztsJkvGf+ux8/UGX9BUyVtAA= +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get all registerd API Keys for this tenant (excluding hashes) + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json new file mode 100644 index 0000000..4771fa3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json @@ -0,0 +1,157 @@ +{ + "responses": { + "200": { + "description": "Signing key Information", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "key": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "name": { "type": "string" } + }, + "required": ["id", "key", "api_keys_id", "name"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The API Key you were using does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "You did not present an authorization header", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "Your API Key did not have a Public Signing Key associated with it", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx new file mode 100644 index 0000000..5893e5e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-signing-key-information +title: "Get Signing Key information" +description: "Get the signing key your API Key is associated with" +sidebar_label: "Get Signing Key information" +hide_title: true +hide_table_of_contents: true +api: eJztVk1v2zAM/SuCzkGcbN0ltwIbimKXYusOQxEEjM3E6mxLlWi3XZD/PlKOV7sx0HaXYEBP/hD5RPJR1NvpDEPqjSNjK73QF0iKclTBbCtTbdUvfFSPtvbq/OpSfeUPExSEYFMDhJm6N5TriSbYBr240eBM0swTsy3qxGOghN0Dr8sPvZxoBx5KJPRivdMhzbEEvdhpenTIuwfyvKneT7THu9p4zPSCfI0TXbEfG0BNufXmN8RwGVhizhEy9Hq/FLfgbBUwCOiH2UwewwS/9xK7rDbWlx1WaivCisQFnCtMGheS2yB+I8Ha9S2mxI7OW4eeTLtrIKA6rFKbYc+4qsu1xDjp1ksMAbY4mrwJK/Te+t7i2toCQcJEhuLqbaAIuGTjDOgVUZlsdCeuwuh/JnIl3K0Gfm/DziHkowstl0cLA9ZvBPWAcfBYvs1VUhsm0sMhw/UnKN0IRc/A+nwesdfj6sBEH3u53wva2Wx+3IfXfMi6M8UHTN2jR1UHac3MYlCVJYUPJtD/0pmvbsUIsMqQwBThZTKH5icg7+MxeT+ZsMxkkSTHM4fJUVCpwXRSh7H0Tt9p6Tsbpe/pQut4zKFBBeqqXjNDqrsmxOLZfafM+5k8Lamfxs7kN6TaV8yR2UQFs0EG5plKOUsWb2tC0S6sQEjZjbzGCVvBusDsnc8T8slwrAlzy2B6izEXYFW50MmonEwO0lT2Qt90WrL2hUhBIhcWSXSZ4gPvUeA0tWUS1aFhvSf5iFPbNLPpbDqPIVEhKV6yn0wGCXbQXd2C+mzToFg28l3NDVW14jjDBgvrSmkgTsfZQCXEvjnoVpHV/ZFiBspzsNXuqRX/VY23dBE+UOIKMLFvYn12h9JGpc6WzbwT51E6UyubRLF3Reaq5ZyNuOx2awj4wxf7vfy+q9GzeLzh1wa8kXMkXyL82otPWIn6Up+nKToBb6Coo4x/fsKEnb9NcPHlmpvsD7Q4ZHM= +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get the signing key your API Key is associated with + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json new file mode 100644 index 0000000..34c8551 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json @@ -0,0 +1,169 @@ +{ + "responses": { + "200": { + "description": "Success response containing the tenant", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx new file mode 100644 index 0000000..a832ab0 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx @@ -0,0 +1,71 @@ +--- +id: get-tenant-information +title: "Get Tenant information" +description: "Get detailed information about a tenant" +sidebar_label: "Get Tenant information" +hide_title: true +hide_table_of_contents: true +api: eJztV0tv2zAM/iuCLtuArE637pJbhz2wyzB03akoCtliEm225ElU1jbIfx8p2anTuHsUA4oBPcWxKD4+fqTJtdQQKm9aNM7KmXwPKDSgMjVoYezc+UbxkVCliyiUQLDKopxIVIsgZ2dStaZYHRZmUcfCQ8AiSwQS4XfyfCJb5VUDCJ4vrGWoltAoOVtLvGqBjAb0xi7kZiI9fI/Gg5Yz9BEm0tI9EtgaNexjq3BJwvdRpCIunTfXKaZe3xKUBn9PjTGAf64WcONer+6c74TW2QCBNb6YTvlnF+/PsaogBNFLispZQt+SUYFLuIGb37MR0qDatjZVCqH4GljNiOOu/AoVX2y9a8GjyU4EVBjDReU0DIRtbMqEQH/ekE8U1CgQJlyA984PDkvnalAMKJAqSvJc1QHOSVgr/AOvjB61tDC4jOUFQ5zRHpG584DUNyYEk/EZi6KNJeE4Egbf9jCnKEETVA39SYoIFqLPuK/Rm3E3vCHC4dUo2oj1eBbMghlwp70tzrKqTaYeYbSiy+ebHaqeMbT7QHaw7YA0hOQ38edoB7HlSPb8ZgKgIS6hatqRQG+5OuTmHhMHvOtYNdRNYbO2o+nhfomdUhl9gytx5aL4AR5EDFxdJgjrkAqvcuT0Nej/pcj+uKqSgovczcOIlVvw74o/QO5e7ufunfOl0RqseC4+OrHTvicCiNbgU2K10fYJCgJgZTQIZXdlRW7KwiVp3//tOGBs6rWvQXl6mb95j2x4YDYcjVcymyFRmk7yp1FoBzmLcGkCCse5pLx2/fAxiw+ZxVdjNX0CGL3l8XKeym4OpJjackqbpykTuC5pZqRkzvsSpVyX9WOPftB8krp+IJELSLHwJD6TxV07QLHOD5vtgJI3gOhrHpQR2zAr0rUDuCQ7NRzQuFGk2ZmXD46JL2XiTA+mB4fJLaw5zA90Txx/+sAO7zCsPxBvXBW4n9MnH7jLp96vYQW1axsmEQ9oLmCjEne6kZ53oNPcXAYb0G0r6xsm/s3WlDOEcIlFW9Ogn2fHNAZmNNNGRZKrw36DSntEurzdrGadQsJpSf7zrfW6VAG++Hqz4dfUJT0NnWf0uFLecPUk6LUJuZJmaUb/RVBPTzruPBN3Od69VJZHwJWqI/+jRxq3bra2DdO0W4r+uQfZ0s4StvWDF7p8fkxLVjs82+sczLgtud+/PaXi+QnxcEl3 +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Get detailed information about a tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json new file mode 100644 index 0000000..04b5e15 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json @@ -0,0 +1,34 @@ +{ + "responses": { + "200": { + "description": "Informational response if Iglu is running", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { "type": "string", "enum": ["Healthy"] } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx new file mode 100644 index 0000000..a2cf881 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx @@ -0,0 +1,61 @@ +--- +id: healthcheck +title: "Healthcheck" +description: "Endpoint to check if Iglu is up and running" +sidebar_label: "Healthcheck" +hide_title: true +hide_table_of_contents: true +api: eJyVU7Fu2zAQ/RWCs2E5Hb0FaNB4y9BOhhGcqbPFhCIZ8ijEEPTvvaOdWG46tJMo8u7de4+Po24xm2Qj2eD1Wj/4NgbrSVFQpkPzquxBbY6uKJtViQp8q1Lx3vqjXmiCY9brrbZcoHcLnTDH4DPy5qi/rVbyucXf+ENIPcgfOPVRPx9yRTfBE3oSEIjRWVPbmpcsSKPOzK8HWdEpImOH/Qsa4saYQsRE9swjE1DJzya0OCv2pd9j0tPi47zHnOE4L8mUhAiX2PyMKYU0O9yH4BA8T0OGYhMO4DLuuLgF+gdW9mrE15GfoPoRwVF30rtpEnvfik3YVstn/TKVLAsg6ONfNP7ROjfki/yZ2IuUOTbTmASuR+oCg+kjVmlAHf80EG0z3DUSh6arzGuGZAqmAZOEZdQlOS7uiGJeN7V4ie+M7nBpQt/oiZMk8kSJNJ2Ts1qulneVDDkRV/Ny/7QRmrcRuxyo78FkxS6pIgnz6hRKUi0O6ELsJVgsJIZMPdQr8NAL7uMN7xvo8RrJ/30o5wshfKcmOrBeZlcfxot5W8645cpBNNb3tNBzC9mTjrlK4TjuIeOv5KZJtt8KphPv83KAZGEv9mwlE9zf8v2L56/IJfreGIxyYQO4IoS+vCvx/vNyfzz85PD8Bs7FbPU= +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Endpoint to check if Iglu is up and running + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx new file mode 100644 index 0000000..b3eb433 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx @@ -0,0 +1,3 @@ +--- +title: REST-API +--- diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json new file mode 100644 index 0000000..a5c50ac --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json @@ -0,0 +1,22 @@ +{ + "title": "Body", + "body": { + "description": "New state that the tenant should reflect", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { "type": "string", "format": "uuid" }, + "name": { "type": "string" }, + "tenants": { + "type": "array", + "items": { "type": "string", "format": "uuid" } + } + }, + "required": ["id", "name", "tenants"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json new file mode 100644 index 0000000..16d8c06 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json @@ -0,0 +1,177 @@ +{ + "responses": { + "200": { + "description": "Informational response on success of operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": ["Request completed successfully"] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "400": { + "description": "The provided request body is not in the correct format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The API Key you used is not recognized OR you are not allowed to edit the tenants you provided", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "There was no auth header presented", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Iglu was unable to complete the request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx new file mode 100644 index 0000000..7737b8c --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx @@ -0,0 +1,71 @@ +--- +id: modify-api-key-access +title: "Modify API Key access" +description: "Modify which API Keys are allowed to access tenants that you have access to" +sidebar_label: "Modify API Key access" +hide_title: true +hide_table_of_contents: true +api: eJztV91v20YM/1cO92xHcT7c1W9ZN6DFsK0IsqfACGiJsq496bT7sOsa/t9Hnk6J4ghFHgoYA5KHWNLxeCR/JI+/vSzQ5Va1XplGLuSfplDlTmwrlVfi5vMn8QfunACLArQ2WyyENwLyHJ0THhtoPP1W4MXOBFHBBh8XjZxID2snF/cSWpVtZpla65BZdD77SlppnT/I5US2YKFGj5al99LlFdYgF3vpdy2SVc5b1azlYSIt/huUxUIuvA04kQ3tIwEIvjJWfYfoBilmXyqEAq08LLttdO6vptix2uc+/4Vb4Tx47DzxFSbXhKtM0IWwWGrMPenNTUNLnnVA22qVxwOzL44VjRhuVl+6ja01LVqv0PGqKl46N5GlsTWQbhkCCRx650aikCI/WANrYceOe6zdK5QfnsXyni1K5z1pXx6SmGtN4zrLL87PXwbwU9NppzfQopcXphEudNlgSsH+9/D8pDAyaME95KYYhqkJ9Yphn/TrNVkA6/FIKveA1ho7WFwZoxHYTCRVFJwStMMlCRfgXwPuUzTGgEhK5W2XkiI3dasp94s+WGXQesfBP0JooJaN8Yr88lC3I64fbR3G6UVUBjFIHg51pxy4GoP9jgqFXN+oArlGOndWVGJCOdEYL1QTiyk31lKgRErB/wn8r8Y7Kngo0IPSI6V3DMZz8RMgORtHMjX72MiDI0QTiASdWTfqO335+zau8m3AK4MbAQs1bJwuyvW58Yb4iRG/HEWcUNwCYyz49hTdbUmgoSOk3lA7MWrXoxctzUsRtNDASiNXXn99xOpLTfgNuhNDN1Jwt+iDbbitlhGqEkmxZdioz1oTCEF6oEHY87CUei9GmN9K8ZR4kjqiJpUhZcRTfF6xN+Ares1GeU3G7TSrI5HiE9FuemITrGZe4n3rFlncdobfgAv4jOo4i1SFIb19oiu/d+s9a5CXJfxyXc6vptfvZu+mV9fzi+nqssynF/n7+WU5n0MJc/nIix6nzkfGcP86DRxknjj5XDa/S+Lzs/OzWQyRZ5O6fkSDAwfvZaPiieI3kzse/Hik4HmQ5gIrCtygNm3NCU3ntMb5GmIeJ7MTC+1Hko5SHh+yfyqKn01bu4Ty+M1nrQYVMztit0/QR0pLkptZz2IjT+JMT9SWk4B+UhoQrhV5yRv3+xU4/Mfqw4E/E9CWOOk9PW7AKq53fqMDE33lvCGdZM+Hzt3pHZvH4jpE6nfcDw6TfscNOdX6H8ouB+n9+ebuw0eSXiWaXMc2IS1s2T36v5D0YGL8Y9nGb3upoVmH2C9kp5T//gM0kbNq +sidebar_class_name: "patch api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Modify which API Keys are allowed to access tenants that you have access to + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json new file mode 100644 index 0000000..8650f1e --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string", "format": "uuid" }, + "required": true, + "name": "derivation_id", + "in": "path" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json new file mode 100644 index 0000000..63eedb1 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json @@ -0,0 +1,180 @@ +{ + "responses": { + "200": { + "description": "Informational response, returned when request completed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "information": { + "type": "string", + "enum": [ + "Derivation pinned successfully", + "Derivation unpinned successfully" + ] + } + }, + "required": ["information"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when iglu encounters an error while pinning the derivation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx new file mode 100644 index 0000000..9efbd8b --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx @@ -0,0 +1,71 @@ +--- +id: pin-derivation +title: "Pin derivation" +description: "Pin a given derivation so it isn't garbage collected anymore" +sidebar_label: "Pin derivation" +hide_title: true +hide_table_of_contents: true +api: eJztV0tvGzcQ/isEL2kBxSvncdEtQdrClyIIklNgGNRypGXKJVlyqFgR9N8zw115tdY6MNKiQgGftCKHHznzzXMnNaQ6moDGO7mQ740TSqzNBpzQEM1G8YZIXhgUJrlnKNYqLtUaRO2thRpBC+W2rY8gZxLVOsnFZ6mCqTaXlVnbXEVIWCE45TCRCK/J65kMKqoWECIf2MlUN9AqudhJ3AaglySMxq3lfiYj/J1NBC0XGDPMpKNzJNBBMiI/PChsSPhhoJlc+dgqpJWcjf4B8KD3Dck9Fv9hPJWx8dF8K5AHvAYU3fOTiDlBfE4cDOof4K75TAreJUiM+GI+558xyVeuMwX9U1Yc5Gf0hTk6IvRrQ/Tz3UQd8dwGC8xzynUNKa2ytVu6uPYO+QmEr0Kwpi6I1ZfEl0yo5ZdfyF/oYIg+QETTPTGhwpxuaq/hSNjldlnsc9hv6WZSedJMJt1AjD4ebS69t6DY3EBQ5GIrZRNck7BW+IhXmcFGU77Ug8p3Q4wE49ypkY4EspsSud6PeP48upnfi4ZUR9WGCevcO3psyhPDHZmpN8IxNj2D0V7NL0/95WMD4i/Yiq3P4itEEDmRFSgdCOeR/KT2a2e+gf6/+MSjnaAA3GhAZWyauOWe+cfiZ+Du5Sl3v/u4NFpTPD8Xf3oxykUzAQYbiIVYbTRndzLAxmignD6WFV2GEb5Ix8Pf3geoahCQeAsq0mKfaJ+84bze8Go6kvu8Tnmoq6BCe+hYhFtD+d4zl8Qr1ZgNxCcWz8ri66n6/WFUp7mhEuBqnx13Uxy5BZV2jYVSljhbc3wOnc0TrWemdSJV39FqVoWtFRAwVdsSjdFnBE631DdTjK4OmZdCeGmfSu9Z+SQ4mmQaT2ByDUUXnhYWsnpoDqp23ce+GkKSFkeTx76i0OX3lDzcTUk5Wm72EUNaVAX2Am4V9+cX1KZXpf/n/pF15kOdY80v5heX5dlo2QxXnDHevL9ihcaDQb8h3vk6cRmnTg+4uJeSr2ED1oeWnYxUDj5hq4pv9WMJD4+jFDNC3w0e+o/HzI5OhFusglWm+FWxza43fRlBSXJzeRg5y2DE3Ayj6OJuhDxigdfvT4BMBFm2IY0ZerdbqgSfot3veZnKadzSOn1uVDQcj4UsbVIXm4sye/zAHL986L3xV/GQdv0i2YC1UjbzP/qkvnyYhXma/A9vHZtpz1HXz6H/uvrdhaO59+45rHW3/4bmqnC8d5IIOUDuYvWP3z5SLvgO85f48w== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Pin a given derivation so it isn't garbage collected anymore + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json new file mode 100644 index 0000000..c49c9b3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json @@ -0,0 +1,24 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string", "enum": ["xz", "zst"] }, + "required": true, + "name": "compression", + "in": "query" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "content-type", + "in": "header" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json new file mode 100644 index 0000000..294cd94 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json @@ -0,0 +1,187 @@ +{ + "responses": { + "200": { + "description": "Generated Upload and NarIDs when request completed successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "uploadId": { "type": "string" }, + "narId": { "type": "string" } + }, + "required": ["uploadId", "narId"] + } + } + } + }, + "400": { + "description": "Returned when you have provided invalid or missing query parameters (i.e if you are missing the compression parameter)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "412": { + "description": "Returned when there is no signing key associated with your API Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when iglu encounters a request while trying to generate the IDs", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx new file mode 100644 index 0000000..c819993 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx @@ -0,0 +1,71 @@ +--- +id: retrieve-new-upload-id +title: "Retrieve new upload ID" +description: "Retrieves a new upload id for a multipart nar upload. (Used in Cachix upload flow)" +sidebar_label: "Retrieve new upload ID" +hide_title: true +hide_table_of_contents: true +api: eJztV01vGzcQ/SsEL7UBWWul6UW3tEYLoUAapPEpMIzRcqRlyiU3JFcfFvTfO8PdlVaRbBepA190ErQcDmfmvRnybaTCkHtdRe2sHMuPGL3GBQYBwuJS1JVxoIRWYuY8fStrE3UFPgoLvl0diovbgGRkxW+QF3rV7ZoZt7yUAxlhHuT4s4RKZ4tRlpMR0uc8Gcu7gSSHUGJEz2YbGWi9BDneyLiukKIKFJSdy+1Aevxaa49KjqOvcSAt7SODiBZsJJ+ak6ggFmT8uKOBRFuXHNLqgf48hCjvHneeu7LyGAJXqD3ha41+/eQRT7mzFG68SvatvwJBof9Oh1DHwnn9ALEX4f/yWAf0VzDHfUk7d3e8J1TOBgzs8c31Nf8ckugPtOghEiVuGyKAVeI9+MlNEMsCreBjMUTBlTXIhqHOcyrxrDZmzdRoasSuoaqMzlNu2ZfA/k9k5KZfMOdgK+8q9FE30TU8nKiTuROBT64clOXz3ke34267ZZu3pzKn9qm9pXxSmmtXiwIWKCiqhVapRRZgqJmol0pNjLJzkagk9h0gLvQQhZ6l3eBxZxgLFD0q7rdcvlzBQoRYh/vcKewZU69ME5e69ZJCIHqcLKsO9+i9873FqXMGwfKqgvgfwkgO7hVG0CY8D9GhOXdy1BRihLI6kcU3m/spHyXYS6eNve97x4TRMRM+EVr/4DqhuESCsU4g6iCsi9QAuZtb/YDqjN0rY/fzMXa/Oz/VSlEHX4n3ThzM14FATZ3oE7BKK/tT7NqbxtyhrWimJnc7Wfvub8sBui65pX9FanLP12sJ8cyGV2bD29Od3F5YNMGbl4ZQDhsUcaXpInOMJeFK9+YC/RnF10Vx9Oa5m5k7GJtGFEHTJKbRzNMaQnC5Tk+XJbV507bvPkzEn/iCz5Izqt+B6i/Pv7f03NQCbe5qm15SsHtoLgttUES/Tg8pJ+btCzVNYHqWnrF9RWzJHb1jC6dYurmQkmEFN5ZZXzFmm2b2brOdCL2iFzkfmaZuox1rb1iuxFiFcZYxI4a4ApYZQ3o8Z0nBaDtznBZvanh0PbwejlJk0XCmE2YS9T3HfEC4bkHcuDwkTUxaia/yNCkUKWfjqpJ5RFlxMiUk+rTCqpPXfW09ufn2lM2ejD9IkDd4RlzFrDKgE7FS5TZt6ZNYJ8vFqBXqjOR4J7MPEaCSFowb7dpsphDw1pvtlj83OplxUTrA1DBhZmACPpHxxceWW5fisVBpVB/pchJWNVsmhBfgNR/38ke3H8Gu+2d2IbUF2nIHtZL5ByV/INH3uZPcb9bfkZ6u+mtHQ43rtOu7D3/9/Yka+1/421IK +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Retrieves a new upload id for a multipart nar upload. (Used in Cachix upload flow) + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json new file mode 100644 index 0000000..7d2d354 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json @@ -0,0 +1,14 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "uid", "in": "path" }, + { "schema": { "type": "number" }, "required": true, "name": "partNumber", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json new file mode 100644 index 0000000..8a8649f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json @@ -0,0 +1,16 @@ +{ + "title": "Body", + "body": { + "description": "The MD5 of the derivation part you are uploading", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { "contentMD5": { "type": "string" } }, + "required": ["contentMD5"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json new file mode 100644 index 0000000..ded19ca --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json @@ -0,0 +1,212 @@ +{ + "responses": { + "200": { + "description": "An upload URL for a derivation part. May either be S3 or local Iglu upload URL", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { "uploadURL": { "type": "string", "format": "uri" } }, + "required": ["uploadURL"] + } + } + } + }, + "400": { + "description": "Returned if your body or request params were malformed or not in the appropriate format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "408": { + "description": "Returned if the upload ID is no longer valid (timed out)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "The given upload ID was not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned if iglu was unable to handle the request correctly", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx new file mode 100644 index 0000000..8019532 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx @@ -0,0 +1,71 @@ +--- +id: retrieve-upload-url +title: "Retrieve upload url" +description: "Retrieve an upload url for a given upload id (uid)" +sidebar_label: "Retrieve upload url" +hide_title: true +hide_table_of_contents: true +api: eJztWEtvGzcQ/isEL40BWWs7CVDo5sQtYKBJA8c5BYZBLUcSUy654WNtZaH/3hkuLa0etQvDqXqQD7GzM5zXNzPkTMsl+NKpOihr+IhfQXAKGmDCsFhrKySLTrOJdUywqWpg+VlJ9ioqecQHPIip56OvXNSqaE6LUpQzwM/0W93zmwGvhRMVBHDE1nKP9ErwUcvDvAbU6lGpmfLFgDv4HpUDyUfBRRhwg+eQIYARJqBMRUbWIsyQ+TmC0OKnpZhYjcE9IgX9CR87pizsewQ3f6ZNIoaZdeqHSBhkgTMQMtnwLC89uGMxhVXIHsTddGfAh3dWzknmOv7XM2AfLt4yO2EB/8Qzqkl2MfKZzW1kwkHOATJi24bSmkCaUbaoa63KdL745knBDm/s+BuUZGjtbA0uKPBEzWLQmB2er7n+tc97s1h0VF9b4ztRZycn256eLzP5y9UfOcE33B2yD2LOQGEkHBsD+/yaIZu2pdDscqpjTwB/Mb87mSRyy+0BRzMrEQhhp7aisDqZg/Bml99Y4dEZwAKeEJzoGCYC+ZXzgqVi9ewOEOdKaFKJ3MhgbGDKpLxAB9Fop0QAlm16sQD4IEL0t6WVsLMmM70C7zHFd5aF8rfgnHU94thaDcIQVYrwL8xIAm4lBKG0fzoF19lvkBoUmhhEVe/wYuNw3+UtB3vuZNv7spdQn+4u5r9gnqo2wRk9ms6UT1A6KO3UqB8gD9jtGbvX29j9bt1YSYn37TH7aNnaHTF46EkErFTS/IJV62yjZLq313hZ1/mpflO15//mHMjl/A6wqbtDJf8/suHN7krO/Rl7cfcaYtJChyLcK+zblrBEXPHub9LD5IDiPlH89fGrl8ouPx8uL7pyxJeFmWIZNkLT45pk4r0bw9EBy/1ieXa2uyLX5iFE8U509Tix0Rwu1f2C9vapt6+iBzwhFo0Ya2DBspkwkv5aNVtWWofvpKDnBzj3CCeKqwAfNZJmb+uTMzS9j3jR3zkUbXczLooq6qBohDs2whUtTv0LUpxuxm4HEZ2msTiE2o+KgpJhCPeoUMOwtFWRJmVC9mo1Lf/W0TeH0z4uZmKJTFq6jDsZngxPk0OBTvI0Np5/uiRX11LzgcAubOnTOIpDPL3P0qtNQgPa1hWlH+qhGFQiZV2e+Jd7m9XSZlNFu0rgZ655OowD3Iei1kKlZEtxbDMcaQWEnM1pXv8QuqPl8mYNFaLQNgbjPCNI8XDbjoWHL04vFvS526kQWFJ5qlGEfyK0h0cce3WV0+6I/ZPFOBFtrnDwxo3EmFBvBM61Y0LrpTXnj8LM+zofLMphoo3Pf6iVIFhQOecN0U8K99pGahVu9LWjv+9EHl+TiBXHVp9dnTgvS6jDo7w3vbbx6c/P18g8zluvKnVf7sQdbbDw3xQSm1xM3TB9a7kWZhpTG+adTPr5G3eCZnE= +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Retrieve an upload url for a given upload id (uid) + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json new file mode 100644 index 0000000..60c61f3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json @@ -0,0 +1,14 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": false, "name": "name", "in": "query" }, + { "schema": { "type": "string" }, "required": false, "name": "ip", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json new file mode 100644 index 0000000..3086a07 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json @@ -0,0 +1,224 @@ +{ + "responses": { + "200": { + "description": "Response containing a list of access rules that fit your search criteria", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { + "type": "string" + }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "ip_block": { "type": "string" }, + "start_ip": { "type": "number" }, + "end_ip": { "type": "number" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": [ + "id", + "tenants_id", + "ip_block", + "start_ip", + "end_ip", + "priority", + "action", + "name" + ] + } + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "400": { + "description": "Returned if an invalid IP Address was used to query", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx new file mode 100644 index 0000000..6202d67 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx @@ -0,0 +1,71 @@ +--- +id: search-for-access-rules +title: "Search for access rules" +description: "Search for a given access rule by a variety of parameters" +sidebar_label: "Search for access rules" +hide_title: true +hide_table_of_contents: true +api: eJztWE2P4zYM/SuCLm2B7Him3V5ym6IfmEux2G5PgyCQLSbRri15JTo72SD/vaRkJ/LG6bTTooMCc0psURT5HkmT2ksNofKmReOsnMvfQPlqI1bOCyXWZgtWqKqCEITvahDljl5vlTeAO+FWolVeNYDgg5xJVOsg5/dStabY3hRmXXeFh4AFglUWWYTfycVMZvvm93sZqg00Ss73EnctkBkBvbFreZhJDx8740HLOfoOZtLSPhJIKlkjW90q3JDwX1S0UnU4aYo/vZ6PHfjdUxWZ9olqRo6pDjfOm88qEtIr3IDS4J+osQvgX6k1nOAa1C14T2idDRBY47fX1/wzjoi3vYSonEVlLB1GMVCbgBwAWXAEgRuFYmVQ7FznRUihRKqIZ6PocNbAZtAZqm1rU0Uni/eBD5pwzZXvoWKrW+9a8GiSmQEVdmFZOQ2ZsO2aMmI0rDdkGLk9CZUJS/De+WyxdK4GxZADqaKwjOwuSFgrzK1S3qsdQ4nQhMetNXrSgj4nlqPlv6dibXDTlUvmN1E9IXNxgdQ3JgSToJ8CqO1KomgCId7tYUUAgiYWGnqIighxit1pWztvps3whqIdd5NEItbTBJs1h+HF844Uyqo2Ke4Joy1tXhxGeXLP0J4DORuKQgZSDskj/idvM9+SJ2d2c2yZdlnWrvowCQ4Fsscl1ZUpEMDqS0t/CqqqcJL0E2iagk+yYAUtRisvRNEUlllcZ95lvhwtHwHUW9UfFWlCQxmMqpny8YuT84pwlv9Ztve5nOumo1jb6+nSh523oIWhQmeFsVtVGy3u3ohbrZl08UkFQWGjBTqRqv7/pMqdl7ULZkQFSw1U+uvweAyMxRf/PY035zS+24D4ADv+KolP4IEY44+YCcI6FB4qR2n5GfQLd8/M3Xfn3P3sfGm0pjb0lfjViVF3NBNAhRt8JFYbbb9CQQBsjQZO15GsSD2PcD41J/1jHwPGUu8C4gfqWOglNb+NwpdoeOZoeD2dyXwMiXLNjZ8aoR0kFuEhNqXMJfHaf/FfWHxOFr+fyun8s8pptwJSTGU50uZdh8B5SSNinDD6FCWuy/qlRj8rn6RuaLnlGqIvPHjPZXFp5C/26c+hSIPiMg6KRRoNj215ugTofM2zKWIb5kVUdQUPdHYNV9RkF3FcNXbl2E/elILp+ur66iaaijW7fkf7xO2bO3ZiFHXDgvjRVSFecFDjxpU/fg80bKF2bcOBxR20C9ioGE/9FJ1fjGQz75fH7E/h+c/uUhKRCA9YtDWN3WmIivNQAj3es5Dk9ma4V4nTPJ56cPo3P96T5PhH4CMDBOmGXGVt+32pAvzu68OBX6dulnnRJqTUG+47qJc63ZtQS9yxpfFy4oJobPZPggt+8IYlpw+4iOjXb/to/kZcwmgY0u0uP3OwpIfjwInT34L86xakk0a3LiOQ0vptmq5Oa2e1jHE6ptsvP72jdP4DDufc6w== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Search for a given access rule by a variety of parameters + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json new file mode 100644 index 0000000..5ada3e3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json @@ -0,0 +1,13 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "query", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json new file mode 100644 index 0000000..f173c52 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json @@ -0,0 +1,268 @@ +{ + "responses": { + "200": { + "description": "Response containing the results of your search. CAREFULL: The data array may be empty!", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "derivations_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "cderiver": { "type": "string" }, + "cfilehash": { "type": "string" }, + "cfilesize": { "type": "number" }, + "cnarhash": { "type": "string" }, + "cnarsize": { "type": "string" }, + "creferences": { "type": "string" }, + "cstorehash": { "type": "string" }, + "cstoresuffix": { "type": "string" }, + "parts": { "type": "string" }, + "compression": { + "type": "string", + "enum": ["xz", "zstd"] + } + }, + "required": [ + "id", + "cderiver", + "cfilehash", + "cfilesize", + "cnarhash", + "cnarsize", + "creferences", + "cstorehash", + "cstoresuffix", + "parts", + "compression" + ] + }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { + "type": "string" + }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "pin": { "type": "boolean" }, + "csig": { "type": "string" }, + "signing_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "key": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "name": { "type": "string" } + }, + "required": ["id", "key", "api_keys_id", "name"] + } + }, + "required": [ + "id", + "derivations_id", + "tenants_id", + "pin", + "csig", + "signing_keys_id" + ] + } + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "499": { + "description": "Returned in the event the query parameter was provided as uuid but that ID was not found in the database", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx new file mode 100644 index 0000000..d41aebb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx @@ -0,0 +1,71 @@ +--- +id: search-for-derivation +title: "Search for derivation" +description: "Search for a derivation in the given tenant. The query parameter either takes a uuid (which then searches by ID in the database which means only one or no records are returned), or by nix store hash" +sidebar_label: "Search for derivation" +hide_title: true +hide_table_of_contents: true +api: eJztWN1v2zYQ/1c4vawFXCvZuof6LVvbIUAxDFn7VBgGLZ5tthKp8sOxY/h/3x0p2ZJNrWiyLdiQhziS7vjjfZN3u0yALYysndQqm2R/ADfFii20YZwJMHLNicKkYm4FbCnXgE+guHJj9h6/fPFgtqzmhlfgwDCQyGeY45/BIoT3UrBntyuJoEhQzIYNkDbfsuvXLa7gjs+5BRY5K+DKMq3KLf4AQ2GUZgYKbQSCGsBn540C8XxERIRScsOs00hacbvKRpnjS5tNPma8lvn6MpfL0ucGrMuj8BZZ6Fs2HWUH4WnBLrMoXsWzyS5z2xrQJtYZqZbZfpQZ+OKlAZFNnPEwyhSuQ4YISYhkwpq7FTLfBygYs8WJL/cD4t6ttJF3wXkt4Ao4evSeiN6CecGXcNSzhZvSGltrZcES4g8XF/SvH1c3DQcrtHJcKtwsOB5X+tKhrxdsq71pwmPMfrm6efP2w7t3kxBkFB7od8O3rMK/OTCoarf9DkUhPBIKd+R1XcoiqJx/srRtQlE9/wQF6VAbXYNxMgptHXfezgotoMOsfDUPFmvpFViLRkgaTtoZGKNNhzjXusRQxt0AoTC6Fry0MEVm0qjDGHQjwzqo7NellSIpwTFf7azH8m0wRcABkyYuZAkhxwapVt6ljVgoboaXIvFkZYdoYAEGVAE2TQ+5P4wdyNYvFnKTZMAS4AaQdVXjUitjPPXpB79mmzt8ubNOZNN9L4k+kpU7Nu1asGuvjnU6tuhr3tPzRKtWh77EFGpNwXtIRCyxqPv5jGpALAcJnkECwldywIAxbWo/x8RN5A2tDvqjKWcdvTAPsb6lZfVGpsUwEiui2yYj07kynfZySaVqcL9jABSljLURbUR+TofBqSEbs/WM1DXJV/SP2nZ0i5qcyU1hUEuVtnCBzEmLtSCfYfug6MH1ye94ND8YezDlB8Ix5ZQmncKK6bctJdX6ihxwUuwnBbqXm9FDjTvOjR8AncQDyPGqTgTryX7dA+3s+OocVs1R1MXGrQjt5cXl+TlOpzGKRIc1u8W6xLylo1xavKG5cEVDse9A/FdO5vOjeECMADATgJeXMnVSnJi/zz79933347nv3mozl0LgJfwF+02z3h1x1F7cybFCCvW9Y2iAtRTAuOrzsnjzo5t3uLM1r00MNDf6n/Eihx+xkai4e4qGR46Gl+lMpm2QFUTT0jGhIXoRNtI6bL7Ql+jX5kx78uKjevHVq1RfFRvhNu0A+3MXnk4b81tu24wWDJ9DZz73xMwdteLEQK5faK/EaWP+5PtH9f1PqXp+9P0i+GoBCIxHckhZo70DqsnUFlB73ZRnzPN5+XQ+P6o/Ea5tKLIlBF1oZjTJ8qFpVb6LD/u8c4XM47Dk0HPE8ZU3JQ1nnKvtJA9IY9jg1iWMsYPIw7xGqoUmNWlRjKWL8cX4MkjqStL8Gtexq9+vw6W1G3Qtgb3WhQ1zQmxmqFqEq4DA+lPquqK4op5DW1fxEE7NGKkzXzxqcrrJ7hib/6OBZAwpBxuX1yWXKjaroe+M7g/DSuRcX7bDyTBZc8c+AZ8mh2FjJxJCCIRYQOeu0OgEttuRAh9Mud/T5zhOpAgR0sYaMAnjqL8w/rObJuqfsyENQnN3GFyueemJJ0TZmhtJG/39m7ZTM9XbsxWmsdCesroZUv5DaveGokfdR7uGflUUUHdpZ4WW7HSoBb++eY+15k+X7DtP +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Search for a derivation in the given tenant. The query parameter either takes a uuid (which then searches by ID in the database which means only one or no records are returned), or by nix store hash + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json new file mode 100644 index 0000000..63f8eb8 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "query", "in": "query" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json new file mode 100644 index 0000000..9bcabaf --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json @@ -0,0 +1,172 @@ +{ + "responses": { + "200": { + "description": "Success response containing the tenants you were looking for", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + } + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "400": { + "description": "Returned if you did not provide the ?query= param", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "Returned if either your auth header was malformed OR the api key provided does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Returned if you did not provide an auth header", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx new file mode 100644 index 0000000..99edc10 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx @@ -0,0 +1,71 @@ +--- +id: search-for-tenants +title: "Search for tenants" +description: "Search through all tenants that you have access too" +sidebar_label: "Search for tenants" +hide_title: true +hide_table_of_contents: true +api: eJztV1Fv2zYQ/isEnzrAjZJ1ezFQFAU2FH3qkG5PhRHQ4tliS5EqeXTjGv7vvSNlW47lBA2wBQPyZEu8O373fUfqbiM1xDqYDo13cio/ggp1I7AJPi0boawVCE45jPROoVj7JBq1AqHqGiK99F5OJKpllNNPUnWmWl1VZmlTFSBi1fuSCb+Ts4nsVFAtIAR22MhYN9AqOd1IXHdAACIG45ZyO5EBviYTQMsphgQT6ciPDL4mCGsO6PYP28ljAqmEjQ/mu8qp9wEbUBrCIyOmCOGlWoLDu+Fm7BM77yJEjvjr5SX/3OE+FU53lqL2DpVxtCmRD3shWINvEEBY77/w4sIH2pCteWuKq7rOmjonVn2OHHwkHT//DDUj7YLvIKAp0CIqTPGm9hoGxi6188zLbr0lpJTqKD0m3kAIBOqwOPfegmKagUKR9AtlI8zIWCscolIhqCwvQhsfRmv0KIKlwSbNb1iQos2IzdkFCt+aGE3hbSy7Ls2J35H02DvAgrIHTRS29JADEV1UbONYUzDjMIKh8sT1qAqIdlwds+R6Obvfnn9ZW1MKlThakfNse1TYn5jaUyJ72o5IGlLyQP4l20FuJZMT3BkMGioyVG03kukdrMOiPSnRQUH25TaMTVtxtN/GTuQ1YAoOtDCLfOq00cJ5FFSDK6Mhn8o3+Q56LfLF9n85hqfn7gyMHOBGA91DNo7sckeHY/PZfy/i1f0iApUzBNYyCL7/RbmgxTcVRassXaQtGX64zsrS10x8gfVObS20h5j1h1sT8VnrJ9b61c8fWOWGsj8r+KQK/v6QgnwIF0CBA1+1hjojnxAE/aHLFoVf8N98Hp2aW9DPej6hnhRu13TIJeRcFDb0UJ2bCqqYh419C1ImghQsN86IXZxW2ekCbmkXCxfUUFS5lzZu4Tkjdiplc3lxeXGVQaHlJN+Tn3j713uGe1RfuwXxh68jd86CehthXPkmaFiB9V3LJcQtmI/Yqlw5fYvfz0fsd5htjnbYHGrwsdNU0QnhFqvO0gBQusTc8BVO86RFlqur3WSV5wsm/YCqZ5foaigNdtps5irCP8Fut/y6DE/MuTaxHKBpbsvvyejFdV8yv4hzSOmTORjTVsomtsm6rVQwvBFtytXZ38L/EoKjaewAgya7sv6WOO+GaycXBkPe1/S7P/+mM/MDmG5QlQ== +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Search through all tenants that you have access too + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json new file mode 100644 index 0000000..9d2b059 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json @@ -0,0 +1,17 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "deployment_id", "in": "path" }, + { + "schema": { "type": "string", "enum": ["websocket"] }, + "required": true, + "name": "upgrade", + "in": "header" + }, + { + "schema": { "type": "string", "enum": ["upgrade"] }, + "required": true, + "name": "connection", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json new file mode 100644 index 0000000..e431fea --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json @@ -0,0 +1,36 @@ +{ + "responses": { + "101": { + "description": "Returned if the server acknowledges the connection upgrade and switches to websocket (required to see logs, see iglu deployment developer docs for websocket docs)", + "content": {} + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx new file mode 100644 index 0000000..c041b08 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx @@ -0,0 +1,71 @@ +--- +id: see-logs-of-deployment +title: "See logs of deployment" +description: "Attach to a given deployment's log. As openapi is not designed for websockets, see iglu deployment developer documentation for furhter details" +sidebar_label: "See logs of deployment" +hide_title: true +hide_table_of_contents: true +api: eJzNVcFu2zAM/RVBl7WAEScYdvEtwIaht6HbTkUQKDZja7UlVZTTBkb+faRsN3HSdj1swHJIFFIkH8lHqpMFYO61C9oamcllCCqvRLBCiVLvwIgCXG33DZjwAUVty5lYorAOjHJaaBTGBrqDujRQiK314hE2aPN7CJgIBBC6rNsTL3TcQU0OvChs3rJIcfBou219FVgDQekaZSKDKlFmd5KipbtF2vsheU4w9RMdBskqkU551QCZs0EnMa+gUTLrZNg7oNwweG1KeUikh4dWeyhkFnwLiTRkRxeOINe6INeaK+JUqMjmdX+JBNM2jPE5c7l6PUjrSq8KGN1XQH/8OwOMtm+4z60xkMdunkVYsQ06axCQgyzmC/6Z9v8WQuu5k3orQgXUQL+jfqj83tjHGooSMMqPYcQASihTCHzUgbJAJtBzNcTViJXFTAmi0XvIgVM+RdE1996aQJcJ/YEK8Wn+8c95bEGRAOhMlPW2DcDcJcYEYbcjjYnTG8pxEoGI52qdR4qmv5Cdv9Apu/lF1SBD5xl80H2Jkajd4jq31LPjZWrmJrZ81DeAqEp4kaoa1+C99SfKjbU1KMPaQoV3wIgO1uNMXUaZsOnu7DpzLWiCGFTjXsjizPg05YsET9IZsJ/6Xh34k0ia4cqSM1lCzIUHMJPpZAOkRKG0mwzsgeNFuvbz3/qa2R+CwyxNmWgzeKI4Ncxy26RxILTZWs6JjXrizGfz2SLCCjWnecMEXX67iZvmlGGjQnweidoikcqIvW39yGOGxn1yFkOjIneGOf0+jAHT75jGeZTuyMT/cDX3RAjwFFJXKx0ZGaveDU2La5tu7hbHRZ1IQkrf2XTbUjMqKhLbdN1GIfz09eHA4ocW/J7kdNwpr3lEY38Ljf24ZltVI7xRuavbgaDX4jXYg1AZBrhTdcv/6HgP+4uH4cAjMWzVvw6kD3h8JJ6x8AvxDyJN3otJsF6/zHNw4UR3sQ95jp5H9uuXH7QSfgNeaeab +sidebar_class_name: "get api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Attach to a given deployment's log. As openapi is not designed for websockets, see iglu deployment developer documentation for furhter details + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts new file mode 100644 index 0000000..66a0241 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts @@ -0,0 +1,530 @@ +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; + +const sidebar: SidebarsConfig = { + apisidebar: [ + { + type: "category", + label: "cachix", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/cachix-agent-deployment-websocket", + label: "Cachix agent deployment websocket", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/cachix-agent-idle-websocket", + label: "Cachix agent idle websocket", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format", + label: "Get a tenant in cachix format", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment", + label: "Upload and activate a new deployment", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-deployment-overview", + label: "Get deployment overview", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/see-logs-of-deployment", + label: "See logs of deployment", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-new-cachix-signing-key", + label: "Upload new cachix signing key", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached", + label: "Checks if a given array of narhashes is already cached", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/retrieve-new-upload-id", + label: "Retrieve new upload ID", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/retrieve-upload-url", + label: "Retrieve upload url", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/finish-a-given-upload", + label: "Finish a given upload", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "deploy", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/cachix-agent-deployment-websocket", + label: "Cachix agent deployment websocket", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/cachix-agent-idle-websocket", + label: "Cachix agent idle websocket", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment", + label: "Upload and activate a new deployment", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-deployment-overview", + label: "Get deployment overview", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/see-logs-of-deployment", + label: "See logs of deployment", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "nix", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-nix-cache-info", + label: "Get nix cache info", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format", + label: "Get nix derivation in nix caching format", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/fetch-a-nix-binary", + label: "Fetch a nix binary", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "api/v1/cache", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-a-tenant-in-cachix-format", + label: "Get a tenant in cachix format", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-new-cachix-signing-key", + label: "Upload new cachix signing key", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached", + label: "Checks if a given array of narhashes is already cached", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/retrieve-new-upload-id", + label: "Retrieve new upload ID", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/retrieve-upload-url", + label: "Retrieve upload url", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/finish-a-given-upload", + label: "Finish a given upload", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "api/v2/deploy", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-and-activate-a-new-deployment", + label: "Upload and activate a new deployment", + className: "api-method post", + }, + ], + }, + { + type: "category", + label: "iglu", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/healthcheck", + label: "Healthcheck", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-a-nix-binary", + label: "Upload a nix binary", + className: "api-method put", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-signing-key-information", + label: "Get Signing Key information", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-a-new-tenant", + label: "Create a new tenant", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-tenants", + label: "Search for tenants", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-tenant-information", + label: "Get Tenant information", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-a-tenant", + label: "Update a tenant", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-a-tenant", + label: "Delete a tenant", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-available-signing-keys", + label: "Get available signing keys", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-signing-key", + label: "Update signing key", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link", + label: "Deletes public signing key - tenant link", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-access-rule", + label: "Get Access Rule", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-access-rule", + label: "Delete Access Rule", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-access-rule", + label: "Update Access Rule", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-access-rules", + label: "Create access rules", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-access-rules", + label: "Search for access rules", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-information-about-derivation", + label: "Get information about derivation", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-derivation", + label: "Delete derivation", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-derivation", + label: "Search for derivation", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/pin-derivation", + label: "Pin derivation", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/modify-api-key-access", + label: "Modify API Key access", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-available-tenants", + label: "Get available tenants", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-new-api-key", + label: "Create new API Key", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-api-key", + label: "Delete api key", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-registered-api-keys", + label: "Get registered API Keys", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "api/v1/deploy", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-deployment-overview", + label: "Get deployment overview", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/see-logs-of-deployment", + label: "See logs of deployment", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "api/v1/iglu/upload", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/upload-a-nix-binary", + label: "Upload a nix binary", + className: "api-method put", + }, + ], + }, + { + type: "category", + label: "api/v1/iglu/rest/keys", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-signing-key-information", + label: "Get Signing Key information", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-available-signing-keys", + label: "Get available signing keys", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-signing-key", + label: "Update signing key", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link", + label: "Deletes public signing key - tenant link", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/modify-api-key-access", + label: "Modify API Key access", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-available-tenants", + label: "Get available tenants", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-new-api-key", + label: "Create new API Key", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-api-key", + label: "Delete api key", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-registered-api-keys", + label: "Get registered API Keys", + className: "api-method get", + }, + ], + }, + { + type: "category", + label: "api/v1/iglu/rest/tenants", + items: [ + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-a-new-tenant", + label: "Create a new tenant", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-tenants", + label: "Search for tenants", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-tenant-information", + label: "Get Tenant information", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-a-tenant", + label: "Update a tenant", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-a-tenant", + label: "Delete a tenant", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-access-rule", + label: "Get Access Rule", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-access-rule", + label: "Delete Access Rule", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/update-access-rule", + label: "Update Access Rule", + className: "api-method patch", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/create-access-rules", + label: "Create access rules", + className: "api-method post", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-access-rules", + label: "Search for access rules", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/get-information-about-derivation", + label: "Get information about derivation", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/delete-derivation", + label: "Delete derivation", + className: "api-method delete", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/search-for-derivation", + label: "Search for derivation", + className: "api-method get", + }, + { + type: "doc", + id: "04-development/02-cache/02-restapi/pin-derivation", + label: "Pin derivation", + className: "api-method get", + }, + ], + }, + ], +}; + +export default sidebar.apisidebar; diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json new file mode 100644 index 0000000..c677115 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json @@ -0,0 +1,37 @@ +{ + "title": "Body", + "body": { + "description": "New state of the tenant", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { "type": "string", "enum": ["client", "server"] } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json new file mode 100644 index 0000000..a4fc2d0 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json @@ -0,0 +1,225 @@ +{ + "responses": { + "200": { + "description": "New state of the tenant after the update", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Returned when the body you provided was not in the correct format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when the creation failed on iglu's part. Referr to the error information for more detail", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx new file mode 100644 index 0000000..27f0509 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx @@ -0,0 +1,71 @@ +--- +id: update-a-tenant +title: "Update a tenant" +description: "Change aspects of a tenant" +sidebar_label: "Update a tenant" +hide_title: true +hide_table_of_contents: true +api: eJztWFFv4zYM/iuCXm4D0jjtbi9563Ubdi+HQ9F7KoJAtplYN1vSJDltLsh/Hyk5sV07vUNRoBuWPhSxRFIkP5ISueM5uMxK46VWfM5vCqHWwIQzkHnH9IoJ5kEJ5fmEe7F2fH7PhZHJ5jKR67JOLDifRAqHJLTGFxNuhBUVeLDEsOMuK6ASfL7jfmsAz3HeSrXm+wm38HctLeR87m0NE66QDwmOh0pSywhfIPFLBInaF9rKbyJY2MgrQORgXyixdmAvxBpa9Q7iFpEHXfJB51uS2ffuJ3hgzgsP5FhfQOvaTCtPApFFGFPKLKibfHXEN6KkTr8iQMhorDZgvQRHuzIfNWQtfVGnS1I82jBCc3IDxVfSORk1GWxLtzR1ihp3dlOtSxAqcFtYgUUnLjNd4UcQtMTQKPS4rrWV42pYiTD6bWdT1VUaUOTel6PrTq4V8p88b8IBiSmms1JGQNFHG2Re7HsBcE+uHTqycVvPSV2XfMf+aG3HtmjJQG9UJqrjjFYuQn01m/1wgDGxwlQMC7XJcfv1Io5Oqx0al8M4AnG/QsMxZU5FEHpI25EAOuKzEqWDBRKj9uc8+P/mAW5IjCUvKjNi6BNVu7E5iMRO3DVR1ZXdZNz72eUwye4wjf6CLdvqmj2AxZxyqCOTjintmYVMo9LfIP+vJNkPZ1UQsMzBC1m6kVOeuL9P/gbY/TLE7g9tU5nnoNgF+6RZ73EwYYBhjXWSgM1lrt55hg7YyBwfRKpPy+KVz3SgtofPJgakCrX2AwiLiyttK/GKl/w5Gl4UDe/HM7l5sEF+uCtzDRFFeJTOM01YIq5NPTyj+KYoXl0NUbwFX1uFAD4UEBMvxdd3yOImfXFL9DIz03gVZf6cmv8GUH8de8kOQc0sxNK7QjVxA39Rt/nOMWw2/ZTdhgcG8zpQh0MR7ohwYMPvSuN1HQ09g/7GoI/czkfQZexeVoh4jYiFAmx1jX2NjHBTf9Nctli10/L82npTPFHcobWgWU1WkDU0s5nz5NS0KNnFH/tjsxFnRbUtaaTivXHzJLBN4RFPKmGKrUMSpiwE6W07afk97h86v7arGTR87dbT72571652uro4A3q+j2sZQ/vWkX7s2mZNlzYbdmWH5osCCAsXmUNeiSrNprPpZfC8J0v5R3QMu/78kTDpJdFhg/2mMxeqHppPF194qOawgVKbqjnHaOcrEdKjcciXMCDojv164ndtln1nWBgDzsOjT0wppIpNbehPY2iEQSJSbi4Pg8Mw4gjMx4HivBGIoBeoK3Htdqlw8MWW+z0tYxRY9Os9/twIK6kYhDjKpYuFYR6GB8/Y8dNtkwo/s1OKN4tCUW+6EWVNX/gT+8B2WLmnrGtmga+uQTypN3s86kFzzLh/E0Ve3JGIlmJQDluO6ywD45+lXXSy+/P13c2fSJ02A84qVEluxQOhh/+DW3SwMVStsLbjJYZKHcolj0Lp7x8gb+Ln +sidebar_class_name: "patch api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Change aspects of a tenant + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json new file mode 100644 index 0000000..68497ae --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "access_rules_id", + "in": "path" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json new file mode 100644 index 0000000..40187dd --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json @@ -0,0 +1,21 @@ +{ + "title": "Body", + "body": { + "description": "The new state the access rule should reflect", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ip_block": { "type": "string" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": ["ip_block", "priority", "action", "name"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json new file mode 100644 index 0000000..430ca34 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json @@ -0,0 +1,275 @@ +{ + "responses": { + "200": { + "description": "Returns the new state of the given access rule", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "tenants_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "github_username": { "type": "string" }, + "name": { "type": "string" }, + "permission": { "type": "string" }, + "is_public": { "type": "boolean" }, + "preferred_compression_method": { "type": "string" }, + "uri": { "type": "string" }, + "priority": { "type": "number" }, + "ttl": { "type": "number" }, + "signing_method": { + "type": "string", + "enum": ["client", "server"] + } + }, + "required": [ + "id", + "github_username", + "name", + "permission", + "is_public", + "preferred_compression_method", + "uri", + "priority", + "ttl", + "signing_method" + ] + }, + "ip_block": { "type": "string" }, + "start_ip": { "type": "number" }, + "end_ip": { "type": "number" }, + "priority": { "type": "number" }, + "action": { "type": "string", "enum": ["drop", "accept"] }, + "name": { "type": "string" } + }, + "required": [ + "id", + "tenants_id", + "ip_block", + "start_ip", + "end_ip", + "priority", + "action", + "name" + ] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Returned when the provided body was in an invalid shape", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "423": { + "description": "Returned when a rule update would result in locking out the request IP. This update can be made regardless of that, if the confirm query param is provided", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned if the updated was unsuccessfull on iglu's part", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx new file mode 100644 index 0000000..d83baa8 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx @@ -0,0 +1,71 @@ +--- +id: update-access-rule +title: "Update Access Rule" +description: "Update a given Access Rule" +sidebar_label: "Update Access Rule" +hide_title: true +hide_table_of_contents: true +api: eJztWEtvGzcQ/isEL0kB2ZLd9KKbk7aoL4VhOKdAELjLkcRkd7nlQ7Ii6L93hqS0u9LKTgKjQgr7YGj5mOF838yQMxsuweZG1U7pio/5x1oKB0ywuVpCxW7yHKxl974APuBOzC0ff+KiVsPl1VDNCz80YN3QQSUqZ3EJjfHJgNfCiBIcGNqw4TZfQCn4eMPdugbUY51R1ZxvB9zAP14ZkHzsjIcBr3AfLogiSSIdqxZugYt/RJAIJkwNmmCnSr6ERO8W2qivImCW5C1ASDA/KNFbMBdiDo3BO3GTuAdBfq/lmmR2+XpYAKtgxawj2hx+RXsZ2cvsQvtCMgOzAnKSfag/15UjrShX1HWh8mDT8LMl4T2W6OxzFFQbXYNxCizNqnqaFTr/0mtzbRSi5datycqXWQAL2YmGHO4bcMBF5GwSNfFBoLF2fLLdgXakqQPvp+ZMrRPs9SUhk+02brO1rmy05Xo0Oob5Hpw3lQ0AN3DrWRiIodLCnb8YsKTH22muJfTCl+ZL1Izu0wu/slMwRpvWZKZ1AaJqQJ6JwgJBi8H/LXTLXk0pC0w7098nYq7cwmdTiocTLJ+kHzWAKZW1vf4Ugah9hlT0IBHcFGYIFEhEu8SPIAiRxVjvP6s36vv93bmin0g1r3D/SX1NPOSFinkCMVri5smR41OOOwQywdYBqQ3JM/ZHazuRRJYcnZt86MlkgA5r3FTVvSBAJU9NnSuJkOktvx6008relv3Jn0w1KEhhoDpR9pl4oLgd+Edh3grqFLJt2SmpvRtd9V8XX2DN1tqzFRhg3qLZTFlWaYf3RK6Rzq8gf5YM9s0pKwiYSnBCFfZ53rvLz8Ddr8fc/alNpqTEq+aC/a1Z5xUyYIABDyYQK5Ws3jiGACyVxAdB1V3L4tuC6bDa7D6TD6gq3GnvQRgcnGlTCvfqDWf2hnf9kZxehiBZTFFMaogswqOyjmniEnlNN8Uri2dl8fr61LsSCVwtIAZeilrJMnzvs5WwFJEYwqpaikJJfNKL+qd5YP5vqexJz10qRSzAfCynV6kMs74IGZYeEHTvau8C6SmQ2e3dJXugiE37ciQ+A1ZigsY1c2FkQTVGqDuEGzAVCxD0hZkyJUMhZs1C6U3pfOdKr95yVm/57XRBid6SKIyEyxDwvrI+FJMzXxSUxKmp8sYSsa9X8bm5fCryE5czQMEG4t1rMMYhRCOyR5Gb3ll4YWfFa2yelU8Ut6u3qR+YL8ga6guO+fBUj3O4iT+2w3Zjcbg5aDNu9wV6bIB6U1BXz7najodB6iU84kEKuMRyexgafcT4fdPs+yPOd/trTWnbVMSjpgLeFbqpr9iitpppkkQHiitHl6PLq4CJIyX8Fs/Ebu5uCa2Oe+8m2O86t1QRYNEIdIuF6kHCEgpdl+TBVKdr60oRHDedIXWUu53kjoZNEwLP9J+jNzh4dMO6EKqKbZjQUYm8hd40rlxe7XrRobvnmioef433veU2aTRx2CtGUhZoEMndbDJh4aMptlsaDlctjuPPpTCKYjnwLJWNcT0OPbUnLH17nzz5F3bKtDQoKmon4PPP0xf+xAq+6ZBTx/k/1HoI0ZZiNnWrXxyAqLLTHd8fiOyO8x+iyIuHdXgZ71YcJdNmx03sAz21dtLKDXc3Dx/+wtVZasGXIcdyI1bkXvg/4KODjSHnhbENL0Q19yHZ8iiU/v4FGpbm9A== +sidebar_class_name: "patch api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Update a given Access Rule + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json new file mode 100644 index 0000000..dbcbbdb --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json @@ -0,0 +1,12 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json new file mode 100644 index 0000000..80eeff2 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json @@ -0,0 +1,19 @@ +{ + "title": "Body", + "body": { + "description": "Schema for updating the signing key", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { "type": "string", "format": "uuid" }, + "name": { "type": "string" } + }, + "required": ["id", "name"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json new file mode 100644 index 0000000..d0c396a --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json @@ -0,0 +1,241 @@ +{ + "responses": { + "200": { + "description": "Response containing the entire public key record (including the updated records)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "key": { "type": "string" }, + "api_keys_id": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "hash": { "type": "string" }, + "name": { "type": "string" } + }, + "required": ["id", "hash", "name"] + }, + "name": { "type": "string" } + }, + "required": ["id", "key", "api_keys_id", "name"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Your request body was not in the correct format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "499": { + "description": "Returned when the given API Key is not allowed to edit the requested Signing Key", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when iglu encounters an error during the update", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx new file mode 100644 index 0000000..94c1dae --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: update-signing-key +title: "Update signing key" +description: "Update the name of a given Signing Key" +sidebar_label: "Update signing key" +hide_title: true +hide_table_of_contents: true +api: eJztWE1vGzcQ/SsEL00AySvJtlLr5qQtGhQoAsc5FIEgUMtZickuuSW5shVB/70zJPWxkZrWRgC1gHww7OXwkTPvDTmcFZfgcqtqr4zmI/6hlsID83NgWlTATMEEm6kFaPZezbTSM/YbLHmHezFzfPSRi1pli36mZmWTWXA++wxLh+P0gY87vBYWcTxYsl5xl8+hEny04n5ZAy7ovEVQvu5wC382yoLkI28b6HBaHw08aKE9IdL+auHnaPwcINH4ubHqiwiuJrw5CAn2mYiNA9sVM9htbwM3jnMwHq+NXBJmO8zvw1qsMJY1FHGKK8XcpRh/DjH+etncaE+LIZyo61LlwZXskyPMIw6Y6SfIaW+1NTVYr8DRqJKHTnY47qUSnrxq0GC9cfIgGq1wfCSwZDper+Ogq412calBr3fo/F2yYOSPUHrjPLqGqKxupugahYBZyI2V7IXSednIjV2IGMg06l7y7xYZ54Vv3CQ3ct9z3VTToJHNeAXOIe1HpaLcBKw1dm9wakwJgiQHCIVBK0TpYIzG6Mcz+cLJpJFj3zEjJ5SEk9a8p2HPhZsfHXiCKALGVhtPmhrlv+/IHo5XGH8vqvoIRV+B7fN5wN4eV4mJfeyk5qte/1DA9yhCkufSNOwBULKNI20qx7TxQZaYxV9A/l+E+a+VGAAmEjBrS/fPXLbNT8Dd5SF3vxg7VVLifdZlvxvWuhQ6DBQeMDYQK5XUP3iGAVgoCUzoti2LRz0zwdpu/k0aUDqcVK9BWPyYjtazGk6rhqvjmZwuarxQYqnBpIHIIjwq55khLpFXvOwXYM8snpbFweCQxT8oARONbIoFF3sQrTzEOgFPZX9OxP8EhTc3x2pC31iNOfgwh8hZfHTcvntLD47NuSrK0jxQphoGUvlguMvf9gvlzPHpOL4+Xvfvc0wPRCz5c9Noeh3SBRtQmWxsu9I/c3liLo+UUVsuVRGYKgCBLcSb0prGA6UsPv49tRBS9uL1Oi3PZfFJ+US4CrCOlbGZktMTLTRVRjw72svJUk8iW8XyaE3LhlIodnQaW1Ljw/vajbIw9wIecbkSLnJTZaEXQrze7fohP8fxzfuTXxbix+tieNW9ftV/1b26Hg6608si7w7ym+FlMRyKQgz5tuuyx50uDIHQXqIsexe9i35w2hM+f0uHDN4hFI6WfjcD7CeTu9iHcUDlQijmJSygNHVFEsV1auN8JYIy0x5Sm6zdrmmtsNpp/AlNtUi9h0ef1aVQQYMhwKtEUmi4oeWiv+mxhY6Lj49marylPeFfo9Q6QwLm6AFNXq2mwsEHW67X9BkZsUv8jn8uhFWUnYFTqVzM1FFoVXzDtRd3SZsv2d/tP30UmjxciLKh/9Ijf9veW1MapO7Zd99BXKnVrdvugzp/cfxNhOzeE8TO4uB82s24zXOo/Tdtx3vp9u72/s2vaD1NLcEqHFvcigciEX+HsJjgYzhGwrcVL4WeNeH84hGUfv4CTvyUYg== +sidebar_class_name: "patch api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Update the name of a given Signing Key + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json new file mode 100644 index 0000000..f8dd818 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json @@ -0,0 +1,7 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "uid", "in": "path" }, + { "schema": { "type": "string" }, "required": true, "name": "partNumber", "in": "query" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json new file mode 100644 index 0000000..e9fcb6d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json @@ -0,0 +1 @@ +{ "title": "Body" } diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json new file mode 100644 index 0000000..6178ed3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json @@ -0,0 +1,146 @@ +{ + "responses": { + "200": { + "description": "Informational response after successfull update", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean", "enum": [false] }, + "data": { + "type": "object", + "properties": { + "msg": { "type": "string", "enum": ["Uploaded Successfully"] } + }, + "required": ["msg"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "400": { + "description": "Returned if the request arguments (like the route or query params) were malformed or incorrect", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "Returned if the tenant does not exist", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "499": { + "description": "Returned if the upload was corrupted in-flight", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned iglu was unable to handle the request", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx new file mode 100644 index 0000000..e839488 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx @@ -0,0 +1,71 @@ +--- +id: upload-a-nix-binary +title: "Upload a nix binary" +description: "Upload a binary to a given tenant using an upload id" +sidebar_label: "Upload a nix binary" +hide_title: true +hide_table_of_contents: true +api: eJztV01PGzEQ/SuWTyBRNlT0QG5IvXCpEC0nFKHJ7iRr8NrGHyHRKv+9M95NmoQUEK2KKnFKsjPz5uONvS+trDCUXrmorJFDee20hUqAGCsDfiGipe9TNUMjIhowUaSgzFSAEalzVZU8khGmQQ5vJDhVzE4KNdWp6Oxk5F9ydCQdeGgwomfXVoayxgbksJVx4ZByh+gJWi6PpMeHpDxWchh9wiNpKI4cugoYkUt1EGtyfgtQykX/KQr1E7+lZox+BfaQ0C/kcsQhwVkTMDDg58GAP7YnfWEm1jfAv0CLlb+ACQ1IhFSWGMIkaU1zriAipSitoQlEhgLntCpzcHEXGG9PA3Z8hyWPy3nr0EfVVRMixBRuS1vhhrPpGqFue3tD+WGKeweiwi16b/2GcWytRjCUDQmKCJ6ADjgiZ6r+FVU1Yfo01Rqs30usxPdfk1nI0XKLnZuMwjmjovIjNG5Phzshm+N40vxGq30jm9iUntFO99F7hTF5QwWriYg1Ck5JYQL8NDXEYhAHWt1jZ7MporBe5P0R+ZyEQ/GIHkUDmveEgMiuTGm978b3X2zDq+nPALcVRlA67MmyQ9q2+zswfvoy4/19WVkMwtgocK7CB3HvTNzZ2cvE9S+2RwiCj1tykW3m00Sraf3B4Psy+OX5y5akRiYuGRhrZPlSg6k0bt7BHwy+I4MERxqwthULqJR7YQU2lMVT7Vi03R26LFpSbEvOh3620o/JawqrY3RhWOSwY5xTHo3HpW2KLMMUiSzuiYO6VRkcD45PcllRc5sXvDHnlxdc8LY+6w3iqy2DoHcwKV+ka0AsbPKiwhlq6/hNzjw5G2IDeXd6cbgW0kbNezG9m6L9tYZv1t0dVxHnsXAaVF6aPJi2n2vW5OQ5O1kpcXJYKfPhWlEPWRLTwGpqhIPadgwBr71eLvlxJ2x56pUKfLKIvizwnmnp4Kpfm0Pxu0rvcbGro2egEztm+mbgFWf7+5n7h2AWmzlXFfVj4b8F/zArU7Dk41gjSV2fm+4s56R5XdyIeXJp8bTW5+ry+ged259nm9Sp +sidebar_class_name: "put api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Upload a binary to a given tenant using an upload id + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json new file mode 100644 index 0000000..83c0e4d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json @@ -0,0 +1,10 @@ +{ + "parameters": [ + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json new file mode 100644 index 0000000..61d47ea --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json @@ -0,0 +1,24 @@ +{ + "title": "Body", + "body": { + "description": "The deployment json you want to activate", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "agents": { + "type": "object", + "additionalProperties": { "type": "string" } + }, + "rollbackScripts": { + "type": "object", + "additionalProperties": { "type": "string" } + } + }, + "required": ["agents"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json new file mode 100644 index 0000000..59419ee --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json @@ -0,0 +1,113 @@ +{ + "responses": { + "200": { + "description": "Informational response containing the deployment id and the agents involved in the deployment", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { "type": "string", "format": "uuid" }, + "agents": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "url": { "type": "string", "format": "uri" } + }, + "required": ["id", "url"] + } + } + }, + "required": ["id", "agents"] + } + } + } + }, + "401": { + "description": "Returned if you are not allowed to activate deployments", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "422": { + "description": "Returned if your deployment json wasn't in the right format (see cachix docs for more information)", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "503": { + "description": "Returned if the feature this route is part of is not enabled", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx new file mode 100644 index 0000000..7194b3f --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx @@ -0,0 +1,71 @@ +--- +id: upload-and-activate-a-new-deployment +title: "Upload and activate a new deployment" +description: "Upload and activate a new deployment" +sidebar_label: "Upload and activate a new deployment" +hide_title: true +hide_table_of_contents: true +api: eJztVktv2zAM/iuCLtuArE6z7ZJb9zj0tKJrT0VQMDYbq5UlT6KTdkH++0g5Xu2k67oH0MsKpJD5Jj9S4loXGPNgajLe6ak+r62HQoHjX05mCYQKlMOVKpBZdxU60iNNsIh6eqGhNtlykrU8pueQl+aWD1vKbKRrCFAhYRCFtY55iRXo6VrTXY3sMVIwbqE3Ix3wa2MCFnpKocGRdqzHAtBQ6YP5BinEkTYSZ4lQYNCbWauGkd774k7MDvM5K7EXubqO3qk736gV8Bf5H0lK7N6RZMc2oK6tyZPDTFSEthe4n19jLsWog68xkMGYdBdsJD4kB0VhxCTYk4HGTiGkEt7aOeQ3X1Imf2VsUNeLLrrZZsuJtXex1ZyMx/v1O3ZXPlTQelKdvJJagXHsQtGwwqZtHqG2vpRxS2+XWPBhR/jfFd0U+7mPdBs6U5qGBTjfP8bmN9yymybYx8MJRu8Cw6ZaxdkeZok1BO7t+HAfq1OkJjgp9FXqcQionCcF1voVk3vt3gMh/jsUIgE18TL3BfaEXVPNZVRHHb/CGDmdB0tn4iWG4EOPOffeIjjhFkBPCCMZuCyQO9T+bMB65R2Kz5hLhkMkqOoHsthR7qe8l2AvnW3sfdsdlJPJL6EMe3fYCqJ7Qd1IBbMoSbX9pV5G5AFNF7EqfB6FrirPzWDuh/nVf9SfFfV34zePoy6wXiEbZtyoNFEF3/Dc8oEfVFL+So4y3ehgbrH4j+cz4snmeMUpPRvTtY8pGaCSv7LBhpT11o2IYdktRenB0CVRHadZZha2OcBbtm7xIPdVltYcgfH0ftX51PIHG8eDm4MEJ4MvkuKwbbXxwfjgMCVCYkQfs091dHKcVrfBArBlqI/dVdJEuUm6a2mJ1tfpMWc/knsFqdu2y9sT98mBz/V9Jz95H23hJbylrLa8mfSe4RaJtKuy5HJyv53yq9rhwQUuBTiWW6/nEPE82M1GyFzxwIvlBR+XEIwMm3yx/e0OKgDeIIvoD23Yr88kGhG3TVpgd4dxM+o0jvIca3pUdtbrrZPPX85YeL5ddas0ojrAionyf6r54FMZ08gk2lpbcIsmzapubcrfd4mBNMk= +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Upload and activate a new deployment + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json new file mode 100644 index 0000000..62914c5 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json @@ -0,0 +1,18 @@ +{ + "parameters": [ + { "schema": { "type": "string" }, "required": true, "name": "tenant", "in": "path" }, + { + "schema": { "type": "string" }, + "required": true, + "name": "content-type", + "in": "header" + }, + { + "schema": { "type": "string" }, + "required": true, + "name": "authorization", + "in": "header" + }, + { "schema": { "type": "string" }, "required": true, "name": "user-agent", "in": "header" } + ] +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json new file mode 100644 index 0000000..724f080 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json @@ -0,0 +1,16 @@ +{ + "title": "Body", + "body": { + "description": "Public key upload schema", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { "publicKey": { "type": "string" } }, + "required": ["publicKey"] + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json new file mode 100644 index 0000000..d66c15d --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json @@ -0,0 +1,162 @@ +{ + "responses": { + "200": { + "description": "Informational Response when succeeding", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { "nullable": true }, + "timestamp": { "type": "number" } + }, + "required": ["status_code", "status_message", "is_error", "timestamp"] + } + } + } + }, + "400": { + "description": "Returned when a malformed body was provided", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "401": { + "description": "The key you were using is not recognized", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "403": { + "description": "Forbidden - No authorization, either you didn't provide an authorization header or your header is not in the Bearer format", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "404": { + "description": "The requested tenant does not exist on this server", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + }, + "500": { + "description": "Returned when the iglu server encountered an error whilst updatin or inserting into the database", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status_code": { "type": "number" }, + "status_message": { "type": "string" }, + "is_error": { "type": "boolean" }, + "data": { + "type": "object", + "properties": { "error_details": { "type": "string" } }, + "required": ["error_details"] + }, + "timestamp": { "type": "number" } + }, + "required": [ + "status_code", + "status_message", + "is_error", + "data", + "timestamp" + ] + } + } + } + } + } +} diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx new file mode 100644 index 0000000..862aba1 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx @@ -0,0 +1,71 @@ +--- +id: upload-new-cachix-signing-key +title: "Upload new cachix signing key" +description: "Upload a new public signingkey for use with the cachix client" +sidebar_label: "Upload new cachix signing key" +hide_title: true +hide_table_of_contents: true +api: eJztV0tvGzcQ/isEL20B2Wu36UW3pA/AKNAarnMyBGN2OdEy5ZJbkitZWei/d4ak7FWkOEDiwChgHQSJM5zXNyTnG6XC0HjdR+2snMu3vXGgBAiLa9EPtdGNCHpptV3+gxvxznkxBBRrHVsRWxQNNK2+E43RaKOcyQjLIOc3Enpdrc4rFiMtZzW5mMkePHQY0bPaKAPJO5DzUcZNjxRAiJ58ye1Mevx30B6VnEc/4Exa2kcKES0kV5rj7SG2pPwlhhpnyVY8SfrFXIug0H+hQRhi67z+AKmWT2GRSu1PYIkP+e7MLfIeDPGNUxu2uY/jZYaOMRsypMX7oa9SB7YBfU+7UvzV+8CGjkTt6vfYcEC9dz36qDGwNDfLH7g5kuBehjcT1cV2m4WhdzZkQz+enR3mc2Gp9boUGRhxVfTFukUrwtA0iIo9PVk2IUIcwm3jFE6U7dDVCcydvMMQCJ+jmOpwi947PxHWzhkEy1IFMYVhB2OgNpjRIEHUZDRC1x/x+1Edp0EehDQJYGq0VPzVsSJfYRy8RZXLCqIDw1WnhZqaTKwhCKrSSity//+r9ONhJAO3CiNoEz7fwvvqi2+FW4r9KHznh/Bd033MB37jBrFGj3RTU+hCB2FdFB4bR/f4hxfsnh27nw6x+935WitFx+5E/OnE3lMyE0jPLfoErNLKfhd351CA3dcV+YEQLmn73d/SA9qmR/sNgqfFfKO+dMMzd8Or4ye5PO90+eaJRyiHGUW80yEKx1gSrjQirNC/oPisKP78+eeUD55emqEAJtA2biDEKAY+xckDaVL4kUY2ckSHlVY0jTlUFL7HbXTJCgdRQ8AXzJ8RczJHNKZ1ikmICykZ5iJzWU25TzXm07ut6GVmRwn8zH0Gb3iij7EP86ri3jjFO3Jg8LRxXZWGfEby6mHQ/y3LP5q3pzDQnMxSdpK78Oz07PQ8xR95o7zgHnx9ecGZ7Y/YRSB+dU24Z3rUhekhUbhC4/qOu438cModpCYrXKUwR+aNhRQW3ihy5nvOxofO/XrKmXGOeBer3oBODZdqOxZIEh0lzdV5oaKM8PyeSHJ8VOqWUSTdceTD9dab7ZaXqfaeanxDP1fgdZ7VCT2lA/8m/N+BCfhIgt9flb77QXwq3LIIliu1AjPwvxLaPeXdcosXAvjkEWRPe4TzPg4mr1n+S+HM15kz7zQO7p6HHa+Jm/XxUd3F5Chd/vX3NSnXhdR26UaSHtZMXOk7VcWlFNMNkdZGacAuh3Q1yWyTP/8Brnnptg== +sidebar_class_name: "post api-method" +info_path: docs/04-development/02-cache/02-restapi/iglu-api +custom_edit_url: null +hide_send_button: true +mask_credentials: false +--- + +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"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Upload a new public signingkey for use with the cachix client + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx new file mode 100644 index 0000000..d34e748 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx @@ -0,0 +1,106 @@ +--- +title: Cache +--- + +# Setup +To start developing, clone the repo and run bun install: +```bash +git clone https://iglu-sh/iglu +bun install +``` +For developing, we are usually using the sqlite db option, this means your config.toml should include the following: +```toml +[database] +database_type = 'sqlite' +database_file_location = './location_of/file.sqlite' +``` +now run migrations: +```bash +bun run cache::migrations +``` + +All setup now, you should be good to start developing. + +## General Dev Information +The Cache is written in Typescript using Express.js, our Linter is Biome.js and the files live in `/cache` + +The project structure is as follows: +- routes: All Routes served by Express.js +- helpers: Functions to be re-used **exclusively** inside the cache, all functions that could be re-used across other projects should be moved to `/shared` +- cache-drizzle-conf: The Drizzle ORM Configurations +- index.ts: The entrypoint into the cache +- startup.ts: Actions performed at startup of the cache, thins such as initial tenant creations etc. get handled here + +## Package Scripts +We use these scripts from our package.json: +- `cache::dev` - Start the cache in dev mode +- `cache::migrations` - Runs the migrations required for the cache to function +- `lint` - Lints all Typescript files in the entire project using biome +- `fix` - Attempts to fix all Typescript files which are not in accordance with biome's linter rules +- `format` - Formats all files according to biome rules + +## Api (routes) Structure +We follow these route structures: +- `routes/[tenant]`: Every Route required for nix cache fetching, i.e every route the `nix build` processes use to fetch derivations live here +- `api/v1/cache`: Every Route for Cachix uploads, any route in this directory follows the api standards set forward by the cachix team. These may not always be documented, so the responses and behaviours are documented later down in this document +- `api/v1/iglu`: Every Route the Iglu Developers invent on their own, such as the upload endpoint for derivations and Rest-API routes for interacting with the cache programatically + +## Cachix +### General Cachix information +We are developing a cachix-compliant cache, this means that we are aiming to make it possible that every user only needs to complete basic cachix setup to start using the cache (this also eliminates the need to develop a push-client). + +### Cachix Routes +The cachix client requires the following routes to be available on our cache: +- `api/v1/cache/[tenant]` +- `api/v1/cache/[tenant]/key` +- `api/v1/cache/[tenant]/multipart-nar` +- `api/v1/cache/[tenant]/narinfo` +- `api/v1/cache/[tenant]/multipart-nar/[uid]` +- `api/v1/cache/[tenant]/multipart-nar/[uid]/complete` + +All of these routes need to be responding correctly. The flow in which the cachix client hits these routes is as follows: +1. `api/v1/cache/[tenant]` - This fetches the basic cache information that the cachix client needs for uploading +2. `api/v1/cache/[tenant]/narinfo` - The cachix client asks the server which of the derivations it wants to push the server already has, the server responds with an array of nix store hashes that the server needs from the client +3. `api/v1/cache/[tenant]/multipart-nar` - The cachix client hits this endpoint for every part it wants to upload, the server responds with an upload ID that the client has to provide in order to upload the derivation it wants +4. `api/v1/cache/[tenant]/multipart-nar/[uid]` - The cachix client provides the server with the Md5 hash of the part it wants to upload, the server responds with an URL that the cachix client should push to +5. `api/v1/iglu/upload/[tenant]/[uid]` - The cachix client pushes the raw binary to the server, the server responds 200 once it has successfully stored the binary +6. `api/v1/cache/[tenant]/multipart-nar/[uid]/complete` - Once all the parts are received by the server, the cachix client calls this URL to complete the transfer. It also provides the server with meta information about the derivation it just stored and a filehash + +## Using the Iglu Rest API +Iglu provides a developer facing API to interact with Iglu Cache Functions. These routes are hosted under `/api/vX/iglu/rest` and have a standardized response schema across all of them to make developing with the easier. +Iglu will respond under all of these routes according to this type: +```json +{ + "status": 100, + "status_message": "Some String", + "is_error": false, + "timestamp": 1779465906, + "data": { + "arbitrary": "data" + } +} +``` +Some notes here: +- "status" will match the http status code that you will get back from iglu, however status_message is arbitrary (not the standard http response code name, i.e 200 will not always be "Success" in status_message) +- "timestamp" is the Unix Epoch Timestamp when the response was generated, in milliseconds +- "is_error" is pretty self explanatory +- "data" is arbitrary, which means this is the actual content payload you want to process + +Now we can narrow this down further, for example **every** error you will ever get from iglu will look like this (yes even the error_details although there may be some errors where you may wish for a better description, should you encounter an error and you do not get the amount of info you want from it, just open an issue and we'll look into it :)): +```json +{ + "status": 4XX or 5XX, + "status_message": "Some String", + "is_error": true, + "timestamp": 1779465906, + "data": { + "error_details": "Some details about the error you encountered and maybe tips on how to fix them." + } +} +``` + +### Authentication +Every request needs to provide an `authorization` header in the Bearer format (meaning for example: `Authorization`: `Bearer `). This token is the same as you would use to push to the Client, for that you may want to take a look at the Installation Section of the docs. + +### Routes +For routes, please see the [OpenAPI Docs](./restapi). diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx new file mode 100644 index 0000000..fab85fc --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx @@ -0,0 +1,77 @@ +--- +title: Builder +--- + +## Setup +To start developing, clone the repo and run nix develop to install all python requirements: +```bash +git clone https://iglu-sh/iglu +cd iglu/builder/src +nix develop +``` + +For developing, we are usually setting `dev_mode` on in the `config.toml`: +```bash +echo < config.toml +``` + +To start the builder: +```bash +IGLU_BUILDER_CONFIG=/path/to/config.toml python -m iglu_builder +``` + +## General Dev Information +The Builder is written in Python using [FastAPI](https://fastapi.tiangolo.com/), our Linter is [Basedpyright](https://docs.basedpyright.com/latest/) and the files live in `/builder`. + +The project structure is as follows: +- `config.toml.example`: Example `config.toml` +- `pyproject.toml`: PyProject file, which is needed to build the application +- `/src/iglu_builder/*.py`: Classes and components that actually do something +- `/src/iglu_builder/static`: All static pages live here +- `/src/iglu_builder/types/*.py`: Types that do not much, except being types (sometimes with default values) +- `/src/iglu_builder/templates/*.j2`: All needed jinja2 templates will go here + +## Api (routes) Structure +We follow these route sturctures: +- `/api/v1/*`: here are any REST-API and Websocket endpoints +- `/`: this is a small welcome page with a simple test interface +- `/docs`: from [FastAPI](https://fastapi.tiangolo.com/) generated api documentation + +## Starting a build process +To start a build process you have to follow this short manual: +1. start developing mode: `cd builder` `fastapi dev` +2. connect to websocket via `http://localhost:8000/api/v1/build` +3. send a builder config via this websocket +4. wait until your build has fnished + +## Builder-Job schema + +|Key|Values|Description| +|-|-|-| +|`command`|`>`|Command to execute seperated as list. This command hast to start with `nix` or `nix-build` (not compatible with `all_systems` and `all_packages`)| +|`all_systems`|``|Build all packages of a flake (not compatible with `command` and `all_packages`)| +|`all_packages`|``|Build all systems of a flake (not compatible with `command` and `all_systems`)| +|`repo.url`|``|Url of the git repository| +|`repo.branch`|``|Optional parameter to select a specific branch, if not set the default branch will be cloned| +|`cache.url`|``|Url of the cachix compatible cache| +|`cache.auth_token`|``|The authtoken of the cachix compatible cache| +|`cache.signing_key`|``|The signingkey which is used to sign every derivation| + +### Example job +```json +{ + "command": ["nix", "build", ".#nixosConfigurations.SYSTEM.config.system.build.toplevel"], + "repo": { + "url": "https://github.com/your/repo", + "branch": "my-branch" + }, + "cache": { + "url": "https://cache.example.com/cache", + "auth_token": "your_super_secret_token", + "signing_key": "your_super_secret_signing_key" + } +} +``` diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx new file mode 100644 index 0000000..47195e3 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx @@ -0,0 +1,14 @@ +--- +title: Versioning +slug: versioning +--- + +Iglu is a monorepo, this provides some advantages and some disadvantages. One of those disadvantages is versioning. +As such we have decided to strictly follow [semantic versioning](https://semver.org/) and **every** project in our mono repo to have the same version number. +This sometimes results in patches being "empty" (i.e zero code changes) for some releases but it also has the advantage of being extremely simple to develop with as every part of the project with the same version number is guaranteed to work with any other of the same version number. + +## List of Versions + +|Version|Gh-Release| +|-------|----------| +|v0.0.2 |https://github.com/iglu-sh/iglu/releases/tag/v0.0.2| diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx b/docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx new file mode 100644 index 0000000..b5fd414 --- /dev/null +++ b/docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx @@ -0,0 +1,61 @@ +--- +title: Development +--- + +This section gives information for how to start developing Iglu. + +## Hello dear penguin! +Whoa, you've made it to the Developer Docs. First of all: Thank you so much for considering contributing to this project! We welcome any contributions that you are willing to make, no matter how small or big. With that out of the way, let's dive straight into some information on getting started. + +## Getting Started +To get started developing, clone the repo and run `nix develop` and `bun install`: +```bash +git clone https://github.com/iglu-sh/iglu +nix develop +bun install +``` +This will setup all needed packages (python, bun, ...) and the pre-commit hooks, which will be executed at PR anyway. We will **NOT** merge any PR that does not pass them! + +The project structure is as follows: +- builder: The Iglu-Builder part of the project, for in-depth developer information click [here](./builder) +- cache: The Iglu-Cache part of the project, for in-depth developer information click [here](./cache) +- nix: Nix flakes and utils for our flake.nix, generally not important for developing +- shared: Shared functions and utils that can be re-used in multiple parts of this project +- tests: Unit-tests +- \: Config files + +## Goal of the Iglu Project +We are aiming to build the best community driven implementation of a nix cache and in the process build software and tools for the wider community to use in their setups. This includes, for example the Iglu-Builder and eventually a web frontend for Iglu. + +Our Goal is **not** to rebuild the official cachix.org 1-to-1. We want to pick out the routes that we need for basic functionality, and implement those to a stable state. +That being said, we are also **not** against pull requests that implement cachix routes not yet present in Iglu. If you need a cachix route in your setup and we are not already providing it, either implement it or open an [issue](https://github.com/iglu-sh/iglu/issues/new). + +## General Developer Information + +### Rest Response Schemas +In general, **all** responses from **all** parts of the Iglu Project, that are outward-facing (i.e REST-Routes, WebSocket Messages) will return in this format: +```json +{ + "status_code": 200, + "status_message": "A Status Message", + "is_error": false, + "timestamp": 1778690349, + "data": { + "some_non_standardized": "data" + }, +} +``` +This is done so, in case you want to create a third party app for Iglu, can rely on the top level keys to **always** be present. +However, all rules must have exceptions and so does this rule: Endpoints that are standardized by cachix will return in the cachix format (documented here: https://app.cachix.org/api/v1/). + +## General coding guidelines +We do not want to provide too many rules on this front. Basically: We like typing whereever and whenever possible (yes that includes python). If you can type it then you must type it, that's basically the rule. +Also, in Typescript land, we use the biomejs linter. This linter is very strict and is also built into our pre-commit hooks. This means that if you do not pass these checks, you just won't get your code merged. +If you need to disable a biome rule (as we also have in the current Iglu code) you must provide a poignant reason in that same comment. + +### Editorconfig +In terms of formatting, we are using the Editorconfig standard to standardize things like carriage returns and tab widths. You should definitly load the `.editorconfig` file if at all possible, as this will make it easier for you to contribute, biomejs also checks the formatting on every git commit. +Wrongly formatted Pull Requests **will not be merged**. + +### Commit Messages +You should commit and open PRs in accordance with the conventional commits scheme (https://www.conventionalcommits.org/en/v1.0.0/). diff --git a/docs/versioned_sidebars/version-v0.0.3-sidebars.json b/docs/versioned_sidebars/version-v0.0.3-sidebars.json new file mode 100644 index 0000000..d62b373 --- /dev/null +++ b/docs/versioned_sidebars/version-v0.0.3-sidebars.json @@ -0,0 +1,8 @@ +{ + "tutorialSidebar": [ + { + "type": "autogenerated", + "dirName": "." + } + ] +} diff --git a/docs/versions.json b/docs/versions.json index 17413eb..ebfd10d 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1 +1 @@ -["v0.0.2"] +["v0.0.2", "v0.0.3"] From 2ec9f813ce6f7334486eb97909dcb7727bbb396c Mon Sep 17 00:00:00 2001 From: SirBerg Date: Sat, 17 Oct 2026 13:03:43 +0200 Subject: [PATCH 2/4] chore(docs): Fix docs folder in v0.0.3 docs --- docs/versioned_docs/version-v0.0.3/{docs => }/01-index.mdx | 0 .../{docs => }/02-cache/01-getting-started/01-container.mdx | 0 .../{docs => }/02-cache/01-getting-started/02-nix.mdx | 0 .../{docs => }/02-cache/01-getting-started/index.mdx | 0 .../02-cache/02-configuration/01-advanced/01-deployments.mdx | 0 .../02-cache/02-configuration/01-advanced/02-signing.mdx | 0 .../{docs => }/02-cache/02-configuration/01-advanced/index.mdx | 0 .../version-v0.0.3/{docs => }/02-cache/02-configuration/index.mdx | 0 .../version-v0.0.3/{docs => }/02-cache/05-nixos-module.mdx | 0 docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/index.mdx | 0 .../{docs => }/03-builder/01-getting-started/01-container.mdx | 0 .../03-builder/01-getting-started/02-configuration/index.mdx | 0 .../{docs => }/03-builder/01-getting-started/index.mdx | 0 .../versioned_docs/version-v0.0.3/{docs => }/03-builder/index.mdx | 0 .../version-v0.0.3/{docs => }/04-versions/index.mdx | 0 .../version-v0.0.3/{docs => }/04-versions/v0.0.2.mdx | 0 .../version-v0.0.3/{docs => }/04-versions/v0.0.3.mdx | 0 .../version-v0.0.3/{docs => }/05-security/Issues/.template | 0 .../{docs => }/05-security/Issues/01-IGLU-2026-001.mdx | 0 .../{docs => }/05-security/Issues/02-IGLU-2026-002.mdx | 0 .../{docs => }/05-security/Issues/03-IGLU-2026-003.mdx | 0 .../{docs => }/05-security/Issues/04-IGLU-2026-004.mdx | 0 .../version-v0.0.3/{docs => }/05-security/index.mdx | 0 .../cachix-agent-deployment-websocket.ParamsDetails.json | 0 .../cachix-agent-deployment-websocket.RequestSchema.json | 0 .../02-restapi/cachix-agent-deployment-websocket.StatusCodes.json | 0 .../02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx | 0 .../02-restapi/cachix-agent-idle-websocket.ParamsDetails.json | 0 .../02-restapi/cachix-agent-idle-websocket.RequestSchema.json | 0 .../02-restapi/cachix-agent-idle-websocket.StatusCodes.json | 0 .../02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx | 0 ...-given-array-of-narhashes-is-already-cached.ParamsDetails.json | 0 ...-given-array-of-narhashes-is-already-cached.RequestSchema.json | 0 ...-a-given-array-of-narhashes-is-already-cached.StatusCodes.json | 0 ...checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx | 0 .../02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json | 0 .../02-cache/02-restapi/create-a-new-tenant.RequestSchema.json | 0 .../02-cache/02-restapi/create-a-new-tenant.StatusCodes.json | 0 .../02-cache/02-restapi/create-a-new-tenant.api.mdx | 0 .../02-cache/02-restapi/create-access-rules.ParamsDetails.json | 0 .../02-cache/02-restapi/create-access-rules.RequestSchema.json | 0 .../02-cache/02-restapi/create-access-rules.StatusCodes.json | 0 .../02-cache/02-restapi/create-access-rules.api.mdx | 0 .../02-cache/02-restapi/create-new-api-key.ParamsDetails.json | 0 .../02-cache/02-restapi/create-new-api-key.RequestSchema.json | 0 .../02-cache/02-restapi/create-new-api-key.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/create-new-api-key.api.mdx | 0 .../02-cache/02-restapi/delete-a-tenant.ParamsDetails.json | 0 .../02-cache/02-restapi/delete-a-tenant.RequestSchema.json | 0 .../02-cache/02-restapi/delete-a-tenant.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/delete-a-tenant.api.mdx | 0 .../02-cache/02-restapi/delete-access-rule.ParamsDetails.json | 0 .../02-cache/02-restapi/delete-access-rule.RequestSchema.json | 0 .../02-cache/02-restapi/delete-access-rule.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/delete-access-rule.api.mdx | 0 .../02-cache/02-restapi/delete-api-key.ParamsDetails.json | 0 .../02-cache/02-restapi/delete-api-key.RequestSchema.json | 0 .../02-cache/02-restapi/delete-api-key.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/delete-api-key.api.mdx | 0 .../02-cache/02-restapi/delete-derivation.ParamsDetails.json | 0 .../02-cache/02-restapi/delete-derivation.RequestSchema.json | 0 .../02-cache/02-restapi/delete-derivation.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/delete-derivation.api.mdx | 0 .../deletes-public-signing-key-tenant-link.ParamsDetails.json | 0 .../deletes-public-signing-key-tenant-link.RequestSchema.json | 0 .../deletes-public-signing-key-tenant-link.StatusCodes.json | 0 .../02-restapi/deletes-public-signing-key-tenant-link.api.mdx | 0 .../02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json | 0 .../02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json | 0 .../02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx | 0 .../02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json | 0 .../02-cache/02-restapi/finish-a-given-upload.RequestSchema.json | 0 .../02-cache/02-restapi/finish-a-given-upload.StatusCodes.json | 0 .../02-cache/02-restapi/finish-a-given-upload.api.mdx | 0 .../02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json | 0 .../02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json | 0 .../02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json | 0 .../02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx | 0 .../02-cache/02-restapi/get-access-rule.ParamsDetails.json | 0 .../02-cache/02-restapi/get-access-rule.RequestSchema.json | 0 .../02-cache/02-restapi/get-access-rule.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/get-access-rule.api.mdx | 0 .../02-restapi/get-available-signing-keys.ParamsDetails.json | 0 .../02-restapi/get-available-signing-keys.RequestSchema.json | 0 .../02-restapi/get-available-signing-keys.StatusCodes.json | 0 .../02-cache/02-restapi/get-available-signing-keys.api.mdx | 0 .../02-cache/02-restapi/get-available-tenants.ParamsDetails.json | 0 .../02-cache/02-restapi/get-available-tenants.RequestSchema.json | 0 .../02-cache/02-restapi/get-available-tenants.StatusCodes.json | 0 .../02-cache/02-restapi/get-available-tenants.api.mdx | 0 .../02-restapi/get-deployment-overview.ParamsDetails.json | 0 .../02-restapi/get-deployment-overview.RequestSchema.json | 0 .../02-cache/02-restapi/get-deployment-overview.StatusCodes.json | 0 .../02-cache/02-restapi/get-deployment-overview.api.mdx | 0 .../get-information-about-derivation.ParamsDetails.json | 0 .../get-information-about-derivation.RequestSchema.json | 0 .../02-restapi/get-information-about-derivation.StatusCodes.json | 0 .../02-cache/02-restapi/get-information-about-derivation.api.mdx | 0 .../02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json | 0 .../02-cache/02-restapi/get-nix-cache-info.RequestSchema.json | 0 .../02-cache/02-restapi/get-nix-cache-info.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx | 0 .../get-nix-derivation-in-nix-caching-format.ParamsDetails.json | 0 .../get-nix-derivation-in-nix-caching-format.RequestSchema.json | 0 .../get-nix-derivation-in-nix-caching-format.StatusCodes.json | 0 .../02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx | 0 .../02-restapi/get-registered-api-keys.ParamsDetails.json | 0 .../02-restapi/get-registered-api-keys.RequestSchema.json | 0 .../02-cache/02-restapi/get-registered-api-keys.StatusCodes.json | 0 .../02-cache/02-restapi/get-registered-api-keys.api.mdx | 0 .../02-restapi/get-signing-key-information.ParamsDetails.json | 0 .../02-restapi/get-signing-key-information.RequestSchema.json | 0 .../02-restapi/get-signing-key-information.StatusCodes.json | 0 .../02-cache/02-restapi/get-signing-key-information.api.mdx | 0 .../02-cache/02-restapi/get-tenant-information.ParamsDetails.json | 0 .../02-cache/02-restapi/get-tenant-information.RequestSchema.json | 0 .../02-cache/02-restapi/get-tenant-information.StatusCodes.json | 0 .../02-cache/02-restapi/get-tenant-information.api.mdx | 0 .../02-cache/02-restapi/healthcheck.RequestSchema.json | 0 .../02-cache/02-restapi/healthcheck.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/healthcheck.api.mdx | 0 .../{docs => }/06-development/02-cache/02-restapi/index.mdx | 0 .../02-cache/02-restapi/modify-api-key-access.ParamsDetails.json | 0 .../02-cache/02-restapi/modify-api-key-access.RequestSchema.json | 0 .../02-cache/02-restapi/modify-api-key-access.StatusCodes.json | 0 .../02-cache/02-restapi/modify-api-key-access.api.mdx | 0 .../02-cache/02-restapi/pin-derivation.ParamsDetails.json | 0 .../02-cache/02-restapi/pin-derivation.RequestSchema.json | 0 .../02-cache/02-restapi/pin-derivation.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/pin-derivation.api.mdx | 0 .../02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json | 0 .../02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json | 0 .../02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json | 0 .../02-cache/02-restapi/retrieve-new-upload-id.api.mdx | 0 .../02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json | 0 .../02-cache/02-restapi/retrieve-upload-url.RequestSchema.json | 0 .../02-cache/02-restapi/retrieve-upload-url.StatusCodes.json | 0 .../02-cache/02-restapi/retrieve-upload-url.api.mdx | 0 .../02-restapi/search-for-access-rules.ParamsDetails.json | 0 .../02-restapi/search-for-access-rules.RequestSchema.json | 0 .../02-cache/02-restapi/search-for-access-rules.StatusCodes.json | 0 .../02-cache/02-restapi/search-for-access-rules.api.mdx | 0 .../02-cache/02-restapi/search-for-derivation.ParamsDetails.json | 0 .../02-cache/02-restapi/search-for-derivation.RequestSchema.json | 0 .../02-cache/02-restapi/search-for-derivation.StatusCodes.json | 0 .../02-cache/02-restapi/search-for-derivation.api.mdx | 0 .../02-cache/02-restapi/search-for-tenants.ParamsDetails.json | 0 .../02-cache/02-restapi/search-for-tenants.RequestSchema.json | 0 .../02-cache/02-restapi/search-for-tenants.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/search-for-tenants.api.mdx | 0 .../02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json | 0 .../02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json | 0 .../02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json | 0 .../02-cache/02-restapi/see-logs-of-deployment.api.mdx | 0 .../{docs => }/06-development/02-cache/02-restapi/sidebar.ts | 0 .../02-cache/02-restapi/update-a-tenant.ParamsDetails.json | 0 .../02-cache/02-restapi/update-a-tenant.RequestSchema.json | 0 .../02-cache/02-restapi/update-a-tenant.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/update-a-tenant.api.mdx | 0 .../02-cache/02-restapi/update-access-rule.ParamsDetails.json | 0 .../02-cache/02-restapi/update-access-rule.RequestSchema.json | 0 .../02-cache/02-restapi/update-access-rule.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/update-access-rule.api.mdx | 0 .../02-cache/02-restapi/update-signing-key.ParamsDetails.json | 0 .../02-cache/02-restapi/update-signing-key.RequestSchema.json | 0 .../02-cache/02-restapi/update-signing-key.StatusCodes.json | 0 .../06-development/02-cache/02-restapi/update-signing-key.api.mdx | 0 .../02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json | 0 .../02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json | 0 .../02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json | 0 .../02-cache/02-restapi/upload-a-nix-binary.api.mdx | 0 .../upload-and-activate-a-new-deployment.ParamsDetails.json | 0 .../upload-and-activate-a-new-deployment.RequestSchema.json | 0 .../upload-and-activate-a-new-deployment.StatusCodes.json | 0 .../02-restapi/upload-and-activate-a-new-deployment.api.mdx | 0 .../02-restapi/upload-new-cachix-signing-key.ParamsDetails.json | 0 .../02-restapi/upload-new-cachix-signing-key.RequestSchema.json | 0 .../02-restapi/upload-new-cachix-signing-key.StatusCodes.json | 0 .../02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx | 0 .../version-v0.0.3/{docs => }/06-development/02-cache/index.mdx | 0 .../version-v0.0.3/{docs => }/06-development/03-builder/index.mdx | 0 .../version-v0.0.3/{docs => }/06-development/04-versioning.mdx | 0 .../version-v0.0.3/{docs => }/06-development/index.mdx | 0 184 files changed, 0 insertions(+), 0 deletions(-) rename docs/versioned_docs/version-v0.0.3/{docs => }/01-index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/01-getting-started/01-container.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/01-getting-started/02-nix.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/01-getting-started/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/02-configuration/01-advanced/01-deployments.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/02-configuration/01-advanced/02-signing.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/02-configuration/01-advanced/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/02-configuration/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/05-nixos-module.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/02-cache/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/03-builder/01-getting-started/01-container.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/03-builder/01-getting-started/02-configuration/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/03-builder/01-getting-started/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/03-builder/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/04-versions/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/04-versions/v0.0.2.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/04-versions/v0.0.3.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/Issues/.template (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/Issues/01-IGLU-2026-001.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/Issues/02-IGLU-2026-002.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/Issues/03-IGLU-2026-003.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/Issues/04-IGLU-2026-004.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/05-security/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-access-rules.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/create-new-api-key.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-access-rule.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-api-key.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/delete-derivation.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-access-rule.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-available-tenants.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/get-tenant-information.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/healthcheck.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/pin-derivation.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-derivation.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/search-for-tenants.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/sidebar.ts (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-a-tenant.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-access-rule.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/update-signing-key.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/02-cache/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/03-builder/index.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/04-versioning.mdx (100%) rename docs/versioned_docs/version-v0.0.3/{docs => }/06-development/index.mdx (100%) diff --git a/docs/versioned_docs/version-v0.0.3/docs/01-index.mdx b/docs/versioned_docs/version-v0.0.3/01-index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/01-index.mdx rename to docs/versioned_docs/version-v0.0.3/01-index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/01-container.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/01-container.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/01-container.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/02-nix.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/02-nix.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/02-nix.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/01-getting-started/index.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/01-getting-started/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/01-deployments.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/01-deployments.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/01-deployments.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/02-signing.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/02-signing.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/02-signing.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/01-advanced/index.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/01-advanced/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/02-configuration/index.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/02-configuration/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/05-nixos-module.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/05-nixos-module.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/05-nixos-module.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx b/docs/versioned_docs/version-v0.0.3/02-cache/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/02-cache/index.mdx rename to docs/versioned_docs/version-v0.0.3/02-cache/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx b/docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/01-container.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/01-container.mdx rename to docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/01-container.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx b/docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/02-configuration/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/02-configuration/index.mdx rename to docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/02-configuration/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx b/docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/03-builder/01-getting-started/index.mdx rename to docs/versioned_docs/version-v0.0.3/03-builder/01-getting-started/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx b/docs/versioned_docs/version-v0.0.3/03-builder/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/03-builder/index.mdx rename to docs/versioned_docs/version-v0.0.3/03-builder/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/04-versions/index.mdx rename to docs/versioned_docs/version-v0.0.3/04-versions/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.2.mdx rename to docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/04-versions/v0.0.3.mdx rename to docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template b/docs/versioned_docs/version-v0.0.3/05-security/Issues/.template similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/.template rename to docs/versioned_docs/version-v0.0.3/05-security/Issues/.template diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx b/docs/versioned_docs/version-v0.0.3/05-security/Issues/01-IGLU-2026-001.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/01-IGLU-2026-001.mdx rename to docs/versioned_docs/version-v0.0.3/05-security/Issues/01-IGLU-2026-001.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx b/docs/versioned_docs/version-v0.0.3/05-security/Issues/02-IGLU-2026-002.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/02-IGLU-2026-002.mdx rename to docs/versioned_docs/version-v0.0.3/05-security/Issues/02-IGLU-2026-002.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx b/docs/versioned_docs/version-v0.0.3/05-security/Issues/03-IGLU-2026-003.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/03-IGLU-2026-003.mdx rename to docs/versioned_docs/version-v0.0.3/05-security/Issues/03-IGLU-2026-003.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx b/docs/versioned_docs/version-v0.0.3/05-security/Issues/04-IGLU-2026-004.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/Issues/04-IGLU-2026-004.mdx rename to docs/versioned_docs/version-v0.0.3/05-security/Issues/04-IGLU-2026-004.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx b/docs/versioned_docs/version-v0.0.3/05-security/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/05-security/index.mdx rename to docs/versioned_docs/version-v0.0.3/05-security/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-deployment-websocket.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/cachix-agent-idle-websocket.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/checks-if-a-given-array-of-narhashes-is-already-cached.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-a-new-tenant.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-access-rules.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-access-rules.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/create-new-api-key.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/create-new-api-key.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-a-tenant.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-access-rule.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-access-rule.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-api-key.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-api-key.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/delete-derivation.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/delete-derivation.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/deletes-public-signing-key-tenant-link.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/fetch-a-nix-binary.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/finish-a-given-upload.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-a-tenant-in-cachix-format.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-access-rule.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-access-rule.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-signing-keys.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-available-tenants.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-available-tenants.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-deployment-overview.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-information-about-derivation.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-cache-info.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-nix-derivation-in-nix-caching-format.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-registered-api-keys.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-signing-key-information.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/get-tenant-information.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/get-tenant-information.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/healthcheck.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/healthcheck.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/index.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/modify-api-key-access.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/pin-derivation.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/pin-derivation.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-new-upload-id.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/retrieve-upload-url.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-access-rules.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-derivation.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-derivation.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/search-for-tenants.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/search-for-tenants.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/see-logs-of-deployment.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/sidebar.ts similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/sidebar.ts rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/sidebar.ts diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-a-tenant.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-a-tenant.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-access-rule.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-access-rule.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/update-signing-key.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/update-signing-key.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-a-nix-binary.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-and-activate-a-new-deployment.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.ParamsDetails.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.RequestSchema.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.StatusCodes.json diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/02-restapi/upload-new-cachix-signing-key.api.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx b/docs/versioned_docs/version-v0.0.3/06-development/02-cache/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/02-cache/index.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/02-cache/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx b/docs/versioned_docs/version-v0.0.3/06-development/03-builder/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/03-builder/index.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/03-builder/index.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx b/docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/04-versioning.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx diff --git a/docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx b/docs/versioned_docs/version-v0.0.3/06-development/index.mdx similarity index 100% rename from docs/versioned_docs/version-v0.0.3/docs/06-development/index.mdx rename to docs/versioned_docs/version-v0.0.3/06-development/index.mdx From 9ddede64a909f18e11f71617cb1d59a74af97324 Mon Sep 17 00:00:00 2001 From: SirBerg Date: Sat, 17 Oct 2026 18:50:11 +0200 Subject: [PATCH 3/4] feat(docs): Add an Update guide for devs --- builder/pyproject.toml | 2 +- docs/docs/04-versions/index.mdx | 4 +-- docs/docs/04-versions/v0.0.2.mdx | 1 + docs/docs/04-versions/v0.0.3.mdx | 1 + docs/docs/06-development/04-versioning.mdx | 25 +++++++++++++++++++ .../version-v0.0.3/04-versions/index.mdx | 8 +++--- .../version-v0.0.3/04-versions/v0.0.2.mdx | 1 + .../version-v0.0.3/04-versions/v0.0.3.mdx | 1 + .../06-development/04-versioning.mdx | 25 +++++++++++++++++++ nix/packages/iglu-builder/package.nix | 2 +- 10 files changed, 62 insertions(+), 8 deletions(-) diff --git a/builder/pyproject.toml b/builder/pyproject.toml index eba9449..cb13ff6 100644 --- a/builder/pyproject.toml +++ b/builder/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=80.0", "wheel"] [project] name = "iglu-builder" -version = "0.1.0" +version = "0.0.1" description = "WebSocket-based build system interface for iglu" requires-python = ">=3.13" dependencies = [ diff --git a/docs/docs/04-versions/index.mdx b/docs/docs/04-versions/index.mdx index 24d1dd4..15c2e84 100644 --- a/docs/docs/04-versions/index.mdx +++ b/docs/docs/04-versions/index.mdx @@ -8,7 +8,7 @@ have to do anything. Sometimes Iglu does require more involvement on major updat See below for all supported versions and if there's an upgrade guide available for it. ## Support policy We support the latest major version and all minor versions or patches in that major version window. We do not backport anything to past major versions, except for very critical security fixes. -For security advisories see this page: TODO +For security advisories see this page: [Security advisories](../security/security-advisories) ## Versions @@ -21,7 +21,7 @@ If you do encounter any issues please, please, PLEASE report them to us at https ::: -Currently supported Major Versions: None until v1.0.0 +Currently supported Major Versions: None until v1.0.0 Currently supported Versions: - v0.0.2 diff --git a/docs/docs/04-versions/v0.0.2.mdx b/docs/docs/04-versions/v0.0.2.mdx index 8ff5a73..be5a501 100644 --- a/docs/docs/04-versions/v0.0.2.mdx +++ b/docs/docs/04-versions/v0.0.2.mdx @@ -1,6 +1,7 @@ --- title: v0.0.2 slug: v0.0.2 +sidebar_position: 0 --- ## Meta Information - Link to Github release: [Github](https://github.com/iglu-sh/iglu/releases/tag/v0.0.2) diff --git a/docs/docs/04-versions/v0.0.3.mdx b/docs/docs/04-versions/v0.0.3.mdx index f8fb62b..87ffc83 100644 --- a/docs/docs/04-versions/v0.0.3.mdx +++ b/docs/docs/04-versions/v0.0.3.mdx @@ -1,6 +1,7 @@ --- title: v0.0.3 slug: v0.0.3 +sidebar_position: -1 --- ## Placeholder page for the v0.0.3 Releasenotes diff --git a/docs/docs/06-development/04-versioning.mdx b/docs/docs/06-development/04-versioning.mdx index 47195e3..55e7696 100644 --- a/docs/docs/06-development/04-versioning.mdx +++ b/docs/docs/06-development/04-versioning.mdx @@ -7,8 +7,33 @@ Iglu is a monorepo, this provides some advantages and some disadvantages. One of As such we have decided to strictly follow [semantic versioning](https://semver.org/) and **every** project in our mono repo to have the same version number. This sometimes results in patches being "empty" (i.e zero code changes) for some releases but it also has the advantage of being extremely simple to develop with as every part of the project with the same version number is guaranteed to work with any other of the same version number. +## Creating a new Iglu Version +Creating a new Iglu Version entails a few steps, primarely involving updating our `package.json` any `pyproject.yml` files. +Here's a list of all the version numbers that need to be changed for an iglu version, DO THIS BEFORE THE STEPS LATER DOWN IN THIS CHAPTER: +- `builder/pyproject.toml` +- `cache/package.json` +- `docs/package.json` +- `openapi/package.json` +- `sdks/typescript/package.json` + - Here, the dependency for `@iglu-sh/shared` needs to be updated to the new version as well. That has to also be done in the package.json +- `shared/package.json` +- `package.json` +- `nix/packages/iglu-builder/package.nix` + +After all of these versions are updated, go through these steps **one after another** +1. A Github Release needs to be drafted as well, however this must **only be done after the versions are updated in the files above** so that the workflows aren't affected. +2. Once the Github Release has been drafted and published, create a new release note in `docs/docs/04-versions` with the version's number as the title, put the Github Release Markdown into this document and add some Meta information (like a Link to the Github Release). +3. Add the Release to the releases table in `docs/docs/04-versions/index.mdx` +4. If this release is for a a Minor or Major version or entails some big docs changes in any way (even on a patch), a new versioned doc has to be created. Follow these steps: + 1. Enter the new Doc version in the `docs/docusaurus.config.ts` file under the `preset.classic.docs.versions` path with the version number as the key, label, path and `banner:"none"` + 2. Create a new directory at `docs/versioned_docs/version-${your_version_number}` + 3. Copy all the files from `docs/docs` into your new directory +5. Add the Github Release URL to the table later down this document + + ## List of Versions |Version|Gh-Release| |-------|----------| |v0.0.2 |https://github.com/iglu-sh/iglu/releases/tag/v0.0.2| + diff --git a/docs/versioned_docs/version-v0.0.3/04-versions/index.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/index.mdx index c10546d..15c2e84 100644 --- a/docs/versioned_docs/version-v0.0.3/04-versions/index.mdx +++ b/docs/versioned_docs/version-v0.0.3/04-versions/index.mdx @@ -2,26 +2,26 @@ title: Versions & Update Guide slug: versioning --- -Hey there! If you're looking to update your iglu cache you've come to the right place. A version update usually should not require you to +Hey there! If you're looking to update your Iglu services you've come to the right place. A version update usually should not require you to have to do anything. Sometimes Iglu does require more involvement on major updates this is usually while jumping from one major version to another. See below for all supported versions and if there's an upgrade guide available for it. ## Support policy We support the latest major version and all minor versions or patches in that major version window. We do not backport anything to past major versions, except for very critical security fixes. -For security advisories see this page: TODO +For security advisories see this page: [Security advisories](../security/security-advisories) ## Versions :::warning Iglu is currently in heavy development and we do not currently "support" any version after they are released. Releases are tested before going out and they are expected to work -in a vacuum but they may contain bugs and unfinished features. We do not plan on porting back any security fixes to any version in the v0.x.x phase except in extraordinary circumstances. +in a vacuum but they may contain bugs and unfinished features. We do not plan on porting back any security fixes to any version in the v0.x.x phase, except in extraordinary circumstances. If you do encounter any issues please, please, PLEASE report them to us at https://github.com/iglu-sh/iglu/issues ::: -Currently supported Major Versions: None until v1.0.0 +Currently supported Major Versions: None until v1.0.0 Currently supported Versions: - v0.0.2 diff --git a/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx index 8ff5a73..be5a501 100644 --- a/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx +++ b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.2.mdx @@ -1,6 +1,7 @@ --- title: v0.0.2 slug: v0.0.2 +sidebar_position: 0 --- ## Meta Information - Link to Github release: [Github](https://github.com/iglu-sh/iglu/releases/tag/v0.0.2) diff --git a/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx index f8fb62b..87ffc83 100644 --- a/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx +++ b/docs/versioned_docs/version-v0.0.3/04-versions/v0.0.3.mdx @@ -1,6 +1,7 @@ --- title: v0.0.3 slug: v0.0.3 +sidebar_position: -1 --- ## Placeholder page for the v0.0.3 Releasenotes diff --git a/docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx b/docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx index 47195e3..55e7696 100644 --- a/docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx +++ b/docs/versioned_docs/version-v0.0.3/06-development/04-versioning.mdx @@ -7,8 +7,33 @@ Iglu is a monorepo, this provides some advantages and some disadvantages. One of As such we have decided to strictly follow [semantic versioning](https://semver.org/) and **every** project in our mono repo to have the same version number. This sometimes results in patches being "empty" (i.e zero code changes) for some releases but it also has the advantage of being extremely simple to develop with as every part of the project with the same version number is guaranteed to work with any other of the same version number. +## Creating a new Iglu Version +Creating a new Iglu Version entails a few steps, primarely involving updating our `package.json` any `pyproject.yml` files. +Here's a list of all the version numbers that need to be changed for an iglu version, DO THIS BEFORE THE STEPS LATER DOWN IN THIS CHAPTER: +- `builder/pyproject.toml` +- `cache/package.json` +- `docs/package.json` +- `openapi/package.json` +- `sdks/typescript/package.json` + - Here, the dependency for `@iglu-sh/shared` needs to be updated to the new version as well. That has to also be done in the package.json +- `shared/package.json` +- `package.json` +- `nix/packages/iglu-builder/package.nix` + +After all of these versions are updated, go through these steps **one after another** +1. A Github Release needs to be drafted as well, however this must **only be done after the versions are updated in the files above** so that the workflows aren't affected. +2. Once the Github Release has been drafted and published, create a new release note in `docs/docs/04-versions` with the version's number as the title, put the Github Release Markdown into this document and add some Meta information (like a Link to the Github Release). +3. Add the Release to the releases table in `docs/docs/04-versions/index.mdx` +4. If this release is for a a Minor or Major version or entails some big docs changes in any way (even on a patch), a new versioned doc has to be created. Follow these steps: + 1. Enter the new Doc version in the `docs/docusaurus.config.ts` file under the `preset.classic.docs.versions` path with the version number as the key, label, path and `banner:"none"` + 2. Create a new directory at `docs/versioned_docs/version-${your_version_number}` + 3. Copy all the files from `docs/docs` into your new directory +5. Add the Github Release URL to the table later down this document + + ## List of Versions |Version|Gh-Release| |-------|----------| |v0.0.2 |https://github.com/iglu-sh/iglu/releases/tag/v0.0.2| + diff --git a/nix/packages/iglu-builder/package.nix b/nix/packages/iglu-builder/package.nix index a58d093..7a6b77c 100644 --- a/nix/packages/iglu-builder/package.nix +++ b/nix/packages/iglu-builder/package.nix @@ -6,7 +6,7 @@ python3Packages.buildPythonApplication { pname = "iglu-builder"; - version = "0.0.1"; + version = "0.0.2"; src = ../../../builder; pyproject = true; From 2b2bc2a0184e575dd59a31c0059c1ebf19376d94 Mon Sep 17 00:00:00 2001 From: SirBerg Date: Sat, 17 Oct 2026 20:26:22 +0200 Subject: [PATCH 4/4] Update builder/pyproject.toml Co-authored-by: Sven Ziegler <43136984+Svenum@users.noreply.github.com> --- builder/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/pyproject.toml b/builder/pyproject.toml index cb13ff6..fd5189b 100644 --- a/builder/pyproject.toml +++ b/builder/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=80.0", "wheel"] [project] name = "iglu-builder" -version = "0.0.1" +version = "0.0.2" description = "WebSocket-based build system interface for iglu" requires-python = ">=3.13" dependencies = [