Adding new Snap settings to code - jean/wekan GitHub Wiki
Also see 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
config
Changes to1) 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"
Snap help
Changes to1) 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