From 425cb653a1d367aa7d87636268ff50ba76f24759 Mon Sep 17 00:00:00 2001 From: ajnart Date: Sun, 23 Aug 2026 22:33:29 +0200 Subject: [PATCH] refactor: streamline widget and integration architecture --- .../development/widgets-and-integrations.mdx | 188 +++++++ .../beszel/.integration-module-generated | 1 + apps/docs/docs/integrations/beszel/index.ts | 6 +- .../downloads/.widget-module-generated | 1 + .../widgets/weather/.widget-module-generated | 1 + apps/docs/docusaurus.config.ts | 16 +- .../app/[locale]/_client-providers/trpc.tsx | 10 +- apps/nextjs/src/app/[locale]/layout.tsx | 18 +- .../app/[locale]/manage/tools/api/page.tsx | 36 +- .../src/app/api/assistant/chat/route.ts | 38 +- .../src/app/api/mcp/[transport]/route.spec.ts | 45 +- apps/nextjs/src/app/api/mcp/_extract-tools.ts | 58 ++- apps/nextjs/src/app/api/mcp/_handler.ts | 34 +- .../components/assistant/assistant-gate.tsx | 1 - .../assistant-spotlight-placeholder.ts | 2 +- .../assistant/assistant-widget-tool.spec.ts | 23 +- .../items/board-recipe-recommendations.ts | 2 +- .../board/items/item-select-modal.tsx | 8 +- .../board/items/widget-query-scope.spec.ts | 12 +- package.json | 5 + packages/api/src/mcp.ts | 85 ++-- packages/api/src/middlewares/docker.ts | 4 +- packages/api/src/middlewares/integration.ts | 354 ++++++++++--- packages/api/src/middlewares/item.ts | 4 +- packages/api/src/middlewares/kubernetes.ts | 4 +- packages/api/src/query-cache.ts | 9 + packages/api/src/router/assistant.ts | 12 +- packages/api/src/router/board.ts | 297 ++++++----- packages/api/src/router/home.ts | 6 +- .../router/integration/integration-access.ts | 73 ++- .../router/integration/integration-router.ts | 23 +- .../integration-test-connection.ts | 2 +- .../api/src/router/onboard/onboard-router.ts | 5 +- .../integration-test-connection.spec.ts | 13 +- .../router/timetable-options-validation.ts | 169 +++++++ .../api/src/router/widgets/anchor-notes.ts | 11 +- .../router/widgets/archive-team-warrior.ts | 4 +- .../api/src/router/widgets/audio-stats.ts | 4 +- packages/api/src/router/widgets/bazarr.ts | 4 +- packages/api/src/router/widgets/beszel.ts | 30 +- packages/api/src/router/widgets/calendar.ts | 5 +- packages/api/src/router/widgets/coolify.ts | 4 +- packages/api/src/router/widgets/dns-hole.ts | 14 +- packages/api/src/router/widgets/downloads.ts | 22 +- packages/api/src/router/widgets/firewall.ts | 5 +- .../src/router/widgets/generated-registry.ts | 24 + .../src/router/widgets/health-monitoring.ts | 28 +- packages/api/src/router/widgets/immich.ts | 26 +- packages/api/src/router/widgets/index.ts | 65 +-- .../api/src/router/widgets/indexer-manager.ts | 13 +- .../api/src/router/widgets/media-organizer.ts | 5 +- .../api/src/router/widgets/media-release.ts | 5 +- .../api/src/router/widgets/media-requests.ts | 14 +- .../api/src/router/widgets/media-server.ts | 9 +- .../src/router/widgets/media-transcoding.ts | 9 +- .../src/router/widgets/network-controller.ts | 7 +- .../api/src/router/widgets/notifications.ts | 9 +- packages/api/src/router/widgets/options.ts | 2 +- .../api/src/router/widgets/paperless-ngx.ts | 14 +- packages/api/src/router/widgets/patchmon.ts | 4 +- packages/api/src/router/widgets/registry.ts | 225 +++++++++ packages/api/src/router/widgets/smart-home.ts | 17 +- .../src/router/widgets/speedtest-tracker.ts | 4 +- packages/api/src/router/widgets/timetable.ts | 174 +------ packages/api/src/router/widgets/tracearr.ts | 60 +-- packages/api/src/router/widgets/traefik.ts | 4 +- packages/api/src/router/widgets/umami.ts | 21 +- packages/api/src/router/widgets/ups.ts | 61 ++- .../api/src/router/widgets/uptime-kuma.ts | 4 +- packages/api/src/router/widgets/vpn.ts | 5 +- packages/api/src/router/widgets/wud.ts | 4 +- packages/api/src/test/mcp.spec.ts | 4 +- packages/api/src/trpc.ts | 52 +- packages/db/queries/widget-placement.ts | 4 +- .../src/docker-integration-match.ts | 34 +- .../src/docs/integration-doc-slugs.ts | 65 +-- .../definitions/src/docs/widget-doc-slugs.ts | 65 +-- .../src/generated/integration-modules.ts | 12 + .../src/generated/widget-modules.ts | 59 +++ packages/definitions/src/index.ts | 4 + .../definitions/src/integration-module.ts | 53 ++ packages/definitions/src/integration.ts | 241 ++++++--- .../definitions/src/widget-feature-catalog.ts | 419 +++++++++++++++ .../definitions/src/widget-integration-map.ts | 135 ++--- packages/definitions/src/widget-module.ts | 139 +++++ packages/definitions/src/widget-name.ts | 18 +- packages/definitions/src/widget.ts | 90 +--- packages/integrations/index.ts | 7 +- packages/integrations/package.json | 4 + packages/integrations/src/base/creator.ts | 322 +++++++----- .../integrations/src/base/errors/decorator.ts | 102 +++- packages/integrations/src/base/integration.ts | 3 +- .../src/beszel/docs/img/beszel-dashboard.png | Bin 0 -> 970985 bytes .../integrations/src/beszel/docs/index.mdx | 58 +++ .../integrations/src/beszel/docs/index.ts | 7 + packages/integrations/src/beszel/module.ts | 19 + packages/integrations/src/factory.ts | 1 + .../src/generated/integration-creators.ts | 12 + packages/integrations/src/index.ts | 66 +-- packages/integrations/test/aria2.spec.ts | 2 +- .../integrations/test/home-assistant.spec.ts | 2 +- packages/integrations/test/nextcloud.spec.ts | 2 +- packages/integrations/test/nzbget.spec.ts | 2 +- packages/integrations/test/pi-hole.spec.ts | 3 +- packages/integrations/test/sabnzbd.spec.ts | 2 +- packages/onboarding/src/setup-studio.tsx | 22 +- packages/redis/src/index.ts | 4 + packages/redis/src/lib/channel.ts | 198 +++++++- packages/request-handler/src/air-quality.ts | 1 + packages/request-handler/src/anchor-notes.ts | 4 +- .../src/archive-team-warrior.ts | 3 +- .../request-handler/src/audiobookshelf.ts | 3 +- packages/request-handler/src/bazarr.ts | 3 +- packages/request-handler/src/beszel.ts | 5 +- packages/request-handler/src/calendar.ts | 3 +- packages/request-handler/src/coolify.ts | 3 +- packages/request-handler/src/dns-hole.ts | 3 +- packages/request-handler/src/docker.ts | 1 + packages/request-handler/src/downloads.ts | 6 +- packages/request-handler/src/firewall.ts | 6 +- .../request-handler/src/health-monitoring.ts | 4 +- packages/request-handler/src/immich.spec.ts | 2 +- packages/request-handler/src/immich.ts | 5 +- .../request-handler/src/indexer-manager.ts | 3 +- .../src/lib/integration-request-handler.ts | 28 +- .../src/lib/integration-shared-cache.ts | 209 ++++++++ .../src/lib/request-handler.ts | 118 ++++- .../src/lib/widget-request-handler.ts | 34 +- .../request-handler/src/media-organizer.ts | 3 +- packages/request-handler/src/media-release.ts | 3 +- .../request-handler/src/media-request-list.ts | 3 +- .../src/media-request-stats.spec.ts | 2 +- .../src/media-request-stats.ts | 3 +- packages/request-handler/src/media-server.ts | 3 +- .../src/media-transcoding.spec.ts | 2 +- .../request-handler/src/media-transcoding.ts | 3 +- .../src/minecraft-server-status.ts | 1 + packages/request-handler/src/navidrome.ts | 3 +- .../request-handler/src/network-controller.ts | 3 +- packages/request-handler/src/notifications.ts | 3 +- packages/request-handler/src/paperless-ngx.ts | 3 +- packages/request-handler/src/patchmon.ts | 3 +- packages/request-handler/src/rss-feeds.ts | 1 + .../src/smart-home-entity-state.ts | 3 +- .../request-handler/src/speedtest-tracker.ts | 3 +- packages/request-handler/src/stock-price.ts | 1 + .../src/test/media-release.spec.ts | 2 +- packages/request-handler/src/tracearr.ts | 3 +- packages/request-handler/src/traefik.ts | 3 +- packages/request-handler/src/umami.ts | 8 +- packages/request-handler/src/ups.ts | 3 +- packages/request-handler/src/uptime-kuma.ts | 3 +- packages/request-handler/src/vpn.ts | 3 +- packages/request-handler/src/weather.ts | 5 +- packages/request-handler/src/wud.ts | 3 +- .../command/children/new-integration.tsx | 2 +- packages/ui/package.json | 1 + packages/ui/src/generated/widget-icons.ts | 11 + .../integration-grid-shared.spec.ts | 2 +- .../integration-grid-shared.ts | 14 +- .../integration-select-grid.tsx | 85 +--- packages/ui/src/widget-icons.ts | 127 +++++ packages/widgets/src/air-quality/index.ts | 2 - packages/widgets/src/anchor-note/index.ts | 3 - packages/widgets/src/app/index.ts | 1 - .../widgets/src/archive-team-warrior/index.ts | 2 - packages/widgets/src/audio-stats/index.ts | 4 - packages/widgets/src/bazarr/index.ts | 3 - packages/widgets/src/beszel-alerts/index.ts | 3 - .../widgets/src/beszel-system-grid/index.ts | 3 - .../widgets/src/beszel-system-stats/index.ts | 3 - .../widgets/src/beszel-system-table/index.ts | 3 - packages/widgets/src/bookmarks/index.tsx | 1 - packages/widgets/src/calendar/index.ts | 4 - packages/widgets/src/catalog.ts | 120 +---- packages/widgets/src/clock/index.ts | 1 - packages/widgets/src/coolify/index.ts | 1 - packages/widgets/src/definition.ts | 102 +++- .../widgets/src/dns-hole/controls/index.ts | 4 - .../widgets/src/dns-hole/summary/index.ts | 4 - packages/widgets/src/docker/index.ts | 2 - .../src/downloads/docs/img/advanced-view.png | Bin 0 -> 118457 bytes .../src/downloads/docs/img/context-menu.png | Bin 0 -> 215381 bytes .../src/downloads/docs/img/filter-panel.png | Bin 0 -> 78182 bytes .../src/downloads/docs/img/screenshot.png | Bin 0 -> 124959 bytes packages/widgets/src/downloads/docs/index.mdx | 152 ++++++ packages/widgets/src/downloads/docs/index.ts | 102 ++++ packages/widgets/src/downloads/index.ts | 7 +- .../widgets/src/downloads/module.generated.ts | 3 + packages/widgets/src/downloads/module.ts | 38 ++ .../widgets/src/errors/base-component.tsx | 10 +- packages/widgets/src/firewall/index.ts | 3 - .../widgets/src/generated/widget-modules.ts | 14 + .../widgets/src/health-monitoring/index.ts | 6 - .../src/immich/album-carousel/index.ts | 5 - .../widgets/src/immich/server-stats/index.ts | 5 - packages/widgets/src/import.ts | 3 - packages/widgets/src/index.tsx | 173 +------ packages/widgets/src/indexer-manager/index.ts | 3 - packages/widgets/src/manifest.spec.ts | 7 +- packages/widgets/src/manifest.ts | 170 ++----- packages/widgets/src/media-missing/index.ts | 3 - packages/widgets/src/media-releases/index.ts | 3 - .../widgets/src/media-requests/list/index.ts | 3 - .../widgets/src/media-requests/stats/index.ts | 3 - packages/widgets/src/media-server/index.ts | 4 - .../widgets/src/media-transcoding/index.ts | 5 - .../src/minecraft/server-status/index.ts | 2 - .../network-status/index.ts | 4 - .../src/network-controller/summary/index.ts | 4 - packages/widgets/src/notifications/index.ts | 3 - packages/widgets/src/paperless-ngx/index.ts | 4 - packages/widgets/src/patchmon/index.ts | 3 - packages/widgets/src/prefetch.ts | 34 +- packages/widgets/src/refetch-intervals.ts | 95 ++-- packages/widgets/src/registry.ts | 203 ++++++++ packages/widgets/src/releases/index.ts | 2 - packages/widgets/src/rssFeed/index.ts | 2 - .../src/smart-home/entity-state/index.ts | 4 - .../smart-home/execute-automation/index.ts | 3 - .../widgets/src/speedtest-tracker/index.ts | 2 - packages/widgets/src/stocks/index.ts | 2 - packages/widgets/src/system-disks/index.ts | 3 - .../widgets/src/system-resources/index.ts | 3 - packages/widgets/src/tracearr/index.ts | 2 - packages/widgets/src/traefik/index.ts | 1 - packages/widgets/src/umami/index.ts | 11 - packages/widgets/src/ups/index.ts | 2 - packages/widgets/src/uptime-kuma/index.ts | 1 - packages/widgets/src/vpn/index.ts | 3 - .../src/weather/docs/img/advanced-view.png | Bin 0 -> 23964 bytes .../widgets/src/weather/docs/img/current.png | Bin 0 -> 6349 bytes .../widgets/src/weather/docs/img/forecast.png | Bin 0 -> 8309 bytes packages/widgets/src/weather/docs/index.mdx | 50 ++ packages/widgets/src/weather/docs/index.tsx | 96 ++++ packages/widgets/src/weather/index.ts | 6 +- .../widgets/src/weather/module.generated.ts | 3 + packages/widgets/src/weather/module.ts | 36 ++ packages/widgets/src/wud/index.ts | 4 - packages/widgets/tsconfig.json | 2 +- .../integrations/sync-integration-modules.mts | 364 ++++++++++++++ scripts/widgets/create-widget-module.mts | 82 +++ scripts/widgets/sync-widget-modules.mts | 475 ++++++++++++++++++ 243 files changed, 5722 insertions(+), 2255 deletions(-) create mode 100644 apps/docs/docs/advanced/development/widgets-and-integrations.mdx create mode 100644 apps/docs/docs/integrations/beszel/.integration-module-generated create mode 100644 apps/docs/docs/widgets/downloads/.widget-module-generated create mode 100644 apps/docs/docs/widgets/weather/.widget-module-generated create mode 100644 packages/api/src/router/timetable-options-validation.ts create mode 100644 packages/api/src/router/widgets/generated-registry.ts create mode 100644 packages/api/src/router/widgets/registry.ts create mode 100644 packages/definitions/src/generated/integration-modules.ts create mode 100644 packages/definitions/src/generated/widget-modules.ts create mode 100644 packages/definitions/src/integration-module.ts create mode 100644 packages/definitions/src/widget-feature-catalog.ts create mode 100644 packages/definitions/src/widget-module.ts create mode 100644 packages/integrations/src/beszel/docs/img/beszel-dashboard.png create mode 100644 packages/integrations/src/beszel/docs/index.mdx create mode 100644 packages/integrations/src/beszel/docs/index.ts create mode 100644 packages/integrations/src/beszel/module.ts create mode 100644 packages/integrations/src/factory.ts create mode 100644 packages/integrations/src/generated/integration-creators.ts create mode 100644 packages/request-handler/src/lib/integration-shared-cache.ts create mode 100644 packages/ui/src/generated/widget-icons.ts create mode 100644 packages/ui/src/widget-icons.ts create mode 100644 packages/widgets/src/downloads/docs/img/advanced-view.png create mode 100644 packages/widgets/src/downloads/docs/img/context-menu.png create mode 100644 packages/widgets/src/downloads/docs/img/filter-panel.png create mode 100644 packages/widgets/src/downloads/docs/img/screenshot.png create mode 100644 packages/widgets/src/downloads/docs/index.mdx create mode 100644 packages/widgets/src/downloads/docs/index.ts create mode 100644 packages/widgets/src/downloads/module.generated.ts create mode 100644 packages/widgets/src/downloads/module.ts create mode 100644 packages/widgets/src/generated/widget-modules.ts delete mode 100644 packages/widgets/src/import.ts create mode 100644 packages/widgets/src/registry.ts create mode 100644 packages/widgets/src/weather/docs/img/advanced-view.png create mode 100644 packages/widgets/src/weather/docs/img/current.png create mode 100644 packages/widgets/src/weather/docs/img/forecast.png create mode 100644 packages/widgets/src/weather/docs/index.mdx create mode 100644 packages/widgets/src/weather/docs/index.tsx create mode 100644 packages/widgets/src/weather/module.generated.ts create mode 100644 packages/widgets/src/weather/module.ts create mode 100644 scripts/integrations/sync-integration-modules.mts create mode 100644 scripts/widgets/create-widget-module.mts create mode 100644 scripts/widgets/sync-widget-modules.mts diff --git a/apps/docs/docs/advanced/development/widgets-and-integrations.mdx b/apps/docs/docs/advanced/development/widgets-and-integrations.mdx new file mode 100644 index 000000000..955dcd81a --- /dev/null +++ b/apps/docs/docs/advanced/development/widgets-and-integrations.mdx @@ -0,0 +1,188 @@ +--- +title: Widgets and integrations +tags: + - Developer + - Technical documentation + - Widgets + - Integrations +sidebar_position: 2 +--- + +Homarr is moving native widgets and integrations to vertical feature modules: the stable identity, lightweight metadata, +client entry, server registration, cache policy, and documentation source live beside the implementation. Generated +files preserve static imports and package boundaries for Next.js, tRPC, and Docusaurus. + +Registration means availability. There is no separate feature-enable list or runtime kill switch. + +## Current status + +Weather and Downloads are the reference widget modules. Their folders now own registration and canonical docs: + +```text +packages/widgets/src/weather/ +├── module.ts # authored manifest and client/server data policy +├── index.ts # options and presentation-specific definition +├── component.tsx # client UI +├── module.generated.ts # generated icon projection; do not edit +└── docs/ # canonical MDX, metadata, and assets +``` + +The remaining widgets still use the compatibility registries and can be migrated one folder at a time without changing +their persisted `WidgetKind` or tRPC paths. The generated and legacy entries are merged behind the same runtime loaders. + +The server router implementation is not physically inside these first two widget folders yet. `@homarr/widgets` +currently imports `@homarr/api/client`; making `@homarr/api` import widget server files would create a package cycle and +risk shipping server code to the browser. The module already owns the lazy router registration, and the neutral server +operation types are the cycle-breaking seam for the next migration stage. + +## The module manifest + +`module.ts` is pure and server-safe. It must not import React, tRPC, an integration implementation, secrets, or a request +handler. It describes import locations as strings so the generator can emit literal imports into the correct package. + +```ts +import { defineWidgetModule } from "@homarr/definitions"; + +export default defineWidgetModule({ + kind: "example", + icon: "IconSparkles", + clientEntry: ".", + documentation: { + slug: "example", + sourceDirectory: "docs", + }, + integration: { + categories: ["downloadClient"], + serverMaxIntegrations: 1, + }, + operations: [ + { + name: "getData", + path: ["widget", "example", "getData"], + client: { + refetchIntervalSeconds: 30, + persist: true, + }, + serverCache: { + namespace: "example:data", + ttlMs: 30_000, + scope: "integration", + }, + }, + ], + routers: [ + { + namespace: "example", + module: "./example", + exportName: "exampleRouter", + }, + ], +}); +``` + +Run the synchronizer after adding or changing a module: + +```sh +pnpm widgets:new example --icon IconSparkles +pnpm widgets:sync +pnpm widgets:sync:check +``` + +`widgets:new` creates a minimal client-only folder and immediately runs the synchronizer. Replace the empty component, +add options, and extend the manifest with operations or router registrations as needed; it never edits a hand-written +central feature list. + +The check command is read-only and reports drift. The synchronizer rejects duplicate widget kinds, docs slugs, router +namespaces with conflicting targets, operation names, and cache namespaces. It also verifies client entries, router +modules, and local docs before producing anything. + +It generates these compatibility projections: + +| Consumer | Generated projection | +| ---------------------- | -------------------------------------------------------------------- | +| Definitions and policy | `packages/definitions/src/generated/widget-modules.ts` | +| Client lazy loading | `packages/widgets/src/generated/widget-modules.ts` | +| Lightweight icons | `packages/ui/src/generated/widget-icons.ts` | +| Lazy tRPC routers | `packages/api/src/router/widgets/generated-registry.ts` | +| Docusaurus | `apps/docs/docs/widgets//` from the module's canonical `docs/` | + +Generated client and server registries contain explicit import literals. Do not replace them with a variable dynamic +import: explicit paths let Next.js and Turbopack discover chunks without eagerly loading every widget. + +## Client and server data caching + +The operation is the shared identity for both cache layers: + +- The tRPC path drives the TanStack Query key. +- `refetchIntervalSeconds` configures the root Query Client without importing widget UI code. +- `persist` controls session-scoped browser persistence. Persisted payloads are size-bounded, sanitized, and separated + by the authenticated user and permission scope. +- `serverCache` is imported by the request handler through `getWidgetServerCachePolicy`, so its namespace and TTL are + not copied into another file. + +Server reads use bounded in-process L1 caching and a shared Redis L2. Inputs are canonically serialized and SHA-256 +hashed; raw URLs, options, and secrets never appear in Redis keys or cache logs. Redis operations and lock waits are +bounded, refreshes use token-safe distributed locks, and stale data can be retained for the declared error window. +Redis failure degrades to local caching and produces structured logs with safe metadata and the original cause. + +Integration-backed cache keys include the integration ID and its Redis generation. Mutations advance that generation, +which invalidates all replicas without scanning keys. Integration-free widget handlers use a namespace generation; +manual refreshes such as Docker inventory invalidation therefore clear both local and shared values. A zero TTL keeps +only overlapping in-flight request deduplication and never stores a Redis payload, which is appropriate for realtime +or subscription data. + +TanStack Query remains the browser cache and Redis remains the server cache. A browser persistence hit never bypasses +server authorization, and Redis never caches permission decisions or decrypted credentials. + +## Server operations and tRPC + +The neutral contract includes helpers for queries, mutations, subscriptions, and routes: + +- `defineWidgetServerOperation` +- `defineWidgetServerSubscription` +- `defineWidgetServerRoute` +- `defineWidgetServerModule` + +They describe validated input, authorization intent, cache policy, an `AbortSignal`, and a framework-neutral resolver. +The future API adapter will inject tRPC procedure builders, integration middleware, logging, and error normalization. +This dependency direction lets a local `server.ts` be consumed by API code without the widget client importing API +runtime code. + +Until that adapter replaces the current client dependency, keep actual upstream calls in `@homarr/request-handler` and +the tRPC compatibility router in `packages/api/src/router/widgets/`. Put the router registration in the local manifest; +do not add it to the hand-written registry. + +An integration-backed procedure must use the widget-aware middleware. It derives compatible kinds and maximum +selection limits from the module/catalog, resolves only the requested records, decrypts secrets on the server, and +checks direct user and group permissions before the procedure runs. Use `query` permission for reads and `interact` +permission for mutations. + +## Errors and logs + +- Root tRPC instrumentation records the procedure path, operation type, user, duration, and outcome. +- Integration middleware records safe requested/resolved IDs and kinds plus denial reasons; it never logs credentials. +- Integration calls are timed and normalized into public errors while preserving a structured server-side cause. +- Multi-integration reads use `settleIntegrationQueries` so one failed service does not erase successful providers. +- Widget components read through the shared usable-data helper: stale data remains visible after a refresh error, while + first-load failures reach the common widget error boundary and logs link. +- Lazy client, router, and integration imports cache successful and in-flight loads, evict failed promises, and log + load duration so a transient chunk failure can retry. + +## Complex modules + +The manifest is the common path, not a limit on implementation size. + +- Beszel can group multiple stable widget kinds behind one router and keep live statistics on an SSE subscription with + Redis payload caching disabled. +- Assistant can use a route/stream adapter for chat while keeping client runtime state and tools in subfolders. +- A proxy-only widget can expose a server route without inventing a polling query. +- A widget can add custom query matchers, context actions, prefetching, or nested client components while retaining the + same registration, permissions, logging, error, and cache contracts. + +## Legacy integration path + +Integration metadata is currently derived from `integrationDefs`, while implementation constructors are loaded lazily +through `@homarr/integrations/factory`. Keep integrations server-only, implement only their capability interfaces, and +use narrow schema/interface exports instead of the broad runtime barrel. The same local-manifest and generated-registry +shape is being introduced for integrations so metadata, constructor registration, and canonical docs can move beside +each implementation without changing `IntegrationKind` or widget capability checks. diff --git a/apps/docs/docs/integrations/beszel/.integration-module-generated b/apps/docs/docs/integrations/beszel/.integration-module-generated new file mode 100644 index 000000000..975231da4 --- /dev/null +++ b/apps/docs/docs/integrations/beszel/.integration-module-generated @@ -0,0 +1 @@ +packages/integrations/src/beszel/docs diff --git a/apps/docs/docs/integrations/beszel/index.ts b/apps/docs/docs/integrations/beszel/index.ts index bcb8065e8..c67aae6bf 100644 --- a/apps/docs/docs/integrations/beszel/index.ts +++ b/apps/docs/docs/integrations/beszel/index.ts @@ -1,9 +1,7 @@ -import { IntegrationDefinition } from "@site/src/types"; - -export const beszelIntegration: IntegrationDefinition = { +export const beszelIntegration = { name: "Beszel", description: "Beszel is a lightweight server monitoring platform with Docker stats, historical data, and alert functions.", iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg", path: "../../integrations/beszel", -}; +} as const; diff --git a/apps/docs/docs/widgets/downloads/.widget-module-generated b/apps/docs/docs/widgets/downloads/.widget-module-generated new file mode 100644 index 000000000..73d20026f --- /dev/null +++ b/apps/docs/docs/widgets/downloads/.widget-module-generated @@ -0,0 +1 @@ +packages/widgets/src/downloads/docs diff --git a/apps/docs/docs/widgets/weather/.widget-module-generated b/apps/docs/docs/widgets/weather/.widget-module-generated new file mode 100644 index 000000000..c2fc7efdc --- /dev/null +++ b/apps/docs/docs/widgets/weather/.widget-module-generated @@ -0,0 +1 @@ +packages/widgets/src/weather/docs diff --git a/apps/docs/docusaurus.config.ts b/apps/docs/docusaurus.config.ts index cf7dcc354..c20857c32 100644 --- a/apps/docs/docusaurus.config.ts +++ b/apps/docs/docusaurus.config.ts @@ -2,8 +2,22 @@ import type * as Preset from "@docusaurus/preset-classic"; import type { Config } from "@docusaurus/types"; import { themes as prismThemes } from "prism-react-renderer"; import { resolveHomarrUrlConfig } from "@homarr/workshop/schema"; +import { generatedWidgetDocumentationSources } from "@homarr/definitions"; const a11yEmoji = require("@fec/remark-a11y-emoji"); +const githubDocsEditRoot = "https://github.com/homarr-labs/homarr/edit/dev"; + +const getDocumentationEditUrl = (docPath: string) => { + const widgetPath = /^widgets\/([^/]+)\/(.+)$/u.exec(docPath); + const slug = widgetPath?.[1]; + const relativePath = widgetPath?.[2]; + if (slug && relativePath && Object.hasOwn(generatedWidgetDocumentationSources, slug)) { + const source = generatedWidgetDocumentationSources[slug as keyof typeof generatedWidgetDocumentationSources]; + return `${githubDocsEditRoot}/${source}/${relativePath}`; + } + return `${githubDocsEditRoot}/apps/docs/docs/${docPath}`; +}; + const deprecatedWorkshopUrl = process.env.WORKSHOP_URL; if (deprecatedWorkshopUrl && !process.env.WORKSHOP_API_URL) { console.warn("WORKSHOP_URL is deprecated; use WORKSHOP_API_URL instead."); @@ -65,7 +79,7 @@ const config: Config = { { docs: { sidebarPath: require.resolve("./sidebars.js"), - editUrl: ({ docPath }) => `https://github.com/homarr-labs/homarr/edit/dev/apps/docs/docs/${docPath}`, + editUrl: ({ docPath }) => getDocumentationEditUrl(docPath), remarkPlugins: [a11yEmoji], exclude: [], showLastUpdateAuthor: false, diff --git a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx index dc5242de4..d4a0bc453 100644 --- a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx +++ b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx @@ -141,10 +141,12 @@ const ScopedTRPCReactProvider = ({ refetchOnWindowFocus: false, refetchOnReconnect: false, }); - for (const { queryKey, intervalSeconds } of widgetQueryRefetchIntervals) { - client.setQueryDefaults(queryKey, { - refetchInterval: intervalSeconds === null ? false : intervalSeconds * 1000, - }); + for (const { queryKey, intervalSeconds, staleTimeSeconds } of widgetQueryRefetchIntervals) { + const policy: { refetchInterval?: number | false; staleTime?: number } = {}; + if (intervalSeconds === null) policy.refetchInterval = false; + if (typeof intervalSeconds === "number") policy.refetchInterval = intervalSeconds * 1000; + if (staleTimeSeconds !== undefined) policy.staleTime = staleTimeSeconds * 1000; + client.setQueryDefaults(queryKey, policy); } for (const { queryKey, ...policy } of dashboardSupportingQueryPolicies) { client.setQueryDefaults(queryKey, policy); diff --git a/apps/nextjs/src/app/[locale]/layout.tsx b/apps/nextjs/src/app/[locale]/layout.tsx index 3baca0b39..a907fe6e1 100644 --- a/apps/nextjs/src/app/[locale]/layout.tsx +++ b/apps/nextjs/src/app/[locale]/layout.tsx @@ -102,14 +102,16 @@ export default async function Layout(props: { }) : null, ); - const assistantAvailabilityPromise: Promise = sessionPromise.then((session) => - !session - ? "unauthenticated" - : api.assistant - .getAvailability() - .then((availability) => (availability.enabled ? "enabled" : "unconfigured")) - .catch(() => "error"), - ); + const assistantAvailabilityPromise = sessionPromise.then(async (session): Promise => { + if (!session) return "unauthenticated"; + + try { + const availability = await api.assistant.getAvailability(); + return availability.enabled ? "enabled" : "unconfigured"; + } catch { + return "error"; + } + }); const [session, user, serverSettings, colorScheme, assistantAvailability] = await Promise.all([ sessionPromise, userPromise, diff --git a/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx b/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx index 73370b5c8..cfd71ad79 100644 --- a/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/tools/api/page.tsx @@ -2,7 +2,6 @@ import { headers } from "next/headers"; import { notFound } from "next/navigation"; import { Stack } from "@mantine/core"; -import { mcpRouter } from "@homarr/api/mcp"; import { openApiDocument } from "@homarr/api/open-api"; import { api } from "@homarr/api/server"; import { auth } from "@homarr/auth/next"; @@ -11,29 +10,15 @@ import { getI18n } from "@homarr/translation/server"; import { createMetaTitle } from "~/metadata"; import { DynamicBreadcrumb } from "~/components/navigation/dynamic-breadcrumb"; -import { extractMcpTools } from "~/app/api/mcp/_extract-tools"; +import { getMcpRuntimeAsync } from "~/app/api/mcp/_extract-tools"; import { ApiKeysManagement } from "./components/api-keys"; import { ApiPageTabs } from "./components/api-page-tabs"; import { ScalarApiReference } from "./components/scalar-api-reference"; import type { McpToolGroup } from "./components/api-page-tabs"; -let cachedToolGroups: McpToolGroup[] | null = null; - -function getMcpToolGroups(): McpToolGroup[] { - if (cachedToolGroups) return cachedToolGroups; - - const tools = extractMcpTools(); - - const procedures = (mcpRouter as any)._def.procedures as Record; - const procedureTypeMap = new Map(); - for (const [key, proc] of Object.entries(procedures)) { - const type = proc?._def?.type; - if (type === "query" || type === "mutation") { - procedureTypeMap.set(key, type); - } - } - +async function getMcpToolGroupsAsync(): Promise { + const { tools, procedureTypes } = await getMcpRuntimeAsync(); const groups = new Map(); for (const tool of tools) { const namespace = tool.pathInRouter[0] ?? "other"; @@ -44,14 +29,13 @@ function getMcpToolGroups(): McpToolGroup[] { groups.get(namespace)?.push({ name: tool.name, description: tool.description, - type: procedureTypeMap.get(procedureKey) ?? "query", + type: procedureTypes.get(procedureKey) ?? "query", }); } - cachedToolGroups = Array.from(groups.entries()).map(([namespace, items]) => ({ + return Array.from(groups.entries()).map(([namespace, items]) => ({ namespace, tools: items, })); - return cachedToolGroups; } export async function generateMetadata() { @@ -72,12 +56,14 @@ export default async function ApiPage() { if (!session?.user.permissions.includes("admin")) { notFound(); } - const requestHeaders = await headers(); + const [requestHeaders, apiKeys, t, toolGroups] = await Promise.all([ + headers(), + api.apiKeys.getAll(), + getI18n("management.page.tool.api.tab"), + getMcpToolGroupsAsync(), + ]); const baseUrl = extractBaseUrlFromHeaders(requestHeaders); const document = openApiDocument(baseUrl); - const apiKeys = await api.apiKeys.getAll(); - const t = await getI18n("management.page.tool.api.tab"); - const toolGroups = getMcpToolGroups(); return ( <> diff --git a/apps/nextjs/src/app/api/assistant/chat/route.ts b/apps/nextjs/src/app/api/assistant/chat/route.ts index d59733da0..f56e51c6d 100644 --- a/apps/nextjs/src/app/api/assistant/chat/route.ts +++ b/apps/nextjs/src/app/api/assistant/chat/route.ts @@ -6,7 +6,7 @@ import type { ToolSet, UIMessage } from "ai"; import { createUIMessageStream, createUIMessageStreamResponse, jsonSchema, stepCountIs, streamText, tool } from "ai"; import { z } from "zod/v4"; -import { createTRPCContext, mcpRouter } from "@homarr/api/mcp"; +import { createTRPCContext } from "@homarr/api/mcp"; import { createAssistantGenerationAccessToken, getAssistantContextEntitiesAsync, @@ -16,6 +16,7 @@ import { auth } from "@homarr/auth/next"; import { env } from "@homarr/common/env"; import { decryptSecret } from "@homarr/common/server"; import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { and, eq } from "@homarr/db"; import { db } from "@homarr/db"; import { assistantConfigurations, assistantThreads } from "@homarr/db/schema"; @@ -35,7 +36,7 @@ import type { AssistantWebSearchSource, } from "~/components/assistant/assistant-message-metadata"; -import { extractMcpTools } from "../../mcp/_extract-tools"; +import { getMcpRuntimeAsync } from "../../mcp/_extract-tools"; import { buildAssistantRequestContext, sanitizeAttachmentFilename } from "./assistant-chat-input"; import { getAssistantModelLookupStatus } from "./assistant-model-lookup"; import { convertAssistantMessagesToModelMessages } from "./assistant-message-conversion"; @@ -322,20 +323,6 @@ const sumCompleteStepMetric = ( return (values as number[]).reduce((sum, value) => sum + value, 0); }; -const getProcedureTypeMap = () => { - const procedures = ( - mcpRouter as unknown as { - ["_def"]: { procedures: Record }; - } - )["_def"].procedures; - return new Map( - Object.entries(procedures).flatMap(([path, procedure]) => { - const type = procedure["_def"]?.type; - return type === "query" || type === "mutation" ? [[path, type] as const] : []; - }), - ); -}; - const waitForDemoChunkAsync = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); const createDemoAssistantResponse = (request: z.infer) => { @@ -506,15 +493,24 @@ export async function POST(request: Request) { } const canAuthorCustomWidgets = session.user.permissions.includes("admin"); const customWidgetAuthoringContext = getCustomWidgetAuthoringContext(incomingMessages, canAuthorCustomWidgets); - const caller = mcpRouter.createCaller(context); - const procedureTypes = getProcedureTypeMap(); + let mcpRuntime; + try { + mcpRuntime = await getMcpRuntimeAsync(); + } catch (error) { + logger.error(new ErrorWithMetadata("Assistant tools are unavailable", { requestId }, { cause: error })); + return Response.json( + { error: "Homarr tools could not be loaded. Check the Homarr logs and try again." }, + { status: 503 }, + ); + } + const caller = mcpRuntime.router.createCaller(context); const omittedCustomWidgetTools = new Set(customWidgetAuthoringContext.omittedToolNames); - const mcpTools = extractMcpTools().filter((mcpTool) => !omittedCustomWidgetTools.has(mcpTool.name)); + const mcpTools = mcpRuntime.tools.filter((mcpTool) => !omittedCustomWidgetTools.has(mcpTool.name)); const customWidgetComponentDocumentBudget = createCustomWidgetComponentDocumentBudget(); const homarrTools = Object.fromEntries( mcpTools.map((mcpTool) => { - const requiresApproval = procedureTypes.get(mcpTool.pathInRouter.join(".")) === "mutation"; + const requiresApproval = mcpRuntime.procedureTypes.get(mcpTool.pathInRouter.join(".")) === "mutation"; return [ mcpTool.name, tool({ @@ -563,7 +559,7 @@ export async function POST(request: Request) { ) satisfies ToolSet; const toolApproval = Object.fromEntries( mcpTools.flatMap((mcpTool) => - procedureTypes.get(mcpTool.pathInRouter.join(".")) === "mutation" + mcpRuntime.procedureTypes.get(mcpTool.pathInRouter.join(".")) === "mutation" ? [[mcpTool.name, "user-approval" as const]] : [], ), diff --git a/apps/nextjs/src/app/api/mcp/[transport]/route.spec.ts b/apps/nextjs/src/app/api/mcp/[transport]/route.spec.ts index a5f4f9b09..67a1bade2 100644 --- a/apps/nextjs/src/app/api/mcp/[transport]/route.spec.ts +++ b/apps/nextjs/src/app/api/mcp/[transport]/route.spec.ts @@ -16,7 +16,6 @@ const mocks = vi.hoisted(() => ({ vi.mock("next/server", () => ({ userAgent: () => ({ ua: "MCP route test" }) })); vi.mock("@homarr/api/mcp", () => ({ createTRPCContext: vi.fn(() => ({})), - mcpRouter: { createCaller: vi.fn(() => ({ board: { getAllBoards: mocks.toolProcedure } })) }, })); vi.mock("@homarr/auth/api-key", () => ({ API_KEY_HEADER_NAME: "ApiKey", @@ -42,26 +41,30 @@ vi.mock("@homarr/custom-widgets/core", () => ({ vi.mock("@homarr/db", () => ({ db: {} })); vi.mock("~/versions/package-reader", () => ({ getPackageVersion: () => "test-version" })); vi.mock("../_extract-tools", () => ({ - extractMcpTools: () => [ - { - name: "board_getAllBoards", - description: "List boards", - pathInRouter: ["board", "getAllBoards"], - inputSchema: { type: "object", properties: {} }, - }, - { - name: "customWidget_list", - description: "List Custom Widgets", - pathInRouter: ["customWidget", "list"], - inputSchema: { type: "object", properties: {} }, - }, - { - name: "customWidget_workshopSearch", - description: "Search Workshop", - pathInRouter: ["customWidget", "workshopSearch"], - inputSchema: { type: "object", properties: {} }, - }, - ], + getMcpRuntimeAsync: async () => ({ + router: { createCaller: vi.fn(() => ({ board: { getAllBoards: mocks.toolProcedure } })) }, + procedureTypes: new Map([["board.getAllBoards", "query"]]), + tools: [ + { + name: "board_getAllBoards", + description: "List boards", + pathInRouter: ["board", "getAllBoards"], + inputSchema: { type: "object", properties: {} }, + }, + { + name: "customWidget_list", + description: "List Custom Widgets", + pathInRouter: ["customWidget", "list"], + inputSchema: { type: "object", properties: {} }, + }, + { + name: "customWidget_workshopSearch", + description: "Search Workshop", + pathInRouter: ["customWidget", "workshopSearch"], + inputSchema: { type: "object", properties: {} }, + }, + ], + }), })); import { POST } from "./route"; diff --git a/apps/nextjs/src/app/api/mcp/_extract-tools.ts b/apps/nextjs/src/app/api/mcp/_extract-tools.ts index 5b90d2963..2b5b684c8 100644 --- a/apps/nextjs/src/app/api/mcp/_extract-tools.ts +++ b/apps/nextjs/src/app/api/mcp/_extract-tools.ts @@ -1,11 +1,55 @@ -import { extractMcpToolsFromProcedures, mcpRouter } from "@homarr/api/mcp"; +import type { McpRouter, McpTool } from "@homarr/api/mcp"; +import { extractMcpToolsFromProcedures, getMcpRouterAsync } from "@homarr/api/mcp"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; -let cache: ReturnType | null = null; +const logger = createLogger({ module: "mcpTools" }); -export function extractMcpTools() { - if (cache) return cache; +export type McpProcedureType = "query" | "mutation"; - cache = extractMcpToolsFromProcedures(mcpRouter); - - return cache; +export interface McpRuntime { + router: McpRouter; + tools: McpTool[]; + procedureTypes: ReadonlyMap; +} + +const createMcpRuntimeAsync = async (): Promise => { + const startedAt = Date.now(); + const router = await getMcpRouterAsync(); + const tools = extractMcpToolsFromProcedures(router); + const procedures = router["_def"].procedures as unknown as Record; + const procedureTypes = new Map(); + + for (const [path, procedure] of Object.entries(procedures)) { + const type = procedure["_def"]?.type; + if (type === "query" || type === "mutation") procedureTypes.set(path, type); + } + + logger.info("Extracted MCP tools", { + durationMs: Date.now() - startedAt, + toolCount: tools.length, + }); + return { router, tools, procedureTypes }; +}; + +let mcpRuntimePromise: Promise | null = null; + +export async function getMcpRuntimeAsync(): Promise { + if (mcpRuntimePromise) return await mcpRuntimePromise; + + const loadPromise = createMcpRuntimeAsync(); + mcpRuntimePromise = loadPromise; + + try { + return await loadPromise; + } catch (error) { + if (mcpRuntimePromise === loadPromise) mcpRuntimePromise = null; + logger.error(new ErrorWithMetadata("Failed to extract MCP tools", {}, { cause: error })); + throw error; + } +} + +export async function extractMcpTools(): Promise { + const { tools } = await getMcpRuntimeAsync(); + return tools; } diff --git a/apps/nextjs/src/app/api/mcp/_handler.ts b/apps/nextjs/src/app/api/mcp/_handler.ts index d1fe6f5ac..74936f347 100644 --- a/apps/nextjs/src/app/api/mcp/_handler.ts +++ b/apps/nextjs/src/app/api/mcp/_handler.ts @@ -5,11 +5,12 @@ import { ResourceTemplate } from "@modelcontextprotocol/server"; import { z } from "zod/v4"; import type { McpTool } from "@homarr/api/mcp"; -import { createTRPCContext, mcpRouter } from "@homarr/api/mcp"; +import { createTRPCContext } from "@homarr/api/mcp"; import { API_KEY_HEADER_NAME, getSessionFromApiKeyAsync } from "@homarr/auth/api-key"; import { extractBaseUrlFromHeaders } from "@homarr/common"; import { ipAddressFromHeaders } from "@homarr/common/server"; import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { buildCustomWidgetMcpPrompt } from "@homarr/custom-widgets/authoring-prompt"; import { getCustomWidgetComponent, @@ -22,7 +23,7 @@ import { db } from "@homarr/db"; import { getPackageVersion } from "~/versions/package-reader"; import { getSafeAssistantToolError } from "../assistant/chat/assistant-tool-error"; -import { extractMcpTools } from "./_extract-tools"; +import { getMcpRuntimeAsync } from "./_extract-tools"; import { createMcpProtocolHandler } from "./_protocol"; const logger = createLogger({ module: "mcpRoute" }); @@ -80,18 +81,8 @@ function clearAuthFailures(ip: string | null) { authFailures.delete(ip ?? "unknown"); } -let toolsCache: McpTool[] | null = null; - -function getTools() { - if (!toolsCache) { - toolsCache = extractMcpTools(); - logger.info(`Extracted ${toolsCache.length} MCP tools`); - } - return toolsCache; -} - -const getVisibleTools = (isAdmin: boolean) => - isAdmin ? getTools() : getTools().filter((tool) => !tool.name.startsWith("customWidget_")); +const getVisibleTools = (tools: McpTool[], isAdmin: boolean) => + isAdmin ? tools : tools.filter((tool) => !tool.name.startsWith("customWidget_")); function registerCustomWidgetAuthoring(server: McpServer) { server.registerPrompt( @@ -331,12 +322,23 @@ export const handleMcpRequest = async (req: NextRequest) => { clearAuthFailures(ipAddress); logger.info("MCP request authenticated", { userId: session.user.id }); + let mcpRuntime; + try { + mcpRuntime = await getMcpRuntimeAsync(); + } catch (error) { + logger.error(new ErrorWithMetadata("MCP runtime is unavailable", {}, { cause: error })); + return jsonErrorResponse(503, { + error: "service_unavailable", + hint: "The MCP tool registry could not be loaded. Check the Homarr logs and try again.", + }); + } + const ctx = createTRPCContext({ session, headers: req.headers }); - const caller = mcpRouter.createCaller(ctx); + const caller = mcpRuntime.router.createCaller(ctx); const isAdmin = session.user.permissions.includes("admin"); const protocolHandler = createMcpProtocolHandler({ caller, - tools: getVisibleTools(isAdmin), + tools: getVisibleTools(mcpRuntime.tools, isAdmin), version: getPackageVersion(), instructions: SERVER_INSTRUCTIONS, configureServer: isAdmin ? registerCustomWidgetAuthoring : undefined, diff --git a/apps/nextjs/src/components/assistant/assistant-gate.tsx b/apps/nextjs/src/components/assistant/assistant-gate.tsx index f33fe5810..024854c01 100644 --- a/apps/nextjs/src/components/assistant/assistant-gate.tsx +++ b/apps/nextjs/src/components/assistant/assistant-gate.tsx @@ -74,7 +74,6 @@ const unavailableMessageKeys = { export const AssistantGate = ({ availability, children }: AssistantGateProps) => { const t = useI18n("assistant"); - if (availability === "enabled") { return {children}; } diff --git a/apps/nextjs/src/components/assistant/assistant-spotlight-placeholder.ts b/apps/nextjs/src/components/assistant/assistant-spotlight-placeholder.ts index f74aea66d..7f947c0a2 100644 --- a/apps/nextjs/src/components/assistant/assistant-spotlight-placeholder.ts +++ b/apps/nextjs/src/components/assistant/assistant-spotlight-placeholder.ts @@ -7,7 +7,7 @@ import { useI18n } from "@homarr/translation/client"; /** * Keeps the assistant discoverable in the spotlight when it is unavailable, without loading the - * assistant runtime. Lives apart from `assistant-provider` so the disabled path stays cheap. + * assistant runtime. Lives apart from `assistant-provider` so the unavailable path stays cheap. */ export const useRegisterAssistantSpotlightPlaceholder = (description: string) => { const t = useI18n("assistant"); diff --git a/apps/nextjs/src/components/assistant/assistant-widget-tool.spec.ts b/apps/nextjs/src/components/assistant/assistant-widget-tool.spec.ts index 2d199d91d..427958058 100644 --- a/apps/nextjs/src/components/assistant/assistant-widget-tool.spec.ts +++ b/apps/nextjs/src/components/assistant/assistant-widget-tool.spec.ts @@ -2,25 +2,32 @@ import { describe, expect, test } from "vitest"; import type { WidgetKind } from "@homarr/definitions"; import { widgetIntegrationSupport } from "@homarr/definitions"; -import { widgetImports } from "@homarr/widgets"; +import { loadAllWidgetDefinitions } from "@homarr/widgets/manifest"; import { getAssistantWidgetConfiguration } from "./assistant-widget-tool"; const settings = { enableStatusByDefault: true, forceDisableStatus: false }; +const widgetDefinitions = await loadAllWidgetDefinitions(); + +const getWidgetDefinition = (kind: WidgetKind) => { + const definition = widgetDefinitions.get(kind); + if (!definition) throw new Error(`No definition is registered for ${kind}`); + return definition; +}; describe("getAssistantWidgetConfiguration", () => { test("keeps server-side integration support synchronized with widget definitions", () => { - for (const [kind, widgetImport] of Object.entries(widgetImports)) { - const definition = widgetImport.definition; + for (const [kind, definition] of widgetDefinitions) { const expected = "supportedIntegrations" in definition ? definition.supportedIntegrations : undefined; + const supportedIntegrations = widgetIntegrationSupport[kind]; - expect(widgetIntegrationSupport[kind as WidgetKind], kind).toEqual(expected); + expect(supportedIntegrations, kind).toEqual(expected); } }); test("preserves generated notebook content and fills its hidden defaults", () => { const result = getAssistantWidgetConfiguration( - widgetImports.notebook.definition, + getWidgetDefinition("notebook"), { boardId: "board-1", boardName: "Home", @@ -42,7 +49,7 @@ describe("getAssistantWidgetConfiguration", () => { test("keeps only accessible, compatible integrations and respects the widget maximum", () => { const result = getAssistantWidgetConfiguration( - widgetImports.audioStats.definition, + getWidgetDefinition("audioStats"), { boardId: "board-1", boardName: "Home", @@ -90,13 +97,13 @@ describe("getAssistantWidgetConfiguration", () => { test("treats integration-backed widgets as required unless explicitly optional", () => { const mediaServer = getAssistantWidgetConfiguration( - widgetImports.mediaServer.definition, + getWidgetDefinition("mediaServer"), { boardId: "board-1", boardName: "Home", kind: "mediaServer", summary: "Show Plex streams" }, settings, [], ); const calendar = getAssistantWidgetConfiguration( - widgetImports.calendar.definition, + getWidgetDefinition("calendar"), { boardId: "board-1", boardName: "Home", kind: "calendar", summary: "Show releases" }, settings, [], diff --git a/apps/nextjs/src/components/board/items/board-recipe-recommendations.ts b/apps/nextjs/src/components/board/items/board-recipe-recommendations.ts index cd2b848a9..032bf9a4d 100644 --- a/apps/nextjs/src/components/board/items/board-recipe-recommendations.ts +++ b/apps/nextjs/src/components/board/items/board-recipe-recommendations.ts @@ -55,6 +55,6 @@ export const getBoardRecipeRecommendations = ({ }, ]; }) - .sort((left, right) => right.score - left.score || left.widgetKind.localeCompare(right.widgetKind)) + .toSorted((left, right) => right.score - left.score || left.widgetKind.localeCompare(right.widgetKind)) .slice(0, Math.max(0, limit)); }; diff --git a/apps/nextjs/src/components/board/items/item-select-modal.tsx b/apps/nextjs/src/components/board/items/item-select-modal.tsx index 24dee4e5e..7dbb9abc6 100644 --- a/apps/nextjs/src/components/board/items/item-select-modal.tsx +++ b/apps/nextjs/src/components/board/items/item-select-modal.tsx @@ -91,6 +91,7 @@ const ItemSelectModalContent = ({ initialSearch = "", }: ItemSelectModalContentProps) => { const [search, setSearch] = useState(initialSearch); + const canBrowseCustomWidgets = isAdmin; const t = useI18n(); const board = useRequiredBoard(); const currentLayoutId = useCurrentLayout(); @@ -479,7 +480,7 @@ const ItemSelectModalContent = ({ /> ))} - {isAdmin && ( + {canBrowseCustomWidgets && ( <> - {filteredItems.length === 0 && (!isAdmin || filteredCustomWidgets.length === 0) && ( + {filteredItems.length === 0 && (!canBrowseCustomWidgets || filteredCustomWidgets.length === 0) && (
{t("common.noResults")}
@@ -653,12 +654,13 @@ const ItemSelectModalFrame = ({ const utils = clientApi.useUtils(); const { data: session } = useSession(); const isAdmin = session?.user.permissions.includes("admin") ?? false; + const canBrowseCustomWidgets = isAdmin; const canCreateIntegration = session?.user.permissions.includes("integration-create") ?? false; const t = useI18n(); const { data: integrationData } = clientApi.integration.all.useQuery(); const { data: customWidgetDefs } = clientApi.customWidget.available.useQuery( { boardId: innerProps.boardId }, - { enabled: isAdmin }, + { enabled: canBrowseCustomWidgets }, ); return ( diff --git a/apps/nextjs/src/components/board/items/widget-query-scope.spec.ts b/apps/nextjs/src/components/board/items/widget-query-scope.spec.ts index ec667102e..5b7cfe52b 100644 --- a/apps/nextjs/src/components/board/items/widget-query-scope.spec.ts +++ b/apps/nextjs/src/components/board/items/widget-query-scope.spec.ts @@ -1,12 +1,14 @@ import type { QueryKey } from "@tanstack/react-query"; import { describe, expect, test } from "vitest"; -import type { NormalizedWidgetQuery, WidgetDefinition, WidgetQueryMatcherScope } from "@homarr/widgets"; -import { getWidgetQueryKeys, widgetImports } from "@homarr/widgets"; +import type { WidgetKind } from "@homarr/definitions"; +import type { NormalizedWidgetQuery, WidgetQueryMatcherScope } from "@homarr/widgets"; +import { getWidgetQueryKeys } from "@homarr/widgets"; +import { loadAllWidgetDefinitions } from "@homarr/widgets/manifest"; import { matchesWidgetItemQuery } from "./widget-query-scope"; -type WidgetKind = keyof typeof widgetImports; +const widgetDefinitions = await loadAllWidgetDefinitions(); const allPhotosAlbumId = "all"; const createScope = (overrides: Partial = {}): WidgetQueryMatcherScope => ({ @@ -19,7 +21,9 @@ const createScope = (overrides: Partial = {}): WidgetQu }); const matches = (kind: WidgetKind, path: readonly string[], input: unknown, scope: WidgetQueryMatcherScope) => { - const definition = widgetImports[kind].definition as WidgetDefinition & { kind: string }; + const definition = widgetDefinitions.get(kind); + if (!definition) throw new Error(`No definition is registered for ${kind}`); + const queryKey: QueryKey = [path, { input, type: "query" }]; return matchesWidgetItemQuery(queryKey, getWidgetQueryKeys(definition), scope, definition.queryMatcher); }; diff --git a/package.json b/package.json index 347e76aa0..ead235a09 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,8 @@ "docker:dev:up": "docker compose -f ./development/development.docker-compose.yml up -d redis", "format": "turbo format --continue -- --check", "format:fix": "turbo format --continue", + "integrations:sync": "tsx ./scripts/integrations/sync-integration-modules.mts", + "integrations:sync:check": "tsx ./scripts/integrations/sync-integration-modules.mts --check", "lint": "turbo lint --continue", "lint:fix": "turbo lint --continue -- --fix", "lint:ws": "pnpm dlx sherif@latest", @@ -54,6 +56,9 @@ "test:workshop-image": "sh apps/workshop/test-image.sh", "test:ui": "cross-env NODE_ENV=development CI=true vitest --project \"!e2e\" --ui --coverage.enabled", "typecheck": "turbo typecheck", + "widgets:sync": "tsx ./scripts/widgets/sync-widget-modules.mts", + "widgets:sync:check": "tsx ./scripts/widgets/sync-widget-modules.mts --check", + "widgets:new": "tsx ./scripts/widgets/create-widget-module.mts", "with-env": "dotenv -e .env --" }, "dependencies": { diff --git a/packages/api/src/mcp.ts b/packages/api/src/mcp.ts index c2b51dbda..7ece4fcff 100644 --- a/packages/api/src/mcp.ts +++ b/packages/api/src/mcp.ts @@ -2,6 +2,9 @@ export { createTRPCContext } from "./trpc"; export { extractMcpToolsFromProcedures } from "./mcp-tools"; export type { McpTool } from "./mcp-tools"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; + import { createTRPCRouter } from "./trpc"; import { appRouter as appRouterForApps } from "./router/app"; import { apiKeysRouter } from "./router/apiKeys"; @@ -12,41 +15,51 @@ import { iconsRouter } from "./router/icons"; import { infoRouter } from "./router/info"; import { integrationRouter } from "./router/integration/integration-router"; import { inviteRouter } from "./router/invite"; -import { airQualityRouter } from "./router/widgets/air-quality"; -import { bazarrRouter } from "./router/widgets/bazarr"; import { serverSettingsRouter } from "./router/serverSettings"; -import { beszelRouter } from "./router/widgets/beszel"; -import { calendarRouter } from "./router/widgets/calendar"; -import { dnsHoleRouter } from "./router/widgets/dns-hole"; -import { downloadsRouter } from "./router/widgets/downloads"; -import { healthMonitoringRouter } from "./router/widgets/health-monitoring"; -import { mediaRequestsRouter } from "./router/widgets/media-requests"; -import { mediaServerRouter } from "./router/widgets/media-server"; -import { patchmonRouter } from "./router/widgets/patchmon"; -import { smartHomeRouter } from "./router/widgets/smart-home"; -import { widgetSecretsRouter } from "./router/widgets/widget-secrets"; +import { loadMcpWidgetRoutersAsync } from "./router/widgets/registry"; -export const mcpRouter = createTRPCRouter({ - app: appRouterForApps, - apiKeys: apiKeysRouter, - board: boardRouter, - customWidget: customWidgetRouter, - docker: dockerRouter, - icon: iconsRouter, - info: infoRouter, - integration: integrationRouter, - invite: inviteRouter, - airQuality: airQualityRouter, - bazarr: bazarrRouter, - serverSettings: serverSettingsRouter, - beszel: beszelRouter, - calendar: calendarRouter, - dnsHole: dnsHoleRouter, - downloads: downloadsRouter, - healthMonitoring: healthMonitoringRouter, - mediaRequests: mediaRequestsRouter, - mediaServer: mediaServerRouter, - patchmon: patchmonRouter, - smartHome: smartHomeRouter, - widgetSecrets: widgetSecretsRouter, -}); +const logger = createLogger({ module: "mcpRouter" }); + +const createMcpRouterAsync = async () => { + const startedAt = Date.now(); + const widgetRouters = await loadMcpWidgetRoutersAsync(); + + const router = createTRPCRouter({ + app: appRouterForApps, + apiKeys: apiKeysRouter, + board: boardRouter, + customWidget: customWidgetRouter, + docker: dockerRouter, + icon: iconsRouter, + info: infoRouter, + integration: integrationRouter, + invite: inviteRouter, + serverSettings: serverSettingsRouter, + ...widgetRouters, + }); + + logger.info("Materialized MCP router", { + durationMs: Date.now() - startedAt, + widgetRouters: Object.keys(widgetRouters), + }); + return router; +}; + +export type McpRouter = Awaited>; + +let mcpRouterPromise: Promise | null = null; + +export async function getMcpRouterAsync(): Promise { + if (mcpRouterPromise) return await mcpRouterPromise; + + const loadPromise = createMcpRouterAsync(); + mcpRouterPromise = loadPromise; + + try { + return await loadPromise; + } catch (error) { + if (mcpRouterPromise === loadPromise) mcpRouterPromise = null; + logger.error(new ErrorWithMetadata("Failed to materialize MCP router", {}, { cause: error })); + throw error; + } +} diff --git a/packages/api/src/middlewares/docker.ts b/packages/api/src/middlewares/docker.ts index e4f04f192..7fa6d0a48 100644 --- a/packages/api/src/middlewares/docker.ts +++ b/packages/api/src/middlewares/docker.ts @@ -2,10 +2,10 @@ import { TRPCError } from "@trpc/server"; import { env } from "@homarr/docker/env"; -import { isDemoMode, publicProcedure } from "../trpc"; +import { isDemoMode, middlewareProcedure } from "../trpc"; export const dockerMiddleware = () => { - return publicProcedure.use(async ({ next }) => { + return middlewareProcedure.use(async ({ next }) => { if (env.ENABLE_DOCKER || isDemoMode) { return await next(); } diff --git a/packages/api/src/middlewares/integration.ts b/packages/api/src/middlewares/integration.ts index 320cc7f66..317ec498e 100644 --- a/packages/api/src/middlewares/integration.ts +++ b/packages/api/src/middlewares/integration.ts @@ -9,28 +9,74 @@ import type { AtLeastOneOf } from "@homarr/common/types"; import type { Database } from "@homarr/db"; import { and, eq, inArray } from "@homarr/db"; import { integrations } from "@homarr/db/schema"; -import type { IntegrationKind } from "@homarr/definitions"; +import type { IntegrationKind, WidgetIntegrationKind, WidgetKindWithIntegration } from "@homarr/definitions"; +import { getWidgetFeatureIntegrationKinds } from "@homarr/definitions"; +import { createLogger } from "@homarr/core/infrastructure/logs"; -import { publicProcedure } from "../trpc"; +import { middlewareProcedure } from "../trpc"; export type IntegrationAction = "query" | "interact"; -/** - * Creates a middleware that provides the integration in the context that is of the specified kinds - * @param action query for showing data or interact for mutating data - * @param kinds kinds of integrations that are supported - * @returns middleware that can be used with trpc - * @example publicProcedure.concat(createOneIntegrationMiddleware("query", "piHole", "homeAssistant")).query(...) - * @throws TRPCError NOT_FOUND if the integration was not found - * @throws TRPCError FORBIDDEN if the user does not have permission to perform the specified action on the specified integration - */ -export const createOneIntegrationMiddleware = ( - action: IntegrationAction, - ...kinds: AtLeastOneOf // Ensure at least one kind is provided +const logger = createLogger({ module: "integrationMiddleware" }); + +const getIntegrationKindForLog = (integration: object) => { + if ("kind" in integration && typeof integration.kind === "string") return integration.kind; + return "unknown"; +}; + +interface IntegrationAccessMetadata { + action: IntegrationAction; + cardinality: "one" | "many"; + userId: string | undefined; + requestedIntegrationIds: readonly string[]; + allowedIntegrationKinds: readonly IntegrationKind[]; +} + +interface WidgetIntegrationAvailability { + widgetKinds: readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]]; +} + +const getCompatibleIntegrationKindsOrThrow = ( + kinds: readonly TKind[], + widgetAvailability?: WidgetIntegrationAvailability, ) => { - return publicProcedure.input(z.object({ integrationId: z.string() })).use(async ({ input, ctx, next }) => { + if (!widgetAvailability) return kinds; + + const widgetIntegrationKinds = new Set( + widgetAvailability.widgetKinds.flatMap((widgetKind) => getWidgetFeatureIntegrationKinds(widgetKind)), + ); + const compatibleKinds = kinds.filter((kind) => widgetIntegrationKinds.has(kind)); + if (compatibleKinds.length >= 1) return compatibleKinds; + + logger.warn("No compatible integration kinds for widget route", { + widgetKinds: widgetAvailability.widgetKinds, + configuredIntegrationKinds: kinds, + reason: "no-compatible-widget-integration-kinds", + }); + throw new TRPCError({ + code: "NOT_FOUND", + message: "No integration kind is compatible with the consuming widget", + }); +}; + +const createOneIntegrationMiddlewareForKinds = ( + action: IntegrationAction, + kinds: readonly TKind[], + widgetAvailability?: WidgetIntegrationAvailability, +) => { + return middlewareProcedure.input(z.object({ integrationId: z.string() })).use(async ({ input, ctx, next }) => { + const compatibleKinds = getCompatibleIntegrationKindsOrThrow(kinds, widgetAvailability); + const accessMetadata: IntegrationAccessMetadata = { + action, + cardinality: "one", + userId: ctx.session?.user.id, + requestedIntegrationIds: [input.integrationId], + allowedIntegrationKinds: compatibleKinds, + }; + logger.debug("Resolving integration access", accessMetadata); + const integration = await ctx.db.query.integrations.findFirst({ - where: and(eq(integrations.id, input.integrationId), inArray(integrations.kind, kinds)), + where: and(eq(integrations.id, input.integrationId), inArray(integrations.kind, compatibleKinds)), with: { app: true, secrets: true, @@ -45,13 +91,18 @@ export const createOneIntegrationMiddleware = ( }); if (!integration) { + logger.warn("Integration access target was not found", accessMetadata); throw new TRPCError({ code: "NOT_FOUND", - message: `Integration with id ${input.integrationId} not found or not of kinds ${kinds.join(",")}`, + message: `Integration with id ${input.integrationId} not found or not of kinds ${compatibleKinds.join(",")}`, }); } await throwIfActionIsNotAllowedAsync(action, ctx.db, [integration], ctx.session); + logger.debug("Integration access granted", { + ...accessMetadata, + resolvedIntegrationKinds: [integration.kind], + }); const { secrets, @@ -78,6 +129,101 @@ export const createOneIntegrationMiddleware = ( }); }; +/** + * Creates a middleware that provides the integration in the context that is of the specified kinds + * @param action query for showing data or interact for mutating data + * @param kinds kinds of integrations that are supported + * @returns middleware that can be used with trpc + * @example publicProcedure.concat(createOneIntegrationMiddleware("query", "piHole", "homeAssistant")).query(...) + * @throws TRPCError NOT_FOUND if the integration was not found + * @throws TRPCError FORBIDDEN if the user does not have permission to perform the specified action on the specified integration + */ +export const createOneIntegrationMiddleware = ( + action: IntegrationAction, + ...kinds: AtLeastOneOf // Ensure at least one kind is provided +) => { + return createOneIntegrationMiddlewareForKinds(action, kinds); +}; + +const createManyIntegrationMiddlewareForKinds = ( + action: IntegrationAction, + kinds: readonly TKind[], + widgetAvailability?: WidgetIntegrationAvailability, +) => { + return middlewareProcedure + .input(z.object({ integrationIds: z.array(z.string()) })) + .use(async ({ ctx, input, next }) => { + const compatibleKinds = getCompatibleIntegrationKindsOrThrow(kinds, widgetAvailability); + const accessMetadata: IntegrationAccessMetadata = { + action, + cardinality: "many", + userId: ctx.session?.user.id, + requestedIntegrationIds: input.integrationIds, + allowedIntegrationKinds: compatibleKinds, + }; + logger.debug("Resolving integration access", accessMetadata); + + const findIntegrations = async () => { + if (input.integrationIds.length === 0) return []; + + return await ctx.db.query.integrations.findMany({ + where: and(inArray(integrations.id, input.integrationIds), inArray(integrations.kind, compatibleKinds)), + with: { + app: true, + secrets: true, + items: { + with: { + item: true, + }, + }, + userPermissions: true, + groupPermissions: true, + }, + }); + }; + const dbIntegrations = await findIntegrations(); + + const offset = input.integrationIds.length - dbIntegrations.length; + if (offset !== 0) { + logger.warn("Integration access targets were not found", { + ...accessMetadata, + missingIntegrationCount: offset, + resolvedIntegrationIds: dbIntegrations.map(({ id }) => id), + resolvedIntegrationKinds: dbIntegrations.map(({ kind }) => kind), + }); + throw new TRPCError({ + code: "NOT_FOUND", + message: `${offset} of the specified integrations not found or not of kinds ${compatibleKinds.join(",")}: ([${input.integrationIds.join(",")}] compared to [${dbIntegrations.map(({ id, kind }) => `${kind}:${id}`).join(",")}])`, + }); + } + + if (dbIntegrations.length >= 1) { + await throwIfActionIsNotAllowedAsync(action, ctx.db, dbIntegrations, ctx.session); + } + + logger.debug("Integration access granted", { + ...accessMetadata, + resolvedIntegrationKinds: dbIntegrations.map(({ kind }) => kind), + }); + + return next({ + ctx: { + integrations: dbIntegrations.map( + ({ secrets, kind, items: _ignore1, groupPermissions: _ignore2, userPermissions: _ignore3, ...rest }) => ({ + ...rest, + externalUrl: rest.app?.href ?? null, + kind: kind as TKind, + decryptedSecrets: secrets.map((secret) => ({ + ...secret, + value: decryptSecret(secret.value), + })), + }), + ), + }, + }); + }); +}; + /** * Creates a middleware that provides the integrations in the context that are of the specified kinds and have the specified item * It also ensures that the user has permission to perform the specified action on the integrations @@ -92,55 +238,115 @@ export const createManyIntegrationMiddleware = ( action: IntegrationAction, ...kinds: AtLeastOneOf // Ensure at least one kind is provided ) => { - return publicProcedure.input(z.object({ integrationIds: z.array(z.string()) })).use(async ({ ctx, input, next }) => { - const dbIntegrations = - input.integrationIds.length >= 1 - ? await ctx.db.query.integrations.findMany({ - where: and(inArray(integrations.id, input.integrationIds), inArray(integrations.kind, kinds)), - with: { - app: true, - secrets: true, - items: { - with: { - item: true, - }, - }, - userPermissions: true, - groupPermissions: true, - }, - }) - : []; - - const offset = input.integrationIds.length - dbIntegrations.length; - if (offset !== 0) { - throw new TRPCError({ - code: "NOT_FOUND", - message: `${offset} of the specified integrations not found or not of kinds ${kinds.join(",")}: ([${input.integrationIds.join(",")}] compared to [${dbIntegrations.map(({ id, kind }) => `${kind}:${id}`).join(",")}])`, - }); - } - - if (dbIntegrations.length >= 1) { - await throwIfActionIsNotAllowedAsync(action, ctx.db, dbIntegrations, ctx.session); - } - - return next({ - ctx: { - integrations: dbIntegrations.map( - ({ secrets, kind, items: _ignore1, groupPermissions: _ignore2, userPermissions: _ignore3, ...rest }) => ({ - ...rest, - externalUrl: rest.app?.href ?? null, - kind: kind as TKind, - decryptedSecrets: secrets.map((secret) => ({ - ...secret, - value: decryptSecret(secret.value), - })), - }), - ), - }, - }); - }); + return createManyIntegrationMiddlewareForKinds(action, kinds); }; +/** + * Widget procedures should use these adapters so their server-side permission + * guards stay aligned with the feature catalog automatically. + */ +export function createOneWidgetIntegrationMiddleware( + action: IntegrationAction, + widgetKind: TWidgetKind, +): ReturnType>>; +export function createOneWidgetIntegrationMiddleware< + TWidgetKind extends WidgetKindWithIntegration, + TIntegrationKind extends WidgetIntegrationKind, +>( + action: IntegrationAction, + widgetKind: TWidgetKind, + integrationKinds: readonly [TIntegrationKind, ...TIntegrationKind[]], +): ReturnType>; +export function createOneWidgetIntegrationMiddleware( + action: IntegrationAction, + widgetKind: WidgetKindWithIntegration, + integrationKinds?: readonly IntegrationKind[], +) { + const configuredIntegrationKinds = integrationKinds ?? getWidgetFeatureIntegrationKinds(widgetKind); + return createOneIntegrationMiddlewareForKinds(action, configuredIntegrationKinds, { widgetKinds: [widgetKind] }); +} + +export function createOneSharedWidgetIntegrationMiddleware< + TContractWidgetKind extends WidgetKindWithIntegration, + const TAdditionalWidgetKinds extends readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], +>( + action: IntegrationAction, + contractWidgetKind: TContractWidgetKind, + additionalWidgetKinds: TAdditionalWidgetKinds, +): ReturnType>>; +export function createOneSharedWidgetIntegrationMiddleware< + TContractWidgetKind extends WidgetKindWithIntegration, + const TAdditionalWidgetKinds extends readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], + TIntegrationKind extends WidgetIntegrationKind, +>( + action: IntegrationAction, + contractWidgetKind: TContractWidgetKind, + additionalWidgetKinds: TAdditionalWidgetKinds, + integrationKinds: readonly [TIntegrationKind, ...TIntegrationKind[]], +): ReturnType>; +export function createOneSharedWidgetIntegrationMiddleware( + action: IntegrationAction, + contractWidgetKind: WidgetKindWithIntegration, + additionalWidgetKinds: readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], + integrationKinds?: readonly IntegrationKind[], +) { + const configuredIntegrationKinds = integrationKinds ?? getWidgetFeatureIntegrationKinds(contractWidgetKind); + return createOneIntegrationMiddlewareForKinds(action, configuredIntegrationKinds, { + widgetKinds: [contractWidgetKind, ...additionalWidgetKinds], + }); +} + +export function createManyWidgetIntegrationMiddleware( + action: IntegrationAction, + widgetKind: TWidgetKind, +): ReturnType>>; +export function createManyWidgetIntegrationMiddleware< + TWidgetKind extends WidgetKindWithIntegration, + TIntegrationKind extends WidgetIntegrationKind, +>( + action: IntegrationAction, + widgetKind: TWidgetKind, + integrationKinds: readonly [TIntegrationKind, ...TIntegrationKind[]], +): ReturnType>; +export function createManyWidgetIntegrationMiddleware( + action: IntegrationAction, + widgetKind: WidgetKindWithIntegration, + integrationKinds?: readonly IntegrationKind[], +) { + const configuredIntegrationKinds = integrationKinds ?? getWidgetFeatureIntegrationKinds(widgetKind); + return createManyIntegrationMiddlewareForKinds(action, configuredIntegrationKinds, { widgetKinds: [widgetKind] }); +} + +export function createManySharedWidgetIntegrationMiddleware< + TContractWidgetKind extends WidgetKindWithIntegration, + const TAdditionalWidgetKinds extends readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], +>( + action: IntegrationAction, + contractWidgetKind: TContractWidgetKind, + additionalWidgetKinds: TAdditionalWidgetKinds, +): ReturnType>>; +export function createManySharedWidgetIntegrationMiddleware< + TContractWidgetKind extends WidgetKindWithIntegration, + const TAdditionalWidgetKinds extends readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], + TIntegrationKind extends WidgetIntegrationKind, +>( + action: IntegrationAction, + contractWidgetKind: TContractWidgetKind, + additionalWidgetKinds: TAdditionalWidgetKinds, + integrationKinds: readonly [TIntegrationKind, ...TIntegrationKind[]], +): ReturnType>; +export function createManySharedWidgetIntegrationMiddleware( + action: IntegrationAction, + contractWidgetKind: WidgetKindWithIntegration, + additionalWidgetKinds: readonly [WidgetKindWithIntegration, ...WidgetKindWithIntegration[]], + integrationKinds?: readonly IntegrationKind[], +) { + const configuredIntegrationKinds = integrationKinds ?? getWidgetFeatureIntegrationKinds(contractWidgetKind); + return createManyIntegrationMiddlewareForKinds(action, configuredIntegrationKinds, { + widgetKinds: [contractWidgetKind, ...additionalWidgetKinds], + }); +} + /** * Throws a TRPCError FORBIDDEN if the user does not have permission to perform the specified action on at least one of the specified integrations * @param action action to perform @@ -152,25 +358,39 @@ export const createManyIntegrationMiddleware = ( const throwIfActionIsNotAllowedAsync = async ( action: IntegrationAction, db: Database, - integrations: Parameters[1], + integrationRecords: Parameters[1], session: Session | null, ) => { if (action === "interact") { - const haveAllInteractAccess = integrations + const haveAllInteractAccess = integrationRecords .map((integration) => constructIntegrationPermissions(integration, session)) .every(({ hasInteractAccess }) => hasInteractAccess); if (haveAllInteractAccess) return; + logger.warn("Integration access denied", { + action, + userId: session?.user.id, + integrationIds: integrationRecords.map(({ id }) => id), + integrationKinds: integrationRecords.map(getIntegrationKindForLog), + }); + throw new TRPCError({ code: "FORBIDDEN", message: "User does not have permission to interact with at least one of the specified integrations", }); } - const hasQueryAccess = await hasQueryAccessToIntegrationsAsync(db, integrations, session); + const hasQueryAccess = await hasQueryAccessToIntegrationsAsync(db, integrationRecords, session); if (hasQueryAccess) return; + logger.warn("Integration access denied", { + action, + userId: session?.user.id, + integrationIds: integrationRecords.map(({ id }) => id), + integrationKinds: integrationRecords.map(getIntegrationKindForLog), + }); + throw new TRPCError({ code: "FORBIDDEN", message: "User does not have permission to query at least one of the specified integration", diff --git a/packages/api/src/middlewares/item.ts b/packages/api/src/middlewares/item.ts index 375e21607..815e94f86 100644 --- a/packages/api/src/middlewares/item.ts +++ b/packages/api/src/middlewares/item.ts @@ -5,10 +5,10 @@ import { and, eq } from "@homarr/db"; import { items } from "@homarr/db/schema"; import type { WidgetKind } from "@homarr/definitions"; -import { publicProcedure } from "../trpc"; +import { middlewareProcedure } from "../trpc"; export const createOneItemMiddleware = (kind: WidgetKind) => { - return publicProcedure.input(z.object({ itemId: z.string() })).use(async ({ input, ctx, next }) => { + return middlewareProcedure.input(z.object({ itemId: z.string() })).use(async ({ input, ctx, next }) => { const item = await ctx.db.query.items.findFirst({ where: and(eq(items.id, input.itemId), eq(items.kind, kind)), }); diff --git a/packages/api/src/middlewares/kubernetes.ts b/packages/api/src/middlewares/kubernetes.ts index 8cefc0c35..9468274e4 100644 --- a/packages/api/src/middlewares/kubernetes.ts +++ b/packages/api/src/middlewares/kubernetes.ts @@ -2,10 +2,10 @@ import { TRPCError } from "@trpc/server"; import { env } from "@homarr/docker/env"; -import { publicProcedure } from "../trpc"; +import { middlewareProcedure } from "../trpc"; export const kubernetesMiddleware = () => { - return publicProcedure.use(async ({ next }) => { + return middlewareProcedure.use(async ({ next }) => { if (env.ENABLE_KUBERNETES) { return await next(); } diff --git a/packages/api/src/query-cache.ts b/packages/api/src/query-cache.ts index a1cb201ea..e2ca9aafe 100644 --- a/packages/api/src/query-cache.ts +++ b/packages/api/src/query-cache.ts @@ -1,5 +1,7 @@ import type { QueryKey } from "@tanstack/react-query"; +import { generatedWidgetOperationPolicies } from "@homarr/definitions"; + // RSC-prefetched data must survive the hydration pass without an immediate // duplicate fetch. Widget-specific intervals still control live refreshes. export const queryCacheDefaultStaleTimeMs = 30_000; @@ -11,8 +13,15 @@ const widgetDataQueryPaths = new Set(["app.byId", "app.byIds", "docker.getContai // Beszel system stats are large time-series payloads and were deliberately kept out of // the persisted cache in #6289; live stats come from an SSE subscription instead. const excludedWidgetPaths = new Set(["widget.app.ping", "widget.beszel.getSystemStats"]); +const generatedWidgetPersistencePolicies = new Map( + generatedWidgetOperationPolicies + .filter((policy) => policy.kind === "query") + .map((policy) => [policy.path.join("."), policy.persist] as const), +); export const isWidgetDataTrpcPath = (path: string) => { + const generatedPolicy = generatedWidgetPersistencePolicies.get(path); + if (generatedPolicy !== undefined) return generatedPolicy; if (path.startsWith("widget.")) return !excludedWidgetPaths.has(path); return widgetDataQueryPaths.has(path); }; diff --git a/packages/api/src/router/assistant.ts b/packages/api/src/router/assistant.ts index 03540ef0a..d84a13a4b 100644 --- a/packages/api/src/router/assistant.ts +++ b/packages/api/src/router/assistant.ts @@ -25,7 +25,9 @@ import { assistantProviderPresets, assistantProviderRequiresApiKey, getIconUrl, + integrationKinds, resolveAssistantModelId, + widgetKinds, } from "@homarr/definitions"; import type { createTRPCContext } from "../trpc"; @@ -336,6 +338,7 @@ export const getAssistantContextEntitiesAsync = async (ctx: AssistantContext): P boardRouter.createCaller(ctx).getAllBoards(), ctx.db.query.integrations.findMany({ columns: { id: true, name: true, kind: true }, + where: inArray(integrations.kind, integrationKinds), with: { userPermissions: { where: eq(integrationUserPermissions.userId, ctx.session.user.id), @@ -364,9 +367,12 @@ export const getAssistantContextEntitiesAsync = async (ctx: AssistantContext): P ? [] : await ctx.db.query.items.findMany({ columns: { id: true, boardId: true, kind: true }, - where: inArray( - items.boardId, - availableBoards.map((board) => board.id), + where: and( + inArray( + items.boardId, + availableBoards.map((board) => board.id), + ), + inArray(items.kind, widgetKinds), ), orderBy: asc(items.kind), limit: 500, diff --git a/packages/api/src/router/board.ts b/packages/api/src/router/board.ts index 345dd1161..b57e6c37b 100644 --- a/packages/api/src/router/board.ts +++ b/packages/api/src/router/board.ts @@ -19,9 +19,7 @@ import { groupMembers, groupPermissions, groups, - integrationGroupPermissions, integrationItems, - integrationUserPermissions, integrations, apps, itemLayouts, @@ -70,12 +68,11 @@ import { sectionSchema, sharedItemSchema } from "@homarr/validation/shared"; import { createTRPCRouter, permissionRequiredProcedure, protectedProcedure, publicProcedure } from "../trpc"; import { throwIfActionForbiddenAsync } from "./board/board-access"; -import { throwIfActionForbiddenAsync as throwIfIntegrationActionForbiddenAsync } from "./integration/integration-access"; +import { throwIfIntegrationActionsForbiddenAsync } from "./integration/integration-access"; import { throwIfCustomWidgetBoardDuplicationForbidden, throwIfCustomWidgetPlacementChangeForbidden, } from "./board/custom-widget-placement-access"; -import { validateTimetableOptionsChangeAsync } from "./widgets/timetable"; interface BoardItemPlacementRectangle { xOffset: number; @@ -123,6 +120,81 @@ const findFirstAvailableBoardItemPosition = ( return null; }; +interface WidgetPlacementRecord { + id: string; + kind: WidgetKind; +} + +interface WidgetConfigurationRecord extends WidgetPlacementRecord { + integrationIds: readonly string[]; +} + +interface IntegrationKindRecord { + id: string; + kind: IntegrationKind; +} + +const haveSameIntegrationIds = (left: readonly string[], right: readonly string[]) => + left.length === right.length && left.every((integrationId) => right.includes(integrationId)); + +const validateWidgetConfigurationsAsync = async ( + ctx: Parameters[0], + submittedItems: readonly WidgetConfigurationRecord[], + storedItems: readonly WidgetConfigurationRecord[], +) => { + const storedItemsById = new Map(storedItems.map((item) => [item.id, item])); + const changedItems = submittedItems.filter((item) => { + const storedItem = storedItemsById.get(item.id); + if (!storedItem || storedItem.kind !== item.kind) return true; + return !haveSameIntegrationIds(item.integrationIds, storedItem.integrationIds); + }); + if (changedItems.length === 0) return; + + const selectedIntegrationIds = [...new Set(changedItems.flatMap(({ integrationIds }) => integrationIds))]; + let integrationRecords: IntegrationKindRecord[] = []; + if (selectedIntegrationIds.length > 0) { + integrationRecords = await ctx.db.query.integrations.findMany({ + columns: { id: true, kind: true }, + where: inArray(integrations.id, selectedIntegrationIds), + }); + } + const integrationRecordsById = new Map(integrationRecords.map((integration) => [integration.id, integration])); + const invalidIntegrationIds = selectedIntegrationIds.filter( + (integrationId) => !integrationRecordsById.has(integrationId), + ); + if (invalidIntegrationIds.length > 0) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: `Invalid integration IDs: ${invalidIntegrationIds.join(", ")}`, + }); + } + + const addedOrReconfiguredIntegrationIds = [ + ...new Set( + changedItems.flatMap((item) => { + const storedItem = storedItemsById.get(item.id); + if (!storedItem || storedItem.kind !== item.kind) return item.integrationIds; + return item.integrationIds.filter((integrationId) => !storedItem.integrationIds.includes(integrationId)); + }), + ), + ]; + await throwIfIntegrationActionsForbiddenAsync(ctx, addedOrReconfiguredIntegrationIds, "use"); + + for (const item of changedItems) { + const selectedIntegrationKinds = item.integrationIds.flatMap((integrationId) => { + const integration = integrationRecordsById.get(integrationId); + return integration ? [integration.kind] : []; + }); + const integrationIssue = getWidgetIntegrationIssue(item.kind, selectedIntegrationKinds); + if (!integrationIssue) continue; + + throw new TRPCError({ + code: "BAD_REQUEST", + message: getWidgetIntegrationIssueMessage(item.kind, integrationIssue), + }); + } +}; + export const boardRouter = createTRPCRouter({ exists: permissionRequiredProcedure .requiresPermission("board-create") @@ -633,7 +705,7 @@ export const boardRouter = createTRPCRouter({ mcp: { enabled: true, description: - "Duplicate an existing board into a new board. Requires board-create permission and view permission on the source board. REQUIRED: id (source board ID), name (unique name for the new board). Returns { boardId }", + "Duplicate an existing board into a new board. Requires board-create permission, view permission on the source board, and use permission for every linked integration. Disabled or invalid widget configurations must be removed before duplication. REQUIRED: id (source board ID), name (unique name for the new board). Returns { boardId }", }, }) .input(boardDuplicateSchema) @@ -670,6 +742,15 @@ export const boardRouter = createTRPCRouter({ const { sections: boardSections, items: boardItems, layouts: boardLayouts, ...boardProps } = board; throwIfCustomWidgetBoardDuplicationForbidden(ctx.session.user.permissions.includes("admin"), boardItems); + await validateWidgetConfigurationsAsync( + ctx, + boardItems.map((item) => ({ + id: item.id, + kind: item.kind, + integrationIds: item.integrations.map(({ integrationId }) => integrationId), + })), + [], + ); const newBoardId = createId(); @@ -750,17 +831,19 @@ export const boardRouter = createTRPCRouter({ const sectionLayoutsToInsert: InferInsertModel[] = boardSections .flatMap((section) => - section.layouts.map((layoutSection): InferInsertModel => ({ - ...layoutSection, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - layoutId: layoutsMap.get(layoutSection.layoutId)!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - sectionId: sectionMap.get(layoutSection.sectionId)!, - parentSectionId: layoutSection.parentSectionId - ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - sectionMap.get(layoutSection.parentSectionId)! - : layoutSection.parentSectionId, - })), + section.layouts.map( + (layoutSection): InferInsertModel => ({ + ...layoutSection, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + layoutId: layoutsMap.get(layoutSection.layoutId)!, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + sectionId: sectionMap.get(layoutSection.sectionId)!, + parentSectionId: layoutSection.parentSectionId + ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + sectionMap.get(layoutSection.parentSectionId)! + : layoutSection.parentSectionId, + }), + ), ) .concat( (generatedMobilePositions?.sectionLayouts ?? []).map((layoutSection) => ({ @@ -777,11 +860,13 @@ export const boardRouter = createTRPCRouter({ ); const sectionCollapseStatesToInsert: InferInsertModel[] = boardSections.flatMap( (section) => - section.collapseStates.map((collapseState): InferInsertModel => ({ - ...collapseState, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - sectionId: sectionMap.get(collapseState.sectionId)!, - })), + section.collapseStates.map( + (collapseState): InferInsertModel => ({ + ...collapseState, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + sectionId: sectionMap.get(collapseState.sectionId)!, + }), + ), ); const itemMap = new Map(boardItems.map((item) => [item.id, createId()])); @@ -796,15 +881,17 @@ export const boardRouter = createTRPCRouter({ const itemLayoutsToInsert: InferInsertModel[] = boardItems .flatMap((item) => - item.layouts.map((layoutSection): InferInsertModel => ({ - ...layoutSection, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - sectionId: sectionMap.get(layoutSection.sectionId)!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - itemId: itemMap.get(layoutSection.itemId)!, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - layoutId: layoutsMap.get(layoutSection.layoutId)!, - })), + item.layouts.map( + (layoutSection): InferInsertModel => ({ + ...layoutSection, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + sectionId: sectionMap.get(layoutSection.sectionId)!, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + itemId: itemMap.get(layoutSection.itemId)!, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + layoutId: layoutsMap.get(layoutSection.layoutId)!, + }), + ), ) .concat( (generatedMobilePositions?.itemSectionLayouts ?? []).map((layoutSection) => ({ @@ -818,34 +905,12 @@ export const boardRouter = createTRPCRouter({ })), ); - // Creates a list with all integration ids the user has access to - const hasAccessForAll = ctx.session.user.permissions.includes("integration-use-all"); - const integrationIdsWithAccess = hasAccessForAll - ? [] - : await ctx.db - .selectDistinct({ - id: integrationGroupPermissions.integrationId, - }) - .from(integrationGroupPermissions) - .leftJoin(groupMembers, eq(integrationGroupPermissions.groupId, groupMembers.groupId)) - .where(eq(groupMembers.userId, ctx.session.user.id)) - .union( - ctx.db - .selectDistinct({ id: integrationUserPermissions.integrationId }) - .from(integrationUserPermissions) - .where(eq(integrationUserPermissions.userId, ctx.session.user.id)), - ) - .then((result) => result.map((row) => row.id)); - const itemIntegrationsToInsert = boardItems.flatMap((item) => - item.integrations - // Restrict integrations to only those the user has access to - .filter(({ integrationId }) => integrationIdsWithAccess.includes(integrationId) || hasAccessForAll) - .map((integration) => ({ - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - itemId: itemMap.get(item.id)!, - integrationId: integration.integrationId, - })), + item.integrations.map((integration) => ({ + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + itemId: itemMap.get(item.id)!, + integrationId: integration.integrationId, + })), ); await handleTransactionsAsync(ctx.db, { @@ -1488,6 +1553,7 @@ export const boardRouter = createTRPCRouter({ await throwIfActionForbiddenAsync(ctx, eq(boards.id, input.id), "modify"); const dbBoard = await getFullBoardWithWhereAsync(ctx.db, eq(boards.id, input.id), ctx.session.user.id); + await validateWidgetConfigurationsAsync(ctx, input.items, dbBoard.items); throwIfCustomWidgetPlacementChangeForbidden({ isAdmin: ctx.session.user.permissions.includes("admin"), submittedItems: input.items, @@ -1497,6 +1563,7 @@ export const boardRouter = createTRPCRouter({ for (const item of input.items) { if (item.kind !== "timetable") continue; const previousItem = dbBoard.items.find((dbItem) => dbItem.id === item.id); + const { validateTimetableOptionsChangeAsync } = await import("./timetable-options-validation"); await validateTimetableOptionsChangeAsync( item.options, previousItem?.kind === "timetable" ? previousItem.options : undefined, @@ -1524,15 +1591,17 @@ export const boardRouter = createTRPCRouter({ const sectionLayoutsToInsert = addedSections .filter((section) => section.kind === "container") .flatMap((section) => - section.layouts.map((sectionLayout): InferInsertModel => ({ - layoutId: sectionLayout.layoutId, - sectionId: section.id, - parentSectionId: sectionLayout.parentSectionId, - height: sectionLayout.height, - width: sectionLayout.width, - xOffset: sectionLayout.xOffset, - yOffset: sectionLayout.yOffset, - })), + section.layouts.map( + (sectionLayout): InferInsertModel => ({ + layoutId: sectionLayout.layoutId, + sectionId: section.id, + parentSectionId: sectionLayout.parentSectionId, + height: sectionLayout.height, + width: sectionLayout.width, + xOffset: sectionLayout.xOffset, + yOffset: sectionLayout.yOffset, + }), + ), ); if (sectionLayoutsToInsert.length > 0) { @@ -1554,15 +1623,17 @@ export const boardRouter = createTRPCRouter({ ); await transaction.insert(schema.itemLayouts).values( addedItems.flatMap((item) => - item.layouts.map((layoutSection): InferInsertModel => ({ - layoutId: layoutSection.layoutId, - sectionId: layoutSection.sectionId, - itemId: item.id, - height: layoutSection.height, - width: layoutSection.width, - xOffset: layoutSection.xOffset, - yOffset: layoutSection.yOffset, - })), + item.layouts.map( + (layoutSection): InferInsertModel => ({ + layoutId: layoutSection.layoutId, + sectionId: layoutSection.sectionId, + itemId: item.id, + height: layoutSection.height, + width: layoutSection.width, + xOffset: layoutSection.xOffset, + yOffset: layoutSection.yOffset, + }), + ), ), ); } @@ -1720,15 +1791,17 @@ export const boardRouter = createTRPCRouter({ const sectionLayoutsToInsert = addedSections .filter((section) => section.kind === "container") .flatMap((section) => - section.layouts.map((sectionLayout): InferInsertModel => ({ - layoutId: sectionLayout.layoutId, - sectionId: section.id, - parentSectionId: sectionLayout.parentSectionId, - height: sectionLayout.height, - width: sectionLayout.width, - xOffset: sectionLayout.xOffset, - yOffset: sectionLayout.yOffset, - })), + section.layouts.map( + (sectionLayout): InferInsertModel => ({ + layoutId: sectionLayout.layoutId, + sectionId: section.id, + parentSectionId: sectionLayout.parentSectionId, + height: sectionLayout.height, + width: sectionLayout.width, + xOffset: sectionLayout.xOffset, + yOffset: sectionLayout.yOffset, + }), + ), ); if (sectionLayoutsToInsert.length > 0) { @@ -1755,15 +1828,17 @@ export const boardRouter = createTRPCRouter({ .insert(itemLayouts) .values( addedItems.flatMap((item) => - item.layouts.map((layoutSection): InferInsertModel => ({ - layoutId: layoutSection.layoutId, - sectionId: layoutSection.sectionId, - itemId: item.id, - height: layoutSection.height, - width: layoutSection.width, - xOffset: layoutSection.xOffset, - yOffset: layoutSection.yOffset, - })), + item.layouts.map( + (layoutSection): InferInsertModel => ({ + layoutId: layoutSection.layoutId, + sectionId: layoutSection.sectionId, + itemId: item.id, + height: layoutSection.height, + width: layoutSection.width, + xOffset: layoutSection.xOffset, + yOffset: layoutSection.yOffset, + }), + ), ), ) .run(); @@ -2066,6 +2141,12 @@ export const boardRouter = createTRPCRouter({ .output(z.object({ itemId: z.string() })) .mutation(async ({ ctx, input }) => { await throwIfActionForbiddenAsync(ctx, eq(boards.id, input.boardId), "modify"); + + await validateWidgetConfigurationsAsync( + ctx, + [{ id: "", kind: input.kind, integrationIds: input.integrationIds }], + [], + ); throwIfCustomWidgetPlacementChangeForbidden({ isAdmin: ctx.session.user.permissions.includes("admin"), submittedItems: [{ id: "", kind: input.kind, options: input.options }], @@ -2073,38 +2154,10 @@ export const boardRouter = createTRPCRouter({ }); if (input.kind === "timetable") { + const { validateTimetableOptionsChangeAsync } = await import("./timetable-options-validation"); await validateTimetableOptionsChangeAsync(input.options); } - let selectedIntegrationKinds: IntegrationKind[] = []; - if (input.integrationIds.length > 0) { - const existing = await ctx.db.query.integrations.findMany({ - columns: { id: true, kind: true }, - where: inArray(integrations.id, input.integrationIds), - }); - const validIds = new Set(existing.map((row) => row.id)); - const invalid = input.integrationIds.filter((id) => !validIds.has(id)); - if (invalid.length > 0) { - throw new TRPCError({ code: "BAD_REQUEST", message: `Invalid integration IDs: ${invalid.join(", ")}` }); - } - - selectedIntegrationKinds = existing.map((integration) => integration.kind); - - await Promise.all( - input.integrationIds.map((integrationId) => - throwIfIntegrationActionForbiddenAsync(ctx, eq(integrations.id, integrationId), "use"), - ), - ); - } - - const integrationIssue = getWidgetIntegrationIssue(input.kind, selectedIntegrationKinds); - if (integrationIssue) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: getWidgetIntegrationIssueMessage(input.kind, integrationIssue), - }); - } - return await serializeBoardItemPlacementAsync(input.boardId, async () => { const board = await ctx.db.query.boards.findFirst({ where: eq(boards.id, input.boardId), diff --git a/packages/api/src/router/home.ts b/packages/api/src/router/home.ts index b94cbc18c..96a24df2c 100644 --- a/packages/api/src/router/home.ts +++ b/packages/api/src/router/home.ts @@ -19,12 +19,12 @@ import { import { getAppManagementAccess, getIntegrationManagementAccess } from "@homarr/definitions"; import { createTRPCRouter, publicProcedure } from "../trpc"; -const getFullAccessIntegrationIdsAsync = async (db: Database, userId: string) => { - const groupsOfCurrentUser = await db.query.groupMembers.findMany({ +const getFullAccessIntegrationIdsAsync = async (database: Database, userId: string) => { + const groupsOfCurrentUser = await database.query.groupMembers.findMany({ where: eq(groupMembers.userId, userId), }); - const accessibleIntegrations = await db.query.integrations.findMany({ + const accessibleIntegrations = await database.query.integrations.findMany({ columns: { id: true, }, diff --git a/packages/api/src/router/integration/integration-access.ts b/packages/api/src/router/integration/integration-access.ts index 78f8961e4..d8e76273c 100644 --- a/packages/api/src/router/integration/integration-access.ts +++ b/packages/api/src/router/integration/integration-access.ts @@ -4,9 +4,26 @@ import type { Session } from "@homarr/auth"; import { constructIntegrationPermissions } from "@homarr/auth/shared"; import type { Database, SQL } from "@homarr/db"; import { eq, inArray } from "@homarr/db"; -import { groupMembers, integrationGroupPermissions, integrationUserPermissions } from "@homarr/db/schema"; +import { groupMembers, integrationGroupPermissions, integrations, integrationUserPermissions } from "@homarr/db/schema"; import type { IntegrationPermission } from "@homarr/definitions"; +interface IntegrationPermissionRecord { + userPermissions: { permission: IntegrationPermission }[]; + groupPermissions: { permission: IntegrationPermission }[]; +} + +const hasIntegrationPermission = ( + integration: IntegrationPermissionRecord, + session: Session | null, + permission: IntegrationPermission, +) => { + const { hasUseAccess, hasInteractAccess, hasFullAccess } = constructIntegrationPermissions(integration, session); + if (hasFullAccess) return true; + if (permission === "interact") return hasInteractAccess; + if (permission === "use") return hasUseAccess; + return false; +}; + /** * Throws NOT_FOUND if user is not allowed to perform action on integration * @param ctx trpc router context @@ -44,23 +61,51 @@ export const throwIfActionForbiddenAsync = async ( notAllowed(); } - const { hasUseAccess, hasInteractAccess, hasFullAccess } = constructIntegrationPermissions(integration, session); - - if (hasFullAccess) { - return; // As full access is required and user has full access, allow - } - - if (["interact", "use"].includes(permission) && hasInteractAccess) { - return; // As interact access is required and user has interact access, allow - } - - if (permission === "use" && hasUseAccess) { - return; // As use access is required and user has use access, allow - } + if (hasIntegrationPermission(integration, session, permission)) return; notAllowed(); }; +/** + * Batched variant for feature configuration flows. It applies the same direct + * user, group, and global permission rules without issuing one query per ID. + */ +export const throwIfIntegrationActionsForbiddenAsync = async ( + ctx: { db: Database; session: Session | null }, + integrationIds: readonly string[], + permission: IntegrationPermission, +) => { + const uniqueIntegrationIds = [...new Set(integrationIds)]; + if (uniqueIntegrationIds.length === 0) return; + + const { db, session } = ctx; + const groupsOfCurrentUser = await db.query.groupMembers.findMany({ + where: eq(groupMembers.userId, session?.user.id ?? ""), + }); + const integrationRecords = await db.query.integrations.findMany({ + where: inArray(integrations.id, uniqueIntegrationIds), + columns: { id: true }, + with: { + userPermissions: { + where: eq(integrationUserPermissions.userId, session?.user.id ?? ""), + }, + groupPermissions: { + where: inArray( + integrationGroupPermissions.groupId, + groupsOfCurrentUser.map(({ groupId }) => groupId).concat(""), + ), + }, + }, + }); + + if ( + integrationRecords.length !== uniqueIntegrationIds.length || + !integrationRecords.every((integration) => hasIntegrationPermission(integration, session, permission)) + ) { + notAllowed(); + } +}; + /** * This method returns NOT_FOUND to prevent snooping on board existence * A function is used to use the method without return statement diff --git a/packages/api/src/router/integration/integration-router.ts b/packages/api/src/router/integration/integration-router.ts index a3a20f6e9..2c09e585b 100644 --- a/packages/api/src/router/integration/integration-router.ts +++ b/packages/api/src/router/integration/integration-router.ts @@ -27,7 +27,7 @@ import { integrationKinds, integrationSecretKindObject, } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { invalidateIntegrationCacheAsync } from "@homarr/redis"; import { byIdSchema } from "@homarr/validation/common"; import { @@ -156,9 +156,21 @@ export const integrationRouter = createTRPCRouter({ }) .input(byIdSchema) .query(async ({ ctx, input }) => { - await throwIfActionForbiddenAsync(ctx, eq(integrations.id, input.id), "full"); + const integrationWhere = eq(integrations.id, input.id); + + await throwIfActionForbiddenAsync(ctx, integrationWhere, "full").catch((error) => { + if (error instanceof TRPCError && error.code === "NOT_FOUND") { + logger.warn("Integration lookup refused", { + integrationId: input.id, + errorCode: error.code, + reason: "integration-not-found-or-forbidden", + }); + } + throw error; + }); + const integration = await ctx.db.query.integrations.findFirst({ - where: eq(integrations.id, input.id), + where: integrationWhere, with: { secrets: { columns: { @@ -179,6 +191,11 @@ export const integrationRouter = createTRPCRouter({ }); if (!integration) { + logger.warn("Integration lookup refused", { + integrationId: input.id, + errorCode: "NOT_FOUND", + reason: "integration-not-found", + }); throw new TRPCError({ code: "NOT_FOUND", message: "Integration not found", diff --git a/packages/api/src/router/integration/integration-test-connection.ts b/packages/api/src/router/integration/integration-test-connection.ts index a1c735f25..79ac09898 100644 --- a/packages/api/src/router/integration/integration-test-connection.ts +++ b/packages/api/src/router/integration/integration-test-connection.ts @@ -4,7 +4,7 @@ import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import type { Integration } from "@homarr/db/schema"; import type { IntegrationKind, IntegrationSecretKind } from "@homarr/definitions"; import { getAllSecretKindOptions } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; const logger = createLogger({ module: "integrationTestConnection" }); diff --git a/packages/api/src/router/onboard/onboard-router.ts b/packages/api/src/router/onboard/onboard-router.ts index 855c63705..1a41f5755 100644 --- a/packages/api/src/router/onboard/onboard-router.ts +++ b/packages/api/src/router/onboard/onboard-router.ts @@ -218,6 +218,7 @@ export const onboardRouter = createTRPCRouter({ const discoveredApps: DiscoveredApp[] = []; for (const service of discovery.services) { + const widgetKind = service.widgetKind; if (service.integrationKind) { discoveredIntegrations.push({ sourceId: service.sourceId, @@ -231,7 +232,7 @@ export const onboardRouter = createTRPCRouter({ group: service.group, boardName: service.boardName, host: service.host, - widgetKind: service.widgetKind, + widgetKind, description: service.description, pingUrl: service.pingUrl, }); @@ -249,7 +250,7 @@ export const onboardRouter = createTRPCRouter({ description: service.description, pingUrl: service.pingUrl, host: service.host, - widgetKind: service.widgetKind, + widgetKind, }); } } diff --git a/packages/api/src/router/test/integration/integration-test-connection.spec.ts b/packages/api/src/router/test/integration/integration-test-connection.spec.ts index 0da8356c4..5cc8ea3ea 100644 --- a/packages/api/src/router/test/integration/integration-test-connection.spec.ts +++ b/packages/api/src/router/test/integration/integration-test-connection.spec.ts @@ -1,7 +1,8 @@ import { describe, expect, test, vi } from "vitest"; import * as homarrDefinitions from "@homarr/definitions"; -import * as homarrIntegrations from "@homarr/integrations"; +import type * as homarrIntegrations from "@homarr/integrations"; +import * as homarrIntegrationFactory from "@homarr/integrations/factory"; import { testConnectionAsync } from "../../integration/integration-test-connection"; @@ -18,7 +19,7 @@ vi.mock("@homarr/common/server", async (importActual) => { describe("testConnectionAsync should run test connection of integration", () => { test("with input of only form secrets matching api key kind it should use form apiKey", async () => { // Arrange - const factorySpy = vi.spyOn(homarrIntegrations, "createIntegrationAsync"); + const factorySpy = vi.spyOn(homarrIntegrationFactory, "createIntegrationAsync"); const optionsSpy = vi.spyOn(homarrDefinitions, "getAllSecretKindOptions"); factorySpy.mockReturnValue( Promise.resolve({ @@ -61,7 +62,7 @@ describe("testConnectionAsync should run test connection of integration", () => test("with input of only null form secrets and the required db secrets matching api key kind it should use db apiKey", async () => { // Arrange - const factorySpy = vi.spyOn(homarrIntegrations, "createIntegrationAsync"); + const factorySpy = vi.spyOn(homarrIntegrationFactory, "createIntegrationAsync"); const optionsSpy = vi.spyOn(homarrDefinitions, "getAllSecretKindOptions"); factorySpy.mockReturnValue( Promise.resolve({ @@ -111,7 +112,7 @@ describe("testConnectionAsync should run test connection of integration", () => test("with input of form and db secrets matching api key kind it should use form apiKey", async () => { // Arrange - const factorySpy = vi.spyOn(homarrIntegrations, "createIntegrationAsync"); + const factorySpy = vi.spyOn(homarrIntegrationFactory, "createIntegrationAsync"); const optionsSpy = vi.spyOn(homarrDefinitions, "getAllSecretKindOptions"); factorySpy.mockReturnValue( Promise.resolve({ @@ -161,7 +162,7 @@ describe("testConnectionAsync should run test connection of integration", () => test("with input of form apiKey and db secrets for username and password it should use form apiKey when both is allowed", async () => { // Arrange - const factorySpy = vi.spyOn(homarrIntegrations, "createIntegrationAsync"); + const factorySpy = vi.spyOn(homarrIntegrationFactory, "createIntegrationAsync"); const optionsSpy = vi.spyOn(homarrDefinitions, "getAllSecretKindOptions"); factorySpy.mockReturnValue( Promise.resolve({ @@ -215,7 +216,7 @@ describe("testConnectionAsync should run test connection of integration", () => test("with input of null form apiKey and db secrets for username and password it should use db username and password when both is allowed", async () => { // Arrange - const factorySpy = vi.spyOn(homarrIntegrations, "createIntegrationAsync"); + const factorySpy = vi.spyOn(homarrIntegrationFactory, "createIntegrationAsync"); const optionsSpy = vi.spyOn(homarrDefinitions, "getAllSecretKindOptions"); factorySpy.mockReturnValue( Promise.resolve({ diff --git a/packages/api/src/router/timetable-options-validation.ts b/packages/api/src/router/timetable-options-validation.ts new file mode 100644 index 000000000..755f5e722 --- /dev/null +++ b/packages/api/src/router/timetable-options-validation.ts @@ -0,0 +1,169 @@ +import { lookup } from "node:dns/promises"; +import { BlockList, isIP } from "node:net"; +import { TRPCError } from "@trpc/server"; +import { parse } from "superjson"; +import z from "zod"; + +import type { TimetableResolvedAddress } from "@homarr/request-handler/timetable"; +import { DEFAULT_TIMETABLE_BASE_URL, normalizeTimetableBaseUrl } from "@homarr/request-handler/timetable-url"; + +const timetableOptionsSchema = z.object({ baseUrl: z.string().optional() }).passthrough(); + +const blockedTimetableIpv4Addresses = new BlockList(); +const blockedTimetableIpv6Addresses = new BlockList(); +const blockedTimetableSubnets = [ + ["0.0.0.0", 8, "ipv4"], + ["10.0.0.0", 8, "ipv4"], + ["100.64.0.0", 10, "ipv4"], + ["127.0.0.0", 8, "ipv4"], + ["169.254.0.0", 16, "ipv4"], + ["172.16.0.0", 12, "ipv4"], + ["192.0.0.0", 24, "ipv4"], + ["192.0.2.0", 24, "ipv4"], + ["192.88.99.0", 24, "ipv4"], + ["192.168.0.0", 16, "ipv4"], + ["198.18.0.0", 15, "ipv4"], + ["198.51.100.0", 24, "ipv4"], + ["203.0.113.0", 24, "ipv4"], + ["224.0.0.0", 4, "ipv4"], + ["240.0.0.0", 4, "ipv4"], + ["::", 96, "ipv6"], + ["::ffff:0:0", 96, "ipv6"], + ["::ffff:0:0:0", 96, "ipv6"], + ["64:ff9b::", 96, "ipv6"], + ["64:ff9b:1::", 48, "ipv6"], + ["100::", 64, "ipv6"], + ["2001::", 32, "ipv6"], + ["2001:2::", 48, "ipv6"], + ["2001:10::", 28, "ipv6"], + ["2001:db8::", 32, "ipv6"], + ["2002::", 16, "ipv6"], + ["fc00::", 7, "ipv6"], + ["fe80::", 10, "ipv6"], + ["fec0::", 10, "ipv6"], + ["ff00::", 8, "ipv6"], +] as const; + +for (const [network, prefix, family] of blockedTimetableSubnets) { + const blockList = family === "ipv4" ? blockedTimetableIpv4Addresses : blockedTimetableIpv6Addresses; + blockList.addSubnet(network, prefix, family); +} + +export const normalizeTimetableBaseUrlOrThrowBadRequest = (baseUrl: string) => { + try { + return normalizeTimetableBaseUrl(baseUrl); + } catch (cause) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: cause instanceof Error ? cause.message : "Invalid timetable base URL", + cause, + }); + } +}; + +const throwInvalidSavedTimetableConfiguration = (cause: unknown): never => { + throw new TRPCError({ + code: "INTERNAL_SERVER_ERROR", + message: "Timetable widget configuration is invalid", + cause, + }); +}; + +export const parseSavedTimetableOptions = (serializedOptions: string) => { + try { + return timetableOptionsSchema.parse(parse(serializedOptions)); + } catch (cause) { + return throwInvalidSavedTimetableConfiguration(cause); + } +}; + +export const normalizeSavedTimetableBaseUrl = (baseUrl: string) => { + try { + return normalizeTimetableBaseUrl(baseUrl); + } catch (cause) { + return throwInvalidSavedTimetableConfiguration(cause); + } +}; + +const normalizeHostname = (hostname: string) => { + const withoutBrackets = hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname; + return withoutBrackets.toLowerCase().replace(/\.$/, ""); +}; + +const isBlockedTimetableAddress = (address: string, family: number) => { + return family === 6 + ? blockedTimetableIpv6Addresses.check(address, "ipv6") + : blockedTimetableIpv4Addresses.check(address, "ipv4"); +}; + +export const resolvePublicTimetableAddressesAsync = async (baseUrl: string): Promise => { + const hostname = normalizeHostname(new URL(baseUrl).hostname); + const hostnameFamily = isIP(hostname); + const isInternalHostname = + hostnameFamily === 0 && + (!hostname.includes(".") || + hostname === "localhost" || + hostname.endsWith(".localhost") || + hostname.endsWith(".local") || + hostname.endsWith(".internal") || + hostname.endsWith(".lan") || + hostname.endsWith(".home.arpa")); + + if (isInternalHostname) { + throw new TRPCError({ code: "BAD_REQUEST", message: "Timetable base URL must use a public host" }); + } + + let addresses: TimetableResolvedAddress[]; + try { + const resolvedAddresses = + hostnameFamily === 0 + ? await lookup(hostname, { all: true, verbatim: true }) + : [{ address: hostname, family: hostnameFamily }]; + addresses = resolvedAddresses.filter( + (entry): entry is TimetableResolvedAddress => entry.family === 4 || entry.family === 6, + ); + } catch (cause) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Timetable base URL host could not be resolved", + cause, + }); + } + + if (addresses.length === 0 || addresses.some(({ address, family }) => isBlockedTimetableAddress(address, family))) { + throw new TRPCError({ + code: "BAD_REQUEST", + message: "Timetable base URL must not target a private or internal address", + }); + } + + return addresses.toSorted((left, right) => left.family - right.family || left.address.localeCompare(right.address)); +}; + +const normalizeTimetableOptionsBaseUrlOrThrowBadRequest = (options: Record) => { + const parsedOptions = timetableOptionsSchema.safeParse(options); + if (!parsedOptions.success) { + throw new TRPCError({ code: "BAD_REQUEST", message: "Invalid timetable widget options" }); + } + return normalizeTimetableBaseUrlOrThrowBadRequest(parsedOptions.data.baseUrl ?? DEFAULT_TIMETABLE_BASE_URL); +}; + +export const validateTimetableOptionsChangeAsync = async ( + nextOptions: Record, + previousOptions?: Record, +) => { + const nextBaseUrl = normalizeTimetableOptionsBaseUrlOrThrowBadRequest(nextOptions); + if (nextBaseUrl === DEFAULT_TIMETABLE_BASE_URL) return; + + let previousBaseUrl: string | undefined; + if (previousOptions) { + try { + previousBaseUrl = normalizeTimetableOptionsBaseUrlOrThrowBadRequest(previousOptions); + } catch { + // Invalid legacy options must not prevent replacing them with a valid configuration. + } + } + if (nextBaseUrl === previousBaseUrl) return; + + await resolvePublicTimetableAddressesAsync(nextBaseUrl); +}; diff --git a/packages/api/src/router/widgets/anchor-notes.ts b/packages/api/src/router/widgets/anchor-notes.ts index d431c0de9..3075d294d 100644 --- a/packages/api/src/router/widgets/anchor-notes.ts +++ b/packages/api/src/router/widgets/anchor-notes.ts @@ -3,10 +3,11 @@ import { z } from "zod/v4"; import { ResponseError } from "@homarr/common/server"; import { createLogger } from "@homarr/core/infrastructure/logs"; -import { anchorNotesListInputSchema, anchorNoteUpdateInputSchema, createIntegrationAsync } from "@homarr/integrations"; +import { anchorNotesListInputSchema, anchorNoteUpdateInputSchema } from "@homarr/integrations/anchor"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { anchorNoteRequestHandler, anchorNotesListRequestHandler } from "@homarr/request-handler/anchor-notes"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; const noteIdInput = z.object({ @@ -40,7 +41,7 @@ const normalizeAnchorContent = (content: string | undefined) => { export const anchorNotesRouter = createTRPCRouter({ listNotes: publicProcedure - .concat(createOneIntegrationMiddleware("query", "anchor")) + .concat(createOneWidgetIntegrationMiddleware("query", "anchorNote")) .input(anchorNotesListInputSchema) .query(async ({ ctx, input }) => { const handler = anchorNotesListRequestHandler.handler(ctx.integration, { ...input, limit: input.limit ?? 50 }); @@ -50,7 +51,7 @@ export const anchorNotesRouter = createTRPCRouter({ return data; }), getNote: publicProcedure - .concat(createOneIntegrationMiddleware("query", "anchor")) + .concat(createOneWidgetIntegrationMiddleware("query", "anchorNote")) .input(noteIdInput) .query(async ({ ctx, input }) => { const handler = anchorNoteRequestHandler.handler(ctx.integration, { noteId: input.noteId }); @@ -60,7 +61,7 @@ export const anchorNotesRouter = createTRPCRouter({ return data; }), updateNote: protectedProcedure - .concat(createOneIntegrationMiddleware("interact", "anchor")) + .concat(createOneWidgetIntegrationMiddleware("interact", "anchorNote")) .input(anchorNoteUpdateInputSchema) .mutation(async ({ ctx, input }) => { const integrationInstance = await createIntegrationAsync(ctx.integration); diff --git a/packages/api/src/router/widgets/archive-team-warrior.ts b/packages/api/src/router/widgets/archive-team-warrior.ts index d71b7546a..2110149be 100644 --- a/packages/api/src/router/widgets/archive-team-warrior.ts +++ b/packages/api/src/router/widgets/archive-team-warrior.ts @@ -1,11 +1,11 @@ import { archiveTeamWarriorRequestHandler } from "@homarr/request-handler/archive-team-warrior"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const archiveTeamWarriorRouter = createTRPCRouter({ getStatus: publicProcedure - .concat(createOneIntegrationMiddleware("query", "archiveTeamWarrior")) + .concat(createOneWidgetIntegrationMiddleware("query", "archiveTeamWarrior")) .query(async ({ ctx }) => { const handler = archiveTeamWarriorRequestHandler.handler(ctx.integration, {}); const { data, timestamp } = await handler.getDataAsync(); diff --git a/packages/api/src/router/widgets/audio-stats.ts b/packages/api/src/router/widgets/audio-stats.ts index 14fd7d49c..f9de4300d 100644 --- a/packages/api/src/router/widgets/audio-stats.ts +++ b/packages/api/src/router/widgets/audio-stats.ts @@ -1,12 +1,12 @@ import { audiobookshelfRequestHandler } from "@homarr/request-handler/audiobookshelf"; import { navidromeRequestHandler } from "@homarr/request-handler/navidrome"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const audioStatsRouter = createTRPCRouter({ getStats: publicProcedure - .concat(createOneIntegrationMiddleware("query", "navidrome", "audiobookshelf")) + .concat(createOneWidgetIntegrationMiddleware("query", "audioStats")) .query(async ({ ctx }) => { const { kind } = ctx.integration; diff --git a/packages/api/src/router/widgets/bazarr.ts b/packages/api/src/router/widgets/bazarr.ts index c47ad4173..a79c17f72 100644 --- a/packages/api/src/router/widgets/bazarr.ts +++ b/packages/api/src/router/widgets/bazarr.ts @@ -1,6 +1,6 @@ import { bazarrBadgesRequestHandler } from "@homarr/request-handler/bazarr"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const bazarrRouter = createTRPCRouter({ @@ -12,7 +12,7 @@ export const bazarrRouter = createTRPCRouter({ "Get missing subtitle counts, provider issues, and health warnings for a Bazarr integration. REQUIRED: integrationId from integration_all", }, }) - .concat(createOneIntegrationMiddleware("query", "bazarr")) + .concat(createOneWidgetIntegrationMiddleware("query", "bazarr")) .query(async ({ ctx }) => { const innerHandler = bazarrBadgesRequestHandler.handler(ctx.integration, {}); const data = await innerHandler.getDataAsync(); diff --git a/packages/api/src/router/widgets/beszel.ts b/packages/api/src/router/widgets/beszel.ts index c52ca1717..8cbb8ee0b 100644 --- a/packages/api/src/router/widgets/beszel.ts +++ b/packages/api/src/router/widgets/beszel.ts @@ -2,7 +2,7 @@ import { TRPCError } from "@trpc/server"; import { z } from "zod/v4"; import { createLogger } from "@homarr/core/infrastructure/logs"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { LiveStatsEvent } from "@homarr/integrations/types"; import { beszelAlertsRequestHandler, @@ -11,7 +11,10 @@ import { } from "@homarr/request-handler/beszel"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { + createManySharedWidgetIntegrationMiddleware, + createManyWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; import { BoundedAsyncQueue } from "./bounded-async-queue"; @@ -27,7 +30,12 @@ export const beszelRouter = createTRPCRouter({ "Get all Beszel-monitored systems with CPU, memory, disk, GPU, network, temperature, and status. REQUIRED: integrationIds (array of Beszel integration IDs from integration_all)", }, }) - .concat(createManyIntegrationMiddleware("query", "beszel", "mock")) + .concat( + createManySharedWidgetIntegrationMiddleware("query", "beszelSystemGrid", [ + "beszelSystemTable", + "beszelSystemStats", + ]), + ) .query(async ({ ctx }) => { const integrationIds = ctx.integrations.map((i) => i.id); logger.debug("getSystems called", { userId: ctx.session?.user?.id, integrationIds }); @@ -71,7 +79,7 @@ export const beszelRouter = createTRPCRouter({ "Get Beszel alerts and optional alert history for all monitored systems. REQUIRED: integrationIds (array of Beszel integration IDs from integration_all). OPTIONAL: includeHistory (default true), maxHistoryItems (default 10)", }, }) - .concat(createManyIntegrationMiddleware("query", "beszel", "mock")) + .concat(createManyWidgetIntegrationMiddleware("query", "beszelAlerts")) .input( z.object({ includeHistory: z.boolean().default(true), @@ -145,7 +153,12 @@ export const beszelRouter = createTRPCRouter({ "Get historical Beszel system metrics (CPU, memory, disk, network, temperature) and optional Docker container stats. REQUIRED: integrationIds (pass the single integrationId from the beszel_getSystems entry containing the target system — only the first ID is used), systemId (from beszel_getSystems). OPTIONAL: timePeriod (1m/1h/12h/24h/1w/30d, default 1h), includeDocker (default true)", }, }) - .concat(createManyIntegrationMiddleware("query", "beszel", "mock")) + .concat( + createManySharedWidgetIntegrationMiddleware("query", "beszelSystemStats", [ + "beszelSystemTable", + "beszelSystemGrid", + ]), + ) .input( z.object({ systemId: z.string(), @@ -196,7 +209,12 @@ export const beszelRouter = createTRPCRouter({ }), subscribeSystemStats: publicProcedure - .concat(createManyIntegrationMiddleware("query", "beszel", "mock")) + .concat( + createManySharedWidgetIntegrationMiddleware("query", "beszelSystemStats", [ + "beszelSystemTable", + "beszelSystemGrid", + ]), + ) .input( z.object({ systemId: z.string(), diff --git a/packages/api/src/router/widgets/calendar.ts b/packages/api/src/router/widgets/calendar.ts index bbe5b247d..bd54157aa 100644 --- a/packages/api/src/router/widgets/calendar.ts +++ b/packages/api/src/router/widgets/calendar.ts @@ -1,10 +1,9 @@ import { z } from "zod/v4"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { radarrReleaseTypes } from "@homarr/integrations/types"; import { calendarMonthRequestHandler } from "@homarr/request-handler/calendar"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; @@ -25,7 +24,7 @@ export const calendarRouter = createTRPCRouter({ showUnmonitored: z.boolean(), }), ) - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("calendar"))) + .concat(createManyWidgetIntegrationMiddleware("query", "calendar")) .query(async ({ ctx, input }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/coolify.ts b/packages/api/src/router/widgets/coolify.ts index 133d36f14..a1f032918 100644 --- a/packages/api/src/router/widgets/coolify.ts +++ b/packages/api/src/router/widgets/coolify.ts @@ -1,7 +1,7 @@ import type { CoolifyInstanceInfo } from "@homarr/integrations/types"; import { coolifyRequestHandler } from "@homarr/request-handler/coolify"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; @@ -16,7 +16,7 @@ interface CoolifyInstanceResult { export const coolifyRouter = createTRPCRouter({ getInstancesInfo: publicProcedure - .concat(createManyIntegrationMiddleware("query", "coolify")) + .concat(createManyWidgetIntegrationMiddleware("query", "coolify")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/dns-hole.ts b/packages/api/src/router/widgets/dns-hole.ts index 4dffb9f2f..34d4ff327 100644 --- a/packages/api/src/router/widgets/dns-hole.ts +++ b/packages/api/src/router/widgets/dns-hole.ts @@ -1,12 +1,14 @@ import { z } from "zod/v4"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { DnsHoleSummary } from "@homarr/integrations/types"; import { dnsHoleRequestHandler } from "@homarr/request-handler/dns-hole"; -import { createManyIntegrationMiddleware, createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { + createManySharedWidgetIntegrationMiddleware, + createOneWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; @@ -32,7 +34,7 @@ export const dnsHoleRouter = createTRPCRouter({ "Get DNS blocking statistics from Pi-hole/AdGuard (queries, blocked, percentage). REQUIRED: integrationIds (array of Pi-hole/AdGuard integration IDs from integration_all)", }, }) - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("dnsHole"))) + .concat(createManySharedWidgetIntegrationMiddleware("query", "dnsHoleSummary", ["dnsHoleControls"])) .query(async ({ ctx }) => { return await settleIntegrationQueries<(typeof ctx.integrations)[number], DnsHoleSummaryResult>( ctx.integrations, @@ -66,7 +68,7 @@ export const dnsHoleRouter = createTRPCRouter({ "Enable DNS blocking on Pi-hole/AdGuard. REQUIRED: integrationId (single Pi-hole/AdGuard integration ID from integration_all)", }, }) - .concat(createOneIntegrationMiddleware("interact", ...getIntegrationKindsByCategory("dnsHole"))) + .concat(createOneWidgetIntegrationMiddleware("interact", "dnsHoleControls")) .mutation(async ({ ctx: { integration } }) => { const client = await createIntegrationAsync(integration); await client.enableAsync(); @@ -85,7 +87,7 @@ export const dnsHoleRouter = createTRPCRouter({ duration: z.number().optional(), }), ) - .concat(createOneIntegrationMiddleware("interact", ...getIntegrationKindsByCategory("dnsHole"))) + .concat(createOneWidgetIntegrationMiddleware("interact", "dnsHoleControls")) .mutation(async ({ ctx: { integration }, input }) => { const client = await createIntegrationAsync(integration); await client.disableAsync(input.duration); diff --git a/packages/api/src/router/widgets/downloads.ts b/packages/api/src/router/widgets/downloads.ts index 261d3ba46..089bf7603 100644 --- a/packages/api/src/router/widgets/downloads.ts +++ b/packages/api/src/router/widgets/downloads.ts @@ -1,19 +1,15 @@ import { z } from "zod/v4"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import type { DownloadClientJobsAndStatus } from "@homarr/integrations"; -import { createIntegrationAsync, downloadClientItemSchema } from "@homarr/integrations"; +import { downloadClientItemSchema } from "@homarr/integrations/downloads"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { downloadClientRequestHandler } from "@homarr/request-handler/downloads"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; -const createDownloadClientIntegrationMiddleware = (action: IntegrationAction) => - createManyIntegrationMiddleware(action, ...getIntegrationKindsByCategory("downloadClient")); - interface DownloadClientQueryResultBase { integrationId: string; integrationName: string; @@ -51,7 +47,7 @@ export const downloadsRouter = createTRPCRouter({ "Get active download jobs and queue status from connected download clients (qBittorrent, SABnzbd, Transmission, Deluge, NZBGet). REQUIRED: integrationIds (array of download client integration IDs from integration_all). OPTIONAL: limitPerIntegration (number, default 50)", }, }) - .concat(createDownloadClientIntegrationMiddleware("query")) + .concat(createManyWidgetIntegrationMiddleware("query", "downloads")) .input(z.object({ limitPerIntegration: z.number().default(50) })) .query(async ({ ctx, input }) => { return await settleIntegrationQueries<(typeof ctx.integrations)[number], DownloadClientQueryResult>( @@ -86,7 +82,7 @@ export const downloadsRouter = createTRPCRouter({ "Pause all download queues across connected download clients. REQUIRED: integrationIds (array of download client integration IDs from integration_all)", }, }) - .concat(createDownloadClientIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "downloads")) .mutation(async ({ ctx }) => { await Promise.all( ctx.integrations.map(async (integration) => { @@ -97,7 +93,7 @@ export const downloadsRouter = createTRPCRouter({ downloadClientRequestHandler.invalidateCache(); }), pauseItem: protectedProcedure - .concat(createDownloadClientIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "downloads")) .input(z.object({ item: downloadClientItemSchema })) .mutation(async ({ ctx, input }) => { await Promise.all( @@ -116,7 +112,7 @@ export const downloadsRouter = createTRPCRouter({ "Resume all download queues across connected download clients. REQUIRED: integrationIds (array of download client integration IDs from integration_all)", }, }) - .concat(createDownloadClientIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "downloads")) .mutation(async ({ ctx }) => { await Promise.all( ctx.integrations.map(async (integration) => { @@ -127,7 +123,7 @@ export const downloadsRouter = createTRPCRouter({ downloadClientRequestHandler.invalidateCache(); }), resumeItem: protectedProcedure - .concat(createDownloadClientIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "downloads")) .input(z.object({ item: downloadClientItemSchema })) .mutation(async ({ ctx, input }) => { await Promise.all( @@ -139,7 +135,7 @@ export const downloadsRouter = createTRPCRouter({ downloadClientRequestHandler.invalidateCache(); }), deleteItem: protectedProcedure - .concat(createDownloadClientIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "downloads")) .input(z.object({ item: downloadClientItemSchema, fromDisk: z.boolean() })) .mutation(async ({ ctx, input }) => { await Promise.all( diff --git a/packages/api/src/router/widgets/firewall.ts b/packages/api/src/router/widgets/firewall.ts index 335f75d09..38d4ea89b 100644 --- a/packages/api/src/router/widgets/firewall.ts +++ b/packages/api/src/router/widgets/firewall.ts @@ -1,4 +1,3 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { firewallCpuRequestHandler, firewallInterfacesRequestHandler, @@ -6,11 +5,11 @@ import { firewallVersionRequestHandler, } from "@homarr/request-handler/firewall"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -const firewallMiddleware = createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("firewall")); +const firewallMiddleware = createManyWidgetIntegrationMiddleware("query", "firewall"); const queryFirewall = < THandler extends { diff --git a/packages/api/src/router/widgets/generated-registry.ts b/packages/api/src/router/widgets/generated-registry.ts new file mode 100644 index 000000000..88b39e970 --- /dev/null +++ b/packages/api/src/router/widgets/generated-registry.ts @@ -0,0 +1,24 @@ +// This file is generated by pnpm widgets:sync. Do not edit it directly. + +import type { AnyTRPCRouter } from "@trpc/server"; + +import type { WidgetKind } from "@homarr/definitions"; + +const registerGeneratedWidgetRouter = ( + widgetKinds: readonly [WidgetKind, ...WidgetKind[]], + loadRouter: () => Promise, + mcp: false | true | string, +) => ({ widgetKinds, loadRouter, mcp }); + +export const generatedWidgetRouterRegistry = { + downloads: registerGeneratedWidgetRouter( + ["downloads"], + () => import("./downloads").then((module) => module.downloadsRouter), + true, + ), + weather: registerGeneratedWidgetRouter( + ["clock", "weather"], + () => import("./weather").then((module) => module.weatherRouter), + false, + ), +}; diff --git a/packages/api/src/router/widgets/health-monitoring.ts b/packages/api/src/router/widgets/health-monitoring.ts index 5c123ecb1..7d490cbd9 100644 --- a/packages/api/src/router/widgets/health-monitoring.ts +++ b/packages/api/src/router/widgets/health-monitoring.ts @@ -1,12 +1,17 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { SystemHealthMonitoring } from "@homarr/integrations"; -import { SynologyIntegration } from "@homarr/integrations"; import { clusterInfoRequestHandler, systemInfoRequestHandler } from "@homarr/request-handler/health-monitoring"; -import { createManyIntegrationMiddleware, createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { + createManySharedWidgetIntegrationMiddleware, + createOneSharedWidgetIntegrationMiddleware, + createOneWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; +// This endpoint uses the generic system-info handler, so it intentionally excludes +// health-monitoring integrations with specialized data models such as Proxmox and Coolify. const healthMonitoringIntegrationKinds = [ "openmediavault", "dashDot", @@ -34,7 +39,14 @@ export const healthMonitoringRouter = createTRPCRouter({ "Get system health status (CPU, memory, disk, network) from NAS/server monitoring integrations. REQUIRED: integrationIds (array of TrueNAS/Synology/Unraid/Glances/OpenMediaVault/DashDot integration IDs from integration_all)", }, }) - .concat(createManyIntegrationMiddleware("query", ...healthMonitoringIntegrationKinds)) + .concat( + createManySharedWidgetIntegrationMiddleware( + "query", + "healthMonitoring", + ["systemResources", "systemDisks"], + healthMonitoringIntegrationKinds, + ), + ) .query(async ({ ctx }) => { return await settleIntegrationQueries<(typeof ctx.integrations)[number], SystemHealthQueryResult>( ctx.integrations, @@ -66,13 +78,9 @@ export const healthMonitoringRouter = createTRPCRouter({ "List storage volumes from a Synology DiskStation integration for widget configuration. REQUIRED: integrationId from integration_all (Synology integration only)", }, }) - .concat(createOneIntegrationMiddleware("query", "synology")) + .concat(createOneSharedWidgetIntegrationMiddleware("query", "healthMonitoring", ["systemDisks"], ["synology"])) .query(async ({ ctx }) => { const integrationInstance = await createIntegrationAsync(ctx.integration); - if (!(integrationInstance instanceof SynologyIntegration)) { - throw new Error("Expected Synology integration"); - } - return await integrationInstance.listStorageVolumesAsync(); }), getClusterHealthStatus: publicProcedure @@ -83,7 +91,7 @@ export const healthMonitoringRouter = createTRPCRouter({ "Get Proxmox cluster health status including nodes, VMs, and resource usage. REQUIRED: integrationId (single Proxmox integration ID from integration_all)", }, }) - .concat(createOneIntegrationMiddleware("query", "proxmox", "mock")) + .concat(createOneWidgetIntegrationMiddleware("query", "healthMonitoring", ["proxmox", "mock"])) .query(async ({ ctx }) => { const innerHandler = clusterInfoRequestHandler.handler(ctx.integration, {}); const { data } = await innerHandler.getDataAsync(); diff --git a/packages/api/src/router/widgets/immich.ts b/packages/api/src/router/widgets/immich.ts index 136d0e111..871de5521 100644 --- a/packages/api/src/router/widgets/immich.ts +++ b/packages/api/src/router/widgets/immich.ts @@ -1,28 +1,28 @@ import { z } from "zod/v4"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { immichAlbumRequestHandler, immichAlbumsRequestHandler, immichStatsRequestHandler, } from "@homarr/request-handler/immich"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { + createOneSharedWidgetIntegrationMiddleware, + createOneWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -const createImmichIntegrationMiddleware = (action: IntegrationAction) => - createOneIntegrationMiddleware(action, ...getIntegrationKindsByCategory("photoService")); - export const immichRouter = createTRPCRouter({ - getServerStats: publicProcedure.concat(createImmichIntegrationMiddleware("query")).query(async ({ ctx }) => { - const innerHandler = immichStatsRequestHandler.handler(ctx.integration, {}); - const data = await innerHandler.getDataAsync(); - return data.data; - }), + getServerStats: publicProcedure + .concat(createOneWidgetIntegrationMiddleware("query", "immich-serverStats")) + .query(async ({ ctx }) => { + const innerHandler = immichStatsRequestHandler.handler(ctx.integration, {}); + const data = await innerHandler.getDataAsync(); + return data.data; + }), getAlbum: publicProcedure - .concat(createImmichIntegrationMiddleware("query")) + .concat(createOneWidgetIntegrationMiddleware("query", "immich-albumCarousel")) .input( z.object({ albumId: z.string().optional(), @@ -40,7 +40,7 @@ export const immichRouter = createTRPCRouter({ limit: z.number().int().min(1).max(500).optional(), }), ) - .concat(createImmichIntegrationMiddleware("query")) + .concat(createOneSharedWidgetIntegrationMiddleware("query", "immich-albumCarousel", ["immich-serverStats"])) .query(async ({ ctx, input }) => { const innerHandler = immichAlbumsRequestHandler.handler(ctx.integration, { limit: input.limit }); const data = await innerHandler.getDataAsync(); diff --git a/packages/api/src/router/widgets/index.ts b/packages/api/src/router/widgets/index.ts index 01edcbd3b..d4ab56234 100644 --- a/packages/api/src/router/widgets/index.ts +++ b/packages/api/src/router/widgets/index.ts @@ -1,49 +1,30 @@ +import type { AnyTRPCRouter } from "@trpc/server"; import { lazy } from "@trpc/server"; import { createTRPCRouter } from "../../trpc"; +import { widgetRouterRegistry } from "./registry"; +import type { WidgetRouterName } from "./registry"; + +const createLazyWidgetRouter = (loadRouter: () => Promise) => lazy(loadRouter); + +const lazyWidgetRouters = Object.fromEntries( + Object.entries(widgetRouterRegistry).map(([name, registration]) => [ + name, + createLazyWidgetRouter(registration.loadRouter as () => Promise), + ]), +) as unknown as { + [TName in WidgetRouterName]: ReturnType< + typeof createLazyWidgetRouter< + (typeof widgetRouterRegistry)[TName] extends { loadRouter: () => Promise } + ? TRouter extends AnyTRPCRouter + ? TRouter + : never + : never + > + >; +}; export const widgetRouter = createTRPCRouter({ - archiveTeamWarrior: lazy(() => import("./archive-team-warrior").then((mod) => mod.archiveTeamWarriorRouter)), - beszel: lazy(() => import("./beszel").then((mod) => mod.beszelRouter)), - anchorNotes: lazy(() => import("./anchor-notes").then((mod) => mod.anchorNotesRouter)), - coolify: lazy(() => import("./coolify").then((mod) => mod.coolifyRouter)), - immich: lazy(() => import("./immich").then((mod) => mod.immichRouter)), - paperlessNgx: lazy(() => import("./paperless-ngx").then((mod) => mod.paperlessNgxRouter)), - patchmon: lazy(() => import("./patchmon").then((mod) => mod.patchmonRouter)), - bazarr: lazy(() => import("./bazarr").then((mod) => mod.bazarrRouter)), - notebook: lazy(() => import("./notebook").then((mod) => mod.notebookRouter)), - weather: lazy(() => import("./weather").then((mod) => mod.weatherRouter)), - airQuality: lazy(() => import("./air-quality").then((mod) => mod.airQualityRouter)), - app: lazy(() => import("./app").then((mod) => mod.appRouter)), - dnsHole: lazy(() => import("./dns-hole").then((mod) => mod.dnsHoleRouter)), - smartHome: lazy(() => import("./smart-home").then((mod) => mod.smartHomeRouter)), - stockPrice: lazy(() => import("./stocks").then((mod) => mod.stockPriceRouter)), - mediaServer: lazy(() => import("./media-server").then((mod) => mod.mediaServerRouter)), - mediaRelease: lazy(() => import("./media-release").then((mod) => mod.mediaReleaseRouter)), - calendar: lazy(() => import("./calendar").then((mod) => mod.calendarRouter)), - downloads: lazy(() => import("./downloads").then((mod) => mod.downloadsRouter)), - mediaRequests: lazy(() => import("./media-requests").then((mod) => mod.mediaRequestsRouter)), - mediaOrganizer: lazy(() => import("./media-organizer").then((mod) => mod.mediaOrganizerRouter)), - rssFeed: lazy(() => import("./rssFeed").then((mod) => mod.rssFeedRouter)), - indexerManager: lazy(() => import("./indexer-manager").then((mod) => mod.indexerManagerRouter)), - healthMonitoring: lazy(() => import("./health-monitoring").then((mod) => mod.healthMonitoringRouter)), - mediaTranscoding: lazy(() => import("./media-transcoding").then((mod) => mod.mediaTranscodingRouter)), - minecraft: lazy(() => import("./minecraft").then((mod) => mod.minecraftRouter)), + ...lazyWidgetRouters, options: lazy(() => import("./options").then((mod) => mod.optionsRouter)), - releases: lazy(() => import("./releases").then((mod) => mod.releasesRouter)), - networkController: lazy(() => import("./network-controller").then((mod) => mod.networkControllerRouter)), - firewall: lazy(() => import("./firewall").then((mod) => mod.firewallRouter)), - notifications: lazy(() => import("./notifications").then((mod) => mod.notificationsRouter)), - timetable: lazy(() => import("./timetable").then((mod) => mod.timetableRouter)), - tracearr: lazy(() => import("./tracearr").then((mod) => mod.tracearrRouter)), - speedtestTracker: lazy(() => import("./speedtest-tracker").then((mod) => mod.speedtestTrackerRouter)), - uptimeKuma: lazy(() => import("./uptime-kuma").then((mod) => mod.uptimeKumaRouter)), - audioStats: lazy(() => import("./audio-stats").then((mod) => mod.audioStatsRouter)), - umami: lazy(() => import("./umami").then((mod) => mod.umamiRouter)), - vpn: lazy(() => import("./vpn").then((mod) => mod.vpnRouter)), - ups: lazy(() => import("./ups").then((mod) => mod.upsRouter)), - traefik: lazy(() => import("./traefik").then((mod) => mod.traefikRouter)), - customApi: lazy(() => import("./custom-api").then((mod) => mod.customApiRouter)), - secrets: lazy(() => import("./widget-secrets").then((mod) => mod.widgetSecretsRouter)), - wud: lazy(() => import("./wud").then((mod) => mod.wudRouter)), }); diff --git a/packages/api/src/router/widgets/indexer-manager.ts b/packages/api/src/router/widgets/indexer-manager.ts index 4d1d893d8..a433d4f0f 100644 --- a/packages/api/src/router/widgets/indexer-manager.ts +++ b/packages/api/src/router/widgets/indexer-manager.ts @@ -1,20 +1,15 @@ import { TRPCError } from "@trpc/server"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { indexerManagerRequestHandler } from "@homarr/request-handler/indexer-manager"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; -const createIndexerManagerIntegrationMiddleware = (action: IntegrationAction) => - createManyIntegrationMiddleware(action, ...getIntegrationKindsByCategory("indexerManager")); - export const indexerManagerRouter = createTRPCRouter({ getIndexersStatus: publicProcedure - .concat(createIndexerManagerIntegrationMiddleware("query")) + .concat(createManyWidgetIntegrationMiddleware("query", "indexerManager")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, @@ -41,7 +36,7 @@ export const indexerManagerRouter = createTRPCRouter({ ); }), testAllIndexers: protectedProcedure - .concat(createIndexerManagerIntegrationMiddleware("interact")) + .concat(createManyWidgetIntegrationMiddleware("interact", "indexerManager")) .mutation(async ({ ctx }) => { await Promise.all( ctx.integrations.map(async (integration) => { diff --git a/packages/api/src/router/widgets/media-organizer.ts b/packages/api/src/router/widgets/media-organizer.ts index 91738b4a8..5d34e1563 100644 --- a/packages/api/src/router/widgets/media-organizer.ts +++ b/packages/api/src/router/widgets/media-organizer.ts @@ -1,9 +1,8 @@ import { z } from "zod/v4"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { mediaOrganizerRequestHandler } from "@homarr/request-handler/media-organizer"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; @@ -16,7 +15,7 @@ export const mediaOrganizerRouter = createTRPCRouter({ "Get missing and queued movies/episodes from Radarr and Sonarr. Requires query (use) access to each integration. REQUIRED: integrationIds (array of Radarr/Sonarr integration IDs from integration_all). OPTIONAL: pageSize (1-50, default 10)", }, }) - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("mediaOrganizer"))) + .concat(createManyWidgetIntegrationMiddleware("query", "mediaMissing")) .input(z.object({ pageSize: z.number().min(1).max(50).default(10) })) .query(async ({ ctx, input }) => { return await settleIntegrationQueries( diff --git a/packages/api/src/router/widgets/media-release.ts b/packages/api/src/router/widgets/media-release.ts index e1acb95b6..f4b715d46 100644 --- a/packages/api/src/router/widgets/media-release.ts +++ b/packages/api/src/router/widgets/media-release.ts @@ -1,13 +1,12 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { mediaReleaseRequestHandler } from "@homarr/request-handler/media-release"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; import { getMediaReleaseResponse } from "./media-release-result"; export const mediaReleaseRouter = createTRPCRouter({ getMediaReleases: publicProcedure - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("mediaRelease"))) + .concat(createManyWidgetIntegrationMiddleware("query", "mediaReleases")) .query(async ({ ctx }) => { return await getMediaReleaseResponse(ctx.integrations, async (integration) => { const innerHandler = mediaReleaseRequestHandler.handler(integration, {}); diff --git a/packages/api/src/router/widgets/media-requests.ts b/packages/api/src/router/widgets/media-requests.ts index 28d0cb15a..b8b9a28e8 100644 --- a/packages/api/src/router/widgets/media-requests.ts +++ b/packages/api/src/router/widgets/media-requests.ts @@ -1,8 +1,7 @@ import { z } from "zod/v4"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { MediaRequest, MediaRequestStats } from "@homarr/integrations/types"; import { mediaRequestStatusConfiguration } from "@homarr/integrations/types"; import { @@ -11,7 +10,10 @@ import { } from "@homarr/request-handler/media-request-list"; import { mediaRequestStatsRequestHandler } from "@homarr/request-handler/media-request-stats"; -import { createManyIntegrationMiddleware, createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { + createManyWidgetIntegrationMiddleware, + createOneWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; @@ -30,7 +32,7 @@ export const mediaRequestsRouter = createTRPCRouter({ "Get latest media requests from Overseerr/Jellyseerr with their status (pending, approved, declined, failed, completed). REQUIRED: integrationIds (array of Overseerr/Jellyseerr integration IDs from integration_all). OPTIONAL: statuses (array of statuses to include, must be non-empty) and recentDays (number 0-365; 0 disables the time filter).", }, }) - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("mediaRequest"))) + .concat(createManyWidgetIntegrationMiddleware("query", "mediaRequests-requestList")) .input(mediaRequestListInputSchema) .query(async ({ ctx, input }) => { const results: IntegrationQueryResult[] = await settleIntegrationQueries( @@ -85,7 +87,7 @@ export const mediaRequestsRouter = createTRPCRouter({ "Get media request statistics including total counts and top requesters. REQUIRED: integrationIds (array of Overseerr/Jellyseerr integration IDs from integration_all)", }, }) - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("mediaRequest"))) + .concat(createManyWidgetIntegrationMiddleware("query", "mediaRequests-requestStats")) .query(async ({ ctx }) => { const results: IntegrationQueryResult<{ stats: MediaRequestStats["stats"] | null; @@ -134,7 +136,7 @@ export const mediaRequestsRouter = createTRPCRouter({ "Approve or decline a pending media request. REQUIRED: integrationId (single Overseerr/Jellyseerr integration ID), requestId (number from getLatestRequests), answer ('approve' or 'decline')", }, }) - .concat(createOneIntegrationMiddleware("interact", ...getIntegrationKindsByCategory("mediaRequest"))) + .concat(createOneWidgetIntegrationMiddleware("interact", "mediaRequests-requestList")) .input( z.object({ requestId: z.number(), diff --git a/packages/api/src/router/widgets/media-server.ts b/packages/api/src/router/widgets/media-server.ts index 77e00204b..b85d9a72a 100644 --- a/packages/api/src/router/widgets/media-server.ts +++ b/packages/api/src/router/widgets/media-server.ts @@ -1,16 +1,11 @@ import { z } from "zod/v4"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { mediaServerRequestHandler } from "@homarr/request-handler/media-server"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManySharedWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -const createMediaServerIntegrationMiddleware = (action: IntegrationAction) => - createManyIntegrationMiddleware(action, ...getIntegrationKindsByCategory("mediaService")); - export const mediaServerRouter = createTRPCRouter({ getCurrentStreams: publicProcedure .meta({ @@ -20,7 +15,7 @@ export const mediaServerRouter = createTRPCRouter({ "Get currently active streams from Plex/Jellyfin/Emby/Navidrome media servers. REQUIRED: integrationIds (array of media server integration IDs from integration_all), showOnlyPlaying (boolean — true to filter to actively playing streams only)", }, }) - .concat(createMediaServerIntegrationMiddleware("query")) + .concat(createManySharedWidgetIntegrationMiddleware("query", "mediaServer", ["audioStats"])) .input(z.object({ showOnlyPlaying: z.boolean() })) .query(async ({ ctx, input }) => { return await settleIntegrationQueries( diff --git a/packages/api/src/router/widgets/media-transcoding.ts b/packages/api/src/router/widgets/media-transcoding.ts index 88bd91704..4313e3aae 100644 --- a/packages/api/src/router/widgets/media-transcoding.ts +++ b/packages/api/src/router/widgets/media-transcoding.ts @@ -1,17 +1,12 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { mediaTranscodingRequestHandler } from "@homarr/request-handler/media-transcoding"; import { paginatedSchema } from "@homarr/validation/common"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -const createIndexerManagerIntegrationMiddleware = (action: IntegrationAction) => - createOneIntegrationMiddleware(action, ...getIntegrationKindsByCategory("mediaTranscoding")); - export const mediaTranscodingRouter = createTRPCRouter({ getDataAsync: publicProcedure - .concat(createIndexerManagerIntegrationMiddleware("query")) + .concat(createOneWidgetIntegrationMiddleware("query", "mediaTranscoding")) .input(paginatedSchema.pick({ page: true, pageSize: true })) .query(async ({ ctx, input }) => { const innerHandler = mediaTranscodingRequestHandler.handler(ctx.integration, { diff --git a/packages/api/src/router/widgets/network-controller.ts b/packages/api/src/router/widgets/network-controller.ts index 25c974da3..a9e60bcbd 100644 --- a/packages/api/src/router/widgets/network-controller.ts +++ b/packages/api/src/router/widgets/network-controller.ts @@ -1,9 +1,8 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import type { NetworkControllerSummary } from "@homarr/integrations/types"; import { networkControllerRequestHandler } from "@homarr/request-handler/network-controller"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManySharedWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { PUBLIC_INTEGRATION_ERROR, settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; @@ -22,7 +21,9 @@ interface NetworkControllerQueryResult { export const networkControllerRouter = createTRPCRouter({ summary: publicProcedure - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("networkController"))) + .concat( + createManySharedWidgetIntegrationMiddleware("query", "networkControllerSummary", ["networkControllerStatus"]), + ) .query(async ({ ctx }) => { return await settleIntegrationQueries<(typeof ctx.integrations)[number], NetworkControllerQueryResult>( ctx.integrations, diff --git a/packages/api/src/router/widgets/notifications.ts b/packages/api/src/router/widgets/notifications.ts index 3453b47a6..94237bb20 100644 --- a/packages/api/src/router/widgets/notifications.ts +++ b/packages/api/src/router/widgets/notifications.ts @@ -1,17 +1,12 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { notificationsRequestHandler } from "@homarr/request-handler/notifications"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; -const createNotificationsIntegrationMiddleware = (action: IntegrationAction) => - createManyIntegrationMiddleware(action, ...getIntegrationKindsByCategory("notifications")); - export const notificationsRouter = createTRPCRouter({ getNotifications: publicProcedure - .unstable_concat(createNotificationsIntegrationMiddleware("query")) + .unstable_concat(createManyWidgetIntegrationMiddleware("query", "notifications")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/options.ts b/packages/api/src/router/widgets/options.ts index e39e5f1dc..c548e039e 100644 --- a/packages/api/src/router/widgets/options.ts +++ b/packages/api/src/router/widgets/options.ts @@ -9,7 +9,6 @@ import { boards, items } from "@homarr/db/schema"; import type { WidgetOptionsSettings } from "../../../../widgets/src"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; import { throwIfActionForbiddenAsync } from "../board/board-access"; -import { validateTimetableOptionsChangeAsync } from "./timetable"; import { throwIfCustomWidgetPlacementChangeForbidden } from "../board/custom-widget-placement-access"; export const optionsRouter = createTRPCRouter({ @@ -50,6 +49,7 @@ export const optionsRouter = createTRPCRouter({ const previousOptions = SuperJSON.parse>(item.options); const updatedOptions = { ...previousOptions, ...input.newOptions }; if (item.kind === "timetable") { + const { validateTimetableOptionsChangeAsync } = await import("../timetable-options-validation"); await validateTimetableOptionsChangeAsync(updatedOptions, previousOptions); } throwIfCustomWidgetPlacementChangeForbidden({ diff --git a/packages/api/src/router/widgets/paperless-ngx.ts b/packages/api/src/router/widgets/paperless-ngx.ts index 2a1bf40de..722cb94ab 100644 --- a/packages/api/src/router/widgets/paperless-ngx.ts +++ b/packages/api/src/router/widgets/paperless-ngx.ts @@ -1,12 +1,14 @@ import { paperlessNgxStatsRequestHandler } from "@homarr/request-handler/paperless-ngx"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const paperlessNgxRouter = createTRPCRouter({ - getStats: publicProcedure.concat(createOneIntegrationMiddleware("query", "paperlessNgx")).query(async ({ ctx }) => { - const innerHandler = paperlessNgxStatsRequestHandler.handler(ctx.integration, {}); - const data = await innerHandler.getDataAsync(); - return data.data; - }), + getStats: publicProcedure + .concat(createOneWidgetIntegrationMiddleware("query", "paperlessNgx")) + .query(async ({ ctx }) => { + const innerHandler = paperlessNgxStatsRequestHandler.handler(ctx.integration, {}); + const data = await innerHandler.getDataAsync(); + return data.data; + }), }); diff --git a/packages/api/src/router/widgets/patchmon.ts b/packages/api/src/router/widgets/patchmon.ts index aee758823..20ad0b79f 100644 --- a/packages/api/src/router/widgets/patchmon.ts +++ b/packages/api/src/router/widgets/patchmon.ts @@ -1,6 +1,6 @@ import { patchmonStatsRequestHandler } from "@homarr/request-handler/patchmon"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, protectedProcedure } from "../../trpc"; export const patchmonRouter = createTRPCRouter({ @@ -12,7 +12,7 @@ export const patchmonRouter = createTRPCRouter({ "Get PatchMon host patch statistics including total hosts, hosts needing updates, security update counts, up-to-date hosts, outdated packages, repositories, and OS distribution. REQUIRED: integrationId (single PatchMon integration ID from integration_all). Requires authenticated session (API key or browser login) and integration query access.", }, }) - .concat(createOneIntegrationMiddleware("query", "patchmon")) + .concat(createOneWidgetIntegrationMiddleware("query", "patchmon")) .query(async ({ ctx }) => { const innerHandler = patchmonStatsRequestHandler.handler(ctx.integration, {}); const { data } = await innerHandler.getDataAsync(); diff --git a/packages/api/src/router/widgets/registry.ts b/packages/api/src/router/widgets/registry.ts new file mode 100644 index 000000000..eea618a08 --- /dev/null +++ b/packages/api/src/router/widgets/registry.ts @@ -0,0 +1,225 @@ +import type { AnyTRPCRouter } from "@trpc/server"; + +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; +import type { WidgetKind } from "@homarr/definitions"; + +import { generatedWidgetRouterRegistry } from "./generated-registry"; + +const { + weather: generatedWeatherRouter, + downloads: generatedDownloadsRouter, + ...additionalGeneratedWidgetRouters +} = generatedWidgetRouterRegistry; + +const logger = createLogger({ module: "widgetRouterRegistry" }); + +type McpRouterNamespace = false | true | string; + +type WidgetRouterRegistration = { + widgetKinds: readonly [WidgetKind, ...WidgetKind[]]; + loadRouter: () => Promise; + mcp: TMcpNamespace; +}; + +const registerWidgetRouter = ( + widgetKinds: readonly [WidgetKind, ...WidgetKind[]], + loadRouter: () => Promise, + options?: { mcp?: TMcpNamespace }, +): WidgetRouterRegistration => ({ + widgetKinds, + loadRouter, + mcp: (options?.mcp ?? false) as TMcpNamespace, +}); + +/** + * Shared namespace-to-feature contract for widget tRPC consumers. + * + * Keep import paths explicit so Next.js can split every implementation while + * consumers share one widget-to-router association. + */ +export const widgetRouterRegistry = { + archiveTeamWarrior: registerWidgetRouter(["archiveTeamWarrior"], () => + import("./archive-team-warrior").then((module) => module.archiveTeamWarriorRouter), + ), + beszel: registerWidgetRouter( + ["beszelSystemTable", "beszelSystemGrid", "beszelAlerts", "beszelSystemStats"], + () => import("./beszel").then((module) => module.beszelRouter), + { mcp: true }, + ), + anchorNotes: registerWidgetRouter(["anchorNote"], () => + import("./anchor-notes").then((module) => module.anchorNotesRouter), + ), + coolify: registerWidgetRouter(["coolify"], () => import("./coolify").then((module) => module.coolifyRouter)), + immich: registerWidgetRouter(["immich-serverStats", "immich-albumCarousel"], () => + import("./immich").then((module) => module.immichRouter), + ), + paperlessNgx: registerWidgetRouter(["paperlessNgx"], () => + import("./paperless-ngx").then((module) => module.paperlessNgxRouter), + ), + patchmon: registerWidgetRouter(["patchmon"], () => import("./patchmon").then((module) => module.patchmonRouter), { + mcp: true, + }), + bazarr: registerWidgetRouter(["bazarr"], () => import("./bazarr").then((module) => module.bazarrRouter), { + mcp: true, + }), + notebook: registerWidgetRouter(["notebook"], () => import("./notebook").then((module) => module.notebookRouter)), + weather: generatedWeatherRouter, + airQuality: registerWidgetRouter( + ["airQuality"], + () => import("./air-quality").then((module) => module.airQualityRouter), + { mcp: true }, + ), + app: registerWidgetRouter(["app"], () => import("./app").then((module) => module.appRouter)), + dnsHole: registerWidgetRouter( + ["dnsHoleSummary", "dnsHoleControls"], + () => import("./dns-hole").then((module) => module.dnsHoleRouter), + { mcp: true }, + ), + smartHome: registerWidgetRouter( + ["smartHome-entityState", "smartHome-executeAutomation"], + () => import("./smart-home").then((module) => module.smartHomeRouter), + { mcp: true }, + ), + stockPrice: registerWidgetRouter(["stockPrice"], () => import("./stocks").then((module) => module.stockPriceRouter)), + mediaServer: registerWidgetRouter( + ["mediaServer", "audioStats"], + () => import("./media-server").then((module) => module.mediaServerRouter), + { mcp: true }, + ), + mediaRelease: registerWidgetRouter(["mediaReleases"], () => + import("./media-release").then((module) => module.mediaReleaseRouter), + ), + calendar: registerWidgetRouter(["calendar"], () => import("./calendar").then((module) => module.calendarRouter), { + mcp: true, + }), + downloads: generatedDownloadsRouter, + mediaRequests: registerWidgetRouter( + ["mediaRequests-requestList", "mediaRequests-requestStats"], + () => import("./media-requests").then((module) => module.mediaRequestsRouter), + { mcp: true }, + ), + mediaOrganizer: registerWidgetRouter(["mediaMissing"], () => + import("./media-organizer").then((module) => module.mediaOrganizerRouter), + ), + rssFeed: registerWidgetRouter(["rssFeed"], () => import("./rssFeed").then((module) => module.rssFeedRouter)), + indexerManager: registerWidgetRouter(["indexerManager"], () => + import("./indexer-manager").then((module) => module.indexerManagerRouter), + ), + healthMonitoring: registerWidgetRouter( + ["healthMonitoring", "systemResources", "systemDisks"], + () => import("./health-monitoring").then((module) => module.healthMonitoringRouter), + { mcp: true }, + ), + mediaTranscoding: registerWidgetRouter(["mediaTranscoding"], () => + import("./media-transcoding").then((module) => module.mediaTranscodingRouter), + ), + minecraft: registerWidgetRouter(["minecraftServerStatus"], () => + import("./minecraft").then((module) => module.minecraftRouter), + ), + releases: registerWidgetRouter(["releases"], () => import("./releases").then((module) => module.releasesRouter)), + networkController: registerWidgetRouter(["networkControllerSummary", "networkControllerStatus"], () => + import("./network-controller").then((module) => module.networkControllerRouter), + ), + firewall: registerWidgetRouter(["firewall"], () => import("./firewall").then((module) => module.firewallRouter)), + notifications: registerWidgetRouter(["notifications"], () => + import("./notifications").then((module) => module.notificationsRouter), + ), + timetable: registerWidgetRouter(["timetable"], () => import("./timetable").then((module) => module.timetableRouter)), + tracearr: registerWidgetRouter(["tracearr"], () => import("./tracearr").then((module) => module.tracearrRouter)), + speedtestTracker: registerWidgetRouter(["speedtestTracker"], () => + import("./speedtest-tracker").then((module) => module.speedtestTrackerRouter), + ), + uptimeKuma: registerWidgetRouter(["uptimeKuma"], () => + import("./uptime-kuma").then((module) => module.uptimeKumaRouter), + ), + audioStats: registerWidgetRouter(["audioStats"], () => + import("./audio-stats").then((module) => module.audioStatsRouter), + ), + umami: registerWidgetRouter(["umami"], () => import("./umami").then((module) => module.umamiRouter)), + vpn: registerWidgetRouter(["vpn"], () => import("./vpn").then((module) => module.vpnRouter)), + ups: registerWidgetRouter(["ups"], () => import("./ups").then((module) => module.upsRouter)), + traefik: registerWidgetRouter(["traefik"], () => import("./traefik").then((module) => module.traefikRouter)), + customApi: registerWidgetRouter(["customApi"], () => import("./custom-api").then((module) => module.customApiRouter)), + secrets: registerWidgetRouter( + ["releases"], + () => import("./widget-secrets").then((module) => module.widgetSecretsRouter), + { mcp: "widgetSecrets" }, + ), + wud: registerWidgetRouter(["wud"], () => import("./wud").then((module) => module.wudRouter)), + ...additionalGeneratedWidgetRouters, +}; + +export type WidgetRouterName = keyof typeof widgetRouterRegistry; +type LoadedWidgetRouterRecord = { + [TName in WidgetRouterName]: Awaited>; +}; + +interface McpWidgetRouterSelection { + name: WidgetRouterName; + namespace: string; +} + +export const mcpWidgetRouterSelections: readonly McpWidgetRouterSelection[] = Object.entries( + widgetRouterRegistry, +).flatMap(([name, registration]) => { + if (!registration.mcp) return []; + + let namespace = name; + if (typeof registration.mcp === "string") namespace = registration.mcp; + return [{ name: name as WidgetRouterName, namespace }]; +}); + +export const mcpWidgetRouterNames: readonly WidgetRouterName[] = mcpWidgetRouterSelections.map( + (selection) => selection.name, +); + +export async function loadWidgetRoutersAsync( + names: TNames, + consumer: string, +): Promise> { + const loadedRouters: Partial> = {}; + + await Promise.all( + names.map(async (name) => { + const registration = widgetRouterRegistry[name]; + const startedAt = Date.now(); + try { + loadedRouters[name] = await registration.loadRouter(); + logger.debug("Loaded widget router", { + consumer, + routerName: name, + widgetKinds: registration.widgetKinds, + durationMs: Date.now() - startedAt, + }); + } catch (error) { + logger.error( + new ErrorWithMetadata( + "Failed to load widget router", + { + consumer, + routerName: name, + widgetKinds: registration.widgetKinds, + durationMs: Date.now() - startedAt, + }, + { cause: error }, + ), + ); + throw error; + } + }), + ); + + return loadedRouters as Pick; +} + +export async function loadMcpWidgetRoutersAsync(): Promise> { + const loadedRouters = await loadWidgetRoutersAsync(mcpWidgetRouterNames, "mcp"); + const mcpRouters: Record = {}; + + for (const selection of mcpWidgetRouterSelections) { + mcpRouters[selection.namespace] = loadedRouters[selection.name]; + } + + return mcpRouters; +} diff --git a/packages/api/src/router/widgets/smart-home.ts b/packages/api/src/router/widgets/smart-home.ts index a0f38c7fa..28917f23a 100644 --- a/packages/api/src/router/widgets/smart-home.ts +++ b/packages/api/src/router/widgets/smart-home.ts @@ -1,20 +1,15 @@ import { z } from "zod/v4"; import { TRPCError } from "@trpc/server"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { smartHomeEntityStateRequestHandler, toSafeEntityDetails, } from "@homarr/request-handler/smart-home-entity-state"; -import type { IntegrationAction } from "../../middlewares/integration"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../../trpc"; -const createSmartHomeIntegrationMiddleware = (action: IntegrationAction) => - createOneIntegrationMiddleware(action, ...getIntegrationKindsByCategory("smartHomeServer")); - export const smartHomeRouter = createTRPCRouter({ entityState: publicProcedure .meta({ @@ -25,7 +20,7 @@ export const smartHomeRouter = createTRPCRouter({ }, }) .input(z.object({ entityId: z.string() })) - .concat(createSmartHomeIntegrationMiddleware("query")) + .concat(createOneWidgetIntegrationMiddleware("query", "smartHome-entityState")) .query(async ({ ctx: { integration }, input }) => { const innerHandler = smartHomeEntityStateRequestHandler.handler(integration, { entityId: input.entityId }); const { data } = await innerHandler.getDataAsync(); @@ -40,7 +35,7 @@ export const smartHomeRouter = createTRPCRouter({ }, }) .input(z.object({ entityId: z.string() })) - .concat(createSmartHomeIntegrationMiddleware("query")) + .concat(createOneWidgetIntegrationMiddleware("query", "smartHome-entityState")) .query(async ({ ctx: { integration }, input }) => { const innerHandler = smartHomeEntityStateRequestHandler.handler(integration, { entityId: input.entityId }); const { data } = await innerHandler.getDataAsync(); @@ -54,7 +49,7 @@ export const smartHomeRouter = createTRPCRouter({ "Toggle a Home Assistant entity (turn on/off a light, switch, etc.). REQUIRED: integrationId (Home Assistant integration ID from integration_all), entityId (e.g. 'light.living_room')", }, }) - .concat(createSmartHomeIntegrationMiddleware("interact")) + .concat(createOneWidgetIntegrationMiddleware("interact", "smartHome-entityState")) .input(z.object({ entityId: z.string() })) .mutation(async ({ ctx: { integration }, input }) => { const client = await createIntegrationAsync(integration); @@ -72,7 +67,7 @@ export const smartHomeRouter = createTRPCRouter({ "Trigger a Home Assistant automation by its ID. REQUIRED: integrationId (Home Assistant integration ID from integration_all), automationId (the automation entity ID)", }, }) - .concat(createSmartHomeIntegrationMiddleware("interact")) + .concat(createOneWidgetIntegrationMiddleware("interact", "smartHome-executeAutomation")) .input(z.object({ automationId: z.string() })) .mutation(async ({ ctx: { integration }, input }) => { const client = await createIntegrationAsync(integration); diff --git a/packages/api/src/router/widgets/speedtest-tracker.ts b/packages/api/src/router/widgets/speedtest-tracker.ts index 4730940a4..578e4bc7d 100644 --- a/packages/api/src/router/widgets/speedtest-tracker.ts +++ b/packages/api/src/router/widgets/speedtest-tracker.ts @@ -1,12 +1,12 @@ import { speedtestTrackerRequestHandler } from "@homarr/request-handler/speedtest-tracker"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const speedtestTrackerRouter = createTRPCRouter({ getDashboard: publicProcedure - .concat(createManyIntegrationMiddleware("query", "speedtestTracker")) + .concat(createManyWidgetIntegrationMiddleware("query", "speedtestTracker")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/timetable.ts b/packages/api/src/router/widgets/timetable.ts index ced16645e..acdb19266 100644 --- a/packages/api/src/router/widgets/timetable.ts +++ b/packages/api/src/router/widgets/timetable.ts @@ -1,7 +1,4 @@ -import { lookup } from "node:dns/promises"; -import { BlockList, isIP } from "node:net"; import { TRPCError } from "@trpc/server"; -import { parse } from "superjson"; import z from "zod"; import type { Session } from "@homarr/auth"; @@ -13,10 +10,16 @@ import { timetableGetTimetableRequestHandler, timetableSearchStationsRequestHandler, } from "@homarr/request-handler/timetable"; -import { DEFAULT_TIMETABLE_BASE_URL, normalizeTimetableBaseUrl } from "@homarr/request-handler/timetable-url"; +import { DEFAULT_TIMETABLE_BASE_URL } from "@homarr/request-handler/timetable-url"; import { createTRPCRouter, publicProcedure } from "../../trpc"; import { throwIfActionForbiddenAsync } from "../board/board-access"; +import { + normalizeSavedTimetableBaseUrl, + normalizeTimetableBaseUrlOrThrowBadRequest, + parseSavedTimetableOptions, + resolvePublicTimetableAddressesAsync, +} from "../timetable-options-validation"; const baseUrlSchema = z.string().url().max(2_048); const timetableSourceSchema = z.object({ @@ -24,167 +27,6 @@ const timetableSourceSchema = z.object({ itemId: z.string().max(100).optional(), boardId: z.string().max(100).optional(), }); -const timetableOptionsSchema = z.object({ baseUrl: z.string().optional() }).passthrough(); - -const blockedTimetableIpv4Addresses = new BlockList(); -const blockedTimetableIpv6Addresses = new BlockList(); -const blockedTimetableSubnets = [ - ["0.0.0.0", 8, "ipv4"], - ["10.0.0.0", 8, "ipv4"], - ["100.64.0.0", 10, "ipv4"], - ["127.0.0.0", 8, "ipv4"], - ["169.254.0.0", 16, "ipv4"], - ["172.16.0.0", 12, "ipv4"], - ["192.0.0.0", 24, "ipv4"], - ["192.0.2.0", 24, "ipv4"], - ["192.88.99.0", 24, "ipv4"], - ["192.168.0.0", 16, "ipv4"], - ["198.18.0.0", 15, "ipv4"], - ["198.51.100.0", 24, "ipv4"], - ["203.0.113.0", 24, "ipv4"], - ["224.0.0.0", 4, "ipv4"], - ["240.0.0.0", 4, "ipv4"], - ["::", 96, "ipv6"], - ["::ffff:0:0", 96, "ipv6"], - ["::ffff:0:0:0", 96, "ipv6"], - ["64:ff9b::", 96, "ipv6"], - ["64:ff9b:1::", 48, "ipv6"], - ["100::", 64, "ipv6"], - ["2001::", 32, "ipv6"], - ["2001:2::", 48, "ipv6"], - ["2001:10::", 28, "ipv6"], - ["2001:db8::", 32, "ipv6"], - ["2002::", 16, "ipv6"], - ["fc00::", 7, "ipv6"], - ["fe80::", 10, "ipv6"], - ["fec0::", 10, "ipv6"], - ["ff00::", 8, "ipv6"], -] as const; - -for (const [network, prefix, family] of blockedTimetableSubnets) { - const blockList = family === "ipv4" ? blockedTimetableIpv4Addresses : blockedTimetableIpv6Addresses; - blockList.addSubnet(network, prefix, family); -} - -const normalizeBaseUrlOrThrowBadRequest = (baseUrl: string) => { - try { - return normalizeTimetableBaseUrl(baseUrl); - } catch (cause) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: cause instanceof Error ? cause.message : "Invalid timetable base URL", - cause, - }); - } -}; - -const throwInvalidSavedTimetableConfiguration = (cause: unknown): never => { - throw new TRPCError({ - code: "INTERNAL_SERVER_ERROR", - message: "Timetable widget configuration is invalid", - cause, - }); -}; - -const parseSavedTimetableOptions = (serializedOptions: string) => { - try { - return timetableOptionsSchema.parse(parse(serializedOptions)); - } catch (cause) { - return throwInvalidSavedTimetableConfiguration(cause); - } -}; - -const normalizeSavedTimetableBaseUrl = (baseUrl: string) => { - try { - return normalizeTimetableBaseUrl(baseUrl); - } catch (cause) { - return throwInvalidSavedTimetableConfiguration(cause); - } -}; - -const normalizeHostname = (hostname: string) => { - const withoutBrackets = hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname; - return withoutBrackets.toLowerCase().replace(/\.$/, ""); -}; - -const isBlockedTimetableAddress = (address: string, family: number) => { - return family === 6 - ? blockedTimetableIpv6Addresses.check(address, "ipv6") - : blockedTimetableIpv4Addresses.check(address, "ipv4"); -}; - -const resolvePublicTimetableAddressesAsync = async (baseUrl: string): Promise => { - const hostname = normalizeHostname(new URL(baseUrl).hostname); - const hostnameFamily = isIP(hostname); - const isInternalHostname = - hostnameFamily === 0 && - (!hostname.includes(".") || - hostname === "localhost" || - hostname.endsWith(".localhost") || - hostname.endsWith(".local") || - hostname.endsWith(".internal") || - hostname.endsWith(".lan") || - hostname.endsWith(".home.arpa")); - - if (isInternalHostname) { - throw new TRPCError({ code: "BAD_REQUEST", message: "Timetable base URL must use a public host" }); - } - - let addresses: TimetableResolvedAddress[]; - try { - const resolvedAddresses = - hostnameFamily === 0 - ? await lookup(hostname, { all: true, verbatim: true }) - : [{ address: hostname, family: hostnameFamily }]; - addresses = resolvedAddresses.filter( - (entry): entry is TimetableResolvedAddress => entry.family === 4 || entry.family === 6, - ); - } catch (cause) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: "Timetable base URL host could not be resolved", - cause, - }); - } - - if (addresses.length === 0 || addresses.some(({ address, family }) => isBlockedTimetableAddress(address, family))) { - throw new TRPCError({ - code: "BAD_REQUEST", - message: "Timetable base URL must not target a private or internal address", - }); - } - - return addresses.toSorted((left, right) => left.family - right.family || left.address.localeCompare(right.address)); -}; - -const normalizeTimetableOptionsBaseUrlOrThrowBadRequest = (options: Record) => { - const parsedOptions = timetableOptionsSchema.safeParse(options); - if (!parsedOptions.success) { - throw new TRPCError({ code: "BAD_REQUEST", message: "Invalid timetable widget options" }); - } - return normalizeBaseUrlOrThrowBadRequest(parsedOptions.data.baseUrl ?? DEFAULT_TIMETABLE_BASE_URL); -}; - -export const validateTimetableOptionsChangeAsync = async ( - nextOptions: Record, - previousOptions?: Record, -) => { - const nextBaseUrl = normalizeTimetableOptionsBaseUrlOrThrowBadRequest(nextOptions); - if (nextBaseUrl === DEFAULT_TIMETABLE_BASE_URL) return; - - let previousBaseUrl: string | undefined; - if (previousOptions) { - try { - previousBaseUrl = normalizeTimetableOptionsBaseUrlOrThrowBadRequest(previousOptions); - } catch { - // Invalid legacy options must not prevent replacing them with a valid configuration. - } - } - if (nextBaseUrl === previousBaseUrl) return; - - await resolvePublicTimetableAddressesAsync(nextBaseUrl); -}; - const getSavedTimetableBaseUrl = (serializedOptions: string) => { const options = parseSavedTimetableOptions(serializedOptions); return normalizeSavedTimetableBaseUrl(options.baseUrl ?? DEFAULT_TIMETABLE_BASE_URL); @@ -200,7 +42,7 @@ const resolveTimetableBaseUrlAsync = async ( input: z.infer, allowBoardConfiguration = false, ): Promise => { - const requestedBaseUrl = normalizeBaseUrlOrThrowBadRequest(input.baseUrl); + const requestedBaseUrl = normalizeTimetableBaseUrlOrThrowBadRequest(input.baseUrl); if (allowBoardConfiguration) { if (input.boardId) { await throwIfActionForbiddenAsync(ctx, eq(boards.id, input.boardId), "modify"); diff --git a/packages/api/src/router/widgets/tracearr.ts b/packages/api/src/router/widgets/tracearr.ts index d96a02932..e2e02273a 100644 --- a/packages/api/src/router/widgets/tracearr.ts +++ b/packages/api/src/router/widgets/tracearr.ts @@ -1,37 +1,39 @@ import { tracearrRequestHandler } from "@homarr/request-handler/tracearr"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const tracearrRouter = createTRPCRouter({ - getDashboard: publicProcedure.concat(createManyIntegrationMiddleware("query", "tracearr")).query(async ({ ctx }) => { - return await settleIntegrationQueries( - ctx.integrations, - async (integration) => { - const innerHandler = tracearrRequestHandler.handler(integration, {}); - const { data, timestamp } = await innerHandler.getDataAsync(); + getDashboard: publicProcedure + .concat(createManyWidgetIntegrationMiddleware("query", "tracearr")) + .query(async ({ ctx }) => { + return await settleIntegrationQueries( + ctx.integrations, + async (integration) => { + const innerHandler = tracearrRequestHandler.handler(integration, {}); + const { data, timestamp } = await innerHandler.getDataAsync(); - return { - integrationId: integration.id, - integrationName: integration.name, - integrationUrl: integration.url, - dashboard: data as typeof data | null, - updatedAt: timestamp, - error: undefined as string | undefined, - }; - }, - { - fallback: (integration, error) => ({ - integrationId: integration.id, - integrationName: integration.name, - integrationUrl: integration.url, - dashboard: null, - updatedAt: new Date(0), - error: toPublicIntegrationError(error), - }), - throwOnAllFailures: true, - }, - ); - }), + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + dashboard: data as typeof data | null, + updatedAt: timestamp, + error: undefined as string | undefined, + }; + }, + { + fallback: (integration, error) => ({ + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + dashboard: null, + updatedAt: new Date(0), + error: toPublicIntegrationError(error), + }), + throwOnAllFailures: true, + }, + ); + }), }); diff --git a/packages/api/src/router/widgets/traefik.ts b/packages/api/src/router/widgets/traefik.ts index ad7e8479d..6109d25b9 100644 --- a/packages/api/src/router/widgets/traefik.ts +++ b/packages/api/src/router/widgets/traefik.ts @@ -1,6 +1,6 @@ import { traefikRequestHandler } from "@homarr/request-handler/traefik"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; @@ -13,7 +13,7 @@ export const traefikRouter = createTRPCRouter({ "Retrieve Traefik dashboard data, including routers, services, middlewares, and entry points, for the given integration IDs.", }, }) - .concat(createManyIntegrationMiddleware("query", "traefik")) + .concat(createManyWidgetIntegrationMiddleware("query", "traefik")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/umami.ts b/packages/api/src/router/widgets/umami.ts index 3994f398e..e89fd335c 100644 --- a/packages/api/src/router/widgets/umami.ts +++ b/packages/api/src/router/widgets/umami.ts @@ -2,7 +2,7 @@ import { z } from "zod/v4"; import { createLogger } from "@homarr/core/infrastructure/logs"; import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { umamiActiveVisitorsRequestHandler, umamiEventNamesRequestHandler, @@ -12,14 +12,17 @@ import { umamiTopReferrersRequestHandler, } from "@homarr/request-handler/umami"; -import { createManyIntegrationMiddleware, createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { + createManyWidgetIntegrationMiddleware, + createOneWidgetIntegrationMiddleware, +} from "../../middlewares/integration"; import { settleIntegrationQueries } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; const logger = createLogger({ module: "umami-router" }); export const umamiRouter = createTRPCRouter({ - getWebsites: publicProcedure.concat(createOneIntegrationMiddleware("query", "umami")).query(async ({ ctx }) => { + getWebsites: publicProcedure.concat(createOneWidgetIntegrationMiddleware("query", "umami")).query(async ({ ctx }) => { try { const instance = await createIntegrationAsync(ctx.integration); return await instance.getWebsitesAsync(); @@ -37,7 +40,7 @@ export const umamiRouter = createTRPCRouter({ eventName: z.string().optional(), }), ) - .concat(createManyIntegrationMiddleware("query", "umami")) + .concat(createManyWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { return await settleIntegrationQueries(ctx.integrations, async (integration) => { const innerHandler = umamiRequestHandler.handler(integration, { @@ -59,7 +62,7 @@ export const umamiRouter = createTRPCRouter({ getEventNames: publicProcedure .input(z.object({ websiteId: z.string() })) - .concat(createOneIntegrationMiddleware("query", "umami")) + .concat(createOneWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { try { const innerHandler = umamiEventNamesRequestHandler.handler(ctx.integration, { websiteId: input.websiteId }); @@ -81,7 +84,7 @@ export const umamiRouter = createTRPCRouter({ limit: z.number().int().min(1).max(500), }), ) - .concat(createOneIntegrationMiddleware("query", "umami")) + .concat(createOneWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { try { const innerHandler = umamiTopPagesRequestHandler.handler(ctx.integration, { @@ -111,7 +114,7 @@ export const umamiRouter = createTRPCRouter({ limit: z.number().int().min(1).max(500), }), ) - .concat(createOneIntegrationMiddleware("query", "umami")) + .concat(createOneWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { try { const innerHandler = umamiTopReferrersRequestHandler.handler(ctx.integration, { @@ -141,7 +144,7 @@ export const umamiRouter = createTRPCRouter({ eventNames: z.array(z.string()), }), ) - .concat(createOneIntegrationMiddleware("query", "umami")) + .concat(createOneWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { try { const sortedNames = [...input.eventNames].toSorted(); @@ -166,7 +169,7 @@ export const umamiRouter = createTRPCRouter({ getActiveVisitors: publicProcedure .input(z.object({ websiteId: z.string() })) - .concat(createOneIntegrationMiddleware("query", "umami")) + .concat(createOneWidgetIntegrationMiddleware("query", "umami")) .query(async ({ ctx, input }) => { try { const innerHandler = umamiActiveVisitorsRequestHandler.handler(ctx.integration, { diff --git a/packages/api/src/router/widgets/ups.ts b/packages/api/src/router/widgets/ups.ts index bc8481690..c0eca54ae 100644 --- a/packages/api/src/router/widgets/ups.ts +++ b/packages/api/src/router/widgets/ups.ts @@ -1,40 +1,37 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { upsSummariesRequestHandler } from "@homarr/request-handler/ups"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const upsRouter = createTRPCRouter({ - getSummaries: publicProcedure - .concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("ups"))) - .query(async ({ ctx }) => { - return await settleIntegrationQueries( - ctx.integrations, - async (integration) => { - const innerHandler = upsSummariesRequestHandler.handler(integration, {}); - const { data, timestamp } = await innerHandler.getDataAsync(); + getSummaries: publicProcedure.concat(createManyWidgetIntegrationMiddleware("query", "ups")).query(async ({ ctx }) => { + return await settleIntegrationQueries( + ctx.integrations, + async (integration) => { + const innerHandler = upsSummariesRequestHandler.handler(integration, {}); + const { data, timestamp } = await innerHandler.getDataAsync(); - return { - integrationId: integration.id, - integrationName: integration.name, - integrationUrl: integration.url, - summaries: data, - updatedAt: timestamp, - error: undefined as string | undefined, - }; - }, - { - fallback: (integration, error) => ({ - integrationId: integration.id, - integrationName: integration.name, - integrationUrl: integration.url, - summaries: [], - updatedAt: new Date(0), - error: toPublicIntegrationError(error), - }), - throwOnAllFailures: true, - }, - ); - }), + return { + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + summaries: data, + updatedAt: timestamp, + error: undefined as string | undefined, + }; + }, + { + fallback: (integration, error) => ({ + integrationId: integration.id, + integrationName: integration.name, + integrationUrl: integration.url, + summaries: [], + updatedAt: new Date(0), + error: toPublicIntegrationError(error), + }), + throwOnAllFailures: true, + }, + ); + }), }); diff --git a/packages/api/src/router/widgets/uptime-kuma.ts b/packages/api/src/router/widgets/uptime-kuma.ts index e3082c284..8d377cd06 100644 --- a/packages/api/src/router/widgets/uptime-kuma.ts +++ b/packages/api/src/router/widgets/uptime-kuma.ts @@ -1,12 +1,12 @@ import { uptimeKumaRequestHandler } from "@homarr/request-handler/uptime-kuma"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const uptimeKumaRouter = createTRPCRouter({ getDashboard: publicProcedure - .concat(createManyIntegrationMiddleware("query", "uptimeKuma")) + .concat(createManyWidgetIntegrationMiddleware("query", "uptimeKuma")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/vpn.ts b/packages/api/src/router/widgets/vpn.ts index 276367440..72a1bbd3b 100644 --- a/packages/api/src/router/widgets/vpn.ts +++ b/packages/api/src/router/widgets/vpn.ts @@ -1,13 +1,12 @@ -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { vpnSummaryHandler } from "@homarr/request-handler/vpn"; -import { createManyIntegrationMiddleware } from "../../middlewares/integration"; +import { createManyWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { settleIntegrationQueries, toPublicIntegrationError } from "../../settle-integrations"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const vpnRouter = createTRPCRouter({ getSummaries: publicProcedure - .unstable_concat(createManyIntegrationMiddleware("query", ...getIntegrationKindsByCategory("vpn"))) + .unstable_concat(createManyWidgetIntegrationMiddleware("query", "vpn")) .query(async ({ ctx }) => { return await settleIntegrationQueries( ctx.integrations, diff --git a/packages/api/src/router/widgets/wud.ts b/packages/api/src/router/widgets/wud.ts index 4b510e660..9929ddaba 100644 --- a/packages/api/src/router/widgets/wud.ts +++ b/packages/api/src/router/widgets/wud.ts @@ -1,6 +1,6 @@ import { wudStatsRequestHandler } from "@homarr/request-handler/wud"; -import { createOneIntegrationMiddleware } from "../../middlewares/integration"; +import { createOneWidgetIntegrationMiddleware } from "../../middlewares/integration"; import { createTRPCRouter, publicProcedure } from "../../trpc"; export const wudRouter = createTRPCRouter({ @@ -12,7 +12,7 @@ export const wudRouter = createTRPCRouter({ "Returns monitored-container counts and available updates from a What's Up Docker integration. REQUIRED: integrationId from integration_all. The caller needs query permission for that integration.", }, }) - .concat(createOneIntegrationMiddleware("query", "wud")) + .concat(createOneWidgetIntegrationMiddleware("query", "wud")) .query(async ({ ctx }) => { const handler = wudStatsRequestHandler.handler(ctx.integration, {}); const { data, timestamp } = await handler.getDataAsync(); diff --git a/packages/api/src/test/mcp.spec.ts b/packages/api/src/test/mcp.spec.ts index a708701b5..ac9bc1e00 100644 --- a/packages/api/src/test/mcp.spec.ts +++ b/packages/api/src/test/mcp.spec.ts @@ -2,11 +2,13 @@ import type { TRPCError } from "@trpc/server"; import { describe, expect, test, vi } from "vitest"; import { z } from "zod/v4"; -import { mcpRouter } from "../mcp"; +import { getMcpRouterAsync } from "../mcp"; import { extractMcpToolsFromProcedures } from "../mcp-tools"; vi.mock("@homarr/auth", () => ({})); +const mcpRouter = await getMcpRouterAsync(); + const MCP_TOOL_ALLOWLIST = { query: [ "airQuality_atLocation", diff --git a/packages/api/src/trpc.ts b/packages/api/src/trpc.ts index 2c0936dbb..9d7389304 100644 --- a/packages/api/src/trpc.ts +++ b/packages/api/src/trpc.ts @@ -16,6 +16,7 @@ import { extractBaseUrlFromHeaders, FlattenError } from "@homarr/common"; import { userAgent } from "@homarr/common/server"; import type { DeviceType } from "@homarr/common/server"; import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { db } from "@homarr/db"; import type { GroupPermissionKey, OnboardingStep } from "@homarr/definitions"; @@ -105,6 +106,13 @@ export const createCallerFactory = t.createCallerFactory; */ export const createTRPCRouter = t.router; +/** + * Unadorned procedure builder for middleware fragments that are concatenated + * onto a public, protected, or internal procedure. Global middleware belongs + * on the outer procedure so observability and policy checks run exactly once. + */ +export const middlewareProcedure = t.procedure; + export const isDemoMode = env.DEMO_MODE; // The public "real demo" (demo + mock integrations) stays read-only, while preview @@ -121,7 +129,47 @@ const enforceDemoModeReadOnly = t.middleware(({ ctx, next, type }) => { return next({ ctx }); }); -const baseProcedure = isDemoReadOnly ? t.procedure.use(enforceDemoModeReadOnly) : t.procedure; +const observeProcedure = t.middleware(async ({ ctx, next, path, type }) => { + const startedAt = Date.now(); + const metadata = { + path, + type, + userId: ctx.session?.user.id, + }; + + logger.debug("tRPC procedure started", metadata); + + const result = await next(); + const durationMs = Date.now() - startedAt; + + if (result.ok) { + logger.debug("tRPC procedure completed", { ...metadata, durationMs }); + return result; + } + + const safeError = new Error(result.error.message); + safeError.name = result.error.name; + safeError.stack = result.error.stack; + + logger.warn( + new ErrorWithMetadata( + "tRPC procedure failed", + { + ...metadata, + durationMs, + errorCode: result.error.code, + causeType: result.error.cause instanceof Error ? result.error.cause.name : undefined, + }, + { cause: safeError }, + ), + ); + return result; +}); + +let baseProcedure = t.procedure.use(observeProcedure); +if (isDemoReadOnly) { + baseProcedure = baseProcedure.use(enforceDemoModeReadOnly); +} /** * Public (unauthed) procedure @@ -145,7 +193,7 @@ const enforceOnboardingAccess = t.middleware(async ({ ctx, next }) => { export const onboardingClaimedProcedure = baseProcedure.use(enforceOnboardingAccess); -export const internalProcedure = t.procedure; +export const internalProcedure = t.procedure.use(observeProcedure); const enforceUserIsAuthed = t.middleware(({ ctx, next }) => { if (!ctx.session?.user) { diff --git a/packages/db/queries/widget-placement.ts b/packages/db/queries/widget-placement.ts index c3a246b2f..3036250f8 100644 --- a/packages/db/queries/widget-placement.ts +++ b/packages/db/queries/widget-placement.ts @@ -124,6 +124,7 @@ export const placeAllWidgetsAsync = async ( } } + let placedAppCount = 0; for (const app of allApps) { await placeWidgetAsync( db, @@ -133,6 +134,7 @@ export const placeAllWidgetsAsync = async ( superjson.stringify({ appId: app.id, openInNewTab: true, showTitle: true }), { width: 1, height: 1 }, ); + placedAppCount += 1; } const bookmarkAppNames = new Set(defaultBookmarkApps.map((bookmark) => bookmark.name)); @@ -153,5 +155,5 @@ export const placeAllWidgetsAsync = async ( }); } - return placedWidgets.size + allApps.length; + return placedWidgets.size + placedAppCount; }; diff --git a/packages/definitions/src/docker-integration-match.ts b/packages/definitions/src/docker-integration-match.ts index 36a0d0f58..becadf00c 100644 --- a/packages/definitions/src/docker-integration-match.ts +++ b/packages/definitions/src/docker-integration-match.ts @@ -14,30 +14,6 @@ export const integrationIconSlugs: Record = Object.from objectKeys(integrationDefs).map((kind) => [kind, extractIconSlug(integrationDefs[kind].iconUrl)]), ) as Record; -const integrationAliases: Partial> = { - piHole: ["pihole", "pi-hole"], - adGuardHome: ["adguardhome", "adguard-home", "adguard"], - homeAssistant: ["homeassistant", "home-assistant", "hass"], - openmediavault: ["omv"], - qBittorrent: ["qbittorrent"], - sabNzbd: ["sabnzbd"], - nzbGet: ["nzbget"], - unifiController: ["unifi", "unifi-controller"], - jellyseerr: ["jellyseerr"], - overseerr: ["overseerr"], - dashDot: ["dashdot", "dash-dot", "dash."], - speedtestTracker: ["speedtest-tracker"], - uptimeKuma: ["uptime-kuma"], - audiobookshelf: ["audiobookshelf"], - navidrome: ["navidrome"], - paperlessNgx: ["paperless-ngx", "paperless"], - patchmon: ["patchmon", "patch-mon"], - coolify: ["coolify"], - truenas: ["truenas"], - bazarr: ["bazarr"], - synology: ["synology", "diskstation"], -}; - export const matchIntegrationKind = (search: string): IntegrationKind | null => { const normalized = search.toLowerCase().trim(); if (!normalized) return null; @@ -51,8 +27,8 @@ export const matchIntegrationKind = (search: string): IntegrationKind | null => if (integrationIconSlugs[kind] === normalized) return kind; } - for (const [kind, aliases] of Object.entries(integrationAliases) as [IntegrationKind, readonly string[]][]) { - if (aliases.some((alias) => alias === normalized)) return kind; + for (const kind of objectKeys(integrationDefs)) { + if (integrationDefs[kind].features.docker.aliases.some((alias) => alias === normalized)) return kind; } for (const kind of objectKeys(integrationDefs)) { @@ -63,8 +39,6 @@ export const matchIntegrationKind = (search: string): IntegrationKind | null => return null; }; -const notDockerDiscoverable = new Set(["ical", "mock"]); - interface ContainerMatchInput { image: string; name: string; @@ -73,10 +47,10 @@ interface ContainerMatchInput { export const matchIntegrationKindFromContainer = (container: ContainerMatchInput): IntegrationKind | null => { const imageName = extractContainerImageName(container.image); const fromImage = matchIntegrationKind(imageName); - if (fromImage && !notDockerDiscoverable.has(fromImage)) return fromImage; + if (fromImage && integrationDefs[fromImage].features.docker.discoverable) return fromImage; const fromName = matchIntegrationKind(container.name); - if (fromName && !notDockerDiscoverable.has(fromName)) return fromName; + if (fromName && integrationDefs[fromName].features.docker.discoverable) return fromName; return null; }; diff --git a/packages/definitions/src/docs/integration-doc-slugs.ts b/packages/definitions/src/docs/integration-doc-slugs.ts index 3a306b14e..aca3a949e 100644 --- a/packages/definitions/src/docs/integration-doc-slugs.ts +++ b/packages/definitions/src/docs/integration-doc-slugs.ts @@ -1,59 +1,8 @@ -import type { IntegrationKind } from "../integration"; +import { objectEntries } from "@homarr/common"; -export const integrationDocSlugs: Record = { - sabNzbd: "sabnzbd", - nzbGet: "nzbget", - deluge: "deluge", - transmission: "transmission", - qBittorrent: "q-bittorent", - aria2: "aria2", - slskd: "slskd", - sonarr: "sonarr", - radarr: "radarr", - lidarr: "lidarr", - readarr: "readarr", - prowlarr: "prowlarr", - bazarr: "bazarr", - jellyfin: "jellyfin", - emby: "emby", - plex: "plex", - jellyseerr: "jellyseerr", - seerr: "seerr", - overseerr: "overseerr", - piHole: "pi-hole", - adGuardHome: "adguard-home", - technitiumDns: "technitium-dns", - homeAssistant: "home-assistant", - openmediavault: "open-media-vault", - dashDot: "dash-dot", - glances: "glances", - tdarr: "tdarr", - proxmox: "proxmox", - nextcloud: "nextcloud", - unifiController: "unifi-controller", - opnsense: "opnsense", - ntfy: "ntfy", - gotify: "gotify", - ical: "ical", - anchor: "anchor", - truenas: "truenas", - synology: "synology", - unraid: "unraid", - coolify: "coolify", - immich: "immich", - paperlessNgx: "paperless-ngx", - patchmon: "patchmon", - tracearr: "tracearr", - speedtestTracker: "speedtest-tracker", - uptimeKuma: "uptime-kuma", - audiobookshelf: "audiobookshelf", - navidrome: "navidrome", - umami: "umami", - gluetun: "gluetun", - peaNut: "peanut", - beszel: "beszel", - traefik: "traefik", - archiveTeamWarrior: "archiveteam-warrior", - wud: "whats-up-docker", - mock: null, -}; +import type { IntegrationKind } from "../integration"; +import { integrationDefs } from "../integration"; + +export const integrationDocSlugs = Object.fromEntries( + objectEntries(integrationDefs).map(([kind, definition]) => [kind, definition.documentationSlug]), +) as Record; diff --git a/packages/definitions/src/docs/widget-doc-slugs.ts b/packages/definitions/src/docs/widget-doc-slugs.ts index 466d36369..f5cc6a57a 100644 --- a/packages/definitions/src/docs/widget-doc-slugs.ts +++ b/packages/definitions/src/docs/widget-doc-slugs.ts @@ -1,63 +1,6 @@ import type { WidgetKind } from "../widget"; +import { widgetFeatureCatalog, widgetKinds } from "../widget"; -export const widgetDocSlugs: Record = { - clock: "clock", - weather: "weather", - airQuality: "air-quality", - countdown: "countdown", - timer: "timer", - app: "app", - iframe: "iframe", - video: "video", - notebook: "notebook", - anchorNote: "anchor-note", - dnsHoleSummary: "dns-hole-summary", - dnsHoleControls: "dns-hole-controls", - "smartHome-entityState": "smart-home-entity-state", - "smartHome-executeAutomation": "smart-home-execute-automation", - stockPrice: "stock-price", - mediaServer: "media-server", - calendar: "calendar", - downloads: "downloads", - "mediaRequests-requestList": "media-request-list", - "mediaRequests-requestStats": "media-request-stats", - mediaTranscoding: "media-transcoding", - mediaMissing: "media-missing", - minecraftServerStatus: "minecraft-server-status", - networkControllerSummary: "network-controller-summary", - networkControllerStatus: "network-controller-status", - rssFeed: "rss-feed", - bookmarks: "bookmarks", - indexerManager: "indexer-manager", - healthMonitoring: "health-monitoring", - releases: "releases", - mediaReleases: "media-releases", - dockerContainers: "docker-containers", - firewall: "firewall", - notifications: "notifications", - systemResources: "system-resources", - coolify: "coolify", - systemDisks: "system-disks", - timetable: "timetable", - "immich-serverStats": "immich-server-stats", - "immich-albumCarousel": "immich-album-carousel", - paperlessNgx: "paperless-ngx", - patchmon: "patchmon", - bazarr: "bazarr", - tracearr: "tracearr", - speedtestTracker: "speedtest-tracker", - uptimeKuma: "uptime-kuma", - audioStats: "audio-stats", - umami: "umami", - vpn: "vpn", - ups: "ups", - archiveTeamWarrior: null, - beszelSystemTable: "beszel-system-table", - beszelSystemGrid: "beszel-system-grid", - beszelAlerts: "beszel-alerts", - beszelSystemStats: "beszel-system-stats", - traefik: "traefik", - customApi: "custom-api", - assistant: "assistant", - wud: "whats-up-docker", -}; +export const widgetDocSlugs = Object.fromEntries( + widgetKinds.map((kind) => [kind, widgetFeatureCatalog[kind].documentationSlug]), +) as Record; diff --git a/packages/definitions/src/generated/integration-modules.ts b/packages/definitions/src/generated/integration-modules.ts new file mode 100644 index 000000000..19cd65e78 --- /dev/null +++ b/packages/definitions/src/generated/integration-modules.ts @@ -0,0 +1,12 @@ +// This file is generated by pnpm integrations:sync. Do not edit it directly. + +export const generatedIntegrationDefinitions = { + beszel: { + name: "Beszel", + secretKinds: [["username", "password"]], + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg", + category: ["beszel"], + documentationSlug: "beszel", + defaultPort: 8090, + }, +} as const; diff --git a/packages/definitions/src/generated/widget-modules.ts b/packages/definitions/src/generated/widget-modules.ts new file mode 100644 index 000000000..32af57a67 --- /dev/null +++ b/packages/definitions/src/generated/widget-modules.ts @@ -0,0 +1,59 @@ +// This file is generated by pnpm widgets:sync. Do not edit it directly. + +export const generatedWidgetFeatureCatalog = { + downloads: { + documentationSlug: "downloads", + capability: { + integrations: ["sabNzbd", "nzbGet", "deluge", "transmission", "qBittorrent", "aria2", "slskd", "mock"] as const, + }, + query: { paths: [["widget", "downloads", "getJobsAndStatuses"]] as const, refetchIntervalSeconds: 10 }, + }, + weather: { + documentationSlug: "weather", + defaultSize: { width: 2, height: 1 }, + query: { paths: [["widget", "weather", "atLocation"]] as const, refetchIntervalSeconds: 600 }, + }, +} as const; + +export const widgetServerCachePolicies = { + downloads: { + getJobsAndStatuses: { namespace: "downloads:jobs-and-status", ttlMs: 10000, scope: "integration" }, + }, + weather: { + atLocation: { namespace: "weather:at-location", ttlMs: 300000, scope: "shared" }, + }, +} as const; + +export const generatedWidgetOperationPolicies = [ + { + widgetKind: "downloads", + operation: "getJobsAndStatuses", + kind: "query", + path: ["widget", "downloads", "getJobsAndStatuses"], + refetchIntervalSeconds: 10, + staleTimeSeconds: 10, + persist: true, + }, + { + widgetKind: "weather", + operation: "atLocation", + kind: "query", + path: ["widget", "weather", "atLocation"], + refetchIntervalSeconds: 600, + staleTimeSeconds: 300, + persist: true, + }, +] as const; + +export const generatedWidgetDocumentationSources = { + downloads: "packages/widgets/src/downloads/docs", + weather: "packages/widgets/src/weather/docs", +} as const; + +export const getWidgetServerCachePolicy = < + TKind extends keyof typeof widgetServerCachePolicies, + TOperation extends keyof (typeof widgetServerCachePolicies)[TKind], +>( + kind: TKind, + operation: TOperation, +): (typeof widgetServerCachePolicies)[TKind][TOperation] => widgetServerCachePolicies[kind][operation]; diff --git a/packages/definitions/src/index.ts b/packages/definitions/src/index.ts index b8d094c27..504d3236e 100644 --- a/packages/definitions/src/index.ts +++ b/packages/definitions/src/index.ts @@ -1,5 +1,7 @@ export * from "./board"; export * from "./integration"; +export * from "./integration-module"; +export * from "./generated/integration-modules"; export * from "./section"; export * from "./widget"; export * from "./widget-name"; @@ -14,6 +16,8 @@ export * from "./cookie"; export * from "./search-engine"; export * from "./onboarding"; export * from "./widget-integration-map"; +export * from "./widget-module"; +export * from "./generated/widget-modules"; export * from "./emptysuperjson"; export * from "./hotkeys"; export * from "./docker-integration-match"; diff --git a/packages/definitions/src/integration-module.ts b/packages/definitions/src/integration-module.ts new file mode 100644 index 000000000..bbb0a481e --- /dev/null +++ b/packages/definitions/src/integration-module.ts @@ -0,0 +1,53 @@ +import type { IntegrationCategory, IntegrationSecretKind } from "./integration"; + +export interface IntegrationModuleDocumentation { + slug: string; + sourceDirectory: string; +} + +export interface IntegrationModuleDockerMetadata { + aliases?: readonly string[]; + discoverable?: boolean; +} + +export interface IntegrationModuleOnboardingMetadata { + featuredOrder?: number; + hidden?: boolean; +} + +export type IntegrationModuleCreatorEntry = + | { + type: "constructor"; + module: string; + exportName: string; + } + | { + type: "factory"; + module: string; + exportName: string; + }; + +/** + * Pure, server-safe authoring contract for a vertical integration module. + * + * Runtime entry points are strings so reading metadata never imports an + * integration implementation or its transitive server dependencies. + */ +export interface IntegrationModuleDefinition { + kind: string; + name: string; + iconUrl: string; + secretKinds: readonly [readonly IntegrationSecretKind[], ...(readonly IntegrationSecretKind[])[]]; + categories: readonly [IntegrationCategory, ...IntegrationCategory[]]; + documentation: IntegrationModuleDocumentation; + creator: IntegrationModuleCreatorEntry; + defaultUrl?: string; + defaultPort?: number; + apiKeySettingsPath?: string; + docker?: IntegrationModuleDockerMetadata; + onboarding?: IntegrationModuleOnboardingMetadata; +} + +export const defineIntegrationModule = ( + definition: TDefinition, +) => definition; diff --git a/packages/definitions/src/integration.ts b/packages/definitions/src/integration.ts index f010dcb4c..3eae126d7 100644 --- a/packages/definitions/src/integration.ts +++ b/packages/definitions/src/integration.ts @@ -1,7 +1,12 @@ -import { objectKeys } from "@homarr/common"; +import { objectEntries, objectKeys } from "@homarr/common"; import type { AtLeastOneOf } from "@homarr/common/types"; import { createDocumentationLink } from "./docs"; +import type { HomarrDocumentationPath } from "./docs/homarr-docs-sitemap"; +import { generatedIntegrationDefinitions } from "./generated/integration-modules"; + +type IntegrationDocumentationPath = Extract; +type IntegrationDocumentationSlug = string; export const integrationSecretKindObject = { apiKey: { isPublic: false, multiline: false }, @@ -24,41 +29,107 @@ export const integrationSecretKindObject = { export const integrationSecretKinds = objectKeys(integrationSecretKindObject); +interface IntegrationFeatureMetadata { + docker?: { + aliases?: readonly string[]; + discoverable?: boolean; + }; + onboarding?: { + featuredOrder?: number; + hidden?: boolean; + }; +} + +interface ResolvedIntegrationFeatureMetadata { + docker: { + aliases: readonly string[]; + discoverable: boolean; + }; + onboarding: { + featuredOrder: number | null; + hidden: boolean; + }; +} + interface integrationDefinition { name: string; iconUrl: string; - secretKinds: AtLeastOneOf; // at least one secret kind set is required - category: AtLeastOneOf; - documentationUrl: string | null; + secretKinds: readonly [readonly IntegrationSecretKind[], ...(readonly IntegrationSecretKind[])[]]; + category: readonly [IntegrationCategory, ...IntegrationCategory[]]; + documentationSlug: IntegrationDocumentationSlug | null; + features?: IntegrationFeatureMetadata; defaultUrl?: string; defaultPort?: number; apiKeySettingsPath?: string; } -export const integrationDefs = { +type ResolvedIntegrationDefinitions> = { + [TKind in keyof TDefinitions]: TDefinitions[TKind] & { + documentationUrl: string | null; + features: ResolvedIntegrationFeatureMetadata; + }; +}; + +const createIntegrationDefinitions = >( + definitions: TDefinitions, +): ResolvedIntegrationDefinitions => { + return Object.fromEntries( + objectEntries(definitions).map(([kind, definition]) => { + let documentationUrl: string | null = null; + if (definition.documentationSlug !== null) { + const documentationPath = `/docs/integrations/${definition.documentationSlug}` as IntegrationDocumentationPath; + documentationUrl = createDocumentationLink(documentationPath); + } + return [ + kind, + { + ...definition, + documentationUrl, + features: { + docker: { + aliases: definition.features?.docker?.aliases ?? [], + discoverable: definition.features?.docker?.discoverable ?? true, + }, + onboarding: { + featuredOrder: definition.features?.onboarding?.featuredOrder ?? null, + hidden: definition.features?.onboarding?.hidden ?? false, + }, + }, + }, + ]; + }), + ) as unknown as ResolvedIntegrationDefinitions; +}; + +export const integrationDefs = createIntegrationDefinitions({ sabNzbd: { name: "SABnzbd", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/sabnzbd.svg", category: ["downloadClient", "usenet"], - documentationUrl: createDocumentationLink("/docs/integrations/sabnzbd"), + documentationSlug: "sabnzbd", defaultPort: 8080, apiKeySettingsPath: "/config/general/", + features: { + docker: { aliases: ["sabnzbd"] }, + onboarding: { featuredOrder: 3 }, + }, }, nzbGet: { name: "NZBGet", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/nzbget.svg", category: ["downloadClient", "usenet"], - documentationUrl: createDocumentationLink("/docs/integrations/nzbget"), + documentationSlug: "nzbget", defaultPort: 6789, + features: { docker: { aliases: ["nzbget"] } }, }, deluge: { name: "Deluge", secretKinds: [["password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/deluge.svg", category: ["downloadClient", "torrent"], - documentationUrl: createDocumentationLink("/docs/integrations/deluge"), + documentationSlug: "deluge", defaultPort: 8112, }, transmission: { @@ -66,7 +137,7 @@ export const integrationDefs = { secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/transmission.svg", category: ["downloadClient", "torrent"], - documentationUrl: createDocumentationLink("/docs/integrations/transmission"), + documentationSlug: "transmission", defaultPort: 9091, }, qBittorrent: { @@ -74,16 +145,20 @@ export const integrationDefs = { secretKinds: [["apiKey"], ["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/qbittorrent.svg", category: ["downloadClient", "torrent"], - documentationUrl: createDocumentationLink("/docs/integrations/q-bittorent"), + documentationSlug: "q-bittorent", defaultPort: 8080, apiKeySettingsPath: "/#/settings/webui", + features: { + docker: { aliases: ["qbittorrent"] }, + onboarding: { featuredOrder: 4 }, + }, }, aria2: { name: "Aria2", secretKinds: [[], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/PapirusDevelopmentTeam/papirus_icons@latest/src/system_downloads_3.svg", category: ["downloadClient", "torrent", "miscellaneous"], - documentationUrl: createDocumentationLink("/docs/integrations/aria2"), + documentationSlug: "aria2", defaultPort: 6800, }, slskd: { @@ -91,7 +166,7 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/slskd.svg", category: ["downloadClient", "miscellaneous"], - documentationUrl: createDocumentationLink("/docs/integrations/slskd"), + documentationSlug: "slskd", defaultPort: 5030, }, sonarr: { @@ -99,25 +174,27 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/sonarr.svg", category: ["calendar", "mediaOrganizer"], - documentationUrl: createDocumentationLink("/docs/integrations/sonarr"), + documentationSlug: "sonarr", defaultPort: 8989, apiKeySettingsPath: "/settings/general", + features: { onboarding: { featuredOrder: 0 } }, }, radarr: { name: "Radarr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/radarr.svg", category: ["calendar", "mediaOrganizer"], - documentationUrl: createDocumentationLink("/docs/integrations/radarr"), + documentationSlug: "radarr", defaultPort: 7878, apiKeySettingsPath: "/settings/general", + features: { onboarding: { featuredOrder: 1 } }, }, lidarr: { name: "Lidarr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/lidarr.svg", category: ["calendar"], - documentationUrl: createDocumentationLink("/docs/integrations/lidarr"), + documentationSlug: "lidarr", defaultPort: 8686, apiKeySettingsPath: "/settings/general", }, @@ -126,7 +203,7 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@main/png/readarr.png", category: ["calendar"], - documentationUrl: createDocumentationLink("/docs/integrations/readarr"), + documentationSlug: "readarr", defaultPort: 8787, apiKeySettingsPath: "/settings/general", }, @@ -135,34 +212,37 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/prowlarr.svg", category: ["indexerManager"], - documentationUrl: createDocumentationLink("/docs/integrations/prowlarr"), + documentationSlug: "prowlarr", defaultPort: 9696, apiKeySettingsPath: "/settings/general", + features: { onboarding: { featuredOrder: 2 } }, }, bazarr: { name: "Bazarr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/bazarr.svg", category: ["subtitleManager"], - documentationUrl: createDocumentationLink("/docs/integrations/bazarr"), + documentationSlug: "bazarr", defaultPort: 6767, apiKeySettingsPath: "/settings/general", + features: { docker: { aliases: ["bazarr"] } }, }, jellyfin: { name: "Jellyfin", secretKinds: [["username", "password"], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/jellyfin.svg", category: ["mediaService", "mediaRelease"], - documentationUrl: createDocumentationLink("/docs/integrations/jellyfin"), + documentationSlug: "jellyfin", defaultPort: 8096, apiKeySettingsPath: "/web/index.html#!/dashboard/keys", + features: { onboarding: { featuredOrder: 6 } }, }, emby: { name: "Emby", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/emby.svg", category: ["mediaService", "mediaRelease"], - documentationUrl: createDocumentationLink("/docs/integrations/emby"), + documentationSlug: "emby", defaultPort: 8096, }, plex: { @@ -170,7 +250,7 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/plex.svg", category: ["mediaService", "mediaRelease"], - documentationUrl: createDocumentationLink("/docs/integrations/plex"), + documentationSlug: "plex", defaultPort: 32400, }, jellyseerr: { @@ -178,50 +258,55 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/jellyseerr.svg", category: ["mediaSearch", "mediaRequest", "search"], - documentationUrl: createDocumentationLink("/docs/integrations/jellyseerr"), + documentationSlug: "jellyseerr", defaultPort: 5055, apiKeySettingsPath: "/settings", + features: { docker: { aliases: ["jellyseerr"] } }, }, seerr: { name: "Seerr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/seerr.svg", category: ["mediaSearch", "mediaRequest", "search"], - documentationUrl: createDocumentationLink("/docs/integrations/seerr"), + documentationSlug: "seerr", defaultPort: 5055, apiKeySettingsPath: "/settings", + features: { onboarding: { featuredOrder: 5 } }, }, overseerr: { name: "Overseerr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/overseerr.svg", category: ["mediaSearch", "mediaRequest", "search"], - documentationUrl: createDocumentationLink("/docs/integrations/overseerr"), + documentationSlug: "overseerr", defaultPort: 5055, apiKeySettingsPath: "/settings", + features: { docker: { aliases: ["overseerr"] } }, }, piHole: { name: "Pi-hole", secretKinds: [["apiKey"], []], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/pi-hole.svg", category: ["dnsHole"], - documentationUrl: createDocumentationLink("/docs/integrations/pi-hole"), + documentationSlug: "pi-hole", defaultPort: 80, + features: { docker: { aliases: ["pihole", "pi-hole"] } }, }, adGuardHome: { name: "AdGuard Home", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/adguard-home.svg", category: ["dnsHole"], - documentationUrl: createDocumentationLink("/docs/integrations/adguard-home"), + documentationSlug: "adguard-home", defaultPort: 3000, + features: { docker: { aliases: ["adguardhome", "adguard-home", "adguard"] } }, }, technitiumDns: { name: "Technitium DNS", secretKinds: [["apiKey"], ["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/technitium.svg", category: ["dnsHole"], - documentationUrl: createDocumentationLink("/docs/integrations/technitium-dns"), + documentationSlug: "technitium-dns", defaultPort: 5380, }, homeAssistant: { @@ -229,32 +314,35 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/home-assistant.svg", category: ["smartHomeServer", "calendar"], - documentationUrl: createDocumentationLink("/docs/integrations/home-assistant"), + documentationSlug: "home-assistant", defaultPort: 8123, apiKeySettingsPath: "/profile/security", + features: { docker: { aliases: ["homeassistant", "home-assistant", "hass"] } }, }, openmediavault: { name: "OpenMediaVault", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/openmediavault.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/open-media-vault"), + documentationSlug: "open-media-vault", defaultPort: 80, + features: { docker: { aliases: ["omv"] } }, }, dashDot: { name: "Dash.", secretKinds: [[]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/dashdot.png", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/dash-dot"), + documentationSlug: "dash-dot", defaultPort: 3001, + features: { docker: { aliases: ["dashdot", "dash-dot", "dash."] } }, }, glances: { name: "Glances", secretKinds: [[]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/glances.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/glances"), + documentationSlug: "glances", defaultPort: 61208, }, tdarr: { @@ -262,7 +350,7 @@ export const integrationDefs = { secretKinds: [[], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/tdarr.png", category: ["mediaTranscoding"], - documentationUrl: createDocumentationLink("/docs/integrations/tdarr"), + documentationSlug: "tdarr", defaultPort: 8265, }, proxmox: { @@ -270,7 +358,7 @@ export const integrationDefs = { secretKinds: [["username", "tokenId", "apiKey", "realm"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/proxmox.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/proxmox"), + documentationSlug: "proxmox", defaultPort: 8006, }, nextcloud: { @@ -278,7 +366,7 @@ export const integrationDefs = { secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/nextcloud.svg", category: ["calendar", "notifications"], - documentationUrl: createDocumentationLink("/docs/integrations/nextcloud"), + documentationSlug: "nextcloud", defaultPort: 443, }, unifiController: { @@ -286,15 +374,16 @@ export const integrationDefs = { secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/unifi.png", category: ["networkController"], - documentationUrl: createDocumentationLink("/docs/integrations/unifi-controller"), + documentationSlug: "unifi-controller", defaultPort: 8443, + features: { docker: { aliases: ["unifi", "unifi-controller"] } }, }, opnsense: { name: "OPNsense", secretKinds: [["opnsenseApiKey", "opnsenseApiSecret"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/opnsense.svg", category: ["firewall"], - documentationUrl: createDocumentationLink("/docs/integrations/opnsense"), + documentationSlug: "opnsense", defaultPort: 443, apiKeySettingsPath: "/system_usermanager.php", }, @@ -303,7 +392,7 @@ export const integrationDefs = { secretKinds: [["topic"], ["topic", "apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/ntfy.svg", category: ["notifications"], - documentationUrl: createDocumentationLink("/docs/integrations/ntfy"), + documentationSlug: "ntfy", defaultPort: 80, apiKeySettingsPath: "/account", }, @@ -312,7 +401,7 @@ export const integrationDefs = { secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/gotify.svg", category: ["notifications"], - documentationUrl: createDocumentationLink("/docs/integrations/gotify"), + documentationSlug: "gotify", defaultPort: 80, }, ical: { @@ -320,14 +409,15 @@ export const integrationDefs = { secretKinds: [["url"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/ical.svg", category: ["calendar"], - documentationUrl: createDocumentationLink("/docs/integrations/ical"), + documentationSlug: "ical", + features: { docker: { discoverable: false } }, }, anchor: { name: "Anchor", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/anchor.svg", category: ["notes"], - documentationUrl: createDocumentationLink("/docs/integrations/anchor"), + documentationSlug: "anchor", defaultPort: 8080, apiKeySettingsPath: "/settings", }, @@ -336,23 +426,25 @@ export const integrationDefs = { secretKinds: [["username", "password"], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/truenas.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/truenas"), + documentationSlug: "truenas", defaultPort: 80, + features: { docker: { aliases: ["truenas"] } }, }, synology: { name: "Synology DiskStation", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/synology.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/synology"), + documentationSlug: "synology", defaultPort: 5000, + features: { docker: { aliases: ["synology", "diskstation"] } }, }, unraid: { name: "Unraid", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/unraid.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/unraid"), + documentationSlug: "unraid", defaultPort: 80, apiKeySettingsPath: "/Settings/ManagementAccess", }, @@ -361,16 +453,17 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/coolify.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/coolify"), + documentationSlug: "coolify", defaultPort: 8000, apiKeySettingsPath: "/security/api-tokens", + features: { docker: { aliases: ["coolify"] } }, }, immich: { name: "Immich", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/immich.svg", category: ["photoService"], - documentationUrl: createDocumentationLink("/docs/integrations/immich"), + documentationSlug: "immich", defaultPort: 2283, apiKeySettingsPath: "/user-settings", }, @@ -379,24 +472,26 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/paperless-ngx.svg", category: ["documents"], - documentationUrl: createDocumentationLink("/docs/integrations/paperless-ngx"), + documentationSlug: "paperless-ngx", defaultPort: 8000, + features: { docker: { aliases: ["paperless-ngx", "paperless"] } }, }, patchmon: { name: "PatchMon", secretKinds: [["patchmonApiKey", "patchmonApiSecret"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/patchmon.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/patchmon"), + documentationSlug: "patchmon", defaultPort: 3413, apiKeySettingsPath: "/settings/integrations", + features: { docker: { aliases: ["patchmon", "patch-mon"] } }, }, tracearr: { name: "Tracearr", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/tracearr.svg", category: ["mediaMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/tracearr"), + documentationSlug: "tracearr", defaultPort: 7040, apiKeySettingsPath: "/settings", }, @@ -405,35 +500,39 @@ export const integrationDefs = { secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/speedtest-tracker.png", category: ["speedtest"], - documentationUrl: createDocumentationLink("/docs/integrations/speedtest-tracker"), + documentationSlug: "speedtest-tracker", defaultPort: 80, apiKeySettingsPath: "/admin/api-tokens", + features: { docker: { aliases: ["speedtest-tracker"] } }, }, uptimeKuma: { name: "Uptime Kuma", secretKinds: [[], ["slug"], ["slug", "apiKey"], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/uptime-kuma.svg", category: ["uptimeMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/uptime-kuma"), + documentationSlug: "uptime-kuma", defaultPort: 3001, apiKeySettingsPath: "/settings/api-keys", + features: { docker: { aliases: ["uptime-kuma"] } }, }, audiobookshelf: { name: "Audiobookshelf", secretKinds: [["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/audiobookshelf.svg", category: ["mediaLibrary"], - documentationUrl: createDocumentationLink("/docs/integrations/audiobookshelf"), + documentationSlug: "audiobookshelf", defaultPort: 13378, apiKeySettingsPath: "/account", + features: { docker: { aliases: ["audiobookshelf"] } }, }, navidrome: { name: "Navidrome", secretKinds: [["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/navidrome.svg", category: ["mediaLibrary", "mediaService"], - documentationUrl: createDocumentationLink("/docs/integrations/navidrome"), + documentationSlug: "navidrome", defaultPort: 4533, + features: { docker: { aliases: ["navidrome"] } }, }, umami: { name: "Umami", @@ -441,7 +540,7 @@ export const integrationDefs = { iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/umami.svg", category: ["analytics"], defaultUrl: "https://api.umami.is/v1", - documentationUrl: createDocumentationLink("/docs/integrations/umami"), + documentationSlug: "umami", defaultPort: 3000, }, peaNut: { @@ -449,23 +548,16 @@ export const integrationDefs = { secretKinds: [["username", "password"], []], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/peanut.svg", category: ["ups"], - documentationUrl: createDocumentationLink("/docs/integrations/peanut"), + documentationSlug: "peanut", defaultPort: 8080, }, - beszel: { - name: "Beszel", - secretKinds: [["username", "password"]], - iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg", - category: ["beszel"], - documentationUrl: createDocumentationLink("/docs/integrations/beszel"), - defaultPort: 8090, - }, + ...generatedIntegrationDefinitions, gluetun: { name: "Gluetun", secretKinds: [["username", "password"], ["apiKey"], []], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/gluetun.svg", category: ["vpn"], - documentationUrl: createDocumentationLink("/docs/integrations/gluetun"), + documentationSlug: "gluetun", defaultPort: 8000, }, traefik: { @@ -473,7 +565,7 @@ export const integrationDefs = { secretKinds: [[], ["username", "password"], ["apiKey"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/traefik.svg", category: ["reverseProxy"], - documentationUrl: createDocumentationLink("/docs/integrations/traefik"), + documentationSlug: "traefik", defaultPort: 8080, }, archiveTeamWarrior: { @@ -481,7 +573,7 @@ export const integrationDefs = { secretKinds: [[], ["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/archiveteam-warrior.png", category: ["archiving"], - documentationUrl: createDocumentationLink("/docs/integrations/archiveteam-warrior"), + documentationSlug: "archiveteam-warrior", defaultPort: 8001, }, wud: { @@ -489,7 +581,7 @@ export const integrationDefs = { secretKinds: [[], ["username", "password"]], iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/whats-up-docker.svg", category: ["healthMonitoring"], - documentationUrl: createDocumentationLink("/docs/integrations/whats-up-docker"), + documentationSlug: "whats-up-docker", defaultPort: 3000, }, // This integration only returns mock data, it is used during development (but can also be used in production by directly going to the create page) @@ -514,9 +606,13 @@ export const integrationDefs = { "uptimeMonitoring", "mediaOrganizer", ], - documentationUrl: null, + documentationSlug: null, + features: { + docker: { discoverable: false }, + onboarding: { hidden: true }, + }, }, -} as const satisfies Record; +} as const satisfies Record); export const integrationKinds = objectKeys(integrationDefs) as AtLeastOneOf; @@ -524,11 +620,14 @@ export const getIconUrl = (integration: IntegrationKind) => integrationDefs[inte export const getIntegrationName = (integration: IntegrationKind) => integrationDefs[integration].name; -export const getDefaultSecretKinds = (integration: IntegrationKind): IntegrationSecretKind[] => - integrationDefs[integration].secretKinds[0]; +export const getDefaultSecretKinds = (integration: IntegrationKind): IntegrationSecretKind[] => [ + ...integrationDefs[integration].secretKinds[0], +]; export const getAllSecretKindOptions = (integration: IntegrationKind): AtLeastOneOf => - integrationDefs[integration].secretKinds; + integrationDefs[integration].secretKinds.map((secretKinds) => [...secretKinds]) as AtLeastOneOf< + IntegrationSecretKind[] + >; export const getIntegrationDefaultUrl = (integration: IntegrationKind) => { const definition = integrationDefs[integration]; diff --git a/packages/definitions/src/widget-feature-catalog.ts b/packages/definitions/src/widget-feature-catalog.ts new file mode 100644 index 000000000..3a45ff968 --- /dev/null +++ b/packages/definitions/src/widget-feature-catalog.ts @@ -0,0 +1,419 @@ +import type { AtLeastOneOf } from "@homarr/common/types"; + +import type { IntegrationKind } from "./integration"; +import { getIntegrationKindsByCategory } from "./integration"; +import type { IntegrationKindByCategory } from "./integration"; +import { generatedWidgetFeatureCatalog } from "./generated/widget-modules"; + +const { + weather: generatedWeatherFeature, + downloads: generatedDownloadsFeature, + ...additionalGeneratedWidgetFeatures +} = generatedWidgetFeatureCatalog; + +export interface NativeFeatureCapabilityDescriptor { + integrations: Readonly>; + connectionOptional?: true; + serverMaxIntegrations?: number; +} + +interface WidgetFeatureDescriptorBase { + documentationSlug: string | null; + defaultSize?: Readonly<{ width: number; height: number }>; + query?: { + paths: readonly (readonly string[])[]; + refetchIntervalSeconds?: number | null; + }; +} + +interface WidgetFeatureDescriptorWithDefaultName extends WidgetFeatureDescriptorBase { + displayNameFromIntegration?: false; + capability?: NativeFeatureCapabilityDescriptor; +} + +interface WidgetFeatureDescriptorWithIntegrationName extends WidgetFeatureDescriptorBase { + displayNameFromIntegration: true; + capability: Omit & { + integrations: readonly [IntegrationKind]; + }; +} + +export type WidgetFeatureDescriptor = + | WidgetFeatureDescriptorWithDefaultName + | WidgetFeatureDescriptorWithIntegrationName; + +const defineWidgetFeatureCatalog = >( + catalog: TCatalog, +) => catalog; + +type GeneralHealthMonitoringIntegrationKind = Exclude< + IntegrationKindByCategory<"healthMonitoring">, + "patchmon" | "wud" +>; + +const generalHealthMonitoringIntegrationKinds = getIntegrationKindsByCategory("healthMonitoring").filter( + (kind): kind is GeneralHealthMonitoringIntegrationKind => kind !== "patchmon" && kind !== "wud", +) as AtLeastOneOf; + +/** + * Server-safe source of truth for native widgets. + * + * Keep each widget's stable kind, documentation, default size, and integration + * contract together so every lightweight consumer can derive the same view. + */ +export const widgetFeatureCatalog = defineWidgetFeatureCatalog({ + clock: { + documentationSlug: "clock", + defaultSize: { width: 2, height: 1 }, + query: { paths: [["widget", "weather", "atLocation"]] }, + }, + weather: generatedWeatherFeature, + airQuality: { + documentationSlug: "air-quality", + defaultSize: { width: 2, height: 1 }, + query: { paths: [["widget", "airQuality", "atLocation"]], refetchIntervalSeconds: 900 }, + }, + countdown: { documentationSlug: "countdown", defaultSize: { width: 2, height: 1 } }, + timer: { documentationSlug: "timer", defaultSize: { width: 2, height: 1 } }, + app: { + documentationSlug: "app", + query: { + paths: [ + ["app", "byId"], + ["widget", "app", "ping"], + ], + }, + }, + iframe: { documentationSlug: "iframe" }, + video: { documentationSlug: "video" }, + notebook: { documentationSlug: "notebook" }, + anchorNote: { + documentationSlug: "anchor-note", + capability: { integrations: ["anchor"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "anchorNotes"]] }, + }, + dnsHoleSummary: { + documentationSlug: "dns-hole-summary", + capability: { integrations: getIntegrationKindsByCategory("dnsHole") }, + query: { paths: [["widget", "dnsHole"]], refetchIntervalSeconds: 10 }, + }, + dnsHoleControls: { + documentationSlug: "dns-hole-controls", + capability: { integrations: getIntegrationKindsByCategory("dnsHole") }, + query: { paths: [["widget", "dnsHole"]], refetchIntervalSeconds: 10 }, + }, + "smartHome-entityState": { + documentationSlug: "smart-home-entity-state", + capability: { + integrations: getIntegrationKindsByCategory("smartHomeServer"), + serverMaxIntegrations: 1, + }, + query: { paths: [["widget", "smartHome"]] }, + }, + "smartHome-executeAutomation": { + documentationSlug: "smart-home-execute-automation", + capability: { + integrations: getIntegrationKindsByCategory("smartHomeServer"), + serverMaxIntegrations: 1, + }, + }, + stockPrice: { + documentationSlug: "stock-price", + query: { paths: [["widget", "stockPrice", "getPriceHistory"]], refetchIntervalSeconds: null }, + }, + mediaServer: { + documentationSlug: "media-server", + capability: { integrations: getIntegrationKindsByCategory("mediaService") }, + query: { paths: [["widget", "mediaServer", "getCurrentStreams"]], refetchIntervalSeconds: 10 }, + }, + calendar: { + documentationSlug: "calendar", + capability: { integrations: getIntegrationKindsByCategory("calendar"), connectionOptional: true }, + query: { paths: [["widget", "calendar", "findAllEvents"]] }, + }, + downloads: generatedDownloadsFeature, + "mediaRequests-requestList": { + documentationSlug: "media-request-list", + capability: { integrations: getIntegrationKindsByCategory("mediaRequest") }, + query: { paths: [["widget", "mediaRequests", "getLatestRequests"]] }, + }, + "mediaRequests-requestStats": { + documentationSlug: "media-request-stats", + capability: { integrations: getIntegrationKindsByCategory("mediaRequest") }, + query: { paths: [["widget", "mediaRequests", "getStats"]] }, + }, + mediaTranscoding: { + documentationSlug: "media-transcoding", + capability: { + integrations: getIntegrationKindsByCategory("mediaTranscoding"), + serverMaxIntegrations: 1, + }, + query: { paths: [["widget", "mediaTranscoding", "getDataAsync"]], refetchIntervalSeconds: null }, + }, + mediaMissing: { + documentationSlug: "media-missing", + defaultSize: { width: 4, height: 3 }, + capability: { integrations: getIntegrationKindsByCategory("mediaOrganizer") }, + query: { paths: [["widget", "mediaOrganizer", "getData"]] }, + }, + minecraftServerStatus: { + documentationSlug: "minecraft-server-status", + query: { paths: [["widget", "minecraft", "getServerStatus"]], refetchIntervalSeconds: null }, + }, + networkControllerSummary: { + documentationSlug: "network-controller-summary", + capability: { integrations: getIntegrationKindsByCategory("networkController") }, + query: { paths: [["widget", "networkController"]], refetchIntervalSeconds: null }, + }, + networkControllerStatus: { + documentationSlug: "network-controller-status", + capability: { integrations: getIntegrationKindsByCategory("networkController") }, + query: { paths: [["widget", "networkController"]], refetchIntervalSeconds: null }, + }, + rssFeed: { + documentationSlug: "rss-feed", + query: { paths: [["widget", "rssFeed", "getFeeds"]], refetchIntervalSeconds: null }, + }, + bookmarks: { + documentationSlug: "bookmarks", + defaultSize: { width: 2, height: 2 }, + query: { paths: [["app", "byIds"]] }, + }, + indexerManager: { + documentationSlug: "indexer-manager", + capability: { integrations: getIntegrationKindsByCategory("indexerManager") }, + query: { paths: [["widget", "indexerManager"]], refetchIntervalSeconds: null }, + }, + healthMonitoring: { + documentationSlug: "health-monitoring", + capability: { integrations: generalHealthMonitoringIntegrationKinds }, + query: { + paths: [ + ["integration", "byIds"], + ["widget", "healthMonitoring"], + ], + refetchIntervalSeconds: 10, + }, + }, + releases: { + documentationSlug: "releases", + query: { paths: [["widget", "releases", "getLatest"]], refetchIntervalSeconds: null }, + }, + mediaReleases: { + documentationSlug: "media-releases", + capability: { integrations: ["mock", "emby", "jellyfin", "plex"] }, + query: { paths: [["widget", "mediaRelease"]], refetchIntervalSeconds: null }, + }, + dockerContainers: { + documentationSlug: "docker-containers", + query: { paths: [["docker", "getContainers"]], refetchIntervalSeconds: 30 }, + }, + firewall: { + documentationSlug: "firewall", + capability: { integrations: getIntegrationKindsByCategory("firewall") }, + query: { paths: [["widget", "firewall"]], refetchIntervalSeconds: 10 }, + }, + notifications: { + documentationSlug: "notifications", + capability: { integrations: getIntegrationKindsByCategory("notifications") }, + query: { paths: [["widget", "notifications", "getNotifications"]] }, + }, + systemResources: { + documentationSlug: "system-resources", + capability: { + integrations: ["dashDot", "openmediavault", "truenas", "unraid", "glances", "synology"], + }, + query: { paths: [["widget", "healthMonitoring"]], refetchIntervalSeconds: 10 }, + }, + coolify: { + documentationSlug: "coolify", + displayNameFromIntegration: true, + capability: { integrations: ["coolify"] }, + query: { paths: [["widget", "coolify"]] }, + }, + systemDisks: { + documentationSlug: "system-disks", + capability: { integrations: ["dashDot", "openmediavault", "truenas", "unraid", "synology"] }, + query: { paths: [["widget", "healthMonitoring"]], refetchIntervalSeconds: 10 }, + }, + timetable: { + documentationSlug: "timetable", + query: { paths: [["widget", "timetable"]] }, + }, + "immich-serverStats": { + documentationSlug: "immich-server-stats", + capability: { integrations: ["immich"], serverMaxIntegrations: 1 }, + query: { + paths: [ + ["widget", "immich", "getServerStats"], + ["widget", "immich", "getAlbums"], + ], + refetchIntervalSeconds: null, + }, + }, + "immich-albumCarousel": { + documentationSlug: "immich-album-carousel", + capability: { integrations: ["immich"], serverMaxIntegrations: 1 }, + query: { + paths: [ + ["widget", "immich", "getAlbum"], + ["widget", "immich", "getAlbums"], + ], + refetchIntervalSeconds: null, + }, + }, + paperlessNgx: { + documentationSlug: "paperless-ngx", + defaultSize: { width: 2, height: 2 }, + displayNameFromIntegration: true, + capability: { integrations: ["paperlessNgx"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "paperlessNgx"]], refetchIntervalSeconds: null }, + }, + patchmon: { + documentationSlug: "patchmon", + defaultSize: { width: 2, height: 2 }, + displayNameFromIntegration: true, + capability: { integrations: ["patchmon"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "patchmon"]] }, + }, + bazarr: { + documentationSlug: "bazarr", + defaultSize: { width: 2, height: 2 }, + displayNameFromIntegration: true, + capability: { integrations: ["bazarr"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "bazarr"]] }, + }, + tracearr: { + documentationSlug: "tracearr", + displayNameFromIntegration: true, + capability: { integrations: ["tracearr"] }, + query: { paths: [["widget", "tracearr"]], refetchIntervalSeconds: 10 }, + }, + speedtestTracker: { + documentationSlug: "speedtest-tracker", + capability: { integrations: ["speedtestTracker"] }, + query: { paths: [["widget", "speedtestTracker"]], refetchIntervalSeconds: null }, + }, + uptimeKuma: { + documentationSlug: "uptime-kuma", + defaultSize: { width: 2, height: 3 }, + displayNameFromIntegration: true, + capability: { integrations: ["uptimeKuma"] }, + query: { paths: [["widget", "uptimeKuma"]] }, + }, + audioStats: { + documentationSlug: "audio-stats", + defaultSize: { width: 2, height: 2 }, + capability: { integrations: ["navidrome", "audiobookshelf"], serverMaxIntegrations: 1 }, + query: { + paths: [ + ["widget", "audioStats", "getStats"], + ["widget", "mediaServer", "getCurrentStreams"], + ], + }, + }, + umami: { + documentationSlug: "umami", + capability: { integrations: ["umami"], serverMaxIntegrations: 1 }, + query: { + paths: [ + ["widget", "umami", "getVisitorStats"], + ["widget", "umami", "getActiveVisitors"], + ["widget", "umami", "getMultiEventTimeSeries"], + ["widget", "umami", "getTopPages"], + ["widget", "umami", "getTopReferrers"], + ], + refetchIntervalSeconds: null, + }, + }, + vpn: { + documentationSlug: "vpn", + capability: { integrations: getIntegrationKindsByCategory("vpn") }, + query: { paths: [["widget", "vpn"]], refetchIntervalSeconds: null }, + }, + archiveTeamWarrior: { + documentationSlug: null, + capability: { integrations: ["archiveTeamWarrior"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "archiveTeamWarrior"]] }, + }, + ups: { + documentationSlug: "ups", + capability: { integrations: getIntegrationKindsByCategory("ups") }, + query: { paths: [["widget", "ups"]] }, + }, + beszelSystemTable: { + documentationSlug: "beszel-system-table", + capability: { integrations: ["beszel", "mock"] }, + query: { + paths: [ + ["widget", "beszel", "getSystems"], + ["widget", "beszel", "getSystemStats"], + ], + }, + }, + beszelSystemGrid: { + documentationSlug: "beszel-system-grid", + capability: { integrations: ["beszel", "mock"] }, + query: { + paths: [ + ["widget", "beszel", "getSystems"], + ["widget", "beszel", "getSystemStats"], + ], + }, + }, + beszelAlerts: { + documentationSlug: "beszel-alerts", + capability: { integrations: ["beszel", "mock"] }, + query: { paths: [["widget", "beszel", "getAlerts"]] }, + }, + beszelSystemStats: { + documentationSlug: "beszel-system-stats", + capability: { integrations: ["beszel", "mock"] }, + query: { + paths: [ + ["widget", "beszel", "getSystems"], + ["widget", "beszel", "getSystemStats"], + ], + }, + }, + traefik: { + documentationSlug: "traefik", + displayNameFromIntegration: true, + capability: { integrations: ["traefik"] }, + query: { paths: [["widget", "traefik"]] }, + }, + customApi: { + documentationSlug: "custom-api", + query: { paths: [["widget", "customApi"]] }, + }, + assistant: { documentationSlug: "assistant", defaultSize: { width: 10, height: 4 } }, + wud: { + documentationSlug: "whats-up-docker", + capability: { integrations: ["wud"], serverMaxIntegrations: 1 }, + query: { paths: [["widget", "wud"]], refetchIntervalSeconds: null }, + }, + ...additionalGeneratedWidgetFeatures, +}); + +export type WidgetFeatureKind = keyof typeof widgetFeatureCatalog; + +export type WidgetIntegrationKind = (typeof widgetFeatureCatalog)[TKind] extends { + capability: { integrations: readonly (infer TIntegrationKind extends IntegrationKind)[] }; +} + ? TIntegrationKind + : never; + +export type WidgetKindWithIntegration = { + [TKind in WidgetFeatureKind]: WidgetIntegrationKind extends never ? never : TKind; +}[WidgetFeatureKind]; + +export const getWidgetFeatureIntegrationKinds = ( + kind: TKind, +): AtLeastOneOf> => { + const descriptor = widgetFeatureCatalog[kind]; + if (!("capability" in descriptor) || descriptor.capability.integrations.length === 0) { + throw new Error(`Widget kind ${kind} does not declare integration support`); + } + + return [...descriptor.capability.integrations] as AtLeastOneOf>; +}; diff --git a/packages/definitions/src/widget-integration-map.ts b/packages/definitions/src/widget-integration-map.ts index b83fa3706..529dba2fc 100644 --- a/packages/definitions/src/widget-integration-map.ts +++ b/packages/definitions/src/widget-integration-map.ts @@ -1,73 +1,22 @@ import { createDocumentationLink } from "./docs"; import type { IntegrationKind } from "./integration"; -import { getIntegrationKindsByCategory, integrationKinds } from "./integration"; +import { integrationKinds } from "./integration"; import type { WidgetKind } from "./widget"; -import { widgetDefaultSizes } from "./widget"; +import { widgetDefaultSizes, widgetFeatureCatalog, widgetKinds } from "./widget"; +import type { NativeFeatureCapabilityDescriptor } from "./widget-feature-catalog"; -/** - * Server-safe capability metadata shared by the API and widget catalog. - * Keep this intentionally small: presentation, options, and request contracts - * remain owned by their feature packages. - */ -export interface NativeFeatureCapabilityDescriptor { - integrations: readonly IntegrationKind[]; - connectionOptional?: true; - serverMaxIntegrations?: number; -} +export type { NativeFeatureCapabilityDescriptor } from "./widget-feature-catalog"; -export const nativeFeatureCapabilities = { - dnsHoleSummary: { integrations: getIntegrationKindsByCategory("dnsHole") }, - dnsHoleControls: { integrations: getIntegrationKindsByCategory("dnsHole") }, - "smartHome-entityState": { - integrations: getIntegrationKindsByCategory("smartHomeServer"), - serverMaxIntegrations: 1, - }, - "smartHome-executeAutomation": { - integrations: getIntegrationKindsByCategory("smartHomeServer"), - serverMaxIntegrations: 1, - }, - mediaServer: { integrations: getIntegrationKindsByCategory("mediaService") }, - calendar: { integrations: getIntegrationKindsByCategory("calendar"), connectionOptional: true }, - downloads: { integrations: getIntegrationKindsByCategory("downloadClient") }, - "mediaRequests-requestList": { integrations: getIntegrationKindsByCategory("mediaRequest") }, - "mediaRequests-requestStats": { integrations: getIntegrationKindsByCategory("mediaRequest") }, - mediaTranscoding: { integrations: getIntegrationKindsByCategory("mediaTranscoding"), serverMaxIntegrations: 1 }, - mediaMissing: { integrations: getIntegrationKindsByCategory("mediaOrganizer") }, - networkControllerSummary: { integrations: getIntegrationKindsByCategory("networkController") }, - networkControllerStatus: { integrations: getIntegrationKindsByCategory("networkController") }, - indexerManager: { integrations: getIntegrationKindsByCategory("indexerManager") }, - healthMonitoring: { - integrations: getIntegrationKindsByCategory("healthMonitoring").filter( - (kind) => kind !== "patchmon" && kind !== "wud", - ), - }, - firewall: { integrations: getIntegrationKindsByCategory("firewall") }, - notifications: { integrations: getIntegrationKindsByCategory("notifications") }, - mediaReleases: { integrations: ["mock", "emby", "jellyfin", "plex"] }, - systemResources: { integrations: ["dashDot", "openmediavault", "truenas", "unraid", "glances", "synology"] }, - systemDisks: { integrations: ["dashDot", "openmediavault", "truenas", "unraid", "synology"] }, - beszelAlerts: { integrations: ["beszel", "mock"] }, - beszelSystemGrid: { integrations: ["beszel", "mock"] }, - beszelSystemStats: { integrations: ["beszel", "mock"] }, - beszelSystemTable: { integrations: ["beszel", "mock"] }, - coolify: { integrations: ["coolify"] }, - "immich-serverStats": { integrations: ["immich"], serverMaxIntegrations: 1 }, - "immich-albumCarousel": { integrations: ["immich"], serverMaxIntegrations: 1 }, - paperlessNgx: { integrations: ["paperlessNgx"], serverMaxIntegrations: 1 }, - patchmon: { integrations: ["patchmon"], serverMaxIntegrations: 1 }, - bazarr: { integrations: ["bazarr"], serverMaxIntegrations: 1 }, - tracearr: { integrations: ["tracearr"] }, - speedtestTracker: { integrations: ["speedtestTracker"] }, - uptimeKuma: { integrations: ["uptimeKuma"] }, - audioStats: { integrations: ["navidrome", "audiobookshelf"], serverMaxIntegrations: 1 }, - umami: { integrations: ["umami"], serverMaxIntegrations: 1 }, - vpn: { integrations: getIntegrationKindsByCategory("vpn") }, - ups: { integrations: getIntegrationKindsByCategory("ups") }, - archiveTeamWarrior: { integrations: ["archiveTeamWarrior"], serverMaxIntegrations: 1 }, - anchorNote: { integrations: ["anchor"], serverMaxIntegrations: 1 }, - traefik: { integrations: ["traefik"] }, - wud: { integrations: ["wud"], serverMaxIntegrations: 1 }, -} as const satisfies Partial>; +const createNativeFeatureCapabilities = () => { + const result: Partial> = {}; + for (const kind of widgetKinds) { + const descriptor = widgetFeatureCatalog[kind]; + if ("capability" in descriptor) result[kind] = descriptor.capability; + } + return result; +}; + +export const nativeFeatureCapabilities = createNativeFeatureCapabilities(); const nativeFeatureCapabilityEntries = Object.entries(nativeFeatureCapabilities) as [ WidgetKind, @@ -108,20 +57,24 @@ export type WidgetIntegrationIssue = export const getWidgetIntegrationIssue = ( widgetKind: WidgetKind, - integrationKinds: readonly IntegrationKind[], + selectedIntegrationKinds: readonly IntegrationKind[], ): WidgetIntegrationIssue | null => { const supportedIntegrations = widgetIntegrationSupport[widgetKind]; const integrationLimit = widgetIntegrationLimits[widgetKind] ?? Number.POSITIVE_INFINITY; - if (integrationKinds.length > integrationLimit) return { code: "integration-limit", limit: integrationLimit }; - if (supportedIntegrations === undefined && integrationKinds.length > 0) return { code: "integration-not-supported" }; + if (selectedIntegrationKinds.length > integrationLimit) { + return { code: "integration-limit", limit: integrationLimit }; + } + if (supportedIntegrations === undefined && selectedIntegrationKinds.length > 0) { + return { code: "integration-not-supported" }; + } if ( supportedIntegrations !== undefined && - integrationKinds.length === 0 && + selectedIntegrationKinds.length === 0 && !widgetKindsWithOptionalIntegrations.has(widgetKind) ) { return { code: "integration-required" }; } - const incompatibleKinds = integrationKinds.filter((kind) => !supportedIntegrations?.includes(kind)); + const incompatibleKinds = selectedIntegrationKinds.filter((kind) => !supportedIntegrations?.includes(kind)); return incompatibleKinds.length > 0 ? { code: "incompatible-integration", incompatibleKinds } : null; }; @@ -147,9 +100,9 @@ const createIntegrationWidgetSupport = () => { export const integrationWidgetSupport = createIntegrationWidgetSupport(); -export const getWidgetKindsForIntegration = (integrationKind: IntegrationKind): WidgetKind[] => [ - ...integrationWidgetSupport[integrationKind], -]; +export const getWidgetKindsForIntegration = (integrationKind: IntegrationKind): WidgetKind[] => { + return [...integrationWidgetSupport[integrationKind]]; +}; export interface DefaultWidgetConfig { kind: WidgetKind; @@ -159,12 +112,28 @@ export interface DefaultWidgetConfig { skip?: boolean; } -export const defaultWidgetConfigs: DefaultWidgetConfig[] = [ - { kind: "clock", width: 2, height: 1 }, - { kind: "weather", width: 2, height: 1, options: { showHumidity: false, showCity: false, hasForecast: false } }, - { kind: "bookmarks", width: 2, height: 2, options: { title: "Useful Links", layout: "grid", openNewTab: true } }, +type WidgetKindWithDefaultSize = { + [TKind in WidgetKind]: (typeof widgetFeatureCatalog)[TKind] extends { defaultSize: Readonly<{ width: number }> } + ? TKind + : never; +}[WidgetKind]; + +type DefaultWidgetConfigRecipe = Omit & { + kind: WidgetKindWithDefaultSize; +}; + +const defaultWidgetConfigDefinitions: DefaultWidgetConfigRecipe[] = [ + { kind: "clock" }, + { kind: "weather", options: { showHumidity: false, showCity: false, hasForecast: false } }, + { kind: "bookmarks", options: { title: "Useful Links", layout: "grid", openNewTab: true } }, ]; +export const defaultWidgetConfigs: DefaultWidgetConfig[] = defaultWidgetConfigDefinitions.map((recipe) => { + const defaultSize = widgetDefaultSizes[recipe.kind]; + if (!defaultSize) throw new Error(`Default widget ${recipe.kind} must declare a default size`); + return { ...recipe, ...defaultSize }; +}); + const defaultWidgetConfigByKind = new Map(defaultWidgetConfigs.map((config) => [config.kind, config])); export const getDefaultWidgetConfig = (kind: WidgetKind): DefaultWidgetConfig => @@ -174,18 +143,6 @@ export const generalWidgets: WidgetKind[] = defaultWidgetConfigs .filter((config) => !config.skip) .map((config) => config.kind); -export const featuredIntegrations: readonly IntegrationKind[] = [ - "sonarr", - "radarr", - "prowlarr", - "sabNzbd", - "qBittorrent", - "seerr", - "jellyfin", -]; - -export const hiddenFromOnboarding = new Set(["mock"]); - export const defaultBookmarkApps = [ { name: "Homarr Docs", diff --git a/packages/definitions/src/widget-module.ts b/packages/definitions/src/widget-module.ts new file mode 100644 index 000000000..ef41330d8 --- /dev/null +++ b/packages/definitions/src/widget-module.ts @@ -0,0 +1,139 @@ +import type { AtLeastOneOf } from "@homarr/common/types"; + +import type { IntegrationCategory, IntegrationKind } from "./integration"; + +export type WidgetModuleIconName = `Icon${string}`; +export type WidgetModuleOperationKind = "query" | "mutation" | "subscription" | "route"; + +export interface WidgetModuleClientPolicy { + refetchIntervalSeconds?: number | null; + staleTimeSeconds?: number; + persist?: boolean; +} + +export interface WidgetModuleServerCachePolicy { + namespace: string; + ttlMs: number; + staleIfErrorTtlMs?: number; + scope: "integration" | "shared" | "private"; +} + +export interface WidgetModuleOperation { + name: string; + kind?: WidgetModuleOperationKind; + path: readonly [string, ...string[]]; + client?: WidgetModuleClientPolicy; + serverCache?: WidgetModuleServerCachePolicy; +} + +type WidgetModuleIntegrationSelection = + | { + categories: Readonly>; + kinds?: readonly IntegrationKind[]; + } + | { + categories?: readonly IntegrationCategory[]; + kinds: Readonly>; + }; + +export type WidgetModuleIntegrationCapability = WidgetModuleIntegrationSelection & { + excludeKinds?: readonly IntegrationKind[]; + connectionOptional?: true; + serverMaxIntegrations?: number; +}; + +export interface WidgetModuleRouterRegistration { + namespace: string; + module: string; + exportName: string; + additionalWidgetKinds?: readonly string[]; + mcp?: true | string; +} + +export interface WidgetModuleDocumentation { + slug: string; + sourceDirectory: string; +} + +/** + * Pure authoring contract for a vertical widget module. + * + * This descriptor intentionally contains import paths instead of importing + * client or server implementations. The sync tool turns them into explicit + * static imports for Next.js and Turbopack without crossing runtime boundaries. + */ +export interface WidgetModuleDefinition { + kind: string; + icon: WidgetModuleIconName; + clientEntry: string; + documentation: WidgetModuleDocumentation; + defaultSize?: Readonly<{ width: number; height: number }>; + displayNameFromIntegration?: true; + integration?: WidgetModuleIntegrationCapability; + operations?: readonly WidgetModuleOperation[]; + routers?: readonly WidgetModuleRouterRegistration[]; +} + +export const defineWidgetModule = (definition: TDefinition) => + definition; + +export type WidgetServerPermission = + | "public" + | "authenticated" + | "integration-query" + | "integration-interact" + | "custom"; + +export interface WidgetServerInputSchema { + parseAsync: (input: unknown) => Promise; +} + +export interface WidgetServerContext { + services: TServices; + authorization: TAuthorization; + signal: AbortSignal; +} + +export interface WidgetServerOperationDefinition { + kind: "query" | "mutation"; + permission: WidgetServerPermission; + input: WidgetServerInputSchema; + cache?: WidgetModuleServerCachePolicy; + resolve: (context: TContext, input: TInput) => Promise; +} + +export interface WidgetServerSubscriptionDefinition { + kind: "subscription"; + permission: WidgetServerPermission; + input: WidgetServerInputSchema; + transport: "sse" | "websocket"; + subscribe: (context: TContext, input: TInput) => AsyncIterable; +} + +export interface WidgetServerRouteDefinition { + kind: "route"; + permission: WidgetServerPermission; + handle: (context: TContext, request: TRequest) => Promise; +} + +export const defineWidgetServerOperation = ( + operation: WidgetServerOperationDefinition, +) => operation; + +export const defineWidgetServerSubscription = ( + subscription: WidgetServerSubscriptionDefinition, +) => subscription; + +export const defineWidgetServerRoute = ( + route: WidgetServerRouteDefinition, +) => route; + +export const defineWidgetServerModule = < + const TModule extends { + operations?: Readonly>; + subscriptions?: Readonly>; + routes?: Readonly>; + }, +>( + module: TModule, +) => module; diff --git a/packages/definitions/src/widget-name.ts b/packages/definitions/src/widget-name.ts index 1db43a479..ee544ae7a 100644 --- a/packages/definitions/src/widget-name.ts +++ b/packages/definitions/src/widget-name.ts @@ -1,21 +1,11 @@ -import type { IntegrationKind } from "./integration"; import { getIntegrationName } from "./integration"; import type { WidgetKind } from "./widget"; - -const widgetIntegrationKinds: Partial> = { - coolify: "coolify", - tracearr: "tracearr", - paperlessNgx: "paperlessNgx", - patchmon: "patchmon", - bazarr: "bazarr", - uptimeKuma: "uptimeKuma", - traefik: "traefik", -}; +import { widgetFeatureCatalog } from "./widget-feature-catalog"; export const getWidgetIntegrationName = (kind: WidgetKind): string | undefined => { - const integrationKind = widgetIntegrationKinds[kind]; - if (!integrationKind) return undefined; - return getIntegrationName(integrationKind); + const descriptor = widgetFeatureCatalog[kind]; + if (!("displayNameFromIntegration" in descriptor) || !descriptor.displayNameFromIntegration) return undefined; + return getIntegrationName(descriptor.capability.integrations[0]); }; type WidgetNameTranslator = (key: never) => string; diff --git a/packages/definitions/src/widget.ts b/packages/definitions/src/widget.ts index 5279df2e0..d438697bb 100644 --- a/packages/definitions/src/widget.ts +++ b/packages/definitions/src/widget.ts @@ -1,75 +1,19 @@ -export const widgetKinds = [ - "clock", - "weather", - "airQuality", - "countdown", - "timer", - "app", - "iframe", - "video", - "notebook", - "anchorNote", - "dnsHoleSummary", - "dnsHoleControls", - "smartHome-entityState", - "smartHome-executeAutomation", - "stockPrice", - "mediaServer", - "calendar", - "downloads", - "mediaRequests-requestList", - "mediaRequests-requestStats", - "mediaTranscoding", - "mediaMissing", - "minecraftServerStatus", - "networkControllerSummary", - "networkControllerStatus", - "rssFeed", - "bookmarks", - "indexerManager", - "healthMonitoring", - "releases", - "mediaReleases", - "dockerContainers", - "firewall", - "notifications", - "systemResources", - "coolify", - "systemDisks", - "timetable", - "immich-serverStats", - "immich-albumCarousel", - "paperlessNgx", - "patchmon", - "bazarr", - "tracearr", - "speedtestTracker", - "uptimeKuma", - "audioStats", - "umami", - "vpn", - "archiveTeamWarrior", - "ups", - "beszelSystemTable", - "beszelSystemGrid", - "beszelAlerts", - "beszelSystemStats", - "traefik", - "customApi", - "assistant", - "wud", -] as const; -export type WidgetKind = (typeof widgetKinds)[number]; +import { widgetFeatureCatalog } from "./widget-feature-catalog"; -export const widgetDefaultSizes: Partial> = { - airQuality: { width: 2, height: 1 }, - countdown: { width: 2, height: 1 }, - timer: { width: 2, height: 1 }, - uptimeKuma: { width: 2, height: 3 }, - audioStats: { width: 2, height: 2 }, - paperlessNgx: { width: 2, height: 2 }, - patchmon: { width: 2, height: 2 }, - mediaMissing: { width: 4, height: 3 }, - bazarr: { width: 2, height: 2 }, - assistant: { width: 10, height: 4 }, +export * from "./widget-feature-catalog"; +export type { WidgetFeatureDescriptor } from "./widget-feature-catalog"; + +export type WidgetKind = keyof typeof widgetFeatureCatalog; + +export const widgetKinds = Object.keys(widgetFeatureCatalog) as unknown as readonly [WidgetKind, ...WidgetKind[]]; + +const createWidgetDefaultSizes = () => { + const result: Partial> = {}; + for (const kind of widgetKinds) { + const descriptor = widgetFeatureCatalog[kind]; + if ("defaultSize" in descriptor) result[kind] = descriptor.defaultSize; + } + return result; }; + +export const widgetDefaultSizes = createWidgetDefaultSizes(); diff --git a/packages/integrations/index.ts b/packages/integrations/index.ts index 3bd16e178..0b5335443 100644 --- a/packages/integrations/index.ts +++ b/packages/integrations/index.ts @@ -1 +1,6 @@ -export * from "./src"; +/** + * The package root is intentionally type-only. Runtime integrations must use + * a narrow export such as `@homarr/integrations/factory` so importing one + * capability cannot eagerly pull every concrete integration into the graph. + */ +export type * from "./src"; diff --git a/packages/integrations/package.json b/packages/integrations/package.json index 026a3a782..82c0f5bbc 100644 --- a/packages/integrations/package.json +++ b/packages/integrations/package.json @@ -13,7 +13,11 @@ }, "exports": { ".": "./index.ts", + "./anchor": "./src/anchor/anchor-types.ts", + "./downloads": "./src/interfaces/downloads/download-client-items.ts", + "./factory": "./src/factory.ts", "./response-contract": "./src/base/response-contract.ts", + "./synology": "./src/synology/synology-integration.ts", "./test-connection": "./src/base/test-connection/index.ts", "./types": "./src/types.ts" }, diff --git a/packages/integrations/src/base/creator.ts b/packages/integrations/src/base/creator.ts index 9421e043d..bbdbf9b6c 100644 --- a/packages/integrations/src/base/creator.ts +++ b/packages/integrations/src/base/creator.ts @@ -1,146 +1,198 @@ import type { IntegrationKind } from "@homarr/definitions"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; -import { AdGuardHomeIntegration } from "../adguard-home/adguard-home-integration"; -import { BeszelIntegration } from "../beszel/beszel-integration"; -import { BazarrIntegration } from "../bazarr/bazarr-integration"; -import { AnchorIntegration } from "../anchor/anchor-integration"; -import { AudiobookshelfIntegration } from "../audiobookshelf/audiobookshelf-integration"; -import { CoolifyIntegration } from "../coolify/coolify-integration"; -import { DashDotIntegration } from "../dashdot/dashdot-integration"; -import { Aria2Integration } from "../download-client/aria2/aria2-integration"; -import { DelugeIntegration } from "../download-client/deluge/deluge-integration"; -import { NzbGetIntegration } from "../download-client/nzbget/nzbget-integration"; -import { QBitTorrentIntegration } from "../download-client/qbittorrent/qbittorrent-integration"; -import { SabnzbdIntegration } from "../download-client/sabnzbd/sabnzbd-integration"; -import { SlskdIntegration } from "../download-client/slskd/slskd-integration"; -import { TransmissionIntegration } from "../download-client/transmission/transmission-integration"; -import { EmbyIntegration } from "../emby/emby-integration"; -import { GlancesIntegration } from "../glances/glances-integration"; -import { ArchiveTeamWarriorIntegration } from "../archive-team-warrior/archive-team-warrior-integration"; -import { GluetunIntegration } from "../gluetun/gluetun-integration"; -import { HomeAssistantIntegration } from "../homeassistant/homeassistant-integration"; -import { ICalIntegration } from "../ical/ical-integration"; -import { ImmichIntegration } from "../immich/immich-integration"; -import { JellyfinIntegration } from "../jellyfin/jellyfin-integration"; -import { JellyseerrIntegration } from "../jellyseerr/jellyseerr-integration"; -import { LidarrIntegration } from "../media-organizer/lidarr/lidarr-integration"; -import { RadarrIntegration } from "../media-organizer/radarr/radarr-integration"; -import { ReadarrIntegration } from "../media-organizer/readarr/readarr-integration"; -import { SonarrIntegration } from "../media-organizer/sonarr/sonarr-integration"; -import { TdarrIntegration } from "../media-transcoding/tdarr-integration"; -import { MockIntegration } from "../mock/mock-integration"; -import { NavidromeIntegration } from "../navidrome/navidrome-integration"; -import { NextcloudIntegration } from "../nextcloud/nextcloud.integration"; -import { GotifyIntegration } from "../gotify/gotify-integration"; -import { NTFYIntegration } from "../ntfy/ntfy-integration"; -import { OpenMediaVaultIntegration } from "../openmediavault/openmediavault-integration"; -import { OPNsenseIntegration } from "../opnsense/opnsense-integration"; -import { OverseerrIntegration } from "../overseerr/overseerr-integration"; -import { PaperlessNgxIntegration } from "../paperless-ngx/paperless-ngx-integration"; -import { PatchMonIntegration } from "../patchmon/patchmon-integration"; -import { PeaNutIntegration } from "../peanut/peanut-integration"; -import { createPiHoleIntegrationAsync } from "../pi-hole/pi-hole-integration-factory"; -import { createTechnitiumDnsIntegrationAsync } from "../technitium/technitium-integration-factory"; -import { PlexIntegration } from "../plex/plex-integration"; -import { ProwlarrIntegration } from "../prowlarr/prowlarr-integration"; -import { ProxmoxIntegration } from "../proxmox/proxmox-integration"; -import { SeerrIntegration } from "../seerr/seerr-integration"; -import { SpeedtestTrackerIntegration } from "../speedtest-tracker/speedtest-tracker-integration"; -import { TracearrIntegration } from "../tracearr/tracearr-integration"; -import { TraefikIntegration } from "../traefik/traefik-integration"; -import { SynologyIntegration } from "../synology/synology-integration"; -import { TrueNasIntegration } from "../truenas/truenas-integration"; -import { UmamiIntegration } from "../umami/umami-integration"; -import { UptimeKumaIntegration } from "../uptime-kuma/uptime-kuma-integration"; -import { UnifiControllerIntegration } from "../unifi-controller/unifi-controller-integration"; -import { UnraidIntegration } from "../unraid/unraid-integration"; -import { WudIntegration } from "../wud/wud-integration"; +import { generatedIntegrationCreatorLoaders } from "../generated/integration-creators"; import type { Integration, IntegrationInput } from "./integration"; -export const createIntegrationAsync = async ( +const logger = createLogger({ module: "integrationFactory" }); + +type IntegrationCreator = ( + input: IntegrationInput, +) => Promise; + +type IntegrationConstructor = new ( + input: IntegrationInput, +) => TIntegration; + +const createConstructorCreator = + ( + IntegrationClass: IntegrationConstructor, + ): IntegrationCreator => + async (input) => + new IntegrationClass(input); + +// Keep each import path explicit so Node and Turbopack can discover every lazy integration chunk. +const integrationCreatorLoaders = { + anchor: async () => createConstructorCreator((await import("../anchor/anchor-integration")).AnchorIntegration), + piHole: async () => (await import("../pi-hole/pi-hole-integration-factory")).createPiHoleIntegrationAsync, + adGuardHome: async () => + createConstructorCreator((await import("../adguard-home/adguard-home-integration")).AdGuardHomeIntegration), + technitiumDns: async () => + (await import("../technitium/technitium-integration-factory")).createTechnitiumDnsIntegrationAsync, + homeAssistant: async () => + createConstructorCreator((await import("../homeassistant/homeassistant-integration")).HomeAssistantIntegration), + jellyfin: async () => + createConstructorCreator((await import("../jellyfin/jellyfin-integration")).JellyfinIntegration), + plex: async () => createConstructorCreator((await import("../plex/plex-integration")).PlexIntegration), + sonarr: async () => + createConstructorCreator((await import("../media-organizer/sonarr/sonarr-integration")).SonarrIntegration), + radarr: async () => + createConstructorCreator((await import("../media-organizer/radarr/radarr-integration")).RadarrIntegration), + sabNzbd: async () => + createConstructorCreator((await import("../download-client/sabnzbd/sabnzbd-integration")).SabnzbdIntegration), + nzbGet: async () => + createConstructorCreator((await import("../download-client/nzbget/nzbget-integration")).NzbGetIntegration), + qBittorrent: async () => + createConstructorCreator( + (await import("../download-client/qbittorrent/qbittorrent-integration")).QBitTorrentIntegration, + ), + deluge: async () => + createConstructorCreator((await import("../download-client/deluge/deluge-integration")).DelugeIntegration), + transmission: async () => + createConstructorCreator( + (await import("../download-client/transmission/transmission-integration")).TransmissionIntegration, + ), + slskd: async () => + createConstructorCreator((await import("../download-client/slskd/slskd-integration")).SlskdIntegration), + aria2: async () => + createConstructorCreator((await import("../download-client/aria2/aria2-integration")).Aria2Integration), + jellyseerr: async () => + createConstructorCreator((await import("../jellyseerr/jellyseerr-integration")).JellyseerrIntegration), + seerr: async () => createConstructorCreator((await import("../seerr/seerr-integration")).SeerrIntegration), + overseerr: async () => + createConstructorCreator((await import("../overseerr/overseerr-integration")).OverseerrIntegration), + prowlarr: async () => + createConstructorCreator((await import("../prowlarr/prowlarr-integration")).ProwlarrIntegration), + openmediavault: async () => + createConstructorCreator((await import("../openmediavault/openmediavault-integration")).OpenMediaVaultIntegration), + lidarr: async () => + createConstructorCreator((await import("../media-organizer/lidarr/lidarr-integration")).LidarrIntegration), + readarr: async () => + createConstructorCreator((await import("../media-organizer/readarr/readarr-integration")).ReadarrIntegration), + dashDot: async () => createConstructorCreator((await import("../dashdot/dashdot-integration")).DashDotIntegration), + tdarr: async () => + createConstructorCreator((await import("../media-transcoding/tdarr-integration")).TdarrIntegration), + proxmox: async () => createConstructorCreator((await import("../proxmox/proxmox-integration")).ProxmoxIntegration), + emby: async () => createConstructorCreator((await import("../emby/emby-integration")).EmbyIntegration), + nextcloud: async () => + createConstructorCreator((await import("../nextcloud/nextcloud.integration")).NextcloudIntegration), + unifiController: async () => + createConstructorCreator( + (await import("../unifi-controller/unifi-controller-integration")).UnifiControllerIntegration, + ), + opnsense: async () => + createConstructorCreator((await import("../opnsense/opnsense-integration")).OPNsenseIntegration), + ical: async () => createConstructorCreator((await import("../ical/ical-integration")).ICalIntegration), + ntfy: async () => createConstructorCreator((await import("../ntfy/ntfy-integration")).NTFYIntegration), + gotify: async () => createConstructorCreator((await import("../gotify/gotify-integration")).GotifyIntegration), + mock: async () => createConstructorCreator((await import("../mock/mock-integration")).MockIntegration), + truenas: async () => createConstructorCreator((await import("../truenas/truenas-integration")).TrueNasIntegration), + synology: async () => + createConstructorCreator((await import("../synology/synology-integration")).SynologyIntegration), + unraid: async () => createConstructorCreator((await import("../unraid/unraid-integration")).UnraidIntegration), + coolify: async () => createConstructorCreator((await import("../coolify/coolify-integration")).CoolifyIntegration), + tracearr: async () => + createConstructorCreator((await import("../tracearr/tracearr-integration")).TracearrIntegration), + glances: async () => createConstructorCreator((await import("../glances/glances-integration")).GlancesIntegration), + immich: async () => createConstructorCreator((await import("../immich/immich-integration")).ImmichIntegration), + paperlessNgx: async () => + createConstructorCreator((await import("../paperless-ngx/paperless-ngx-integration")).PaperlessNgxIntegration), + patchmon: async () => + createConstructorCreator((await import("../patchmon/patchmon-integration")).PatchMonIntegration), + speedtestTracker: async () => + createConstructorCreator( + (await import("../speedtest-tracker/speedtest-tracker-integration")).SpeedtestTrackerIntegration, + ), + audiobookshelf: async () => + createConstructorCreator((await import("../audiobookshelf/audiobookshelf-integration")).AudiobookshelfIntegration), + navidrome: async () => + createConstructorCreator((await import("../navidrome/navidrome-integration")).NavidromeIntegration), + umami: async () => createConstructorCreator((await import("../umami/umami-integration")).UmamiIntegration), + gluetun: async () => createConstructorCreator((await import("../gluetun/gluetun-integration")).GluetunIntegration), + archiveTeamWarrior: async () => + createConstructorCreator( + (await import("../archive-team-warrior/archive-team-warrior-integration")).ArchiveTeamWarriorIntegration, + ), + uptimeKuma: async () => + createConstructorCreator((await import("../uptime-kuma/uptime-kuma-integration")).UptimeKumaIntegration), + peaNut: async () => createConstructorCreator((await import("../peanut/peanut-integration")).PeaNutIntegration), + ...generatedIntegrationCreatorLoaders, + bazarr: async () => createConstructorCreator((await import("../bazarr/bazarr-integration")).BazarrIntegration), + traefik: async () => createConstructorCreator((await import("../traefik/traefik-integration")).TraefikIntegration), + wud: async () => createConstructorCreator((await import("../wud/wud-integration")).WudIntegration), +}; + +type AssertIntegrationCreatorLoaders Promise>> = + TLoaders; +type AssertNoUnexpectedIntegrationKinds = TKind; +type IntegrationCreatorLoadersCheck = AssertIntegrationCreatorLoaders; +type UnexpectedIntegrationKindsCheck = AssertNoUnexpectedIntegrationKinds< + Exclude +>; + +type IntegrationCreatorLoaders = IntegrationCreatorLoadersCheck & Record; +type IntegrationCreatorOfKind = Awaited< + ReturnType +>; +type IntegrationInstanceOfKind = Awaited< + ReturnType> +>; + +const integrationCreatorCache = new Map>(); + +const loadIntegrationCreatorAsync = async ( + kind: TKind, +): Promise> => { + const cachedCreator = integrationCreatorCache.get(kind); + if (cachedCreator) { + return (await cachedCreator) as IntegrationCreatorOfKind; + } + + const startedAt = Date.now(); + logger.debug("Loading integration implementation", { integrationKind: kind }); + const creatorPromise = integrationCreatorLoaders[kind](); + integrationCreatorCache.set(kind, creatorPromise); + + try { + const creator = (await creatorPromise) as IntegrationCreatorOfKind; + logger.debug("Integration implementation loaded", { + integrationKind: kind, + durationMs: Date.now() - startedAt, + }); + return creator; + } catch (error) { + if (integrationCreatorCache.get(kind) === creatorPromise) { + integrationCreatorCache.delete(kind); + } + logger.warn( + new ErrorWithMetadata( + "Integration implementation failed to load", + { + integrationKind: kind, + durationMs: Date.now() - startedAt, + }, + { cause: error }, + ), + ); + throw error; + } +}; + +export const createIntegrationAsync = async ( integration: IntegrationInput & { kind: TKind }, -) => { - if (!(integration.kind in integrationCreators)) { +): Promise> => { + if (!Object.hasOwn(integrationCreatorLoaders, integration.kind)) { + logger.warn("Integration client creation refused", { + integrationId: integration.id, + integrationKind: integration.kind, + reason: "integration-kind-unregistered", + }); throw new Error( `Unknown integration kind ${integration.kind}. Did you forget to add it to the integration creator?`, ); } - const creator = integrationCreators[integration.kind]; - - // factories are an array, to differentiate in js between class constructors and functions - if (Array.isArray(creator)) { - return (await creator[0](integration)) as IntegrationInstanceOfKind; - } - - return new creator(integration) as IntegrationInstanceOfKind; + const creator = await loadIntegrationCreatorAsync(integration.kind); + return (await creator(integration)) as IntegrationInstanceOfKind; }; - -type IntegrationInstance = new (integration: IntegrationInput) => Integration; - -// factories are an array, to differentiate in js between class constructors and functions -export const integrationCreators = { - anchor: AnchorIntegration, - piHole: [createPiHoleIntegrationAsync], - adGuardHome: AdGuardHomeIntegration, - technitiumDns: [createTechnitiumDnsIntegrationAsync], - homeAssistant: HomeAssistantIntegration, - jellyfin: JellyfinIntegration, - plex: PlexIntegration, - sonarr: SonarrIntegration, - radarr: RadarrIntegration, - sabNzbd: SabnzbdIntegration, - nzbGet: NzbGetIntegration, - qBittorrent: QBitTorrentIntegration, - deluge: DelugeIntegration, - transmission: TransmissionIntegration, - slskd: SlskdIntegration, - aria2: Aria2Integration, - jellyseerr: JellyseerrIntegration, - seerr: SeerrIntegration, - overseerr: OverseerrIntegration, - prowlarr: ProwlarrIntegration, - openmediavault: OpenMediaVaultIntegration, - lidarr: LidarrIntegration, - readarr: ReadarrIntegration, - dashDot: DashDotIntegration, - tdarr: TdarrIntegration, - proxmox: ProxmoxIntegration, - emby: EmbyIntegration, - nextcloud: NextcloudIntegration, - unifiController: UnifiControllerIntegration, - opnsense: OPNsenseIntegration, - ical: ICalIntegration, - ntfy: NTFYIntegration, - gotify: GotifyIntegration, - mock: MockIntegration, - truenas: TrueNasIntegration, - synology: SynologyIntegration, - unraid: UnraidIntegration, - coolify: CoolifyIntegration, - tracearr: TracearrIntegration, - glances: GlancesIntegration, - immich: ImmichIntegration, - paperlessNgx: PaperlessNgxIntegration, - patchmon: PatchMonIntegration, - speedtestTracker: SpeedtestTrackerIntegration, - audiobookshelf: AudiobookshelfIntegration, - navidrome: NavidromeIntegration, - umami: UmamiIntegration, - gluetun: GluetunIntegration, - archiveTeamWarrior: ArchiveTeamWarriorIntegration, - uptimeKuma: UptimeKumaIntegration, - peaNut: PeaNutIntegration, - beszel: BeszelIntegration, - bazarr: BazarrIntegration, - traefik: TraefikIntegration, - wud: WudIntegration, -} satisfies Record Promise]>; - -type IntegrationInstanceOfKind = { - [kind in TKind]: (typeof integrationCreators)[kind] extends [(input: IntegrationInput) => Promise] - ? Awaited> - : (typeof integrationCreators)[kind] extends IntegrationInstance - ? InstanceType<(typeof integrationCreators)[kind]> - : never; -}[TKind]; diff --git a/packages/integrations/src/base/errors/decorator.ts b/packages/integrations/src/base/errors/decorator.ts index 3aac2eff7..69966dde8 100644 --- a/packages/integrations/src/base/errors/decorator.ts +++ b/packages/integrations/src/base/errors/decorator.ts @@ -1,14 +1,18 @@ import { isFunction } from "@homarr/common"; import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import type { Integration } from "../integration"; import type { IIntegrationErrorHandler } from "./handler"; import { integrationFetchHttpErrorHandler } from "./http"; import { IntegrationError } from "./integration-error"; import { IntegrationUnknownError } from "./integration-unknown-error"; +import { IntegrationRequestError } from "./http/integration-request-error"; +import { IntegrationResponseError } from "./http/integration-response-error"; import { integrationJsonParseErrorHandler, integrationZodParseErrorHandler } from "./parse"; const logger = createLogger({ module: "handleIntegrationErrors" }); +const loggedIntegrationErrors = new WeakSet(); // eslint-disable-next-line @typescript-eslint/no-empty-object-type, @typescript-eslint/no-explicit-any type AbstractConstructor = abstract new (...args: any[]) => T; @@ -19,6 +23,62 @@ const defaultErrorHandlers: IIntegrationErrorHandler[] = [ integrationFetchHttpErrorHandler, ]; +interface IntegrationOperationMetadata { + operation: string; + integrationId: string; + integrationKind: string; + integrationName: string; +} + +const safeErrorNameRegex = /^(?:Error|[A-Za-z][A-Za-z0-9]*(?:Error|Err))$/; + +const createSafeErrorCause = (error: unknown, depth = 0): Error => { + let options: ErrorOptions | undefined; + if (depth < 5 && error instanceof Error && error.cause !== undefined) { + options = { cause: createSafeErrorCause(error.cause, depth + 1) }; + } + + const safeError = new Error("Integration operation failed", options); + if (error instanceof Error && safeErrorNameRegex.test(error.name)) { + safeError.name = error.name; + } + return safeError; +}; + +const logFailure = ( + error: IntegrationError, + failureType: "normalized" | "unknown", + metadata: IntegrationOperationMetadata, + durationMs: number, +) => { + if (loggedIntegrationErrors.has(error)) { + return; + } + + loggedIntegrationErrors.add(error); + const errorMetadata: Record = { errorType: error.name }; + if (error instanceof IntegrationRequestError) { + errorMetadata.requestType = error.cause.type; + errorMetadata.requestReason = error.cause.reason; + errorMetadata.requestCode = error.cause.code; + } + if (error instanceof IntegrationResponseError) { + errorMetadata.statusCode = error.cause.statusCode; + } + logger.warn( + new ErrorWithMetadata( + "Integration operation failed", + { + ...metadata, + durationMs, + failureType, + ...errorMetadata, + }, + { cause: createSafeErrorCause(error) }, + ), + ); +}; + export const HandleIntegrationErrors = (errorHandlers: IIntegrationErrorHandler[]) => { const combinedErrorHandlers = [...defaultErrorHandlers, ...errorHandlers]; return >(IntegrationBaseClass: T): T => { @@ -44,8 +104,27 @@ export const HandleIntegrationErrors = (errorHandlers: IIntegrationErrorHandler[ processedProperties.add(propertyKey); const wrapped = (...methodArgs: unknown[]) => { - const handleError = (error: unknown) => { + const startedAt = Date.now(); + const operationMetadata: IntegrationOperationMetadata = { + operation: propertyKey, + integrationId: this.publicIntegration.id, + integrationKind: this.integration.kind ?? "unknown", + integrationName: this.publicIntegration.name, + }; + + logger.debug("Integration operation started", operationMetadata); + + const logCompletion = () => { + logger.debug("Integration operation completed", { + ...operationMetadata, + durationMs: Date.now() - startedAt, + }); + }; + + const handleError = (error: unknown): never => { if (error instanceof IntegrationError) { + const failureType = error instanceof IntegrationUnknownError ? "unknown" : "normalized"; + logFailure(error, failureType, operationMetadata, Date.now() - startedAt); throw error; } @@ -53,26 +132,29 @@ export const HandleIntegrationErrors = (errorHandlers: IIntegrationErrorHandler[ const handledError = handler.handleError(error, this.publicIntegration); if (!handledError) continue; + logFailure(handledError, "normalized", operationMetadata, Date.now() - startedAt); throw handledError; } - // If the error was handled and should be thrown again, throw it - logger.debug("Unhandled error in integration", { - error: error instanceof Error ? `${error.name}: ${error.message}` : undefined, - integrationName: this.publicIntegration.name, - }); - throw new IntegrationUnknownError(this.publicIntegration, { cause: error }); + const unknownError = new IntegrationUnknownError(this.publicIntegration, { cause: error }); + logFailure(unknownError, "unknown", operationMetadata, Date.now() - startedAt); + throw unknownError; }; try { const result = original.apply(this, methodArgs); if (result instanceof Promise) { - return result.catch((error: unknown) => { - handleError(error); - }); + return result.then( + (value: unknown) => { + logCompletion(); + return value; + }, + (error: unknown) => handleError(error), + ); } + logCompletion(); return result; } catch (error: unknown) { handleError(error); diff --git a/packages/integrations/src/base/integration.ts b/packages/integrations/src/base/integration.ts index e129ca283..6563609f2 100644 --- a/packages/integrations/src/base/integration.ts +++ b/packages/integrations/src/base/integration.ts @@ -5,7 +5,7 @@ import { fetch as undiciFetch } from "undici"; import { removeTrailingSlash } from "@homarr/common"; import { createAxiosCertificateInstanceAsync, createCertificateAgentAsync } from "@homarr/core/infrastructure/http"; -import type { IntegrationSecretKind } from "@homarr/definitions"; +import type { IntegrationKind, IntegrationSecretKind } from "@homarr/definitions"; import { HandleIntegrationErrors } from "./errors/decorator"; import { TestConnectionError } from "./test-connection/test-connection-error"; @@ -15,6 +15,7 @@ import type { IntegrationSecret } from "./types"; export interface IntegrationInput { id: string; + kind?: IntegrationKind; name: string; url: string; externalUrl: string | null; diff --git a/packages/integrations/src/beszel/docs/img/beszel-dashboard.png b/packages/integrations/src/beszel/docs/img/beszel-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..38344a54d507fe2bcd215d55b27b7fb3fc74ef18 GIT binary patch literal 970985 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�S;l_Io(s_W}5Wp^}8)^ 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¥0uC;9c=jq{#L&jjC+i)zTyT~{GQ)Q4Ax3zO%wBnYI+ zW?2(b_W4`&M>=vGq!q-59eDRu;u__wh1@pIcMpc@lUyH1Jw5W(z#!Ll6`aUkjpXY~ zTJ~p03k(GFfo^`MtQ{@$7@fj7BnN1^iM-Q*c=-*u(lv((pk;)tZ3YfDqUYDon#Uu8 z`*vLQH&U9$8-v?^x5tl&5?ewE`Prbsb;QA9Ga(Use~0*dKqc*?p{eclz8r(Pg0(D+kmv637 zZQ!V_IBQVyb#s+6Nzr9g;>>((?fM1HOEti>_&f~^&I4`1FJqgqv!Jh_plhzpj_R$I zSMx`VDy6saKd*P5FMR-7*+q3)T)4_!3uvI)B6)PKUamJr786XM2jpRQD;K`&*m`cg+$y&3G=L3fA4E1;e8=aM zI@U1Q&x^YTCWVVCc@k{n(h-s`<%y`I>me!o${H# zgV1Gb>R`!~e9K{2h|`U_QN@B|(7p-HYL7CTz7El};Dh1}>B_M}LUrC2=-p++jZ;Rj zc}vAiug~fOo%x*_HmGZE!)EW(5Qh;$dfb3cfX=?N**ZV+;Lzcj;<)Rkdtr&=E4#`* zC3h@SIoL7i3N^szG^e0wMuA-%x-HLMlV4%h|8TH0b$esf&ZDL@5C8P3zc*l6cyd}I zeEW?z(@r|%j)Z5=d2#0c@g~2w!Z9yd1>e&Z@_8!lKv(|#>KoaKSN5wBO2lHwe)$UU zj!;^R)J@5X=Lfeg>+k|j5K=7{mRw(ji8LmcC(3?4M>amFNf7H+XkTR&eQ!oe5U~j^7{w)G2`5N%6ZVk-1)X+e8+DYhcUnEt>5v-qQnMT z6^LYI^me*|j`ZHT7a+hQ2Y}uK?k~?mxDLUxhgp4KbQT)3)q&C&i`$N#o4wFBXv*i$ zvI1Uq>g}jf%Zbdg4W*=8gYC@2Cw0RD;{?6z1Jtcy*>jNG1xekYc9^g4q+ABzu{HL| zQL%4>d6&t6#>FoE2qN_}TZk{{8)23uEqhuD3Du5v&}{-8eCG_(vc9%-qPIF+)2lRY z6;BX=M^@QYL$hbQCpJel0MRp{S>i`!0+4vC{v0+=q^Uo<*ZR9?Deq;a`V-ij4cAfk ztkQnEXNeoe_VY${4IHecV$)gy98Nizc8QeLIgIhTn>(ky%MlW^ZZj#t4T)4*S%+OM zzl-T6g@(hbwdU_T53B1aEe@n?q!)G%b}$`JjGZl39YgPFM|iWhvsS@Tz`4{5=2xF0 zaYw6+o(`rUo_(4xi+aITDSc)pDL*=jZ*GsU z&pW0bmxdJC&GJLs!NC<<>0^k{DnqVlk{X^ppUexCQ+)_?DD zY#6;}DLR`&e%GL2WOH76+RCryHJ+i|?Oj3vhekeP-VoK-zzB+C*yyvx5c8_R>!&Av zF-k8RR;=Wess)4&wLD)LDjQ$H{)oAuBbi=m9J4Dm)_GX$j&JGwfO_T8lNbLGQw$kr zaCu!EmF7asYbb8uvL}%*aAiBA8(nL86_6NXwBYX8PDmKf5M)+hWWBoB$#(GFERn|p zu2mF9kAGMD$Z)NdW`m!;5H^Rr?QxWYS7F2Bi>+#52_4%Vgv(rurcj+7KYVP+Is=q` zEKb;rAW9Myk*rs@Pd%bVs4U5^iA3QyX^iSL1xXQ_zI~k2{g7pc3*+L zfwn_1fw11ITGdr(o5{7rU!sY1AFJ~x9^#80PKa)94F{jt13A(Q_=rOFd&KrL!vV#t zGhwws&rr`&>;M|vcBH==enuR$Y^kZ0KI1V6nwc=+b-WMsT}~h{6$OSig|hQ0e-eq@ zz{`H6soxo+!e9&Y)s10qrmzutG%Qg(D`c`jaQ$0tc zVq?o}D91J}FkR3=#&$>qXEkA4>$8KeXq{u7@loJvg&NgxdHIb%jmH}TJDQ+^H#g06 zPkKS6OF5)Am-b{lrz!Z4uMii}yX#j+=s7h1|o!XHw1bJC$5O54;b|I|`i-u%H?Go`+G` zl|6GAg7%XYpJER-1Gf~=I#&Lq%fSd+ehR>G@0z_XR9<&u-DK>m zf&A&tO4|utX4KsA!d~3HQ1*%f{TCVYlQh*|=}sZ{=B|6$3$u(l8UzF}42$L0X1*&N zo?Ajf+uwdQyl=|XDPN~@z`uat(vt&R&kJ+*&o8C&Z5q~1 zSPDDi#e_}8_!>Q~-4>0jrUf~!0S^U*Yeqal_x#Ruf(WrEE}|vz-K4!6twGzmX__2l zWkB=R@WP-ychS_p7_7!fBfO3$%9dDs?;Grp@hj zf9a?)DV-TA6Hock6+kT<_R#~75O-U>#({K@6L9$H;`)=lR$D%J{~lV;&EzHp@vkIF^b;S&b(Ehd_dwr;yIH#$0J8 zoW|yJGHe7AAHTq%AI0)*miCN;?9Jq>X$<@zp#Q)PC}LtqvhS`tDzSF~-l6t;BY{%z z7q>QFGPxCg;^;6ln z)!Vzd5fnSNGRbS77!6Lcv<|Jrt)@Hm-4koz2Zx`O2}T1(S>Z0!k=&9CepWvkVNUGy2rX4JRe^Ho%nVYCVqm|5!lG%M=$!6U3t zu^=hm3CDSR+iqi1Qg135mf^D)V=k=Ia~LTeTgP1EWvJtE_SWFQrP7i<+7M*9U7n=d zz4divgi+1r!3tmYil%qQ-+y0J+uJn~ zPUzIAQ{m#5%+eMu!B^N(@t4ROFenUd4`}nRwul1$+EY4KANe%3np-gYq`*MRb-i1m3XpA6^YvyW`$(J}v&WPO5gSyWWtZ47 z$=zMglF3*wF-7!2x zFTc?}Ev%0+h43{>#*J+0%9ZMH+@-|MebzzRKCCl9PDJIq9xu$|NuM~!O-XuHoHJTu z8c3qXTsVK;2*#J{05i3)o4Pv^>Qz@>X5dxnvKI4B64miGNQ~ef4wClI_4xW<1B#-f z=dhvDAM1j`anw1AEccazi_yh>Z~4~Y^m?W;^Wn9}Uf#l-_82N)iaXn} zNA^^h-ilcboex2}+M#|!?MGswbb&|EC)0GOeM_?Q0|N!~7+vp371q=@9P)-RTm$I0 zel|@xDW&1Q;QpE?`5%u$h-R9Dr6_v(1%>2vL{Y-eDNrWtLeD02q+f}fyM&=*p9>)D^GRa@ zpR}TC_7M!Pib6=3o22&aK%OpA${X)2<_ma$N2xJizy0Pl;*#;H)~#?fi+g@d-f5)V z&%4f#B44w>V5&GrfuBcO;Z-fl{Q9}Is>8{E4IcEfsR*xGbIyMGg&>>kawJmH#Fbxx z)7_LQJW4Q0X*^KF!I788V`;QT4v}B}iwolTF`euD`3;kJO4XzEf?!Y7VlC<@4zo}iORoF(^&dTXSsp5(;Wf8`V}<>D{sM1 zdF~PF@OkD!1lDt4=k>lKlMEvGIT`Cmjmg-)VAQ!3@Fjxv`h%}n7!J;qi1G7GqqV(L7hp^7B;c)|KaN`prTyA@KIubAta@w zK|yIjx?2%JMM_!*L22pkZc%AaP)Zu{^y=h|Eik%&r@E%i&=q# zqyq0`VZp4IBAWs~`RRg14xR(q|2_xV1v2o+oYcVE8$vau$p1O~Ug*bw4@b!vPyA~j zi?@J*xOJ;b{c9jza3}jQeBxWQQCvqaq$a&e z2Wf^J2K}INhH8rs*y&OaZhp-j&79AaVmmXnf-Kv`#F+K?J8OffYXB*Kf8A6|u=GbB z{tAzk6m4_wCF5{k#y4#DnFp(G0wtR0tt)la2%mZbJJR>Yj)OwP>QFhdx)Ouh@)`G9 zcp2Ds89cBV_TAX~Knpa4j=tD@Alh8Z@GMTfYZg*}aX3w}=DR>>Y@eIhY>=$9by&~Jf%bnn$$k8!Yo@axA^bm%`TZ87X%*e0 z|4!?_?lxEjoj=}<_iNl`R6qDPv-vFt@<(v+@w^Q+|M|laiGJ2$iwqJ62LF8H_X7~{ zAhemo;+xzez$7^l;>l(Rk4>Hfy9@0MZ7Y)%780v((2L&% z?3#}kBg1o^;=@CUXcz08H&;PBd6kM=H%?S$Hg$uvRG*29{H^Q8&t3+f)Q8kwOXyNEFRXU7{Z3)^G$^J{XsLS>1e5)UO@nFM0uxS)$}^@Em5DxnqqYkEA^I zp?W{uuM(TjJ0GQq##i5Y2;eaJE|+p{gnj!pTd+qY+>vaRZA9f~OijAHvP`%HZ0t7f@@y43vbgfUO zYD)}%QsLs}LPGnoop z7jszjM4{f2^vQBUX}vfE2`%Z4qNO<9MbiW*EE9gwIY=+XBpmRSpqc3DY5=BurF+?|JipubP=`t_wI45{};+D1N|nkTtvuA6XW9iW;38R z|3#dC!uh{Rqat%P+Ci?|!Su9c;;v->Cve;J znDo3CU;wZsL0!kr~PNxBM) zVRht7L(&C_;Z|%CNm48fxLg2!TyXmD%d?$&kVf2ug;ZPbMNyic?*H13k=TarXf}>q z{ZNy*y!ow)=v;42n$0sfuy2HB!9Au@e&(z_RKdf_tVo`=wao--xit z0aAe3@PCs_dHsK@;{OWje_!uwy1(9RW z8-%BYn#O0^EklhAjsthKrC={q?qv?kyDxoi~@l|$k_JSH#FG)vX^XEndRe|gyEPH2%2 zSV1~&O~k9AvJ=II6fvHZ2lIgAiRf(fz~ z5M5k=D!ZhD@H)X`)F5i(2n+o+QDWQ^A1(WQy z3a~@Xi)P(o`Cl>Cn_pg+j2!ic+}8ljHk;(c@VDEc%cK7#$H%M2d47*Z;hk%7iVcK*cZxl zJ~4doL6abhTfq0_Q_|-wb6L#Wy~{^t>{}aY8!V5tB>YaWf+B=hziJl|G+%L9WvlGO zNMB==6os=FJ+FL&cG52t6~i-qPG9Z+e6y2GP0MfMXC{rUA41glQ$wp%M>&R`cFOx? zB{7g$V61kE5A90+gaa<^MNn|i3BA5v9+x1*;4jilk^O}g6cDDV{Gn>XzbzN8PG9}V zd7mm#!iy;}QEc4YL?>$haT*+^wwc<4P{b%SXX&VGua5wp?+A`#=vmHeqLD|qp*vrp zlGk3OF_GR*87-{_Cslv{H1t2pUgin!` z8+rubo;RUPK5jH5r`-)um-RF;#~Bd14HsM`*NlBH4ooi>0r7?_;X=yi6NS2HYr4lq ze)xg7^|HQQqY&g-SmxK^zo+p}!f7$VQ&qIe5@FL(zR8EEKRz#Y31$esA`pgHkwZ8N z@<_h{_Jb)g6OGUCl1K%t_pOPi_u-@krB>0;GJtN?^LZ^0ezH4OLHoZun-#o*PU|E5 zp=B>RBTN!H2D-o)00Es;`{;A7AqPU=(K?HX`>i?aZjnw&h6D(xfozlqq=X9{U!J-_ z)Ft;i=6By0TZn3~oJUa8*Ok;PMwIH($%G_~Gq}!>LGbp>D80MLHlqZGZo3jhHkUMC z)_H46gms9?_(TKjzo3~5|tKOr_ zn8a@sN~M~@ieyAjiRsUzOJyClmgzeu^}B~{ zbe6V}qh{8%36NfowHO{4ZkRhD@3 zgw1Av_;_@@6stn=>(9r1$MzQseZw#k1M$bbb^~%(P~uoddK#lR9QW&PNUcrKSXfz= z^&~kmhx49J@y7aSHpB2^$$GC^3c&f_qrr?i&QPbe%;7X#K5GOl^;ahX#PBRQ21rB; z`)+BDn-Ac}$j(D>qSeD6;DKy_^`F$M*6B&(n55#9YdYHLHk0LF>cJ-NKzpe<3}J>Q zQYe^ACk+($5BVDJL55?Qd;tq#rtxSl^`773^BE_wQ1xn&y7~Ui@Q=nihR#~wU!O+< z(uvHQnM6vgQ^cEoo;%nle2pCaE@M}R}Ft~7>_RbD_{L!f2N@8XPKV2BKrGD zPlLygMLuT!Iyy_&eEr`=LsP<<*yfB7sjFgg9Rn z2^75m+vC)3C}OtGf@LCWJuZhkzE=`cX>;f*T~-yV%0xc_%Vm=EPN)Lj@B8y0!*??4 zih8h*fybAYPv)oR4w9ys1P$p|Ozl)0C=m8|<7aBs~;8`#zjt1717`pTKzzxqC zY>Qz|Iia#49)mcuBOqruCf+No*^qtn+BwFr+-(wg9W}J+!bl{ z&YRjI;6Dyc5Fe%rwjhx6C?_%(^;x<%)X)aR<+FfOvIS1)vXR%G(oqXGNzmyiwe^P` z?;TI#?%}Ho#1)T4qT=wFCpwb(fvON1Uos6jHZq$_6Jqg6WD9%x7wx<)jdfDW65+t3 zfFkWYvewDzJ{B+lH7bArT;#qDisOdUK_%M_u&nSTT#)w7R~I{hO!D8h^4!wrBYx@w z+S%r0MXnX1$y@ZjSP&q6b+@XpJg+X_AxmTvsD2vncaaszOE5WsUMU1Hg1fFAWGX=e zTl+g}GFP=i@$k0!5IS2Zio-f#(B`K4I34EQQ!p(&OW^g-yi$xXN4^+!@=_f|uIBC@ zQepe~7G}vSaOCvzhe%(gaht(JP5^Cx71RghLAx+EInkC11^3lt3xPhLF08xpZFgWK zCkG|I>Chp+igp}o1Jd#Yhx1t9^K8$vt!nqw+uQ?hhC0G20{zml_ZPnXPP!9OFo%ZlE1yU;YRXMsd)`M@gaaC zJlCn!&7q6EeKB!S^2Pvs7~7pQf~ow?-3k)^oZytDnn8s^-Lf_yc=*)T2a#RK98>_< z0ZVZMV_^gXV2}dhBDbi4nd`2%#<&(it7TGdi+|dVFMYYDxmqmtFDpo*wiwB0#o-{cy+$T@eJ(P}TS{g%JT4A) zeU5=lw4UUrs$9qADcIh5r+w$ zD=zEwJwo*{EwvVDuz0dG@BI*d14!BA8lq^D)&cnJs=;NVva2RVby>qiADuu+HDjN_ zDk!q{)c*VnZ_L&c)9c-$)N|9-b|l@CiN%jY57*m2@aU6Igin}#BC#+V%JwE84CKE4 zG}d>9npXA~m$$l>W$2+v$b12NKVZ~Tfb(=#o3EK$Cv(0)LTj87whWWVMGVVaHJkxg zte?Ys^k^D5ISo?M`HpmTFPFYMxj{Yi_Y`N{l-;IaWFMN9vH}tqcuosTcL%VXo)!8m z$E(z#hGh@{I2xMu+-VG#E{8_{@Z20PnngP|oZR0Xa*gOa<$n)i-CD(tgDhuxOQL#r zigYI2`^ZdT*Rbp84&p(B%K0-QVF;EJ#1be29RJk)fbZQ;^nJcHaJG}$nEr4UkcYMb zmF@w3HIf;AUsSVm>vKGt3T~?yrQ4xHl7>!}^ILO?U_REn)>1TVoCyr^F$FOouq>yb zO(ZO3NtCuU`E34bv&^iU-N%!|Dwz58`G;Yr?X0RPQfP5-CH3;PwfVFuHhcq!saKa~a{udL*zTQa) z6PcZC6eU#@AE&m8qJ{~B4 zj5h;u=A|?FTy3jPe>NKZuAkTbaroKnt1QPwLk&31cgfguf8)=)&EWYv+q}iyosB9{ z{6veB@NPoybNzyVHq zsj)*RW%vO>#}-Px0^O;D#np=caA^*R&#e%l2 z`@ps?L2MHHc8Es8IF?d358pcXL69Ydew#0Us2dWU3oTd)I17`hGV(>cjY zD@MdkTKr0BENsg1>MTcDMLZ9Y9WPQD%uLDd{wz1|p8<-**)TG;0C?n*K_oJhdt)JN z&>gl~-WIR~DwY+14VcyUS@#}3FeZJe|LKuHV_8ynfc-c0db;%a?8I`W)_YjIX&Da4 zET;2{PTSMSC8zQ>=Ws<07EQ6XqZDrL@8ppAl|*9~G_)z$v=15uYcb**d8PKMe3V^c--p0?iU;ELyTsoavP7rE8}WG80?3usP^hYp-E) znFU_+kDdhOaohrh#7gCa5tkbs7F`SxlW2|9{)obM?e+Mnvb(oMA1kHLqj|4*c-)FR zs~A-3+}^aHtUTLxZKjisue@F_V7TD5VTvLXDKVijmyGAJj>l+kF7 z|He&buh8=k66nO*r7y8LPRo$LQ35! zRyj#81WU;HMB9H5tFObZ8yj?DMD88_@E#f`{)m7{SbhH-u3uws3RO--K3`25LiuI8 z3gC`<4AAns%Cc14K#A?W8Ii-Q1j#v}1DLA1B`aVv*dRWBl@{*W+GDW9sSfSSHG8gU8cjgMpc-$ zhQKPb-DEKw6h}BN!h(T~u_KY-Sa^O(_D_1lu9iePr?c8A&`}X1kKyCR0=n;dh!*OQ zdG~=$ex0^+Y!`aDK%O|vOD^bU*)Pk~&!n8_vO5kRvw{U_03fsb*9-i-KOY$*H!4c( z4zGq~&UO`S*J9FzolK`cnqs@QC0o?K^x5)BKI-*S@Ym|!9sPrqr!GbdU^MKux!T=tot*wxCdCC+ZP5OBugFG7EQ01zYo~}=vs(XIXu#j zz`{9bfxGJMBcdnbYj4tZ8c8$7N9BEg5$aDd*Na3}jZ;(o?z!=L^lLtyq2x>doYgm%y8Y#I?FTzArI-+{AhK9Jo|Xr!cHp5|b)!5Z;UTRE0-tLc1&FI3^Y zQIUF{*0DU_Q6`GI6$5bCDKhSM*m2K2g+AMD-0|j%qBx_?G)P=J6?biAX4-4o%jmo^ zFjm;2Wb!YOn#(#CH;nWgxH>w#axu62L1mpFhI;l>yXwGFaLm<5Je9>~<}|TDN+Kh& z$QnwW=D#Qmv5vlmFoS(qsfT`IxI$y%yTU=4`H-;zqNrLtz+k@7Iwzp$yErAqr&+U^6eAVrc}b1D_(U7Z%?Y~)G%IWZJ*jc+e8 z0Z2OC;?*0Lx+EIYd0yP1mx_etW99JUwVY#PZi&X8_Ck=I(j=H)orEFHD2LLQ>VfXG zSRI{&&GoU8zkB#q_TCM5v^6|<^uc-yql+fjiU6fVB7JP~-B$llka%%~;hJtjVSu^f z8XP$A=j`h->BAL)MRKOnQEC>WFC1@%k$^@XB^IRs$MwPTIRK!KFs*X0Q#)$Z@}@-g z2tBFPS%*Xn+TIbS%Npr6zM%N`eBRe!o)!wX-W<(-W<|1B8R3+G^t&sr60Bz9YuS_K+0xLkF|s>?6GJ;s`@h9N>5TCOg4hbWWc(2y z!&dG96!TgW!4u*A;Q8$|mDVfFcuDUC8b|E?TfEgZ>tbWd`+4I!de4*j_oV25)>iFaQ@i%fo6^$J~`qg&R4?4W4o)x zMoVw!iSmcOK0KR1H0Sfq7H?O!;4i;mY_omxhdRh|6}J3=*HG{Z(bavqIA>QcD+K5WlAhxL(bVuv#+l! z;5u?pu{gdTm73Ii8TmG>B&=_+jh!&5H!UrEe!!uBUx~^oNDa^*h{s?%FHI>wi4eYG zXH_1No{D^@mv(EKot2l1-NYh3u5cAbVAjU4W~?|5^Hn)kKZEggnx@M)hd&)$+yxmY zb+Lubo2X4Nfnkq({kb+7Re&Bcn-L2ISe9&LMN?F4alyV(1HeQkfFK5009+%S~BG{IycEJRv3c~Alyb#*Y)AM}Qg?&IoPyV{~_un1g|`bhCcUt`8EG77^XRClG#Lj<8`_Lf+~tE9_z1et(UA^ z4@jEt$54!;dnzV;zonwHY5ard{d?%wzB&an-*=sHP!WyZB>Tvr*P5YXqU;V})4*s7 zDGe9JcOi2VT3F>e0!;3cq=-Ix?OVh5x*dXAyj0%0MnxUD@L48B_mG>-yM&-3p zmim)T69$S^%g;)Z@UMTJeabDYcvpsQqyAs`OBUbXdg5kzQMXp415dX2DvQZoSWnzM zm%ps{OpOCR6J(YD*k-QMYJ&Nu1;g|>-TcIlktH<(!-q*fAAD#RzTT?i>bT@Icea`t z$6=}PAE0fpzzcS8?aN26F;u_XtS2)hD77M&Nng{hNH^bxgu35fXb77;Ce#fRw?9`I}+wJqZHvssn z6ZqcgoT-%@S}O7WpL{wNux=)Xd~|ceB z@&B)1j}6fs&0AcUXIw0&)#kby>^+RqUT(UUw>Bq{lNA(^<-juantDHWvEInCr!vXL z2{l%H%smy&AR%0K{|05L%;oVC{-}hr-ZL0k49}!m?@uZo#b)IW^$@O(W9`C07%f5! z?~~xrFgI4Y?D;|{Q%FIT+dwEj1^efL_09mks~Vk-xzQJq1JFu*s0r)ky4cuB6JQ8z zA16d`Gq@yyELpEt9){|W|t{q19FZR+4*SM<$U9M-~q%|ajkGA8- zC$6*dw*>(g#P{ZBFb0ljg8sCI%*8iPpp@xLYsWinTa=W?%?P&qeEg8N_NJugD7WRx zjl9Je-}KypO)W)TtFP2w&76xE;=a=@T~+nHlo=Rz=bH9#s-#J88Ym0jF>GRkDZGP| zM&*`;Pv57nc-kY}0bmNou7n-ewDKO-c29w{-)UwXPfB@66S}tqV)ndaqMf^FE#Bcv zwwIxa@92V-7Vqd4C~oZsvUp?MAtevAdx)><5f{AlZN&<*RD9)Zi;DZT#bhANo`m&> z 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

a5@+KBEXifE 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%0AB*uPTM9$Y>`U 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 }@Y$NVO*uI$U?GxreZ! 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

h-n(>iW}kM#{|8Fa^lfXL`48 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%0Av&{x|@aDOPuaO_}MZ{Ewf~(bW;V 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�c?cUGvlas@mVbq3a1B?hUOs<@s(z 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%0A9;CLy2R5EWh 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

t;}XUaYy1m1;!4NXF2=nZVM|$eIcD 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�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 literal 0 HcmV?d00001 diff --git a/packages/integrations/src/beszel/docs/index.mdx b/packages/integrations/src/beszel/docs/index.mdx new file mode 100644 index 000000000..8ddda77c6 --- /dev/null +++ b/packages/integrations/src/beszel/docs/index.mdx @@ -0,0 +1,58 @@ +--- +title: "Beszel" +description: "Beszel is a lightweight server monitoring platform with Docker stats, historical data, and alert functions." +hide_title: true +--- + +import { IntegrationHeader } from "@site/src/components/integrations/header"; +import { IntegrationCapabilites } from "@site/src/components/integrations/widgets"; +import { AddingIntegration } from "@site/src/components/integrations/adding"; +import { IntegrationSecrets } from "@site/src/components/integrations/secrets"; +import { beszelIntegration } from "."; +import { beszelSystemStatsWidget } from "@site/docs/widgets/beszel-system-stats"; +import { beszelSystemGridWidget } from "@site/docs/widgets/beszel-system-grid"; +import { beszelSystemTableWidget } from "@site/docs/widgets/beszel-system-table"; +import { beszelAlertsWidget } from "@site/docs/widgets/beszel-alerts"; + +import beszelDashboard from "./img/beszel-dashboard.png"; + + + +Beszel monitors your servers in real time via lightweight agents, collecting CPU, memory, disk, network, GPU, temperature, and Docker container metrics. It stores historical data and supports configurable alerts. + +### Screenshots + +Beszel dashboard overview showing all four widgets + +### Widgets & Capabilities + + + +### Adding the integration + + + +### Secrets + + + +:::tip +Beszel uses PocketBase under the hood. The default admin credentials are set during the initial Beszel setup. +::: diff --git a/packages/integrations/src/beszel/docs/index.ts b/packages/integrations/src/beszel/docs/index.ts new file mode 100644 index 000000000..c67aae6bf --- /dev/null +++ b/packages/integrations/src/beszel/docs/index.ts @@ -0,0 +1,7 @@ +export const beszelIntegration = { + name: "Beszel", + description: + "Beszel is a lightweight server monitoring platform with Docker stats, historical data, and alert functions.", + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg", + path: "../../integrations/beszel", +} as const; diff --git a/packages/integrations/src/beszel/module.ts b/packages/integrations/src/beszel/module.ts new file mode 100644 index 000000000..c9cc6f951 --- /dev/null +++ b/packages/integrations/src/beszel/module.ts @@ -0,0 +1,19 @@ +import { defineIntegrationModule } from "@homarr/definitions"; + +export default defineIntegrationModule({ + kind: "beszel", + name: "Beszel", + iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg", + secretKinds: [["username", "password"]], + categories: ["beszel"], + defaultPort: 8090, + documentation: { + slug: "beszel", + sourceDirectory: "docs", + }, + creator: { + type: "constructor", + module: "./beszel-integration", + exportName: "BeszelIntegration", + }, +}); diff --git a/packages/integrations/src/factory.ts b/packages/integrations/src/factory.ts new file mode 100644 index 000000000..f0c6d6d04 --- /dev/null +++ b/packages/integrations/src/factory.ts @@ -0,0 +1 @@ +export { createIntegrationAsync } from "./base/creator"; diff --git a/packages/integrations/src/generated/integration-creators.ts b/packages/integrations/src/generated/integration-creators.ts new file mode 100644 index 000000000..0071e883d --- /dev/null +++ b/packages/integrations/src/generated/integration-creators.ts @@ -0,0 +1,12 @@ +// This file is generated by pnpm integrations:sync. Do not edit it directly. + +import type { Integration, IntegrationInput } from "../base/integration"; + +type GeneratedIntegrationCreator = (input: IntegrationInput) => Promise; + +export const generatedIntegrationCreatorLoaders = { + beszel: async () => { + const IntegrationClass = (await import("../beszel/beszel-integration")).BeszelIntegration; + return async (input: IntegrationInput) => new IntegrationClass(input); + }, +} satisfies Record Promise>; diff --git a/packages/integrations/src/index.ts b/packages/integrations/src/index.ts index d4f200618..21fdfa443 100644 --- a/packages/integrations/src/index.ts +++ b/packages/integrations/src/index.ts @@ -1,53 +1,6 @@ -// General integrations -export { ArchiveTeamWarriorIntegration } from "./archive-team-warrior/archive-team-warrior-integration"; -export { WudIntegration } from "./wud/wud-integration"; -export { AdGuardHomeIntegration } from "./adguard-home/adguard-home-integration"; -export { TechnitiumDnsIntegration } from "./technitium/technitium-integration"; -export { AnchorIntegration } from "./anchor/anchor-integration"; -export { Aria2Integration } from "./download-client/aria2/aria2-integration"; -export { DelugeIntegration } from "./download-client/deluge/deluge-integration"; -export { NzbGetIntegration } from "./download-client/nzbget/nzbget-integration"; -export { QBitTorrentIntegration } from "./download-client/qbittorrent/qbittorrent-integration"; -export { SabnzbdIntegration } from "./download-client/sabnzbd/sabnzbd-integration"; -export { SlskdIntegration } from "./download-client/slskd/slskd-integration"; -export { TransmissionIntegration } from "./download-client/transmission/transmission-integration"; -export { HomeAssistantIntegration } from "./homeassistant/homeassistant-integration"; -export { JellyfinIntegration } from "./jellyfin/jellyfin-integration"; -export { JellyseerrIntegration } from "./jellyseerr/jellyseerr-integration"; -export { LidarrIntegration } from "./media-organizer/lidarr/lidarr-integration"; -export { RadarrIntegration } from "./media-organizer/radarr/radarr-integration"; -export { ReadarrIntegration } from "./media-organizer/readarr/readarr-integration"; -export { SonarrIntegration } from "./media-organizer/sonarr/sonarr-integration"; -export { NextcloudIntegration } from "./nextcloud/nextcloud.integration"; -export { GotifyIntegration } from "./gotify/gotify-integration"; -export { NTFYIntegration } from "./ntfy/ntfy-integration"; -export { OpenMediaVaultIntegration } from "./openmediavault/openmediavault-integration"; -export { GlancesIntegration } from "./glances/glances-integration"; -export { OverseerrIntegration } from "./overseerr/overseerr-integration"; -export { SeerrIntegration } from "./seerr/seerr-integration"; -export { PiHoleIntegrationV5 } from "./pi-hole/v5/pi-hole-integration-v5"; -export { PiHoleIntegrationV6 } from "./pi-hole/v6/pi-hole-integration-v6"; -export { PlexIntegration } from "./plex/plex-integration"; -export { ProwlarrIntegration } from "./prowlarr/prowlarr-integration"; -export { TrueNasIntegration } from "./truenas/truenas-integration"; -export { SynologyIntegration } from "./synology/synology-integration"; -export { UnraidIntegration } from "./unraid/unraid-integration"; -export { OPNsenseIntegration } from "./opnsense/opnsense-integration"; -export { ICalIntegration } from "./ical/ical-integration"; -export { CoolifyIntegration } from "./coolify/coolify-integration"; -export { ImmichIntegration } from "./immich/immich-integration"; -export { TracearrIntegration } from "./tracearr/tracearr-integration"; -export { SpeedtestTrackerIntegration } from "./speedtest-tracker/speedtest-tracker-integration"; -export { AudiobookshelfIntegration } from "./audiobookshelf/audiobookshelf-integration"; -export { NavidromeIntegration } from "./navidrome/navidrome-integration"; -export { UptimeKumaIntegration } from "./uptime-kuma/uptime-kuma-integration"; -export { UmamiIntegration } from "./umami/umami-integration"; -export { PeaNutIntegration } from "./peanut/peanut-integration"; -export { BazarrIntegration } from "./bazarr/bazarr-integration"; -export { TraefikIntegration } from "./traefik/traefik-integration"; - -// Types +// Type-only compatibility surface. Runtime capabilities have explicit subpaths. export type { IntegrationInput } from "./base/integration"; +export type { PiHoleIntegrationV6 } from "./pi-hole/v6/pi-hole-integration-v6"; export type { DownloadClientJobsAndStatus } from "./interfaces/downloads/download-client-data"; export type { ExtendedDownloadClientItem } from "./interfaces/downloads/download-client-items"; export type { ExtendedClientStatus } from "./interfaces/downloads/download-client-status"; @@ -59,8 +12,11 @@ export type { FirewallMemorySummary, } from "./interfaces/firewall-summary/firewall-summary-types"; export type { SystemHealthMonitoring } from "./interfaces/health-monitoring/health-monitoring-types"; -export { UpstreamMediaRequestStatus } from "./interfaces/media-requests/media-request-types"; -export type { MediaRequestList, MediaRequestStats } from "./interfaces/media-requests/media-request-types"; +export type { + MediaRequestList, + MediaRequestStats, + UpstreamMediaRequestStatus, +} from "./interfaces/media-requests/media-request-types"; export type { StreamSession } from "./interfaces/media-server/media-server-types"; export type { EntityState } from "./interfaces/smart-home/smart-home-types"; export type { @@ -95,12 +51,4 @@ export type { } from "./archive-team-warrior/archive-team-warrior-types"; export type { WudStats, WudContainerUpdate } from "./wud/wud-types"; -// Schemas -export { anchorNotesListInputSchema } from "./anchor/anchor-types"; -export { anchorNoteUpdateInputSchema } from "./anchor/anchor-types"; -export { downloadClientItemSchema } from "./interfaces/downloads/download-client-items"; - -// Helpers -export { createIntegrationAsync } from "./base/creator"; -export { simulateResponseContractAsync } from "./base/response-contract"; export type { ResponseContractFixture, ResponseContractParser } from "./base/response-contract"; diff --git a/packages/integrations/test/aria2.spec.ts b/packages/integrations/test/aria2.spec.ts index a204d7ccf..049c21f65 100644 --- a/packages/integrations/test/aria2.spec.ts +++ b/packages/integrations/test/aria2.spec.ts @@ -4,7 +4,7 @@ import { beforeAll, describe, expect, test, vi } from "vitest"; import { createDb } from "@homarr/db/test"; -import { Aria2Integration } from "../src"; +import { Aria2Integration } from "../src/download-client/aria2/aria2-integration"; vi.mock("@homarr/db", async (importActual) => { // eslint-disable-next-line @typescript-eslint/consistent-type-imports diff --git a/packages/integrations/test/home-assistant.spec.ts b/packages/integrations/test/home-assistant.spec.ts index 91952b37e..35996a744 100644 --- a/packages/integrations/test/home-assistant.spec.ts +++ b/packages/integrations/test/home-assistant.spec.ts @@ -5,7 +5,7 @@ import { beforeAll, describe, expect, test, vi } from "vitest"; import { createDb } from "@homarr/db/test"; -import { HomeAssistantIntegration } from "../src"; +import { HomeAssistantIntegration } from "../src/homeassistant/homeassistant-integration"; import { TestConnectionError } from "../src/base/test-connection/test-connection-error"; vi.mock("@homarr/db", async (importActual) => { diff --git a/packages/integrations/test/nextcloud.spec.ts b/packages/integrations/test/nextcloud.spec.ts index f9b4860bb..d31891e18 100644 --- a/packages/integrations/test/nextcloud.spec.ts +++ b/packages/integrations/test/nextcloud.spec.ts @@ -6,7 +6,7 @@ import { afterAll, beforeAll, describe, expect, test, vi } from "vitest"; import { createId } from "@homarr/common"; import { createDb } from "@homarr/db/test"; -import { NextcloudIntegration } from "../src"; +import { NextcloudIntegration } from "../src/nextcloud/nextcloud.integration"; // Mock the database vi.mock("@homarr/db", async (importActual) => { diff --git a/packages/integrations/test/nzbget.spec.ts b/packages/integrations/test/nzbget.spec.ts index 6b485e71d..21a19756b 100644 --- a/packages/integrations/test/nzbget.spec.ts +++ b/packages/integrations/test/nzbget.spec.ts @@ -6,7 +6,7 @@ import { beforeAll, describe, expect, test, vi } from "vitest"; import { createDb } from "@homarr/db/test"; -import { NzbGetIntegration } from "../src"; +import { NzbGetIntegration } from "../src/download-client/nzbget/nzbget-integration"; import { TestConnectionError } from "../src/base/test-connection/test-connection-error"; vi.mock("@homarr/db", async (importActual) => { diff --git a/packages/integrations/test/pi-hole.spec.ts b/packages/integrations/test/pi-hole.spec.ts index 78c272689..41b8719a4 100644 --- a/packages/integrations/test/pi-hole.spec.ts +++ b/packages/integrations/test/pi-hole.spec.ts @@ -4,7 +4,8 @@ import { describe, expect, test, vi } from "vitest"; import { createDb } from "@homarr/db/test"; -import { PiHoleIntegrationV5, PiHoleIntegrationV6 } from "../src"; +import { PiHoleIntegrationV5 } from "../src/pi-hole/v5/pi-hole-integration-v5"; +import { PiHoleIntegrationV6 } from "../src/pi-hole/v6/pi-hole-integration-v6"; import type { SessionStore } from "../src/base/session-store"; import { TestConnectionError } from "../src/base/test-connection/test-connection-error"; diff --git a/packages/integrations/test/sabnzbd.spec.ts b/packages/integrations/test/sabnzbd.spec.ts index 8603f04a0..fd3ef994f 100644 --- a/packages/integrations/test/sabnzbd.spec.ts +++ b/packages/integrations/test/sabnzbd.spec.ts @@ -5,7 +5,7 @@ import { beforeAll, describe, expect, test, vi } from "vitest"; import { createDb } from "@homarr/db/test"; -import { SabnzbdIntegration } from "../src"; +import { SabnzbdIntegration } from "../src/download-client/sabnzbd/sabnzbd-integration"; import { TestConnectionError } from "../src/base/test-connection/test-connection-error"; import type { DownloadClientItem } from "../src/interfaces/downloads/download-client-items"; diff --git a/packages/onboarding/src/setup-studio.tsx b/packages/onboarding/src/setup-studio.tsx index 75c44d090..fc72f54b1 100644 --- a/packages/onboarding/src/setup-studio.tsx +++ b/packages/onboarding/src/setup-studio.tsx @@ -463,9 +463,11 @@ export const SetupStudio = ({ environment, assistantConfiguration }: OnboardingS ...generalWidgets, ...discoveredIntegrations.filter((integration) => selectedSourceIds.has(integration.sourceId)), ...appsToCreate, - ].flatMap((selection) => - typeof selection === "string" ? [selection] : selection.widgetKind ? [selection.widgetKind] : [], - ), + ].flatMap((selection) => { + if (typeof selection === "string") return [selection]; + if (!selection.widgetKind) return []; + return [selection.widgetKind]; + }), ), ], }); @@ -1931,13 +1933,19 @@ const getPreviewWidgetKinds = (props: StudioSectionProps) => [ ...props.drafts.filter(isIntegrationDraftComplete).flatMap((draft) => getWidgetKindsForIntegration(draft.kind)), ...props.discoveredApps .filter((app) => props.selectedAppIds.includes(app.sourceId)) - .flatMap((app) => (app.widgetKind ? [app.widgetKind] : [])), + .flatMap((app) => { + if (!app.widgetKind) return []; + return [app.widgetKind]; + }), ]), ]; -const getPreviewAppCount = (props: StudioSectionProps) => - props.drafts.filter(isIntegrationDraftComplete).length + - props.discoveredApps.filter((app) => props.selectedAppIds.includes(app.sourceId)).length; +const getPreviewAppCount = (props: StudioSectionProps) => { + return ( + props.drafts.filter(isIntegrationDraftComplete).length + + props.discoveredApps.filter((app) => props.selectedAppIds.includes(app.sourceId)).length + ); +}; const createDraft = ({ id, diff --git a/packages/redis/src/index.ts b/packages/redis/src/index.ts index 857f87c4f..d470c9c03 100644 --- a/packages/redis/src/index.ts +++ b/packages/redis/src/index.ts @@ -17,8 +17,12 @@ export { createSubPubChannel, createGetSetChannel, createLockChannel, + getIntegrationCacheGenerationAsync, + getWidgetCacheGenerationAsync, invalidateIntegrationCacheAsync, + invalidateWidgetCache, } from "./lib/channel"; +export type { IntegrationCacheGeneration, WidgetCacheGeneration } from "./lib/channel"; export const pingChannel = createSubPubChannel< { url: string; statusCode: number; durationMs: number } | { url: string; error: string } diff --git a/packages/redis/src/lib/channel.ts b/packages/redis/src/lib/channel.ts index 4731ccfa1..f46d24c8c 100644 --- a/packages/redis/src/lib/channel.ts +++ b/packages/redis/src/lib/channel.ts @@ -1,12 +1,15 @@ import superjson from "superjson"; import { createId } from "@homarr/common"; +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; import { ChannelSubscriptionTracker } from "./channel-subscription-tracker"; import { createRedisConnection } from "./connection"; const publisher = createRedisConnection(); const lastDataClient = createRedisConnection(); +const logger = createLogger({ module: "redisChannel" }); /** * Creates a new pub/sub channel. @@ -108,9 +111,17 @@ export const createGetSetChannel = (name: string) => { /** * Set data in the channel * @param data data to be stored in the channel - * @param options optional TTL in seconds + * @param options optional TTL in seconds or milliseconds */ - setAsync: async (data: TData, options?: { ttlSeconds?: number }) => { + setAsync: async (data: TData, options?: { ttlSeconds?: number; ttlMs?: number }) => { + if (options?.ttlMs !== undefined) { + if (options.ttlMs <= 0) { + await getSetClient.del(name); + return; + } + await getSetClient.set(name, superjson.stringify(data), "PX", options.ttlMs); + return; + } if (options?.ttlSeconds) { await getSetClient.set(name, superjson.stringify(data), "EX", options.ttlSeconds); return; @@ -156,10 +167,187 @@ export const createLockChannel = (name: string) => { }; }; -export const invalidateIntegrationCacheAsync = async (integrationId: string): Promise => { +const integrationCacheGenerationKey = (integrationId: string) => `integration-cache:generation:${integrationId}`; +const pendingIntegrationCacheInvalidations = new Map(); +const MAX_PENDING_INTEGRATION_CACHE_INVALIDATIONS = 1000; +const INTEGRATION_CACHE_REDIS_TIMEOUT_MS = 500; + +const logCacheGenerationFailure = (message: string, metadata: Record, error: unknown) => { + logger.warn(new ErrorWithMetadata(message, metadata, { cause: error })); +}; + +const withIntegrationCacheRedisTimeoutAsync = async (promise: Promise): Promise => { + return await new Promise((resolve, reject) => { + const timer = setTimeout( + () => reject(new Error("Redis integration cache operation timed out")), + INTEGRATION_CACHE_REDIS_TIMEOUT_MS, + ); + timer.unref?.(); + void promise.then(resolve, reject).finally(() => clearTimeout(timer)); + }); +}; + +const advanceIntegrationCacheGenerationAsync = async (integrationId: string) => { const client = getSetClient as typeof getSetClient | null; - if (!client) return; - await client.del(`session-store:${integrationId}`); + if (!client) return null; + + const results = await withIntegrationCacheRedisTimeoutAsync( + client.multi().incr(integrationCacheGenerationKey(integrationId)).del(`session-store:${integrationId}`).exec(), + ); + const generationResult = results?.[0]; + const sessionResult = results?.[1]; + if (!generationResult || generationResult[0]) throw generationResult?.[0] ?? new Error("Missing generation result"); + if (!sessionResult || sessionResult[0]) throw sessionResult?.[0] ?? new Error("Missing session result"); + return String(generationResult[1]); +}; + +export interface IntegrationCacheGeneration { + value: string; + isShared: boolean; +} + +export const getIntegrationCacheGenerationAsync = async ( + integrationId: string, +): Promise => { + const pendingGeneration = pendingIntegrationCacheInvalidations.get(integrationId); + if (pendingGeneration) { + try { + const generation = await advanceIntegrationCacheGenerationAsync(integrationId); + if (generation) { + if (pendingIntegrationCacheInvalidations.get(integrationId) === pendingGeneration) { + pendingIntegrationCacheInvalidations.delete(integrationId); + return { value: generation, isShared: true }; + } + return { + value: pendingIntegrationCacheInvalidations.get(integrationId) ?? generation, + isShared: false, + }; + } + } catch (error) { + logCacheGenerationFailure( + "Failed to retry integration cache invalidation", + { integrationId, operation: "generation-advance" }, + error, + ); + } + return { value: pendingGeneration, isShared: false }; + } + + const client = getSetClient as typeof getSetClient | null; + if (!client) return { value: "redis-unavailable", isShared: false }; + + try { + const generation = await withIntegrationCacheRedisTimeoutAsync( + client.get(integrationCacheGenerationKey(integrationId)), + ); + return { value: generation ?? "0", isShared: true }; + } catch (error) { + logCacheGenerationFailure( + "Failed to read integration cache generation", + { integrationId, operation: "generation-read" }, + error, + ); + return { value: "redis-unavailable", isShared: false }; + } +}; + +export const invalidateIntegrationCacheAsync = async (integrationId: string): Promise => { + const pendingGeneration = `local-${createId()}`; + if (pendingIntegrationCacheInvalidations.size >= MAX_PENDING_INTEGRATION_CACHE_INVALIDATIONS) { + const oldestIntegrationId = pendingIntegrationCacheInvalidations.keys().next().value; + if (oldestIntegrationId) pendingIntegrationCacheInvalidations.delete(oldestIntegrationId); + } + pendingIntegrationCacheInvalidations.set(integrationId, pendingGeneration); + + try { + const generation = await advanceIntegrationCacheGenerationAsync(integrationId); + if (generation && pendingIntegrationCacheInvalidations.get(integrationId) === pendingGeneration) { + pendingIntegrationCacheInvalidations.delete(integrationId); + } + } catch (error) { + logCacheGenerationFailure( + "Failed to invalidate integration caches in Redis", + { integrationId, operation: "generation-advance-and-session-delete" }, + error, + ); + } +}; + +const widgetCacheGenerationKey = (namespace: string) => `widget-cache:generation:${namespace}`; +const pendingWidgetCacheInvalidations = new Map(); +const MAX_PENDING_WIDGET_CACHE_INVALIDATIONS = 1000; + +const advanceWidgetCacheGenerationAsync = async (namespace: string) => { + const client = getSetClient as typeof getSetClient | null; + if (!client) return null; + + return String(await withIntegrationCacheRedisTimeoutAsync(client.incr(widgetCacheGenerationKey(namespace)))); +}; + +export type WidgetCacheGeneration = IntegrationCacheGeneration; + +export const getWidgetCacheGenerationAsync = async (namespace: string): Promise => { + const pendingGeneration = pendingWidgetCacheInvalidations.get(namespace); + if (pendingGeneration) { + try { + const generation = await advanceWidgetCacheGenerationAsync(namespace); + if (generation) { + if (pendingWidgetCacheInvalidations.get(namespace) === pendingGeneration) { + pendingWidgetCacheInvalidations.delete(namespace); + return { value: generation, isShared: true }; + } + return { + value: pendingWidgetCacheInvalidations.get(namespace) ?? generation, + isShared: false, + }; + } + } catch (error) { + logCacheGenerationFailure( + "Failed to retry widget cache invalidation", + { cacheNamespace: namespace, operation: "generation-advance" }, + error, + ); + } + return { value: pendingGeneration, isShared: false }; + } + + const client = getSetClient as typeof getSetClient | null; + if (!client) return { value: "redis-unavailable", isShared: false }; + + try { + const generation = await withIntegrationCacheRedisTimeoutAsync(client.get(widgetCacheGenerationKey(namespace))); + return { value: generation ?? "0", isShared: true }; + } catch (error) { + logCacheGenerationFailure( + "Failed to read widget cache generation", + { cacheNamespace: namespace, operation: "generation-read" }, + error, + ); + return { value: "redis-unavailable", isShared: false }; + } +}; + +export const invalidateWidgetCache = (namespace: string): void => { + const pendingGeneration = `local-${createId()}`; + if (pendingWidgetCacheInvalidations.size >= MAX_PENDING_WIDGET_CACHE_INVALIDATIONS) { + const oldestNamespace = pendingWidgetCacheInvalidations.keys().next().value; + if (oldestNamespace) pendingWidgetCacheInvalidations.delete(oldestNamespace); + } + pendingWidgetCacheInvalidations.set(namespace, pendingGeneration); + + void advanceWidgetCacheGenerationAsync(namespace) + .then((generation) => { + if (generation && pendingWidgetCacheInvalidations.get(namespace) === pendingGeneration) { + pendingWidgetCacheInvalidations.delete(namespace); + } + }) + .catch((error: unknown) => { + logCacheGenerationFailure( + "Failed to invalidate widget caches in Redis", + { cacheNamespace: namespace, operation: "generation-advance" }, + error, + ); + }); }; /** diff --git a/packages/request-handler/src/air-quality.ts b/packages/request-handler/src/air-quality.ts index 6a77a871a..8cccc4248 100644 --- a/packages/request-handler/src/air-quality.ts +++ b/packages/request-handler/src/air-quality.ts @@ -44,6 +44,7 @@ const requestedVariables = [ ] as const; export const airQualityRequestHandler = createWidgetRequestHandler({ + cacheNamespace: "air-quality", cacheTtlMs: 15 * 60 * 1000, fallbackToStaleOnError: true, staleIfErrorTtlMs: 24 * 60 * 60 * 1000, diff --git a/packages/request-handler/src/anchor-notes.ts b/packages/request-handler/src/anchor-notes.ts index 75677b8ba..cc5d91e77 100644 --- a/packages/request-handler/src/anchor-notes.ts +++ b/packages/request-handler/src/anchor-notes.ts @@ -1,5 +1,5 @@ import type { AnchorNote, AnchorNotesListInput, AnchorNoteSummary } from "@homarr/integrations"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const anchorNotesListRequestHandler = createIntegrationRequestHandler< "anchor", AnchorNotesListInput >({ + cacheNamespace: "anchor-notes:list", async requestAsync(integration, input) { const instance = await createIntegrationAsync(integration); return instance.listNotesAsync(input); @@ -15,6 +16,7 @@ export const anchorNotesListRequestHandler = createIntegrationRequestHandler< }); export const anchorNoteRequestHandler = createIntegrationRequestHandler({ + cacheNamespace: "anchor-notes:detail", async requestAsync(integration, input) { const instance = await createIntegrationAsync(integration); return instance.getNoteAsync(input.noteId); diff --git a/packages/request-handler/src/archive-team-warrior.ts b/packages/request-handler/src/archive-team-warrior.ts index e02391f19..69904972f 100644 --- a/packages/request-handler/src/archive-team-warrior.ts +++ b/packages/request-handler/src/archive-team-warrior.ts @@ -1,6 +1,6 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; import type { ArchiveTeamWarriorStatus } from "@homarr/integrations"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const archiveTeamWarriorRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"archiving">, Record >({ + cacheNamespace: "archive-team-warrior:status", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getStatusAsync(); diff --git a/packages/request-handler/src/audiobookshelf.ts b/packages/request-handler/src/audiobookshelf.ts index 12562342c..5be8943fc 100644 --- a/packages/request-handler/src/audiobookshelf.ts +++ b/packages/request-handler/src/audiobookshelf.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { AudiobookshelfDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const audiobookshelfRequestHandler = createIntegrationRequestHandler< "audiobookshelf", Record >({ + cacheNamespace: "audiobookshelf:stats", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/bazarr.ts b/packages/request-handler/src/bazarr.ts index 56b391658..4f7bc2d48 100644 --- a/packages/request-handler/src/bazarr.ts +++ b/packages/request-handler/src/bazarr.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { BazarrBadges } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const bazarrBadgesRequestHandler = createIntegrationRequestHandler< "bazarr", Record >({ + cacheNamespace: "bazarr:badges", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getBadgesAsync(); diff --git a/packages/request-handler/src/beszel.ts b/packages/request-handler/src/beszel.ts index dab263e3a..f082709da 100644 --- a/packages/request-handler/src/beszel.ts +++ b/packages/request-handler/src/beszel.ts @@ -1,5 +1,5 @@ import { createLogger } from "@homarr/core/infrastructure/logs"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { BeszelAlert, BeszelAlertHistory, @@ -57,6 +57,7 @@ export const beszelSystemsRequestHandler = createIntegrationRequestHandler< "beszel" | "mock", Record >({ + cacheNamespace: "beszel:systems", async requestAsync(integration) { const start = performance.now(); const instance = await createIntegrationAsync(integration); @@ -89,6 +90,7 @@ export const beszelAlertsRequestHandler = createIntegrationRequestHandler< "beszel" | "mock", { includeHistory: boolean; maxHistoryItems: number } >({ + cacheNamespace: "beszel:alerts", async requestAsync(integration, input) { const start = performance.now(); const instance = await createIntegrationAsync(integration); @@ -123,6 +125,7 @@ export const beszelStatsRequestHandler = createIntegrationRequestHandler< "beszel" | "mock", { systemId: string; timePeriod: string; includeDocker: boolean } >({ + cacheNamespace: "beszel:stats", // No cache — the widget polls every 5s for live updates; // a TTL here would serve stale records between polls. cacheTtlMs: 0, diff --git a/packages/request-handler/src/calendar.ts b/packages/request-handler/src/calendar.ts index 312121bd6..2899c0c8f 100644 --- a/packages/request-handler/src/calendar.ts +++ b/packages/request-handler/src/calendar.ts @@ -1,7 +1,7 @@ import dayjs from "dayjs"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { CalendarEvent, RadarrReleaseType } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -19,6 +19,7 @@ export const calendarMonthRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"calendar">, { year: number; month: number; releaseType: RadarrReleaseType[]; showUnmonitored: boolean } >({ + cacheNamespace: "calendar:month", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); // Calendar component shows up to 6 days before and after the month, for example if 1. of january is sunday, it shows the last 6 days of december. diff --git a/packages/request-handler/src/coolify.ts b/packages/request-handler/src/coolify.ts index 25ddfe962..30d05acf7 100644 --- a/packages/request-handler/src/coolify.ts +++ b/packages/request-handler/src/coolify.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { CoolifyInstanceInfo } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const coolifyRequestHandler = createIntegrationRequestHandler< "coolify", Record >({ + cacheNamespace: "coolify:resources", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getInstanceInfoAsync(); diff --git a/packages/request-handler/src/dns-hole.ts b/packages/request-handler/src/dns-hole.ts index 85188c740..73a977b73 100644 --- a/packages/request-handler/src/dns-hole.ts +++ b/packages/request-handler/src/dns-hole.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { DnsHoleSummary } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const dnsHoleRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"dnsHole">, Record >({ + cacheNamespace: "dns-hole:summary", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getSummaryAsync(); diff --git a/packages/request-handler/src/docker.ts b/packages/request-handler/src/docker.ts index 430d08ec0..c8c5f27f4 100644 --- a/packages/request-handler/src/docker.ts +++ b/packages/request-handler/src/docker.ts @@ -207,6 +207,7 @@ const demoDockerEndpoint = { } satisfies DockerEndpointStatus; export const dockerContainersRequestHandler = createWidgetRequestHandler({ + cacheNamespace: "docker-containers", async requestAsync({ endpointIds }: { endpointIds?: string[] }) { if (isDemoMode()) { const includesDemoEndpoint = diff --git a/packages/request-handler/src/downloads.ts b/packages/request-handler/src/downloads.ts index 12106b07a..a96f21136 100644 --- a/packages/request-handler/src/downloads.ts +++ b/packages/request-handler/src/downloads.ts @@ -1,14 +1,18 @@ +import { getWidgetServerCachePolicy } from "@homarr/definitions"; import type { IntegrationKindByCategory } from "@homarr/definitions"; import type { DownloadClientJobsAndStatus } from "@homarr/integrations"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; +const downloadsCachePolicy = getWidgetServerCachePolicy("downloads", "getJobsAndStatuses"); + export const downloadClientRequestHandler = createIntegrationRequestHandler< DownloadClientJobsAndStatus, IntegrationKindByCategory<"downloadClient">, { limit: number } >({ + cachePolicy: downloadsCachePolicy, async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getClientJobsAndStatusAsync(input); diff --git a/packages/request-handler/src/firewall.ts b/packages/request-handler/src/firewall.ts index ad4f25b70..4ff2f96bc 100644 --- a/packages/request-handler/src/firewall.ts +++ b/packages/request-handler/src/firewall.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { FirewallCpuSummary, FirewallInterfacesSummary, @@ -14,6 +14,7 @@ export const firewallCpuRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"firewall">, Record >({ + cacheNamespace: "firewall:cpu", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return integrationInstance.getFirewallCpuAsync(); @@ -25,6 +26,7 @@ export const firewallMemoryRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"firewall">, Record >({ + cacheNamespace: "firewall:memory", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getFirewallMemoryAsync(); @@ -36,6 +38,7 @@ export const firewallInterfacesRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"firewall">, Record >({ + cacheNamespace: "firewall:interfaces", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getFirewallInterfacesAsync(); @@ -47,6 +50,7 @@ export const firewallVersionRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"firewall">, Record >({ + cacheNamespace: "firewall:version", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getFirewallVersionAsync(); diff --git a/packages/request-handler/src/health-monitoring.ts b/packages/request-handler/src/health-monitoring.ts index 463a0b217..36ed3f6c1 100644 --- a/packages/request-handler/src/health-monitoring.ts +++ b/packages/request-handler/src/health-monitoring.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { ProxmoxClusterInfo, SystemHealthMonitoring } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const systemInfoRequestHandler = createIntegrationRequestHandler< Exclude, "proxmox" | "coolify" | "beszel" | "patchmon" | "wud">, Record >({ + cacheNamespace: "health-monitoring:system-info", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getSystemInfoAsync(); @@ -20,6 +21,7 @@ export const clusterInfoRequestHandler = createIntegrationRequestHandler< "proxmox" | "mock", Record >({ + cacheNamespace: "health-monitoring:cluster-info", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getClusterInfoAsync(); diff --git a/packages/request-handler/src/immich.spec.ts b/packages/request-handler/src/immich.spec.ts index 199341933..30370b5d2 100644 --- a/packages/request-handler/src/immich.spec.ts +++ b/packages/request-handler/src/immich.spec.ts @@ -6,7 +6,7 @@ const mocks = vi.hoisted(() => ({ createIntegrationAsync: vi.fn(), })); -vi.mock("@homarr/integrations", () => ({ +vi.mock("@homarr/integrations/factory", () => ({ createIntegrationAsync: mocks.createIntegrationAsync, })); diff --git a/packages/request-handler/src/immich.ts b/packages/request-handler/src/immich.ts index bc93eb83c..2e025a373 100644 --- a/packages/request-handler/src/immich.ts +++ b/packages/request-handler/src/immich.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { ImmichAlbum, ImmichServerStats } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const immichStatsRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"photoService">, Record >({ + cacheNamespace: "immich:server-stats", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getServerStatsAsync(); @@ -24,6 +25,7 @@ export const immichAlbumsRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"photoService">, { limit?: number } >({ + cacheNamespace: "immich:albums", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); const albums = await integrationInstance.getAlbumsAsync(); @@ -48,6 +50,7 @@ export const immichAlbumRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"photoService">, { albumId?: string } >({ + cacheNamespace: "immich:album", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getAlbumAsync(input.albumId); diff --git a/packages/request-handler/src/indexer-manager.ts b/packages/request-handler/src/indexer-manager.ts index f21a61f8f..ea2536087 100644 --- a/packages/request-handler/src/indexer-manager.ts +++ b/packages/request-handler/src/indexer-manager.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { Indexer } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const indexerManagerRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"indexerManager">, Record >({ + cacheNamespace: "indexer-manager:indexers", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getIndexersAsync(); diff --git a/packages/request-handler/src/lib/integration-request-handler.ts b/packages/request-handler/src/lib/integration-request-handler.ts index e07ba3881..67b8bbaeb 100644 --- a/packages/request-handler/src/lib/integration-request-handler.ts +++ b/packages/request-handler/src/lib/integration-request-handler.ts @@ -1,8 +1,10 @@ import type { Modify } from "@homarr/common/types"; import type { Integration, IntegrationSecret } from "@homarr/db/schema"; -import type { IntegrationKind } from "@homarr/definitions"; +import type { IntegrationKind, WidgetModuleServerCachePolicy } from "@homarr/definitions"; +import { createIntegrationSharedCacheAsync, hashIntegrationCacheOptions } from "./integration-shared-cache"; import { createRequestHandler } from "./request-handler"; +import type { SharedCacheAdapter } from "./request-handler"; type IntegrationOfKind = Omit & { kind: TKind; @@ -15,6 +17,8 @@ interface Options( options: Options, ) => { + const cacheNamespace = options.cachePolicy?.namespace ?? options.cacheNamespace; + let getSharedCacheAsync: + | ((input: { integration: IntegrationOfKind; options: TInput }) => Promise>) + | undefined; + if (cacheNamespace) { + getSharedCacheAsync = async ({ integration, options: itemOptions }) => + await createIntegrationSharedCacheAsync({ + namespace: cacheNamespace, + integrationId: integration.id, + cacheOptions: itemOptions, + }); + } + const inner = createRequestHandler; options: TInput }>({ requestAsync: async ({ integration, options: itemOptions }) => options.requestAsync(integration, itemOptions), getCacheKey: ({ integration, options: itemOptions }) => - JSON.stringify({ integrationId: integration.id, itemOptions }), - cacheTtlMs: options.cacheTtlMs, - fallbackToStaleOnError: options.fallbackToStaleOnError, - staleIfErrorTtlMs: options.staleIfErrorTtlMs, + `${integration.id}:${hashIntegrationCacheOptions(itemOptions)}`, + cacheTtlMs: options.cachePolicy?.ttlMs ?? options.cacheTtlMs, + fallbackToStaleOnError: options.cachePolicy?.staleIfErrorTtlMs !== undefined || options.fallbackToStaleOnError, + staleIfErrorTtlMs: options.cachePolicy?.staleIfErrorTtlMs ?? options.staleIfErrorTtlMs, + getSharedCacheAsync, }); return { diff --git a/packages/request-handler/src/lib/integration-shared-cache.ts b/packages/request-handler/src/lib/integration-shared-cache.ts new file mode 100644 index 000000000..7062e3294 --- /dev/null +++ b/packages/request-handler/src/lib/integration-shared-cache.ts @@ -0,0 +1,209 @@ +import { createHash } from "node:crypto"; + +import { serialize } from "superjson"; + +import { createLogger } from "@homarr/core/infrastructure/logs"; +import { ErrorWithMetadata } from "@homarr/core/infrastructure/logs/error"; +import { + createGetSetChannel, + createLockChannel, + getIntegrationCacheGenerationAsync, + getWidgetCacheGenerationAsync, +} from "@homarr/redis"; +import type { IntegrationCacheGeneration, WidgetCacheGeneration } from "@homarr/redis"; + +import type { CacheEntry, SharedCacheAdapter } from "./request-handler"; + +const logger = createLogger({ module: "sharedRequestCache" }); +const REDIS_OPERATION_TIMEOUT_MS = 250; +const REFRESH_LOCK_TTL_SECONDS = 15; +const namespacePattern = /^[a-z0-9][a-z0-9:-]*$/; + +const canonicalize = (value: unknown): unknown => { + if (Array.isArray(value)) return value.map(canonicalize); + if (!value || typeof value !== "object") return value; + + const result: Record = {}; + for (const key of Object.keys(value).toSorted()) { + result[key] = canonicalize((value as Record)[key]); + } + return result; +}; + +export const hashSharedCacheInput = (options: Record) => { + const serialized = JSON.stringify(canonicalize(serialize(options))); + return createHash("sha256").update(serialized).digest("hex"); +}; + +export const hashIntegrationCacheOptions = hashSharedCacheInput; + +const withTimeoutAsync = async (promise: Promise, durationMs: number): Promise => { + return await new Promise((resolve, reject) => { + const timer = setTimeout(() => reject(new Error("Redis operation timed out")), durationMs); + timer.unref?.(); + void promise.then(resolve, reject).finally(() => clearTimeout(timer)); + }); +}; + +const isCacheEntry = (value: unknown): value is CacheEntry => { + if (!value || typeof value !== "object") return false; + const entry = value as Partial>; + return ( + entry.timestamp instanceof Date && + typeof entry.expiresAt === "number" && + Number.isFinite(entry.expiresAt) && + typeof entry.staleUntil === "number" && + Number.isFinite(entry.staleUntil) + ); +}; + +interface IntegrationSharedCacheOptions { + namespace: string; + integrationId: string; + cacheOptions: Record; +} + +interface RedisSharedCacheOptions { + namespace: string; + cacheKind: "integration" | "widget"; + cacheIdentity: string; + generation: string; + metadata?: Record; + isShared?: boolean; +} + +const logRedisFailure = (operation: string, metadata: Record, error: unknown) => { + logger.warn( + new ErrorWithMetadata( + "Redis widget cache operation failed", + { + ...metadata, + operation, + }, + { cause: error }, + ), + ); +}; + +const createRedisSharedCache = ({ + namespace, + cacheKind, + cacheIdentity, + generation, + metadata = {}, + isShared: initialIsShared = true, +}: RedisSharedCacheOptions): SharedCacheAdapter => { + const logMetadata = { cacheNamespace: namespace, cacheKind, ...metadata }; + const payloadChannel = createGetSetChannel( + `${cacheKind}-cache:payload:v1:${namespace}:${generation}:${cacheIdentity}`, + ); + const lock = createLockChannel(`${cacheKind}-cache:lock:v1:${namespace}:${generation}:${cacheIdentity}`); + let isShared = initialIsShared; + + const runRedisOperationAsync = async (operation: string, callback: () => Promise, fallback: T): Promise => { + if (!isShared) return fallback; + try { + return await withTimeoutAsync(callback(), REDIS_OPERATION_TIMEOUT_MS); + } catch (error) { + isShared = false; + logRedisFailure(operation, logMetadata, error); + return fallback; + } + }; + + return { + generation, + get isShared() { + return isShared; + }, + getAsync: async () => { + const value = await runRedisOperationAsync("payload-read", () => payloadChannel.getAsync(), undefined); + if (value === undefined || value === null) return value; + if (isCacheEntry(value)) return value as CacheEntry; + + logger.warn("Ignored invalid Redis widget cache entry", { + ...logMetadata, + operation: "payload-validate", + }); + await runRedisOperationAsync("payload-remove", () => payloadChannel.removeAsync(), undefined); + return null; + }, + setAsync: async (entry) => { + const retentionMs = entry.staleUntil - Date.now(); + if (retentionMs <= 0) return; + await runRedisOperationAsync( + "payload-write", + () => payloadChannel.setAsync(entry, { ttlMs: retentionMs }), + undefined, + ); + }, + acquireRefreshLockAsync: async () => + await runRedisOperationAsync( + "refresh-lock-acquire", + () => lock.acquireAsync(REFRESH_LOCK_TTL_SECONDS), + undefined, + ), + releaseRefreshLockAsync: async (token) => { + await runRedisOperationAsync("refresh-lock-release", () => lock.releaseAsync(token), undefined); + }, + }; +}; + +interface WidgetSharedCacheOptions { + namespace: string; + cacheInput: Record; +} + +export const createWidgetSharedCacheAsync = async ({ + namespace, + cacheInput, +}: WidgetSharedCacheOptions): Promise> => { + if (typeof window !== "undefined") throw new Error("Widget request caching is server-only"); + if (!namespacePattern.test(namespace)) throw new Error(`Invalid widget cache namespace '${namespace}'`); + + const metadata = { cacheNamespace: namespace }; + let generation: WidgetCacheGeneration; + try { + generation = await withTimeoutAsync(getWidgetCacheGenerationAsync(namespace), REDIS_OPERATION_TIMEOUT_MS); + } catch (error) { + logRedisFailure("generation-read", metadata, error); + generation = { value: "redis-unavailable", isShared: false }; + } + + return createRedisSharedCache({ + namespace, + cacheKind: "widget", + cacheIdentity: hashSharedCacheInput(cacheInput), + generation: generation.value, + isShared: generation.isShared, + }); +}; + +export const createIntegrationSharedCacheAsync = async ({ + namespace, + integrationId, + cacheOptions, +}: IntegrationSharedCacheOptions): Promise> => { + if (typeof window !== "undefined") throw new Error("Integration request caching is server-only"); + if (!namespacePattern.test(namespace)) throw new Error(`Invalid integration cache namespace '${namespace}'`); + + const metadata = { cacheNamespace: namespace, integrationId }; + let generation: IntegrationCacheGeneration; + try { + generation = await withTimeoutAsync(getIntegrationCacheGenerationAsync(integrationId), REDIS_OPERATION_TIMEOUT_MS); + } catch (error) { + logRedisFailure("generation-read", metadata, error); + generation = { value: "redis-unavailable", isShared: false }; + } + + const optionsHash = hashIntegrationCacheOptions(cacheOptions); + const sharedCache = createRedisSharedCache({ + namespace, + cacheKind: "integration", + cacheIdentity: `${integrationId}:${optionsHash}`, + generation: generation.value, + metadata: { integrationId }, + isShared: generation.isShared, + }); + return sharedCache; +}; diff --git a/packages/request-handler/src/lib/request-handler.ts b/packages/request-handler/src/lib/request-handler.ts index a447c377b..a945587c0 100644 --- a/packages/request-handler/src/lib/request-handler.ts +++ b/packages/request-handler/src/lib/request-handler.ts @@ -4,13 +4,35 @@ interface Options> { cacheTtlMs?: number; fallbackToStaleOnError?: boolean; staleIfErrorTtlMs?: number; + getSharedCacheAsync?: (input: TInput) => Promise>; } -type CacheEntry = { data: TData; timestamp: Date; expiresAt: number; staleUntil: number }; +export interface CacheEntry { + data: TData; + timestamp: Date; + expiresAt: number; + staleUntil: number; +} + +export interface SharedCacheAdapter { + generation: string; + isShared: boolean; + getAsync: () => Promise | null | undefined>; + setAsync: (entry: CacheEntry) => Promise; + acquireRefreshLockAsync: () => Promise; + releaseRefreshLockAsync: (token: string) => Promise; +} const MAX_CACHE_SIZE = 1000; const DEFAULT_TTL_MS = 10_000; const DEFAULT_STALE_IF_ERROR_TTL_MS = 5 * 60_000; +const SHARED_REFRESH_WAIT_MS = 750; +const SHARED_REFRESH_POLL_MS = 75; + +const delayAsync = async (durationMs: number) => + await new Promise((resolve) => { + setTimeout(resolve, durationMs); + }); const evictExpired = (cache: Map>) => { const now = Date.now(); @@ -28,6 +50,17 @@ export const createRequestHandler = , requestGeneration: number) => { + if (generation !== requestGeneration || Date.now() >= entry.staleUntil) return; + evictExpired(cache); + if (cache.size >= MAX_CACHE_SIZE) { + const oldest = cache.keys().next().value; + if (oldest !== undefined) cache.delete(oldest); + } + cache.set(key, entry); + scheduleExpiry(entry.staleUntil); + }; + const scheduleExpiry = (candidateExpiryAt?: number) => { if (candidateExpiryAt !== undefined && expiryTimerAt !== undefined && expiryTimerAt <= candidateExpiryAt) return; if (expiryTimer) clearTimeout(expiryTimer); @@ -61,7 +94,9 @@ export const createRequestHandler = ({ async getDataAsync(): Promise<{ data: TData; timestamp: Date }> { const ttl = options.cacheTtlMs ?? DEFAULT_TTL_MS; - const key = options.getCacheKey?.(input) ?? JSON.stringify(input); + const baseKey = options.getCacheKey?.(input) ?? JSON.stringify(input); + const sharedCache = ttl > 0 ? await options.getSharedCacheAsync?.(input) : undefined; + const key = `${sharedCache?.generation ?? "local"}:${baseKey}`; let cached = cache.get(key); const now = Date.now(); @@ -79,44 +114,73 @@ export const createRequestHandler = >; - promise = options - .requestAsync(input) - .then((data) => { - const expiresAt = Date.now() + ttl; + promise = (async () => { + let stale = cached; + let lockToken: string | null | undefined; + + if (sharedCache?.isShared) { + const sharedEntry = await sharedCache.getAsync(); + if (sharedEntry && Date.now() < sharedEntry.expiresAt) { + storeInMemory(key, sharedEntry, requestGeneration); + return sharedEntry; + } + if (sharedEntry && Date.now() < sharedEntry.staleUntil) stale = sharedEntry; + + lockToken = await sharedCache.acquireRefreshLockAsync(); + if (lockToken === null) { + const waitUntil = Date.now() + SHARED_REFRESH_WAIT_MS; + while (Date.now() < waitUntil) { + await delayAsync(SHARED_REFRESH_POLL_MS); + const refreshedEntry = await sharedCache.getAsync(); + if (refreshedEntry && Date.now() < refreshedEntry.expiresAt) { + storeInMemory(key, refreshedEntry, requestGeneration); + return refreshedEntry; + } + if (refreshedEntry && Date.now() < refreshedEntry.staleUntil) stale = refreshedEntry; + } + + lockToken = await sharedCache.acquireRefreshLockAsync(); + if (lockToken === null && options.fallbackToStaleOnError && stale) { + storeInMemory(key, stale, requestGeneration); + return stale; + } + } + } + + try { + const data = await options.requestAsync(input); + const completedAt = Date.now(); const staleIfErrorTtlMs = options.fallbackToStaleOnError ? Math.max(0, options.staleIfErrorTtlMs ?? DEFAULT_STALE_IF_ERROR_TTL_MS) : 0; const entry: CacheEntry = { data, - timestamp: new Date(), - expiresAt, - staleUntil: expiresAt + staleIfErrorTtlMs, + timestamp: new Date(completedAt), + expiresAt: completedAt + ttl, + staleUntil: completedAt + ttl + staleIfErrorTtlMs, }; - if (ttl > 0 && generation === requestGeneration) { - evictExpired(cache); - if (cache.size >= MAX_CACHE_SIZE) { - const oldest = cache.keys().next().value; - if (oldest !== undefined) cache.delete(oldest); - } - cache.set(key, entry); - scheduleExpiry(entry.staleUntil); + if (ttl > 0) { + storeInMemory(key, entry, requestGeneration); + if (sharedCache?.isShared) await sharedCache.setAsync(entry); } return entry; - }) - .catch((err) => { + } catch (error) { if ( options.fallbackToStaleOnError && - cached && - Date.now() < cached.staleUntil && + stale && + Date.now() < stale.staleUntil && generation === requestGeneration ) { - return cached; + storeInMemory(key, stale, requestGeneration); + return stale; } - throw err; - }) - .finally(() => { - if (inflight.get(key) === promise) inflight.delete(key); - }); + throw error; + } finally { + if (lockToken) await sharedCache?.releaseRefreshLockAsync(lockToken); + } + })().finally(() => { + if (inflight.get(key) === promise) inflight.delete(key); + }); inflight.set(key, promise); return promise; diff --git a/packages/request-handler/src/lib/widget-request-handler.ts b/packages/request-handler/src/lib/widget-request-handler.ts index 350826fe3..553ac6443 100644 --- a/packages/request-handler/src/lib/widget-request-handler.ts +++ b/packages/request-handler/src/lib/widget-request-handler.ts @@ -1,15 +1,45 @@ +import { invalidateWidgetCache } from "@homarr/redis"; +import type { WidgetModuleServerCachePolicy } from "@homarr/definitions"; + +import { createWidgetSharedCacheAsync, hashSharedCacheInput } from "./integration-shared-cache"; import { createRequestHandler } from "./request-handler"; +import type { SharedCacheAdapter } from "./request-handler"; interface Options> { requestAsync: (input: TInput) => Promise; cacheTtlMs?: number; fallbackToStaleOnError?: boolean; staleIfErrorTtlMs?: number; + cacheNamespace?: string; + cachePolicy?: WidgetModuleServerCachePolicy & { scope: "shared" }; } export const createWidgetRequestHandler = >( options: Options, ) => { - const inner = createRequestHandler(options); - return inner; + const cacheNamespace = options.cachePolicy?.namespace ?? options.cacheNamespace; + let getSharedCacheAsync: ((input: TInput) => Promise>) | undefined; + if (cacheNamespace) { + getSharedCacheAsync = async (input) => + await createWidgetSharedCacheAsync({ + namespace: cacheNamespace, + cacheInput: input, + }); + } + + const inner = createRequestHandler({ + ...options, + cacheTtlMs: options.cachePolicy?.ttlMs ?? options.cacheTtlMs, + fallbackToStaleOnError: options.cachePolicy?.staleIfErrorTtlMs !== undefined || options.fallbackToStaleOnError, + staleIfErrorTtlMs: options.cachePolicy?.staleIfErrorTtlMs ?? options.staleIfErrorTtlMs, + getCacheKey: hashSharedCacheInput, + getSharedCacheAsync, + }); + return { + invalidateCache: () => { + inner.invalidateCache(); + if (cacheNamespace) invalidateWidgetCache(cacheNamespace); + }, + handler: inner.handler, + }; }; diff --git a/packages/request-handler/src/media-organizer.ts b/packages/request-handler/src/media-organizer.ts index fbb4d3460..4f51ccc75 100644 --- a/packages/request-handler/src/media-organizer.ts +++ b/packages/request-handler/src/media-organizer.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { IMediaOrganizerIntegration, MissingMediaItem, QueuedMediaItem } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -16,6 +16,7 @@ export const mediaOrganizerRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"mediaOrganizer">, { pageSize: number } >({ + cacheNamespace: "media-organizer:summary", async requestAsync(integration, input) { const integrationInstance = (await createIntegrationAsync(integration)) as unknown as IMediaOrganizerIntegration; const [missingResult, queueResult] = await Promise.all([ diff --git a/packages/request-handler/src/media-release.ts b/packages/request-handler/src/media-release.ts index 994214b8e..ab2d0d52e 100644 --- a/packages/request-handler/src/media-release.ts +++ b/packages/request-handler/src/media-release.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { MediaRelease } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const mediaReleaseRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"mediaRelease">, Record >({ + cacheNamespace: "media-release:list", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getMediaReleasesAsync(); diff --git a/packages/request-handler/src/media-request-list.ts b/packages/request-handler/src/media-request-list.ts index d8a7c6336..f49d8f458 100644 --- a/packages/request-handler/src/media-request-list.ts +++ b/packages/request-handler/src/media-request-list.ts @@ -1,7 +1,7 @@ import { z } from "zod/v4"; import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { MediaRequest, MediaRequestStatus } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -28,6 +28,7 @@ export const mediaRequestListRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"mediaRequest">, MediaRequestListInput >({ + cacheNamespace: "media-requests:list", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); const requests = await integrationInstance.getRequestsAsync(); diff --git a/packages/request-handler/src/media-request-stats.spec.ts b/packages/request-handler/src/media-request-stats.spec.ts index 09ff5609e..194c1606a 100644 --- a/packages/request-handler/src/media-request-stats.spec.ts +++ b/packages/request-handler/src/media-request-stats.spec.ts @@ -8,7 +8,7 @@ const mocks = vi.hoisted(() => ({ createIntegrationAsync: vi.fn(), })); -vi.mock("@homarr/integrations", () => ({ +vi.mock("@homarr/integrations/factory", () => ({ createIntegrationAsync: mocks.createIntegrationAsync, })); diff --git a/packages/request-handler/src/media-request-stats.ts b/packages/request-handler/src/media-request-stats.ts index 57d67b508..52cd5f440 100644 --- a/packages/request-handler/src/media-request-stats.ts +++ b/packages/request-handler/src/media-request-stats.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { MediaRequestStats } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const mediaRequestStatsRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"mediaRequest">, Record >({ + cacheNamespace: "media-requests:stats", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); const [stats, users] = await Promise.all([ diff --git a/packages/request-handler/src/media-server.ts b/packages/request-handler/src/media-server.ts index 55a7850e0..75d591b66 100644 --- a/packages/request-handler/src/media-server.ts +++ b/packages/request-handler/src/media-server.ts @@ -1,6 +1,6 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; import type { StreamSession } from "@homarr/integrations"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -11,6 +11,7 @@ export const mediaServerRequestHandler = createIntegrationRequestHandler< showOnlyPlaying: boolean; } >({ + cacheNamespace: "media-server:sessions", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getCurrentSessionsAsync({ showOnlyPlaying: input.showOnlyPlaying }); diff --git a/packages/request-handler/src/media-transcoding.spec.ts b/packages/request-handler/src/media-transcoding.spec.ts index 9edca2b0d..6bfa97076 100644 --- a/packages/request-handler/src/media-transcoding.spec.ts +++ b/packages/request-handler/src/media-transcoding.spec.ts @@ -6,7 +6,7 @@ const mocks = vi.hoisted(() => ({ createIntegrationAsync: vi.fn(), })); -vi.mock("@homarr/integrations", () => ({ +vi.mock("@homarr/integrations/factory", () => ({ createIntegrationAsync: mocks.createIntegrationAsync, })); diff --git a/packages/request-handler/src/media-transcoding.ts b/packages/request-handler/src/media-transcoding.ts index 7409b25d2..a08e5d729 100644 --- a/packages/request-handler/src/media-transcoding.ts +++ b/packages/request-handler/src/media-transcoding.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { TdarrQueue, TdarrStatistics, TdarrWorker } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const mediaTranscodingRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"mediaTranscoding">, { pageOffset: number; pageSize: number } >({ + cacheNamespace: "media-transcoding:summary", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); const [queue, workers, statistics] = await Promise.all([ diff --git a/packages/request-handler/src/minecraft-server-status.ts b/packages/request-handler/src/minecraft-server-status.ts index 664a0a7f3..1fe6e0504 100644 --- a/packages/request-handler/src/minecraft-server-status.ts +++ b/packages/request-handler/src/minecraft-server-status.ts @@ -6,6 +6,7 @@ import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout"; import { createWidgetRequestHandler } from "./lib/widget-request-handler"; export const minecraftServerStatusRequestHandler = createWidgetRequestHandler({ + cacheNamespace: "minecraft-server-status", async requestAsync(input: { domain: string; isBedrockServer: boolean }) { const path = `${input.isBedrockServer ? "/bedrock" : ""}/3/${input.domain}`; diff --git a/packages/request-handler/src/navidrome.ts b/packages/request-handler/src/navidrome.ts index 0ad39ed9a..f68e391c5 100644 --- a/packages/request-handler/src/navidrome.ts +++ b/packages/request-handler/src/navidrome.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { NavidromeDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const navidromeRequestHandler = createIntegrationRequestHandler< "navidrome", Record >({ + cacheNamespace: "navidrome:dashboard", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/network-controller.ts b/packages/request-handler/src/network-controller.ts index 123261025..d49276470 100644 --- a/packages/request-handler/src/network-controller.ts +++ b/packages/request-handler/src/network-controller.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { NetworkControllerSummary } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const networkControllerRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"networkController">, Record >({ + cacheNamespace: "network-controller:status", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getNetworkSummaryAsync(); diff --git a/packages/request-handler/src/notifications.ts b/packages/request-handler/src/notifications.ts index 479ff81fa..d4949e614 100644 --- a/packages/request-handler/src/notifications.ts +++ b/packages/request-handler/src/notifications.ts @@ -1,6 +1,6 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; import type { Notification } from "@homarr/integrations"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const notificationsRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"notifications">, Record >({ + cacheNamespace: "notifications:list", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getNotificationsAsync(); diff --git a/packages/request-handler/src/paperless-ngx.ts b/packages/request-handler/src/paperless-ngx.ts index e6b088006..534b03e2e 100644 --- a/packages/request-handler/src/paperless-ngx.ts +++ b/packages/request-handler/src/paperless-ngx.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { PaperlessNgxStats } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const paperlessNgxStatsRequestHandler = createIntegrationRequestHandler< "paperlessNgx", Record >({ + cacheNamespace: "paperless-ngx:stats", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getStatsAsync(); diff --git a/packages/request-handler/src/patchmon.ts b/packages/request-handler/src/patchmon.ts index 021897511..17a3b20e0 100644 --- a/packages/request-handler/src/patchmon.ts +++ b/packages/request-handler/src/patchmon.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { PatchMonStats } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const patchmonStatsRequestHandler = createIntegrationRequestHandler< "patchmon", Record >({ + cacheNamespace: "patchmon:stats", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getStatsAsync(); diff --git a/packages/request-handler/src/rss-feeds.ts b/packages/request-handler/src/rss-feeds.ts index 0597a325f..c1dbce8c2 100644 --- a/packages/request-handler/src/rss-feeds.ts +++ b/packages/request-handler/src/rss-feeds.ts @@ -10,6 +10,7 @@ import { createWidgetRequestHandler } from "./lib/widget-request-handler"; const logger = createLogger({ module: "rssFeedsRequestHandler" }); export const rssFeedsRequestHandler = createWidgetRequestHandler({ + cacheNamespace: "rss-feeds", async requestAsync(input: { url: string; count: number }) { const result = (await extract(input.url, { getExtraEntryFields: (feedEntry) => { diff --git a/packages/request-handler/src/smart-home-entity-state.ts b/packages/request-handler/src/smart-home-entity-state.ts index 1d0d2471c..1afe0dce8 100644 --- a/packages/request-handler/src/smart-home-entity-state.ts +++ b/packages/request-handler/src/smart-home-entity-state.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { EntityState } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -27,6 +27,7 @@ export const smartHomeEntityStateRequestHandler = createIntegrationRequestHandle IntegrationKindByCategory<"smartHomeServer">, { entityId: string } >({ + cacheNamespace: "smart-home:entity-state", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); const result = await integrationInstance.getEntityStateAsync(input.entityId); diff --git a/packages/request-handler/src/speedtest-tracker.ts b/packages/request-handler/src/speedtest-tracker.ts index 3f03f7187..779ed271c 100644 --- a/packages/request-handler/src/speedtest-tracker.ts +++ b/packages/request-handler/src/speedtest-tracker.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { SpeedtestTrackerDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const speedtestTrackerRequestHandler = createIntegrationRequestHandler< "speedtestTracker", Record >({ + cacheNamespace: "speedtest-tracker:dashboard", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/stock-price.ts b/packages/request-handler/src/stock-price.ts index 177b223aa..60d466956 100644 --- a/packages/request-handler/src/stock-price.ts +++ b/packages/request-handler/src/stock-price.ts @@ -6,6 +6,7 @@ import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout"; import { createWidgetRequestHandler } from "./lib/widget-request-handler"; export const fetchStockPriceHandler = createWidgetRequestHandler({ + cacheNamespace: "stock-price", async requestAsync(input: { stock: string; timeRange: string; timeInterval: string }) { const response = await withTimeoutAsync(async (signal) => { return await fetchWithTrustedCertificatesAsync( diff --git a/packages/request-handler/src/test/media-release.spec.ts b/packages/request-handler/src/test/media-release.spec.ts index 825107afd..8a2e54c4f 100644 --- a/packages/request-handler/src/test/media-release.spec.ts +++ b/packages/request-handler/src/test/media-release.spec.ts @@ -7,7 +7,7 @@ const mocks = vi.hoisted(() => ({ createIntegrationAsync: vi.fn(), })); -vi.mock("@homarr/integrations", () => ({ +vi.mock("@homarr/integrations/factory", () => ({ createIntegrationAsync: mocks.createIntegrationAsync, })); diff --git a/packages/request-handler/src/tracearr.ts b/packages/request-handler/src/tracearr.ts index 641bf2922..85b97846c 100644 --- a/packages/request-handler/src/tracearr.ts +++ b/packages/request-handler/src/tracearr.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { TracearrDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const tracearrRequestHandler = createIntegrationRequestHandler< "tracearr", Record >({ + cacheNamespace: "tracearr:dashboard", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/traefik.ts b/packages/request-handler/src/traefik.ts index 1b87e2bb1..26191529e 100644 --- a/packages/request-handler/src/traefik.ts +++ b/packages/request-handler/src/traefik.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { TraefikDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const traefikRequestHandler = createIntegrationRequestHandler< "traefik", Record >({ + cacheNamespace: "traefik:summary", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/umami.ts b/packages/request-handler/src/umami.ts index 02ef71140..0416045fa 100644 --- a/packages/request-handler/src/umami.ts +++ b/packages/request-handler/src/umami.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { UmamiEventSeries, UmamiMetricItem, UmamiVisitorStats } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const umamiRequestHandler = createIntegrationRequestHandler< "umami", { websiteId: string; timeFrame: string; eventName?: string } >({ + cacheNamespace: "umami:stats", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getVisitorStatsAsync(input.websiteId, input.timeFrame, input.eventName); @@ -15,6 +16,7 @@ export const umamiRequestHandler = createIntegrationRequestHandler< }); export const umamiEventNamesRequestHandler = createIntegrationRequestHandler({ + cacheNamespace: "umami:event-names", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getEventNamesAsync(input.websiteId); @@ -26,6 +28,7 @@ export const umamiTopPagesRequestHandler = createIntegrationRequestHandler< "umami", { websiteId: string; timeFrame: string; limit: number } >({ + cacheNamespace: "umami:top-pages", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getTopPagesAsync(input.websiteId, input.timeFrame, input.limit); @@ -37,6 +40,7 @@ export const umamiTopReferrersRequestHandler = createIntegrationRequestHandler< "umami", { websiteId: string; timeFrame: string; limit: number } >({ + cacheNamespace: "umami:top-referrers", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getTopReferrersAsync(input.websiteId, input.timeFrame, input.limit); @@ -48,6 +52,7 @@ export const umamiMultiEventRequestHandler = createIntegrationRequestHandler< "umami", { websiteId: string; timeFrame: string; eventNames: string[] } >({ + cacheNamespace: "umami:multi-event", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getMultiEventTimeSeriesAsync(input.websiteId, input.timeFrame, input.eventNames); @@ -59,6 +64,7 @@ export const umamiActiveVisitorsRequestHandler = createIntegrationRequestHandler "umami", { websiteId: string } >({ + cacheNamespace: "umami:active-visitors", async requestAsync(integration, input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getActiveVisitorsAsync(input.websiteId); diff --git a/packages/request-handler/src/ups.ts b/packages/request-handler/src/ups.ts index 4ca17b5ee..ae7a2ab3f 100644 --- a/packages/request-handler/src/ups.ts +++ b/packages/request-handler/src/ups.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { UpsSummary } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const upsSummariesRequestHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"ups">, Record >({ + cacheNamespace: "ups:summaries", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getUpsSummariesAsync(); diff --git a/packages/request-handler/src/uptime-kuma.ts b/packages/request-handler/src/uptime-kuma.ts index b9453eb76..4fd613586 100644 --- a/packages/request-handler/src/uptime-kuma.ts +++ b/packages/request-handler/src/uptime-kuma.ts @@ -1,4 +1,4 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { UptimeKumaDashboardData } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -8,6 +8,7 @@ export const uptimeKumaRequestHandler = createIntegrationRequestHandler< "uptimeKuma", Record >({ + cacheNamespace: "uptime-kuma:monitors", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getDashboardDataAsync(); diff --git a/packages/request-handler/src/vpn.ts b/packages/request-handler/src/vpn.ts index 97182ab11..800b07bf5 100644 --- a/packages/request-handler/src/vpn.ts +++ b/packages/request-handler/src/vpn.ts @@ -1,5 +1,5 @@ import type { IntegrationKindByCategory } from "@homarr/definitions"; -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { VpnSummary } from "@homarr/integrations/types"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; @@ -9,6 +9,7 @@ export const vpnSummaryHandler = createIntegrationRequestHandler< IntegrationKindByCategory<"vpn">, Record >({ + cacheNamespace: "vpn:summary", async requestAsync(integration, _input) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getSummaryAsync(); diff --git a/packages/request-handler/src/weather.ts b/packages/request-handler/src/weather.ts index 24d29ed1d..8ad60a95b 100644 --- a/packages/request-handler/src/weather.ts +++ b/packages/request-handler/src/weather.ts @@ -6,12 +6,15 @@ import { z } from "zod"; import { ResponseError } from "@homarr/common/server"; import { fetchWithTrustedCertificatesAsync } from "@homarr/core/infrastructure/http"; import { withTimeoutAsync } from "@homarr/core/infrastructure/http/timeout"; +import { getWidgetServerCachePolicy } from "@homarr/definitions"; import { createWidgetRequestHandler } from "./lib/widget-request-handler"; dayjs.extend(utc); dayjs.extend(timezone); +const weatherCachePolicy = getWidgetServerCachePolicy("weather", "atLocation"); + const HOURLY_FORECAST_LENGTH = 24; const DAILY_FORECAST_LENGTH = 7; @@ -140,7 +143,7 @@ const requestWeatherAsync = async (input: { latitude: number; longitude: number }; export const weatherRequestHandler = createWidgetRequestHandler({ - cacheTtlMs: 5 * 60 * 1000, + cachePolicy: weatherCachePolicy, requestAsync: requestWeatherAsync, }); diff --git a/packages/request-handler/src/wud.ts b/packages/request-handler/src/wud.ts index 03ab11f07..b86596b9f 100644 --- a/packages/request-handler/src/wud.ts +++ b/packages/request-handler/src/wud.ts @@ -1,9 +1,10 @@ -import { createIntegrationAsync } from "@homarr/integrations"; +import { createIntegrationAsync } from "@homarr/integrations/factory"; import type { WudStats } from "@homarr/integrations"; import { createIntegrationRequestHandler } from "./lib/integration-request-handler"; export const wudStatsRequestHandler = createIntegrationRequestHandler>({ + cacheNamespace: "wud:stats", async requestAsync(integration) { const integrationInstance = await createIntegrationAsync(integration); return await integrationInstance.getStatsAsync(); diff --git a/packages/spotlight/src/modes/command/children/new-integration.tsx b/packages/spotlight/src/modes/command/children/new-integration.tsx index aebb6ede1..d5bd668aa 100644 --- a/packages/spotlight/src/modes/command/children/new-integration.tsx +++ b/packages/spotlight/src/modes/command/children/new-integration.tsx @@ -13,7 +13,7 @@ export const newIntegrationChildrenOptions = createChildrenOptions integrationDef.name.toLowerCase().includes(normalizedQuery)) - .sort( + .toSorted( ([, definitionA], [, definitionB]) => definitionA.name.toLowerCase().indexOf(normalizedQuery) - definitionB.name.toLowerCase().indexOf(normalizedQuery), diff --git a/packages/ui/package.json b/packages/ui/package.json index 171086637..6dba81083 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -14,6 +14,7 @@ "exports": { ".": "./index.ts", "./integration-select-grid": "./src/integration-select-grid/index.ts", + "./widget-icons": "./src/widget-icons.ts", "./styles.css": "./src/styles.css", "./hooks": "./src/hooks/index.ts", "./icons": "./src/icons/index.ts" diff --git a/packages/ui/src/generated/widget-icons.ts b/packages/ui/src/generated/widget-icons.ts new file mode 100644 index 000000000..05b9001a9 --- /dev/null +++ b/packages/ui/src/generated/widget-icons.ts @@ -0,0 +1,11 @@ +// This file is generated by pnpm widgets:sync. Do not edit it directly. + +import { IconCloud, IconDownload } from "@tabler/icons-react"; +import type { TablerIcon } from "@tabler/icons-react"; + +import type { WidgetKind } from "@homarr/definitions"; + +export const generatedWidgetCatalogIcons = { + downloads: IconDownload, + weather: IconCloud, +} satisfies Partial>; diff --git a/packages/ui/src/integration-select-grid/integration-grid-shared.spec.ts b/packages/ui/src/integration-select-grid/integration-grid-shared.spec.ts index 829ecafbc..16928a650 100644 --- a/packages/ui/src/integration-select-grid/integration-grid-shared.spec.ts +++ b/packages/ui/src/integration-select-grid/integration-grid-shared.spec.ts @@ -8,7 +8,7 @@ describe("buildSortedIntegrations", () => { it("keeps every real integration available during onboarding", () => { const kinds = buildSortedIntegrations({ onboarding: true }).map((integration) => integration.kind); - expect(kinds).toHaveLength(integrationKinds.length - 1); + expect(kinds).toHaveLength(integrationKinds.filter((kind) => kind !== "mock").length); expect(kinds).not.toContain("mock"); }); diff --git a/packages/ui/src/integration-select-grid/integration-grid-shared.ts b/packages/ui/src/integration-select-grid/integration-grid-shared.ts index ffbc4483d..a316bb7e6 100644 --- a/packages/ui/src/integration-select-grid/integration-grid-shared.ts +++ b/packages/ui/src/integration-select-grid/integration-grid-shared.ts @@ -1,9 +1,7 @@ import type { IntegrationKind, WidgetKind } from "@homarr/definitions"; import { - featuredIntegrations, getIntegrationName, getWidgetKindsForIntegration, - hiddenFromOnboarding, integrationDefs, integrationKinds, } from "@homarr/definitions"; @@ -56,7 +54,7 @@ export const buildSortedIntegrations = ( integrationKinds .filter((kind) => { if (options.allowedKinds && !options.allowedKinds.includes(kind)) return false; - if (options.onboarding && hiddenFromOnboarding.has(kind)) return false; + if (options.onboarding && integrationDefs[kind].features.onboarding.hidden) return false; if (!options.enableMockIntegration && kind === "mock") return false; return true; }) @@ -67,11 +65,11 @@ export const buildSortedIntegrations = ( widgets: getWidgetKindsForIntegration(kind), })) .toSorted((left, right) => { - const leftIndex = featuredIntegrations.indexOf(left.kind); - const rightIndex = featuredIntegrations.indexOf(right.kind); - if (leftIndex !== -1 && rightIndex !== -1) return leftIndex - rightIndex; - if (leftIndex !== -1) return -1; - if (rightIndex !== -1) return 1; + const leftFeaturedOrder = integrationDefs[left.kind].features.onboarding.featuredOrder; + const rightFeaturedOrder = integrationDefs[right.kind].features.onboarding.featuredOrder; + if (leftFeaturedOrder !== null && rightFeaturedOrder !== null) return leftFeaturedOrder - rightFeaturedOrder; + if (leftFeaturedOrder !== null) return -1; + if (rightFeaturedOrder !== null) return 1; return right.widgets.length - left.widgets.length || left.name.localeCompare(right.name); }); diff --git a/packages/ui/src/integration-select-grid/integration-select-grid.tsx b/packages/ui/src/integration-select-grid/integration-select-grid.tsx index a3d548308..22d5ceed1 100644 --- a/packages/ui/src/integration-select-grid/integration-select-grid.tsx +++ b/packages/ui/src/integration-select-grid/integration-select-grid.tsx @@ -2,45 +2,7 @@ import { useMemo, useState } from "react"; import { Badge, Center, Group, Input, ScrollArea, SimpleGrid, Stack, Text } from "@mantine/core"; -import { - IconAd, - IconApps, - IconBinaryTree, - IconBookmark, - IconBrandDocker, - IconBrandMinecraft, - IconBrowser, - IconBuildingBank, - IconBusStop, - IconCalendar, - IconChartBar, - IconClock, - IconClockPlay, - IconCloud, - IconDeviceCctv, - IconDeviceGamepad, - IconDownload, - IconGraphFilled, - IconHeartRateMonitor, - IconHourglass, - IconMessage, - IconMovie, - IconNotes, - IconPuzzle, - IconReportSearch, - IconRobot, - IconRocket, - IconRss, - IconSearch, - IconServer2, - IconTicket, - IconTopologyFull, - IconTransform, - IconVideo, - IconWall, - IconWind, - IconZoomQuestion, -} from "@tabler/icons-react"; +import { IconSearch } from "@tabler/icons-react"; import { getWidgetName } from "@homarr/definitions"; import type { IntegrationKind, WidgetKind } from "@homarr/definitions"; @@ -49,6 +11,7 @@ import { useI18n } from "@homarr/translation/client"; import { IntegrationAvatar } from "../components/integration-avatar"; import { SelectableCard } from "../components/selectable-card"; import { selectGridCols } from "../select-grid-layout"; +import { widgetCatalogIcons } from "../widget-icons"; import { buildSortedIntegrations, filterIntegrations } from "./integration-grid-shared"; import type { IntegrationGridItem } from "./integration-grid-shared"; @@ -155,48 +118,6 @@ const IntegrationCard = ({ ); }; -const widgetIconsMap: Partial> = { - clock: IconClock, - weather: IconCloud, - airQuality: IconWind, - countdown: IconHourglass, - timer: IconClockPlay, - app: IconApps, - assistant: IconRobot, - iframe: IconBrowser, - video: IconDeviceCctv, - notebook: IconNotes, - anchorNote: IconNotes, - dnsHoleSummary: IconAd, - dnsHoleControls: IconDeviceGamepad, - "smartHome-entityState": IconBinaryTree, - "smartHome-executeAutomation": IconBinaryTree, - stockPrice: IconBuildingBank, - mediaServer: IconVideo, - calendar: IconCalendar, - downloads: IconDownload, - "mediaRequests-requestList": IconZoomQuestion, - "mediaRequests-requestStats": IconChartBar, - mediaTranscoding: IconTransform, - mediaMissing: IconMovie, - minecraftServerStatus: IconBrandMinecraft, - networkControllerSummary: IconTopologyFull, - networkControllerStatus: IconTopologyFull, - rssFeed: IconRss, - bookmarks: IconBookmark, - indexerManager: IconReportSearch, - healthMonitoring: IconHeartRateMonitor, - releases: IconRocket, - mediaReleases: IconTicket, - dockerContainers: IconBrandDocker, - firewall: IconWall, - notifications: IconMessage, - systemResources: IconGraphFilled, - coolify: IconCloud, - systemDisks: IconServer2, - timetable: IconBusStop, -}; - const IntegrationTiedWidgets = ({ widgets, limit }: { widgets: WidgetKind[]; limit?: number }) => { const t = useI18n(); if (widgets.length === 0) { @@ -213,7 +134,7 @@ const IntegrationTiedWidgets = ({ widgets, limit }: { widgets: WidgetKind[]; lim return ( {items.map((widgetKind) => { - const WidgetIcon = widgetIconsMap[widgetKind] ?? IconPuzzle; + const WidgetIcon = widgetCatalogIcons[widgetKind]; return ( = { + clock: IconClock, + weather: generatedWeatherIcon, + airQuality: IconWind, + countdown: IconHourglass, + timer: IconClockPlay, + app: IconApps, + assistant: IconRobot, + iframe: IconBrowser, + video: IconDeviceCctv, + notebook: IconNotes, + anchorNote: IconNotes, + dnsHoleSummary: IconAd, + dnsHoleControls: IconDeviceGamepad, + "smartHome-entityState": IconBinaryTree, + "smartHome-executeAutomation": IconBinaryTree, + stockPrice: IconBuildingBank, + mediaServer: IconVideo, + calendar: IconCalendar, + downloads: generatedDownloadsIcon, + "mediaRequests-requestList": IconZoomQuestion, + "mediaRequests-requestStats": IconChartBar, + mediaTranscoding: IconTransform, + mediaMissing: IconMovie, + minecraftServerStatus: IconBrandMinecraft, + networkControllerSummary: IconTopologyFull, + networkControllerStatus: IconTopologyFull, + rssFeed: IconRss, + bookmarks: IconBookmark, + indexerManager: IconReportSearch, + healthMonitoring: IconHeartRateMonitor, + releases: IconRocket, + mediaReleases: IconTicket, + dockerContainers: IconBrandDocker, + firewall: IconWall, + notifications: IconMessage, + systemResources: IconGraphFilled, + coolify: IconCloud, + systemDisks: IconServer2, + timetable: IconBusStop, + "immich-serverStats": IconGraphFilled, + "immich-albumCarousel": IconPhoto, + paperlessNgx: IconFileText, + patchmon: IconShieldCheck, + bazarr: IconBadgeCc, + tracearr: IconActivityHeartbeat, + speedtestTracker: IconSpeedboat, + uptimeKuma: IconHeartbeat, + audioStats: IconHeadphones, + umami: IconChartBar, + vpn: IconShieldLock, + archiveTeamWarrior: IconArchive, + ups: IconBatteryCharging, + beszelSystemTable: IconTable, + beszelSystemGrid: IconLayoutGrid, + beszelAlerts: IconBell, + beszelSystemStats: IconChartAreaLine, + traefik: IconRoute, + customApi: IconApi, + wud: IconBrandDocker, + ...additionalGeneratedWidgetIcons, +}; diff --git a/packages/widgets/src/air-quality/index.ts b/packages/widgets/src/air-quality/index.ts index a9dfb28dd..07a20547a 100644 --- a/packages/widgets/src/air-quality/index.ts +++ b/packages/widgets/src/air-quality/index.ts @@ -6,8 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("airQuality", { icon: IconWind, supportsAdvancedFocus: true, - queryKey: [["widget", "airQuality", "atLocation"]], - refetchInterval: 900, queryMatcher: ({ input }, scope) => { const location = scope.options.location; if (location === null || typeof location !== "object" || !("latitude" in location) || !("longitude" in location)) { diff --git a/packages/widgets/src/anchor-note/index.ts b/packages/widgets/src/anchor-note/index.ts index 4eac1a441..ded855dc5 100644 --- a/packages/widgets/src/anchor-note/index.ts +++ b/packages/widgets/src/anchor-note/index.ts @@ -6,9 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("anchorNote", { icon: IconNotes, supportsAdvancedFocus: true, - queryKey: [["widget", "anchorNotes"]], - maxIntegrations: 1, - supportedIntegrations: ["anchor"], createOptions() { return optionsBuilder.from((factory) => ({ noteId: factory.anchorNote(), diff --git a/packages/widgets/src/app/index.ts b/packages/widgets/src/app/index.ts index ea99e0c24..07b3edb94 100644 --- a/packages/widgets/src/app/index.ts +++ b/packages/widgets/src/app/index.ts @@ -16,7 +16,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("app", { icon: IconApps, supportsAdvancedFocus: false, - queryKeys: [[["app", "byId"]], [["widget", "app", "ping"]]], createOptions(settings) { return optionsBuilder.from( (factory) => ({ diff --git a/packages/widgets/src/archive-team-warrior/index.ts b/packages/widgets/src/archive-team-warrior/index.ts index 38a3eef36..25c91c6f7 100644 --- a/packages/widgets/src/archive-team-warrior/index.ts +++ b/packages/widgets/src/archive-team-warrior/index.ts @@ -6,7 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("archiveTeamWarrior", { icon: IconArchive, supportsAdvancedFocus: true, - maxIntegrations: 1, createOptions() { return optionsBuilder.from((factory) => ({ showBroadcastMessage: factory.switch({ @@ -14,5 +13,4 @@ export const { definition, componentLoader } = createWidgetDefinition("archiveTe }), })); }, - supportedIntegrations: ["archiveTeamWarrior"], }).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/audio-stats/index.ts b/packages/widgets/src/audio-stats/index.ts index 6fb3b2014..bfbc8d577 100644 --- a/packages/widgets/src/audio-stats/index.ts +++ b/packages/widgets/src/audio-stats/index.ts @@ -14,11 +14,7 @@ const hideUnlessAudiobookshelf = { export const { definition, componentLoader } = createWidgetDefinition("audioStats", { icon: IconHeadphones, supportsAdvancedFocus: true, - queryKeys: [[["widget", "audioStats", "getStats"]], [["widget", "mediaServer", "getCurrentStreams"]]], queryMatcher: matchesWidgetRuntimeQuery, - supportedIntegrations: ["navidrome", "audiobookshelf"], - integrationsRequired: true, - maxIntegrations: 1, createOptions() { return optionsBuilder.from( (factory) => ({ diff --git a/packages/widgets/src/bazarr/index.ts b/packages/widgets/src/bazarr/index.ts index ff5bb0d85..7e5724b1a 100644 --- a/packages/widgets/src/bazarr/index.ts +++ b/packages/widgets/src/bazarr/index.ts @@ -6,9 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("bazarr", { supportsAdvancedFocus: true, icon: IconBadgeCc, - supportedIntegrations: ["bazarr"], - integrationsRequired: true, - maxIntegrations: 1, createOptions() { return optionsBuilder.from((factory) => ({ showMissingEpisodes: factory.switch({ diff --git a/packages/widgets/src/beszel-alerts/index.ts b/packages/widgets/src/beszel-alerts/index.ts index 84ea1a7ae..29d1da289 100644 --- a/packages/widgets/src/beszel-alerts/index.ts +++ b/packages/widgets/src/beszel-alerts/index.ts @@ -6,7 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("beszelAlerts", { icon: IconBell, - queryKey: [["widget", "beszel", "getAlerts"]], queryMatcher(query, scope) { const hasRuntimeAlertsQuery = scope.runtimeQueries.some(({ path }) => path.at(-1) === "getAlerts"); if (hasRuntimeAlertsQuery) return matchesWidgetRuntimeQuery(query, scope); @@ -17,8 +16,6 @@ export const { definition, componentLoader } = createWidgetDefinition("beszelAle maxHistoryItems: scope.options.maxHistoryItems, }); }, - supportedIntegrations: ["beszel", "mock"], - integrationsRequired: true, createOptions() { return optionsBuilder.from((factory) => ({ showHistory: factory.switch({ defaultValue: true }), diff --git a/packages/widgets/src/beszel-system-grid/index.ts b/packages/widgets/src/beszel-system-grid/index.ts index cb7a2d83d..b73ee2ddc 100644 --- a/packages/widgets/src/beszel-system-grid/index.ts +++ b/packages/widgets/src/beszel-system-grid/index.ts @@ -6,9 +6,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("beszelSystemGrid", { icon: IconLayoutGrid, - queryKey: [["widget", "beszel", "getSystems"]], - supportedIntegrations: ["beszel", "mock"], - integrationsRequired: true, createOptions() { return optionsBuilder.from((factory) => ({ statusFilter: factory.select({ diff --git a/packages/widgets/src/beszel-system-stats/index.ts b/packages/widgets/src/beszel-system-stats/index.ts index 12a1b41a6..c11d9cacc 100644 --- a/packages/widgets/src/beszel-system-stats/index.ts +++ b/packages/widgets/src/beszel-system-stats/index.ts @@ -17,7 +17,6 @@ const timePeriodOptions = [ export const { definition, componentLoader } = createWidgetDefinition("beszelSystemStats", { icon: IconChartAreaLine, - queryKeys: [[["widget", "beszel", "getSystems"]], [["widget", "beszel", "getSystemStats"]]], queryMatcher(query, scope) { if (query.path.at(-1) === "getSystems") { return widgetQueryInputMatches(query.input, { integrationIds: scope.integrationIds }); @@ -40,8 +39,6 @@ export const { definition, componentLoader } = createWidgetDefinition("beszelSys (dockerEnabled && widgetQueryInputMatches(query.input, { ...expected, includeDocker: true })) ); }, - supportedIntegrations: ["beszel", "mock"], - integrationsRequired: true, createOptions() { return optionsBuilder.from((factory) => ({ systemId: factory.integrationSelect({ diff --git a/packages/widgets/src/beszel-system-table/index.ts b/packages/widgets/src/beszel-system-table/index.ts index 0c5af9ac9..d2ba29240 100644 --- a/packages/widgets/src/beszel-system-table/index.ts +++ b/packages/widgets/src/beszel-system-table/index.ts @@ -28,13 +28,10 @@ const sortDirectionOptions = [ export const { definition, componentLoader } = createWidgetDefinition("beszelSystemTable", { icon: IconTable, - queryKeys: [[["widget", "beszel", "getSystems"]], [["widget", "beszel", "getSystemStats"]]], queryMatcher: (query, scope) => query.path.at(-1) === "getSystems" ? widgetQueryInputMatches(query.input, { integrationIds: scope.integrationIds }) : matchesWidgetRuntimeQuery(query, scope), - supportedIntegrations: ["beszel", "mock"], - integrationsRequired: true, createOptions() { return optionsBuilder.from( (factory) => ({ diff --git a/packages/widgets/src/bookmarks/index.tsx b/packages/widgets/src/bookmarks/index.tsx index 82d171e9d..ec4736ddd 100644 --- a/packages/widgets/src/bookmarks/index.tsx +++ b/packages/widgets/src/bookmarks/index.tsx @@ -12,7 +12,6 @@ import { createDirectBookmark, getBookmarkFaviconUrl, getDirectBookmarkUrl } fro export const { definition, componentLoader } = createWidgetDefinition("bookmarks", { icon: IconBookmark, supportsAdvancedFocus: true, - queryKey: [["app", "byIds"]], createOptions() { return optionsBuilder.from((factory) => ({ title: factory.text(), diff --git a/packages/widgets/src/calendar/index.ts b/packages/widgets/src/calendar/index.ts index 471c50f17..81dd7d3c1 100644 --- a/packages/widgets/src/calendar/index.ts +++ b/packages/widgets/src/calendar/index.ts @@ -1,7 +1,6 @@ import { IconCalendar } from "@tabler/icons-react"; import { z } from "zod/v4"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { radarrReleaseTypes } from "@homarr/integrations/types"; import { createWidgetDefinition, matchesWidgetRuntimeQuery } from "../definition"; @@ -10,7 +9,6 @@ import { optionsBuilder } from "../options"; export const { definition, componentLoader } = createWidgetDefinition("calendar", { icon: IconCalendar, supportsAdvancedFocus: true, - queryKey: [["widget", "calendar", "findAllEvents"]], queryMatcher: matchesWidgetRuntimeQuery, createOptions() { return optionsBuilder.from((factory) => ({ @@ -34,6 +32,4 @@ export const { definition, componentLoader } = createWidgetDefinition("calendar" }), })); }, - supportedIntegrations: getIntegrationKindsByCategory("calendar"), - integrationsRequired: false, }).withDynamicImport(() => import("./component")); diff --git a/packages/widgets/src/catalog.ts b/packages/widgets/src/catalog.ts index 3287a15d5..31eb37e9e 100644 --- a/packages/widgets/src/catalog.ts +++ b/packages/widgets/src/catalog.ts @@ -1,119 +1 @@ -import { - IconActivityHeartbeat, - IconAd, - IconApi, - IconApps, - IconArchive, - IconBadgeCc, - IconBatteryCharging, - IconBell, - IconBinaryTree, - IconBookmark, - IconBrandDocker, - IconBrandMinecraft, - IconBrowser, - IconBuildingBank, - IconBusStop, - IconCalendar, - IconChartAreaLine, - IconChartBar, - IconClock, - IconClockPlay, - IconCloud, - IconDeviceCctv, - IconDeviceGamepad, - IconDownload, - IconFileText, - IconGraphFilled, - IconHourglass, - IconHeadphones, - IconHeartRateMonitor, - IconHeartbeat, - IconLayoutGrid, - IconMessage, - IconMovie, - IconNotes, - IconPhoto, - IconReportSearch, - IconRocket, - IconRobot, - IconRoute, - IconRss, - IconServer2, - IconShieldCheck, - IconShieldLock, - IconSpeedboat, - IconTable, - IconTicket, - IconTopologyFull, - IconTransform, - IconVideo, - IconWall, - IconWind, - IconZoomQuestion, -} from "@tabler/icons-react"; - -import type { WidgetKind } from "@homarr/definitions"; -import type { TablerIcon } from "@homarr/ui"; - -export const widgetCatalogIcons: Record = { - clock: IconClock, - weather: IconCloud, - airQuality: IconWind, - countdown: IconHourglass, - timer: IconClockPlay, - app: IconApps, - assistant: IconRobot, - iframe: IconBrowser, - video: IconDeviceCctv, - notebook: IconNotes, - anchorNote: IconNotes, - dnsHoleSummary: IconAd, - dnsHoleControls: IconDeviceGamepad, - "smartHome-entityState": IconBinaryTree, - "smartHome-executeAutomation": IconBinaryTree, - stockPrice: IconBuildingBank, - mediaServer: IconVideo, - calendar: IconCalendar, - downloads: IconDownload, - "mediaRequests-requestList": IconZoomQuestion, - "mediaRequests-requestStats": IconChartBar, - mediaTranscoding: IconTransform, - mediaMissing: IconMovie, - minecraftServerStatus: IconBrandMinecraft, - networkControllerSummary: IconTopologyFull, - networkControllerStatus: IconTopologyFull, - rssFeed: IconRss, - bookmarks: IconBookmark, - indexerManager: IconReportSearch, - healthMonitoring: IconHeartRateMonitor, - releases: IconRocket, - mediaReleases: IconTicket, - dockerContainers: IconBrandDocker, - firewall: IconWall, - notifications: IconMessage, - systemResources: IconGraphFilled, - coolify: IconCloud, - systemDisks: IconServer2, - timetable: IconBusStop, - "immich-serverStats": IconGraphFilled, - "immich-albumCarousel": IconPhoto, - paperlessNgx: IconFileText, - patchmon: IconShieldCheck, - bazarr: IconBadgeCc, - tracearr: IconActivityHeartbeat, - speedtestTracker: IconSpeedboat, - uptimeKuma: IconHeartbeat, - audioStats: IconHeadphones, - umami: IconChartBar, - vpn: IconShieldLock, - archiveTeamWarrior: IconArchive, - ups: IconBatteryCharging, - beszelSystemTable: IconTable, - beszelSystemGrid: IconLayoutGrid, - beszelAlerts: IconBell, - beszelSystemStats: IconChartAreaLine, - traefik: IconRoute, - customApi: IconApi, - wud: IconBrandDocker, -}; +export { widgetCatalogIcons } from "@homarr/ui/widget-icons"; diff --git a/packages/widgets/src/clock/index.ts b/packages/widgets/src/clock/index.ts index 8f3fdd06f..195327b81 100644 --- a/packages/widgets/src/clock/index.ts +++ b/packages/widgets/src/clock/index.ts @@ -15,7 +15,6 @@ const timeZoneOptions = getTimeZoneOptions(); export const { definition, componentLoader } = createWidgetDefinition("clock", { icon: IconClock, supportsAdvancedFocus: true, - queryKey: [["widget", "weather", "atLocation"]], queryMatcher: ({ input }, scope) => { const location = scope.options.weatherLocation; if ( diff --git a/packages/widgets/src/coolify/index.ts b/packages/widgets/src/coolify/index.ts index cfc96bc9a..0ba35a5e4 100644 --- a/packages/widgets/src/coolify/index.ts +++ b/packages/widgets/src/coolify/index.ts @@ -19,7 +19,6 @@ export const { definition, componentLoader } = createWidgetDefinition("coolify", }), })); }, - supportedIntegrations: ["coolify"], errors: { INTERNAL_SERVER_ERROR: { icon: IconServerOff, diff --git a/packages/widgets/src/definition.ts b/packages/widgets/src/definition.ts index 6ef443999..1b7eb141c 100644 --- a/packages/widgets/src/definition.ts +++ b/packages/widgets/src/definition.ts @@ -4,13 +4,14 @@ import type { QueryClient, QueryKey } from "@tanstack/react-query"; import { hashKey } from "@tanstack/react-query"; import type { DefaultErrorData } from "@trpc/server/unstable-core-do-not-import"; -import type { IntegrationKind, WidgetKind } from "@homarr/definitions"; +import type { IntegrationKind, NativeFeatureCapabilityDescriptor, WidgetKind } from "@homarr/definitions"; +import { widgetFeatureCatalog } from "@homarr/definitions"; import type { ServerSettings } from "@homarr/server-settings"; import type { SettingsContextProps } from "@homarr/settings/creator"; import type { stringOrTranslation } from "@homarr/translation"; import type { TablerIcon } from "@homarr/ui"; -import type { WidgetImports } from "."; +import type { WidgetImports } from "./registry"; import type { inferOptionsFromCreator, WidgetOptionsRecord } from "./options"; export interface WidgetContextMenuAction { @@ -73,13 +74,86 @@ export interface WidgetContextActionProps { widgetRuntimeRef: WidgetRuntimeRef; } +type WidgetFeatureCapability = (typeof widgetFeatureCatalog)[TKind] extends { + capability: infer TCapability extends NativeFeatureCapabilityDescriptor; +} + ? TCapability + : never; + +type WidgetFeatureIntegrationDefinition = [WidgetFeatureCapability] extends [never] + ? object + : { + supportedIntegrations: WidgetFeatureCapability["integrations"][number][]; + integrationsRequired: WidgetFeatureCapability extends { connectionOptional: true } ? false : true; + } & (WidgetFeatureCapability extends { serverMaxIntegrations: infer TMax extends number } + ? { maxIntegrations: TMax } + : object); + +type CatalogOwnedWidgetDefinitionKey = + | "kind" + | "supportedIntegrations" + | "integrationsRequired" + | "maxIntegrations" + | "queryKey" + | "queryKeys" + | "refetchInterval"; + +type WidgetDefinitionInput = Omit; + +type WidgetDefinitionInputWithoutCatalogMetadata = TDefinition & { + [TKey in CatalogOwnedWidgetDefinitionKey]?: never; +}; + +type ResolvedWidgetDefinition = TDefinition & + WidgetFeatureIntegrationDefinition & { + kind: TKind; + queryKey?: QueryKey; + queryKeys?: readonly QueryKey[]; + refetchInterval?: number | null; + }; + +const resolveWidgetDefinition = ( + kind: TKind, + definition: WidgetDefinitionInputWithoutCatalogMetadata, +): ResolvedWidgetDefinition => { + const descriptor = widgetFeatureCatalog[kind]; + const resolvedDefinition: WidgetDefinition = { + ...definition, + kind, + }; + + if ("capability" in descriptor) { + const capability = descriptor.capability; + const connectionOptional = "connectionOptional" in capability && capability.connectionOptional === true; + resolvedDefinition.supportedIntegrations = [...capability.integrations]; + resolvedDefinition.integrationsRequired = !connectionOptional; + if ("serverMaxIntegrations" in capability && capability.serverMaxIntegrations !== undefined) { + resolvedDefinition.maxIntegrations = capability.serverMaxIntegrations; + } + } + + if ("query" in descriptor) { + const queryKeys: QueryKey[] = descriptor.query.paths.map((path) => [path]); + if (queryKeys.length === 1) { + resolvedDefinition.queryKey = queryKeys[0]; + } else { + resolvedDefinition.queryKeys = queryKeys; + } + if ("refetchIntervalSeconds" in descriptor.query) { + resolvedDefinition.refetchInterval = descriptor.query.refetchIntervalSeconds; + } + } + + return resolvedDefinition as ResolvedWidgetDefinition; +}; + const createWithDynamicImport = - (kind: TKind, definition: TDefinition) => + ( + kind: TKind, + definition: ResolvedWidgetDefinition, + ) => (componentLoader: () => LoaderComponent>) => ({ - definition: { - ...definition, - kind, - }, + definition, kind, componentLoader, }); @@ -93,14 +167,18 @@ export type Prefetch = ( }[], ) => Promise; -export const createWidgetDefinition = ( +export const createWidgetDefinition = ( kind: TKind, - definition: TDefinition, -) => ({ - withDynamicImport: createWithDynamicImport(kind, definition), -}); + definition: WidgetDefinitionInputWithoutCatalogMetadata, +) => { + const resolvedDefinition = resolveWidgetDefinition(kind, definition); + return { + withDynamicImport: createWithDynamicImport(kind, resolvedDefinition), + }; +}; export interface WidgetDefinition { + kind?: WidgetKind; icon: TablerIcon; supportsAdvancedFocus?: boolean; queryKey?: QueryKey; diff --git a/packages/widgets/src/dns-hole/controls/index.ts b/packages/widgets/src/dns-hole/controls/index.ts index 5c3170c15..78fe6be04 100644 --- a/packages/widgets/src/dns-hole/controls/index.ts +++ b/packages/widgets/src/dns-hole/controls/index.ts @@ -1,6 +1,5 @@ import { IconDeviceGamepad, IconServerOff } from "@tabler/icons-react"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { createWidgetDefinition } from "../../definition"; import { optionsBuilder } from "../../options"; @@ -10,8 +9,6 @@ export const widgetKind = "dnsHoleControls"; export const { definition, componentLoader } = createWidgetDefinition(widgetKind, { supportsAdvancedFocus: false, icon: IconDeviceGamepad, - queryKey: [["widget", "dnsHole"]], - refetchInterval: 10, createOptions() { return optionsBuilder.from((factory) => ({ showToggleAllButtons: factory.switch({ @@ -19,7 +16,6 @@ export const { definition, componentLoader } = createWidgetDefinition(widgetKind }), })); }, - supportedIntegrations: getIntegrationKindsByCategory("dnsHole"), errors: { INTERNAL_SERVER_ERROR: { icon: IconServerOff, diff --git a/packages/widgets/src/dns-hole/summary/index.ts b/packages/widgets/src/dns-hole/summary/index.ts index 6f4f62154..ec4e81981 100644 --- a/packages/widgets/src/dns-hole/summary/index.ts +++ b/packages/widgets/src/dns-hole/summary/index.ts @@ -1,6 +1,5 @@ import { IconAd, IconServerOff } from "@tabler/icons-react"; -import { getIntegrationKindsByCategory } from "@homarr/definitions"; import { createWidgetDefinition } from "../../definition"; import { optionsBuilder } from "../../options"; @@ -10,8 +9,6 @@ export const widgetKind = "dnsHoleSummary"; export const { definition, componentLoader } = createWidgetDefinition(widgetKind, { supportsAdvancedFocus: false, icon: IconAd, - queryKey: [["widget", "dnsHole"]], - refetchInterval: 10, createOptions() { return optionsBuilder.from((factory) => ({ usePiHoleColors: factory.switch({ @@ -30,7 +27,6 @@ export const { definition, componentLoader } = createWidgetDefinition(widgetKind }), })); }, - supportedIntegrations: getIntegrationKindsByCategory("dnsHole"), errors: { INTERNAL_SERVER_ERROR: { icon: IconServerOff, diff --git a/packages/widgets/src/docker/index.ts b/packages/widgets/src/docker/index.ts index acedadfdb..94687c9db 100644 --- a/packages/widgets/src/docker/index.ts +++ b/packages/widgets/src/docker/index.ts @@ -27,8 +27,6 @@ const columnTranslationKeyMap = { export const { definition, componentLoader } = createWidgetDefinition("dockerContainers", { icon: IconBrandDocker, supportsAdvancedFocus: true, - queryKey: [["docker", "getContainers"]], - refetchInterval: 30, createOptions() { return optionsBuilder.from( (factory) => ({ diff --git a/packages/widgets/src/downloads/docs/img/advanced-view.png b/packages/widgets/src/downloads/docs/img/advanced-view.png new file mode 100644 index 0000000000000000000000000000000000000000..042e713c3ebdf06532c35a5429a8598f38141129 GIT binary patch literal 118457 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

IzC8qTKtRwnJK+Ksq?mDd~5=Kk|90eI7; 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 literal 0 HcmV?d00001 diff --git a/packages/widgets/src/downloads/docs/img/context-menu.png b/packages/widgets/src/downloads/docs/img/context-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..350051d00a3bb2d623257da215a615faab62a2c6 GIT binary patch literal 215381 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≪l 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ℜeNyNJ1!`m-yz5?u;z4VWe3PL)<%l3eC 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