Configuration & Settings

Many features in Weavy require some configuration settings. The configuration spans multiple areas and most are straight forward, while others needs a bit of explaining.

This article will describe the available configuration settings and the methods you can use for getting and setting them.

Specifying configuration settings

All settings are configured through the App Settings schema, which is a predefined configuration section provided by the .NET Framework.

Configuration with web.config

Most commonly, settings are defined within the appSettings element in web.config, but there are also other ways to configure settings.

<appSettings>
  <add key="weavy.smtp-from" value="noreply@weavy.com" />
  <add key="weavy.smtp-server" value="smtp.hostname.com" />
  <add key="weavy.smtp-port" value="25" />
  <add key="weavy.smtp-ssl" value="false" />
  <add key="weavy.smtp-username" value="usr" />
  <add key="weavy.smtp-password" value="pass" />
  <!-- etc -->
</appSettings>

Configuration with settings file

The appSettings element has an optional attribute, file, that can be used to reference a external file that contains the configuration. This is especially useful when you don't want settings to be under source control. In this case the appSettings element will reference a file which could be excluded from source control.

Example web.config, referencing an external settings.config:

<configuration>
  <appSettings file="settings.config" />
</configuration>

Example settings.config:

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add key="weavy.smtp-server" value="smtp.hostname.com" />
</appSettings>

Configuration in Azure

Azure has mechanisms for configuring appSettings through Application settings. Any settings that are defined here will affetively override what is configured in web.config or in an external file.

If you are hosting your Weavy tenants in Azure, this is the preferred way to manage configuration settings.

When you deploy Weavy tenants through the Tenant Dashboard or Tenant API, configuration settings will automatically be applied to reflect your configuration.

That means you normally won't have to handle configuration manually, although it is still possible to specify additional settings at the time of deployment or to update the configuration at any time using the Dashboard or the API.

To view or edit the configuration for a deployed tenant, go to the details view of the tenant. The Settings tab lists all settings. Edit/add rows and click Save to update.

Retrieving configuration settings

Use ConfigurationService to retrieve settings. All built-in settings are available as strongly typed properties while custom settings can be retrieved via the AppSetting method.

Built-in settings

Name Description Default
weavy.application-name The name of the application Weavy
weavy.application-url The absolute url to the installation, e.g. https://company.weavycloud.com
weavy.authentication-endpoint The full url to an external authentication endpoint. Must start with https://.
weavy.blob-provider The blob provider to use.
weavy.blob-whitelist A list of file type specifiers of files that Weavy should accept. When customizing this value we recommend that you at least allow image files with "image/*". If not specified all files can be uploaded.
weavy.cache-provider The cache provider to use.
weavy.cors-origins Configures the Access-Control-Allow-Origin header. Separate multiple entries with comma, e.g. http://www.example.com, https://www.example.org
weavy.forms-authentication Enables or disables forms authentication, i.e the ability to sign in with username/password. true
weavy.https Set to true to force traffic over HTTPS. true
weavy.hsts Set to true to enable HTTP Strict Transport Security (HSTS). true
weavy.log-level The minimal loglevel to use for logging. Possible values are "Trace", "Debug", "Info", "Warn", "Error" or "Fatal" Info
weavy.messenger-notification-hub-connection-string The connection string for the Messenger notification hub.
weavy.messenger-notification-hub-path The Messenger notification hub path.
weavy.notification-provider The notification provider to use.
weavy.notification-hub-connection-string The connection string for the notification hub.
weavy.notification-hub-path The notification hub path.
weavy.password-length The minimum required password length.
weavy.password-requires-digit Set to true to require atleast one digit (0-9) in passwords. false
weavy.password-requires-lower Set to true to require atleast one lower case letter (a-z) in passwords. false
weavy.password-requires-upper Set to true to require atleast one upper case letter (A-Z) in passwords. false
weavy.password-requires-special Set to true to require atleast one special character (non letter or digit) in passwords.
weavy.smtp-from The email address from which outgoing emails should be sent.
weavy.smtp-password The password to use for authentication against the SMTP server.
weavy.smtp-port The port used for SMTP transactions. 25
weavy.smtp-server The name or IP address of the host used for SMTP transactions.
weavy.smtp-username The username to use for authentication against the SMTP server.
weavy.smtp-default-credentials Set to true to ignore username and password and send the default credentials with requests. false
weavy.smtp-ssl Set to true to use Secure Sockets Layer (SSL) to encrypt the connection with the SMTP server. false