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