Plugins

Many built-in features in Weavy are implemented in the form of plugins. To configure a plugin, you should add an entry in the Weavy:Plugins configuration section with the Type property set to the assembly qualified name of the plugin as seen below.

Blob providers

Blob providers are plugins that control where uploaded files are stored. By default Weavy uses the SqlServerBlobProvider which stores blobs in the Weavy database, but by configuring one of the other blob providers you can tell Weavy to store files in an Azure Storage account or on disk instead of the database.

SqlServerBlobProvider

This is the default blob provider which stores blobs in the Weavy database. Has no configuration settings.

AzureBlobProvider

A provider that stores uploaded files in an Azure Storage account. This is the recommended provider to use when deploying Weavy to Microsoft Azure.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.AzureBlobProvider, Weavy.Core",
      "ConnectionString": "",
      "ContainerName": "files"
    }
  ]
}
Setting Description
ConnectionString The connection string to the Azure Storage account.
ContainerName The name of the container in the Azure Storage account where blobs should be stored. Defaults to files.

DiskBlobProvider

A provider that stores blobs on local disk.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.DiskBlobProvider, Weavy.Core",
      "Path": "blobs"
    }
  ]
}
Setting Description
Path Absolute or relative file path where the files should be stored. E.g. files or C:\Weavy\files. Default is blobs.

Daemons

Daemons are plugins configured to execute their code on a schedule defined by a cron expression. If you want to change the default schedule of a daemon you can configure the Schedule property. You can also disable a daemon by setting the Schedule to an empty string "".

DeliveryDaemon

A daemon that removes webhook old deliveries.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.DeliveryDaemon, Weavy.Core",
      "Age": "30.00:00:00",
      "Schedule": "0 2 * * *",
    }
  ]
}
Setting Description
Age The minimum time to keep a delivery after it was delivered. Defaults to 30.00:00:00 (30 days).
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0 2 * * *.

FileDaemon

Performs various cleanup tasks such as removing temp files etc.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.FileDaemon, Weavy.Core",
      "BlobAge": "01:00:00",
      "CacheAge": "7.00:00:00",
      "TempAge": "24:00:00",
      "Schedule": "0 4 * * *",
    }
  ]
}
Setting Description
BlobAge The minimum time to keep orphaned blob before they are deleted. Default is 01:00:00 (1 hour).
CacheAge The minimum time to keep cached files before they are deleted from the file system. Default is 7.00:00:00 (7 days).
TempAge The minimum time to keep temp files before they are deleted from the file system.. Default is 24:00:00 (24 hours).
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0 4 * * *.

IndexDaemon

Updates the fulltext index with entities modified or added since the last indexing operation.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.IndexDaemon, Weavy.Core",
      "BatchSize": 250,
      "Schedule": "* * * * *",
    }
  ]
}
Setting Description
BatchSize The number of items to index in each batch. Defaults to 250.
Schedule The cron expression representing the schedule when the daemon should run. Defaults to * * * * *.

NotificationDaemon

Removes old notifications.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.NotificationDaemon, Weavy.Core",
      "Days": 30,
      "Schedule": "0 5 * * *",
    }
  ]
}
Setting Description
Days The number of days to keep a notification after it was read. Defaults to 30.
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0 5 * * *.

PresenceDaemon

Keeps track of the online status of users.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.PresenceDaemon, Weavy.Core",
      "Schedule": "* * * * *",
    }
  ]
}
Setting Description
Schedule The cron expression representing the schedule when the daemon should run. Defaults to * * * * *.

StatisticsDaemon

Creates data points for usage statistics.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.StatisticsDaemon, Weavy.Core",
      "Schedule": "0 4 * * *",
    }
  ]
}
Setting Description
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0 4 * * *.

TokenDaemon

Removes expired access tokens.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.TokenDaemon, Weavy.Core",
      "Age": "00:15:00",
      "Schedule": "*/30 * * * *",
    }
  ]
}
Setting Description
Age The minimum time to keep a token after it expired. Defaults to 00:15:00 (15 minutes).
Schedule The cron expression representing the schedule when the daemon should run. Defaults to */30 * * * *.

TrashDaemon

Removes trashed items from the recycle bin after a while.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.TrashDaemon, Weavy.Core",
      "Age": "30.00:00:00",
      "Schedule": "0 3 * * *",
    }
  ]
}
Setting Description
Age The minimum time to keep a token after it expired. Defaults to 30.00:00:00 (30 days).
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0 3 * * *.

ZoomProxyDaemon

Polls the Zoom proxy server for updates in meetings.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.ZoomProxyDaemon, Weavy.Core",
      "Schedule": "*/5 * * * *",
    }
  ]
}
Setting Description
Schedule The cron expression representing the schedule when the daemon should run. Defaults to 0/5 * * * *.

Hooks

Hooks are plugins that performs some action in reaction to an event in Weavy (for instance a file being uploaded).

BlobHook

A hook that processes uploaded files creating thumbnails and extracting text for fulltext indexing.

"Weavy": {
  "Plugins": [
    {
      "Type": "Weavy.Core.Plugins.BlobHook, Weavy.Core",
      "Thumbnails": true,
      "Text": false,
      "MaxThumbnailWidth": 1024,
      "MaxThumbnailHeight": 1024,
      "MaxThumbnailSize": 5242880,
    }
  ]
}
Setting Description
Thumbnails Indicates whether to create thumbnail images for uploaded blobs. Default is true.
Text Indicates whether to extract text for fulltext indexing from uploaded blobs. Default is false.
MaxThumbnailWidth Maximum allowed thumbnail width. Defaults to 1024 pixels.
MaxThumbnailHeight Maximum allowed thumbnail height. Defaults to 1024 pixels.
MaxThumbnailSize Maximum allowed thumbnail size (in bytes). Defaults to 5242880 (5 MB).
Weavy Docs