From dd5a3c83a8361e3a361cfb527f62a642cde2bb7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zachary=20Gu=C3=A9not?= Date: Thu, 8 Oct 2026 00:46:25 +0200 Subject: [PATCH] fix(definitions): declare how UniFi requests authenticate, as v2 requires v2 makes httpAuth mandatory on every integration definition: it is the server-owned authentication the Stats widget and arbitrary requests reuse. Both APIs take the key in an X-API-KEY header; Site Manager reads it from its own secret kind. Also split the inline type imports v2's stricter oxlint rejects. Co-Authored-By: Claude Opus 5.5 --- packages/definitions/src/integration.ts | 2 ++ packages/integrations/src/unifi-os/test/unifi-os-api.spec.ts | 3 ++- packages/integrations/src/unifi-os/test/unifi-sm-api.spec.ts | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index 3ba303213..6243e6ed5 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -707,6 +707,7 @@ export const integrationDefs = { features: { docker: { aliases: ["unifi", "unifi-controller"] } }, }, unifiOs: { + httpAuth: { type: "apiKeyHeader", name: "X-API-KEY" }, name: "UniFi OS", secretKinds: [["apiKey"], ["apiKey", "siteManagerApiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/unifi.png", @@ -715,6 +716,7 @@ export const integrationDefs = { defaultPort: 443, }, unifiSiteManager: { + httpAuth: { type: "apiKeyHeader", name: "X-API-KEY", secretKind: "siteManagerApiKey" }, name: "UniFi Site Manager", secretKinds: [["siteManagerApiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/unifi.png", diff --git a/packages/integrations/src/unifi-os/test/unifi-os-api.spec.ts b/packages/integrations/src/unifi-os/test/unifi-os-api.spec.ts index d9caf23a9..894e86e5d 100644 --- a/packages/integrations/src/unifi-os/test/unifi-os-api.spec.ts +++ b/packages/integrations/src/unifi-os/test/unifi-os-api.spec.ts @@ -1,5 +1,6 @@ // @vitest-environment node -import { Response, type RequestInit } from "undici"; +import type { RequestInit } from "undici"; +import { Response } from "undici"; import { describe, expect, test, vi } from "vitest"; vi.hoisted(() => { diff --git a/packages/integrations/src/unifi-os/test/unifi-sm-api.spec.ts b/packages/integrations/src/unifi-os/test/unifi-sm-api.spec.ts index bf36f51eb..a5d2dc7d8 100644 --- a/packages/integrations/src/unifi-os/test/unifi-sm-api.spec.ts +++ b/packages/integrations/src/unifi-os/test/unifi-sm-api.spec.ts @@ -1,5 +1,6 @@ // @vitest-environment node -import { Response, type RequestInit } from "undici"; +import type { RequestInit } from "undici"; +import { Response } from "undici"; import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; vi.hoisted(() => {