Adding new Snap settings to code - jean/wekan GitHub Wiki

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