Synology Chat (plugin)

Status: obslugiwany przez plugin jako kanal wiadomosci bezposrednich z uzyciem webhookow Synology Chat. Plugin odbiera wiadomosci przychodzace z webhookow wychodzacych Synology Chat i wysyla odpowiedzi przez webhook przychodzacy Synology Chat.

Wymagany plugin

Synology Chat jest oparty na pluginie i nie jest czescia domyslnej instalacji podstawowej.

Instalacja z lokalnego checkoutu:

openclaw plugins install ./extensions/synology-chat

Szczegoly: Pluginy

Szybka konfiguracja

  1. Zainstaluj i wlacz plugin Synology Chat.
  2. W integracjach Synology Chat:
    • Utworz webhook przychodzacy i skopiuj jego URL.
    • Utworz webhook wychodzacy z tokenem tajnym.
  3. Skieruj URL webhooka wychodzacego na gateway OpenClaw:
    • Domyslnie https://gateway-host/webhook/synology.
    • Lub niestandardowy channels.synology-chat.webhookPath.
  4. Skonfiguruj channels.synology-chat w OpenClaw.
  5. Zrestartuj gateway i wyslij DM do bota Synology Chat.

Minimalna konfiguracja:

{
  channels: {
    "synology-chat": {
      enabled: true,
      token: "synology-outgoing-token",
      incomingUrl: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=...",
      webhookPath: "/webhook/synology",
      dmPolicy: "allowlist",
      allowedUserIds: ["123456"],
      rateLimitPerMinute: 30,
      allowInsecureSsl: false,
    },
  },
}

Zmienne srodowiskowe

Dla domyslnego konta mozna uzyc zmiennych srodowiskowych:

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS (rozdzielone przecinkami)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

Wartosci konfiguracji nadpisuja zmienne srodowiskowe.

Polityka DM i kontrola dostepu

  • dmPolicy: "allowlist" jest zalecanym ustawieniem domyslnym.
  • allowedUserIds akceptuje liste (lub ciag rozdzielony przecinkami) ID uzytkownikow Synology.
  • W trybie allowlist pusta lista allowedUserIds jest traktowana jako bledna konfiguracja i trasa webhooka nie zostanie uruchomiona (uzyj dmPolicy: "open" aby zezwolic na wszystkich).
  • dmPolicy: "open" pozwala kazdy nadawce.
  • dmPolicy: "disabled" blokuje DM.
  • Zatwierdzanie parowania dziala z:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

Dostarczanie wychodzace

Uzyj numerycznych ID uzytkownikow Synology Chat jako celow.

Przyklady:

openclaw message send --channel synology-chat --target 123456 --text "Hello from OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"

Wysylanie mediow jest obslugiwane przez dostarczanie plikow oparte na URL.

Wiele kont

Wiele kont Synology Chat jest obslugiwanych w channels.synology-chat.accounts. Kazde konto moze nadpisac token, URL przychodzacy, sciezke webhooka, polityke DM i limity.

{
  channels: {
    "synology-chat": {
      enabled: true,
      accounts: {
        default: {
          token: "token-a",
          incomingUrl: "https://nas-a.example.com/...token=...",
        },
        alerts: {
          token: "token-b",
          incomingUrl: "https://nas-b.example.com/...token=...",
          webhookPath: "/webhook/synology-alerts",
          dmPolicy: "allowlist",
          allowedUserIds: ["987654"],
        },
      },
    },
  },
}

Uwagi dotyczace bezpieczenstwa

  • Trzymaj token w tajemnicy i rotuj go w przypadku wycieku.
  • Pozostaw allowInsecureSsl: false, chyba ze jawnie ufasz samopodpisanemu certyfikatowi lokalnego NAS.
  • Przychodzace zadania webhooka sa weryfikowane tokenem i limitowane szybkoscia per nadawca.
  • Zalecaj dmPolicy: "allowlist" w produkcji.