From 13d27fb308f8bd00f90ec34353b9fc6db27de50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zachary=20Gu=C3=A9not?= Date: Tue, 8 Sep 2026 14:35:05 +0200 Subject: [PATCH] feat(definitions): declare unifiOs integration kind, category and widget kind Co-Authored-By: Claude Opus 5 --- packages/definitions/src/docs/widget-doc-slugs.ts | 1 + packages/definitions/src/integration.ts | 10 ++++++++++ packages/definitions/src/widget-integration-map.ts | 1 + packages/definitions/src/widget.ts | 1 + packages/translation/src/lang/en.json | 1 + 5 files changed, 14 insertions(+) diff --git a/packages/definitions/src/docs/widget-doc-slugs.ts b/packages/definitions/src/docs/widget-doc-slugs.ts index 3dd3bbfd6..30e1d4da7 100644 --- a/packages/definitions/src/docs/widget-doc-slugs.ts +++ b/packages/definitions/src/docs/widget-doc-slugs.ts @@ -27,6 +27,7 @@ export const widgetDocSlugs = { minecraftServerStatus: "minecraft-server-status", networkControllerSummary: "network-controller-summary", networkControllerStatus: "network-controller-status", + unifiOs: null, rssFeed: "rss-feed", bookmarks: "bookmarks", indexerManager: "indexer-manager", diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index 2d0c5df2c..14963144e 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -10,6 +10,7 @@ type IntegrationDocumentationSlug = IntegrationDocumentationPath extends `/docs/ export const integrationSecretKindObject = { apiKey: { isPublic: false, multiline: false }, + siteManagerApiKey: { isPublic: false, multiline: false }, username: { isPublic: true, multiline: false }, password: { isPublic: false, multiline: false }, tokenId: { isPublic: true, multiline: false }, @@ -705,6 +706,14 @@ export const integrationDefs = { defaultPort: 8443, features: { docker: { aliases: ["unifi", "unifi-controller"] } }, }, + unifiOs: { + name: "UniFi OS", + secretKinds: [["apiKey"], ["apiKey", "siteManagerApiKey"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/unifi.png", + category: ["unifiOs"], + documentationSlug: null, + defaultPort: 443, + }, opnsense: { httpAuth: { type: "basic", usernameKind: "opnsenseApiKey", passwordKind: "opnsenseApiSecret" }, name: "OPNsense", @@ -1192,6 +1201,7 @@ export const integrationCategories = [ "reverseProxy", "systemMonitoring", "security", + "unifiOs", ] as const; export type IntegrationCategory = (typeof integrationCategories)[number]; diff --git a/packages/definitions/src/widget-integration-map.ts b/packages/definitions/src/widget-integration-map.ts index 6f5c4e55d..b0ad4968d 100644 --- a/packages/definitions/src/widget-integration-map.ts +++ b/packages/definitions/src/widget-integration-map.ts @@ -56,6 +56,7 @@ export const widgetIntegrationConfigs = { mediaMissing: { supportedIntegrations: getIntegrationKindsByCategory("mediaOrganizer") }, networkControllerSummary: { supportedIntegrations: getIntegrationKindsByCategory("networkController") }, networkControllerStatus: { supportedIntegrations: getIntegrationKindsByCategory("networkController") }, + unifiOs: { supportedIntegrations: ["unifiOs"] }, indexerManager: { supportedIntegrations: getIntegrationKindsByCategory("indexerManager") }, healthMonitoring: { supportedIntegrations: [...healthMonitoringGeneralIntegrationKinds, ...healthMonitoringClusterIntegrationKinds], diff --git a/packages/definitions/src/widget.ts b/packages/definitions/src/widget.ts index 39d3ab0e1..07e84fcc6 100644 --- a/packages/definitions/src/widget.ts +++ b/packages/definitions/src/widget.ts @@ -25,6 +25,7 @@ export const widgetKinds = [ "minecraftServerStatus", "networkControllerSummary", "networkControllerStatus", + "unifiOs", "rssFeed", "bookmarks", "indexerManager", diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index 991b96405..f1a4b8306 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -1418,6 +1418,7 @@ "search": "Search", "mediaTranscoding": "Transcoding", "networkController": "Network", + "unifiOs": "UniFi OS", "releasesProvider": "Releases", "notifications": "Notifications", "firewall": "Firewall",