Semestra

Plugins

GET
/plugins/catalog

Use to check whether a plugin (e.g. pomodoro, habit tracker, sticky notes) is installed before suggesting its cards, or to tell the user what plugins exist. Core modules are always installed.

Authorization

cookiesemestra_session<token>

Set by the sign-in endpoints for the web app. Requests other than GET, HEAD and OPTIONS also need the X-Semestra-CSRF header set to the semestra_csrf cookie.

Response Body

Successful Response

application/json
  1. response
items*array<>
Example Request
curl -X GET 'https://example.com/plugins/catalog'
Example Response
{  "items": [    {      "id": "string",      "kind": "core",      "name_key": "string",      "description_key": "string",      "summary": "string",      "version": "string",      "author": "string",      "default_installed": true,      "installed": true,      "installed_at": "2019-08-24T14:15:22Z",      "provides": {        "pages": [          "string"        ],        "cards": [          "string"        ],        "capabilities": [          "string"        ]      }    }  ]}
DELETE
/plugins/{plugin_id}/installation

Hides the plugin's pages, cards and features. Without purge_data its data is kept and comes back on reinstall.

Authorization

cookiesemestra_session<token>

Set by the sign-in endpoints for the web app. Requests other than GET, HEAD and OPTIONS also need the X-Semestra-CSRF header set to the semestra_csrf cookie.

Path Parameters

plugin_id*Plugin Id

Plugin id, e.g. 'pomodoro'

Query Parameters

purge_data?Purge Data

Also delete the plugin's data (cards, settings, records); cannot be undone

Defaultfalse

Response Body

Successful Response

application/json
  1. response
id*Id
kind*Kind

core modules cannot be uninstalled

Value in"core""plugin"
name_key*Name Key

Frontend message key of the name

description_key*Description Key

Frontend message key of the description

summary*Summary

One English sentence on what the plugin does

version*Version
author*Author
default_installed*Default Installed
installed*Installed

Always true for core modules

installed_at*|null
provides*
Example Request
curl -X DELETE 'https://example.com/plugins/string/installation'
Example Response
{  "id": "string",  "kind": "core",  "name_key": "string",  "description_key": "string",  "summary": "string",  "version": "string",  "author": "string",  "default_installed": true,  "installed": true,  "installed_at": "2019-08-24T14:15:22Z",  "provides": {    "pages": [      "string"    ],    "cards": [      "string"    ],    "capabilities": [      "string"    ]  }}
PUT
/plugins/{plugin_id}/installation

Installing an already installed plugin does nothing.

Authorization

cookiesemestra_session<token>

Set by the sign-in endpoints for the web app. Requests other than GET, HEAD and OPTIONS also need the X-Semestra-CSRF header set to the semestra_csrf cookie.

Path Parameters

plugin_id*Plugin Id

Plugin id, e.g. 'pomodoro'

Response Body

Successful Response

application/json
  1. response
id*Id
kind*Kind

core modules cannot be uninstalled

Value in"core""plugin"
name_key*Name Key

Frontend message key of the name

description_key*Description Key

Frontend message key of the description

summary*Summary

One English sentence on what the plugin does

version*Version
author*Author
default_installed*Default Installed
installed*Installed

Always true for core modules

installed_at*|null
provides*
Example Request
curl -X PUT 'https://example.com/plugins/string/installation'
Example Response
{  "id": "string",  "kind": "core",  "name_key": "string",  "description_key": "string",  "summary": "string",  "version": "string",  "author": "string",  "default_installed": true,  "installed": true,  "installed_at": "2019-08-24T14:15:22Z",  "provides": {    "pages": [      "string"    ],    "cards": [      "string"    ],    "capabilities": [      "string"    ]  }}