aboutsummaryrefslogtreecommitdiffstats
path: root/docs/configuration.md
diff options
context:
space:
mode:
authorLibravatar Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>2021-08-11 14:59:55 +0000
committerLibravatar GitHub <noreply@github.com>2021-08-11 20:29:55 +0530
commit2fd678efd32725a881152af2b2ee5fa64f422dea (patch)
tree3d158e089ac683ad7a979d23bace07d79bbff354 /docs/configuration.md
parentFixed eslintrc as root for this folder; Reformatted all files. (diff)
downloadferdium-recipes-2fd678efd32725a881152af2b2ee5fa64f422dea.tar.gz
ferdium-recipes-2fd678efd32725a881152af2b2ee5fa64f422dea.tar.zst
ferdium-recipes-2fd678efd32725a881152af2b2ee5fa64f422dea.zip
Cleanup all recipes (#605)
* Removed legacy properties that are no longer used: 'author' 'customURL' 'description' 'hostedOnly' 'main' 'openDevTools' 'popup' 'repository' 'serviceName' 'webviewOptions' 'wording' - Removed entries for if they were the defaults: 'hasCustomUrl' 'hasDirectMessages' 'hasIndirectMessages' 'hasNotificationSound' 'hasTeamId' 'message' Fixed incorrect 'urlInputSuffix' type. Added validations for ensuring the above do not creep back in.
Diffstat (limited to 'docs/configuration.md')
-rw-r--r--docs/configuration.md71
1 files changed, 30 insertions, 41 deletions
diff --git a/docs/configuration.md b/docs/configuration.md
index 923ed19..532a1f7 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -3,40 +3,34 @@
3A [Ferdi](https://getferdi.com) recipe is a node module. In order to learn more about node modules and their configuration check the official [Node.js documentation](https://nodejs.org/api/modules.html) / [npm package.json documentation](https://docs.npmjs.com/files/package.json). 3A [Ferdi](https://getferdi.com) recipe is a node module. In order to learn more about node modules and their configuration check the official [Node.js documentation](https://nodejs.org/api/modules.html) / [npm package.json documentation](https://docs.npmjs.com/files/package.json).
4 4
5## Table of Contents 5## Table of Contents
6* [Config flags](#user-content-config-flags) 6
7* [Examples](#user-content-examples) 7- [Integration Config](#integration-config)
8 - [Table of Contents](#table-of-contents)
9 - [Config flags](#config-flags)
10 - [Example](#example)
8 11
9## Config flags 12## Config flags
10 13
11`string` **id**<br /> 14`string` **id** _mandatory_<br />
12Unique identifier name of the plugin. The name of the plugin folder has to be the same. 15Unique identifier name of the plugin. The name of the plugin folder has to be the same.
13 16
14This ID cannot contain any special characters or spaces. 17This ID cannot contain any special characters or spaces.
15 18
16`string` **name**<br /> 19`string` **name** _mandatory_<br />
17Display name of the service. 20Display name of the service.
18 21
19`string` **version**<br /> 22`string` **version** _mandatory_<br />
20Version number. Will be used for auto updating the integrations. The version number must be in a semver compatible format: `1.0.0`. 23Version number. Will be used for auto updating the integrations. The version number must be in a semver compatible format: eg `1.0.0`.
21**important:** the version will be used to figure out if a new recipe update should be deployed to the user. If you make changes to a recipe, **always** increase the version number or Ferdi won't update your recipe. 24**important:** the version will be used to figure out if a new recipe update should be deployed to the user. If you make changes to a recipe, **always** increase the version number or Ferdi won't update your recipe.
22 25
23`string` **description**<br />
24Short description about your integration. Not currently used.
25
26`string` **main**<br />
27The plugins main entry point. In our case `index.js`.
28
29`string` **author**<br />
30Author of the integration. Not currently used.
31
32`string` **license**<br /> 26`string` **license**<br />
33The license of the integration. We prefer MIT, but here is a list of all the available SPDX licenses http://spdx.org/licenses/ 27The license of the integration. We prefer MIT, but here is a list of all the available SPDX licenses http://spdx.org/licenses/
34 28
35`string` **repository**<br /> 29`string` **repository**<br />
36Link to your Github, Gitlab or Bitbucket public repository 30Link to your Github, Gitlab or Bitbucket public repository. Not used in the application, but is very helpful if we need to log bugs or update to newer versions, etc.
37 31
38`object` **config**<br /> 32`object` **config** _mandatory_<br />
39This is the Ferdi specific integration config. 33This is the Ferdi-specific integration config.
40 34
41* `string` **serviceURL**<br/> 35* `string` **serviceURL**<br/>
42Defines the URL that should be loaded into the Ferdi webview. 36Defines the URL that should be loaded into the Ferdi webview.
@@ -46,11 +40,13 @@ If you want to load a simple URL like `https://www.messenger.com`, you can simpl
46If your service works with custom URLs, just leave this empty. 40If your service works with custom URLs, just leave this empty.
47<br /><br /> 41<br /><br />
48**Examples** 42**Examples**
43
49```json 44```json
50{ 45{
51 "serviceURL": "https://www.messenger.com" 46 "serviceURL": "https://www.messenger.com"
52} 47}
53``` 48```
49
54<br /> 50<br />
55 51
56```json 52```json
@@ -58,35 +54,28 @@ If your service works with custom URLs, just leave this empty.
58 "serviceURL": "https://{teamId}.slack.com" 54 "serviceURL": "https://{teamId}.slack.com"
59} 55}
60``` 56```
61* `boolean` **hasTeamId** _default: true_<br /> 57
58* `boolean` **hasTeamId** _default: false_<br />
62Is this a team based service? If true, the interface to add the service will require a team identifier. e.g. `[teamId]`.slack.com 59Is this a team based service? If true, the interface to add the service will require a team identifier. e.g. `[teamId]`.slack.com
63* `boolean` **urlInputSuffix**<br /> 60* `string` **urlInputPrefix**<br />
64This option is only used in combination with `hasTeamId: true` in order to display the value of `urlInputSuffix` after the input for TeamId to make it obvious to the user what input is required from him. Eg. _&lt;TeamID&gt;.hipchat.com_ 61This option is only used in combination with `hasTeamId: true` in order to display the value of `urlInputPrefix` before the input for TeamId to make it obvious to the user what input is required from them. Eg. _&lt;TeamID&gt;.hipchat.com_
62* `string` **urlInputSuffix**<br />
63This option is only used in combination with `hasTeamId: true` in order to display the value of `urlInputSuffix` after the input for TeamId to make it obvious to the user what input is required from them. Eg. _&lt;TeamID&gt;.hipchat.com_
64* `boolean` **hasHostedOption** _default: false_<br />
65If a service can be hosted and has a teamId or customUrl
65* `boolean` **hasCustomUrl** _default: false_<br /> 66* `boolean` **hasCustomUrl** _default: false_<br />
66On premise services like HipChat, Mattermost, ... require a custom URL. This option enables the user to enter a custom URL when adding the service. 67On-premise services like HipChat, Mattermost, ... require a custom URL. This option enables the user to enter a custom URL when adding the service.
67* `boolean` **hasNotificationSound** _default: false_<br /> 68* `boolean` **hasNotificationSound** _default: false_<br />
68Some services provide their own notification sound. In order to avoid multiple sounds when the user receives a message set this to `true`. If the service has no built in notification sound set this to `false`. 69Some services provide their own notification sound. In order to avoid multiple sounds when the user receives a message set this to `true`. If the service has no built in notification sound set this to `false`.
70* `boolean` **hasDirectMessages** _default: true_<br />
71Some services have direct 1x1 messages e.g. a mention or message to every user in a channel (@channel). If this flag is set to `true`, the user can enable/disable if there should be a badge for direct messages.
69* `boolean` **hasIndirectMessages** _default: false_<br /> 72* `boolean` **hasIndirectMessages** _default: false_<br />
70Services like Slack or HipChat have direct messages e.g. a mention or message to every user in a channel (@channel) and indirect messages e.g. general discussion in a channel. If this flag is set to `true`, the user can enable/disable if there should be a badge for indirect messages. 73Services like Slack or HipChat have direct messages e.g. a mention or message to every user in a channel (@channel) and indirect messages e.g. general discussion in a channel. If this flag is set to `true`, the user can enable/disable if there should be a badge for indirect messages.
71* `string` **message**<br /> 74* `string` **message**<br />
72Info message that will be displayed in the add/edit service interface. 75Info message that will be displayed in the add/edit service preferences screen.
76* `string` **disablewebsecurity**<br />
77Some services like hangoutschat need the web security disabled.
73 78
74## Example 79## Example
75### Mattermost configuration 80
76```json 81The [mattermost configuration](https://github.com/getferdi/recipes/blob/master/recipes/mattermost/package.json) is a typical example.
77{
78 "id": "mattermost",
79 "name": "Mattermost",
80 "version": "1.0.0",
81 "description": "Mattermost",
82 "main": "index.js",
83 "author": "Stefan Malzner <stefan@adlk.io>",
84 "license": "MIT",
85 "repository": "https://github.com/meetFerdi/recipe-mattermost",
86 "config": {
87 "hasNotificationSound": true,
88 "hasIndirectMessages": true,
89 "hasCustomUrl": true
90 }
91}
92```