Skip to content

Adding new Snap settings to code

Lauri Ojansivu edited this page Jul 11, 2022 · 11 revisions

Also see Snap Developer Docs

Snap Developer Docs

When adding settings to code you or somebody else wrote

Add all necessary settings that you find on code.

After doing all changes, fix lint errors and if possible warnings too. You can silence errors if you really can't find solution.

Submit pull request to Wekan edge branch https://github.com/wekan/wekan/tree/edge

Changes to server code

To use environment variables in your serverside code, use:

process.env.YOURSETTING

Example: wekan/server/policy.js

Changes to config

1) Add to beginning

At beginning there is this line:

# list of supported keys
keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP ..."

To the end of it, add name of new setting. For example:

keys="... AWESOME_FEATURE_ENABLED"

2) Add to bottom

Example 1: Set features not enabled as default.

DESCRIPTION_LDAP_ENABLED="LDAP enabled. Default: false"
DEFAULT_LDAP_ENABLED="false"
KEY_LDAP_ENABLED="ldap-enabled"

Example 2: If setting is different for every server, leave it empty.

DESCRIPTION_OAUTH2_TOKEN_ENDPOINT="OAuth2 token endpoint. Example: /oauth/token"
DEFAULT_OAUTH2_TOKEN_ENDPOINT=""
KEY_OAUTH2_TOKEN_ENDPOINT="oauth2-token-endpoint"

Example 3: If there is same for every server, set it to general setting.

DESCRIPTION_LDAP_SEARCH_FILTER="LDAP search filter. Default: (&(objectCategory=person)(objectClass=user)(!(cn=andy)))"
DEFAULT_LDAP_SEARCH_FILTER="(&(objectCategory=person)(objectClass=user)(!(cn=andy)))"
KEY_LDAP_ENABLED="ldap-enabled"

Example 4: If you don't know example, leave it without example.

DESCRIPTION_TURBO_FILTER="Turbo filter. Default: ''"
DEFAULT_TURBO_FILTER=""
KEY_TURBO_FILTER="turbo-filter"

Changes to Snap help

1) How to quote examples

Snap settings need to be lowercase, and inside single quotes. For example:

snap set wekan ldap-user-search-filter='(&(objectCategory=person)(objectClass=user)(!(cn=andy)))'

The setting inside single quotes is the actual setting.

Actual settings can include double quotes, spaces, etc, but not single quotes. For example:

snap set wekan ldap-user-search-filter='"(&(objectCategory=person)(objectClass=user)(!(cn=andy)))"'

2) What to add as setting to Wekan help

Example 1:

echo -e "OAuth2 Token Endpoint. Example: /oauth/token"
echo -e "To enable the OAuth2 Token Endpoint of Wekan:"
echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT='/oauth/token'"
echo -e "\t-Disable the OAuth2 Token Endpoint of Wekan:"
echo -e "\t$ snap set $SNAP_NAME OAUTH2_TOKEN_ENDPOINT=''"
echo -e "\n"

So all you add need to be above of this line:

# parse config file for supported settings keys

Wekan

General

Fake: Not WeKan kanban

Security

Scaling

Migrating

Support priorities for new features and bugfixes

  1. Commercial Support
  2. Community Support
  3. Debugging

Backup

Repair

Themes

Markdown Syntax

Login Auth

Metrics, Logs, Stats

Integrations

Time

Features

Email

Required Settings

Download

Webservers

REST API Docs

REST API issue

REST API client code

Webhooks

Case Studies

Development

Issues

Clone this wiki locally