Wekan REST API v4.83
+Wekan REST API v4.84
@@ -2623,1961 +2568,6 @@ System.out.println(response.toString()); -Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Boards
-get_public_boards
- ---Code samples
-
# You can also use wget
-curl -X GET /api/boards \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-GET /api/boards HTTP/1.1
-
-Accept: application/json
-
-
-var headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards',
- method: 'get',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.get '/api/boards',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.get('/api/boards', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/api/boards", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-GET /api/boards
Get all public boards
---Example responses
-
--200 Response
-
[
- {
- "_id": "string",
- "title": "string"
- }
-]
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -Inline | -
Response Schema
-Status Code 200
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| » _id | -string | -false | -none | -none | -
| » title | -string | -false | -none | -none | -
new_board
- ---Code samples
-
# You can also use wget
-curl -X POST /api/boards \
- -H 'Content-Type: multipart/form-data' \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-POST /api/boards HTTP/1.1
-
-Content-Type: multipart/form-data
-Accept: application/json
-
-
-var headers = {
- 'Content-Type':'multipart/form-data',
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards',
- method: 'post',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-const inputBody = '{
- "title": "string",
- "owner": "string",
- "isAdmin": true,
- "isActive": true,
- "isNoComments": true,
- "isCommentOnly": true,
- "isWorker": true,
- "permission": "string",
- "color": "string"
-}';
-const headers = {
- 'Content-Type':'multipart/form-data',
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'multipart/form-data',
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.post '/api/boards',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Content-Type': 'multipart/form-data',
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.post('/api/boards', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"multipart/form-data"},
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/api/boards", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-POST /api/boards
Create a board
-This allows to create a board.
-The color has to be chosen between belize, nephritis, pomegranate,
-pumpkin, wisteria, moderatepink, strongcyan,
-limegreen, midnight, dark, relax, corteza:
---Body parameter
-
title: string
-owner: string
-isAdmin: true
-isActive: true
-isNoComments: true
-isCommentOnly: true
-isWorker: true
-permission: string
-color: string
-
-
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| body | -body | -object | -false | -none | -
| » title | -body | -string | -true | -the new title of the board | -
| » owner | -body | -string | -true | -"ABCDE12345" <= User ID in Wekan. | -
| » isAdmin | -body | -boolean | -false | -is the owner an admin of the board (default true) | -
| » isActive | -body | -boolean | -false | -is the board active (default true) | -
| » isNoComments | -body | -boolean | -false | -disable comments (default false) | -
| » isCommentOnly | -body | -boolean | -false | -only enable comments (default false) | -
| » isWorker | -body | -boolean | -false | -only move cards, assign himself to card and comment (default false) | -
| » permission | -body | -string | -false | -"private" board <== Set to "public" if you | -
| » color | -body | -string | -false | -the color of the board | -
Detailed descriptions
-» owner: "ABCDE12345" <= User ID in Wekan. -(Not username or email)
-» permission: "private" board <== Set to "public" if you -want public Wekan board
---Example responses
-
--200 Response
-
{
- "_id": "string",
- "defaultSwimlaneId": "string"
-}
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -Inline | -
Response Schema
-Status Code 200
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| » _id | -string | -false | -none | -none | -
| » defaultSwimlaneId | -string | -false | -none | -none | -
get_board
- ---Code samples
-
# You can also use wget
-curl -X GET /api/boards/{board} \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-GET /api/boards/{board} HTTP/1.1
-
-Accept: application/json
-
-
-var headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}',
- method: 'get',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.get '/api/boards/{board}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.get('/api/boards/{board}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/api/boards/{board}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-GET /api/boards/{board}
Get the board with that particular ID
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the ID of the board to retrieve the data | -
Detailed descriptions
-board: the ID of the board to retrieve the data
---Example responses
-
--200 Response
-
{
- "title": "string",
- "slug": "string",
- "archived": true,
- "createdAt": "string",
- "modifiedAt": "string",
- "stars": 0,
- "labels": [
- {
- "_id": "string",
- "name": "string",
- "color": "green"
- }
- ],
- "members": [
- {
- "userId": "string",
- "isAdmin": true,
- "isActive": true,
- "isNoComments": true,
- "isCommentOnly": true,
- "isWorker": true
- }
- ],
- "permission": "public",
- "color": "belize",
- "description": "string",
- "subtasksDefaultBoardId": "string",
- "subtasksDefaultListId": "string",
- "dateSettingsDefaultBoardId": "string",
- "dateSettingsDefaultListId": "string",
- "allowsSubtasks": true,
- "allowsAttachments": true,
- "allowsChecklists": true,
- "allowsComments": true,
- "allowsDescriptionTitle": true,
- "allowsDescriptionText": true,
- "allowsActivities": true,
- "allowsLabels": true,
- "allowsAssignee": true,
- "allowsMembers": true,
- "allowsRequestedBy": true,
- "allowsAssignedBy": true,
- "allowsReceivedDate": true,
- "allowsStartDate": true,
- "allowsEndDate": true,
- "allowsDueDate": true,
- "presentParentTask": "prefix-with-full-path",
- "startAt": "string",
- "dueAt": "string",
- "endAt": "string",
- "spentTime": 0,
- "isOvertime": true,
- "type": "string",
- "sort": 0
-}
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -Boards | -
delete_board
- ---Code samples
-
# You can also use wget
-curl -X DELETE /api/boards/{board} \
- -H 'Authorization: API_KEY'
-
-
-DELETE /api/boards/{board} HTTP/1.1
-
-
-var headers = {
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}',
- method: 'delete',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}',
-{
- method: 'DELETE',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.delete '/api/boards/{board}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Authorization': 'API_KEY'
-}
-
-r = requests.delete('/api/boards/{board}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("DELETE");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("DELETE", "/api/boards/{board}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-DELETE /api/boards/{board}
Delete a board
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the ID of the board | -
Detailed descriptions
-board: the ID of the board
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -None | -
get_board_attachments
- ---Code samples
-
# You can also use wget
-curl -X GET /api/boards/{board}/attachments \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-GET /api/boards/{board}/attachments HTTP/1.1
-
-Accept: application/json
-
-
-var headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}/attachments',
- method: 'get',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}/attachments',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.get '/api/boards/{board}/attachments',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.get('/api/boards/{board}/attachments', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}/attachments");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/api/boards/{board}/attachments", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-GET /api/boards/{board}/attachments
Get the list of attachments of a board
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the board ID | -
Detailed descriptions
-board: the board ID
---Example responses
-
--200 Response
-
[
- {
- "attachmentId": "string",
- "attachmentName": "string",
- "attachmentType": "string",
- "cardId": "string",
- "listId": "string",
- "swimlaneId": "string"
- }
-]
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -Inline | -
Response Schema
-Status Code 200
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| » attachmentId | -string | -false | -none | -none | -
| » attachmentName | -string | -false | -none | -none | -
| » attachmentType | -string | -false | -none | -none | -
| » cardId | -string | -false | -none | -none | -
| » listId | -string | -false | -none | -none | -
| » swimlaneId | -string | -false | -none | -none | -
exportJson
- ---Code samples
-
# You can also use wget
-curl -X GET /api/boards/{board}/export \
- -H 'Authorization: API_KEY'
-
-
-GET /api/boards/{board}/export HTTP/1.1
-
-
-var headers = {
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}/export',
- method: 'get',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}/export',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.get '/api/boards/{board}/export',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Authorization': 'API_KEY'
-}
-
-r = requests.get('/api/boards/{board}/export', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}/export");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-GET /api/boards/{board}/export
This route is used to export the board to a json file format.
-If user is already logged-in, pass loginToken as param -"authToken": '/api/boards/:boardId/export?authToken=:token'
-See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ -for detailed explanations
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the ID of the board we are exporting | -
Detailed descriptions
-board: the ID of the board we are exporting
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -None | -
add_board_label
- ---Code samples
-
# You can also use wget
-curl -X PUT /api/boards/{board}/labels \
- -H 'Content-Type: multipart/form-data' \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-PUT /api/boards/{board}/labels HTTP/1.1
-
-Content-Type: multipart/form-data
-Accept: application/json
-
-
-var headers = {
- 'Content-Type':'multipart/form-data',
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}/labels',
- method: 'put',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-const inputBody = '{
- "label": "string"
-}';
-const headers = {
- 'Content-Type':'multipart/form-data',
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}/labels',
-{
- method: 'PUT',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'multipart/form-data',
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.put '/api/boards/{board}/labels',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Content-Type': 'multipart/form-data',
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.put('/api/boards/{board}/labels', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}/labels");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("PUT");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"multipart/form-data"},
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("PUT", "/api/boards/{board}/labels", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-PUT /api/boards/{board}/labels
Add a label to a board
-If the board doesn't have the name/color label, this function -adds the label to the board.
---Body parameter
-
label: string
-
-
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the board | -
| body | -body | -object | -false | -none | -
| » label | -body | -string | -true | -the label value | -
Detailed descriptions
-board: the board
---Example responses
-
--200 Response
-
"string"
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -string | -
set_board_member_permission
- ---Code samples
-
# You can also use wget
-curl -X POST /api/boards/{board}/members/{member} \
- -H 'Content-Type: multipart/form-data' \
- -H 'Authorization: API_KEY'
-
-
-POST /api/boards/{board}/members/{member} HTTP/1.1
-
-Content-Type: multipart/form-data
-
-
-var headers = {
- 'Content-Type':'multipart/form-data',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/boards/{board}/members/{member}',
- method: 'post',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-const inputBody = '{
- "isAdmin": true,
- "isNoComments": true,
- "isCommentOnly": true,
- "isWorker": true
-}';
-const headers = {
- 'Content-Type':'multipart/form-data',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/boards/{board}/members/{member}',
-{
- method: 'POST',
- body: inputBody,
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Content-Type' => 'multipart/form-data',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.post '/api/boards/{board}/members/{member}',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Content-Type': 'multipart/form-data',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.post('/api/boards/{board}/members/{member}', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/boards/{board}/members/{member}");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("POST");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Content-Type": []string{"multipart/form-data"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("POST", "/api/boards/{board}/members/{member}", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-POST /api/boards/{board}/members/{member}
Change the permission of a member of a board
---Body parameter
-
isAdmin: true
-isNoComments: true
-isCommentOnly: true
-isWorker: true
-
-
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| board | -path | -string | -true | -the ID of the board that we are changing | -
| member | -path | -string | -true | -the ID of the user to change permissions | -
| body | -body | -object | -false | -none | -
| » isAdmin | -body | -boolean | -true | -admin capability | -
| » isNoComments | -body | -boolean | -true | -NoComments capability | -
| » isCommentOnly | -body | -boolean | -true | -CommentsOnly capability | -
| » isWorker | -body | -boolean | -true | -Worker capability | -
Detailed descriptions
-board: the ID of the board that we are changing
-member: the ID of the user to change permissions
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -None | -
get_boards_from_user
- ---Code samples
-
# You can also use wget
-curl -X GET /api/users/{user}/boards \
- -H 'Accept: application/json' \
- -H 'Authorization: API_KEY'
-
-
-GET /api/users/{user}/boards HTTP/1.1
-
-Accept: application/json
-
-
-var headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-$.ajax({
- url: '/api/users/{user}/boards',
- method: 'get',
-
- headers: headers,
- success: function(data) {
- console.log(JSON.stringify(data));
- }
-})
-
-
-const fetch = require('node-fetch');
-
-const headers = {
- 'Accept':'application/json',
- 'Authorization':'API_KEY'
-
-};
-
-fetch('/api/users/{user}/boards',
-{
- method: 'GET',
-
- headers: headers
-})
-.then(function(res) {
- return res.json();
-}).then(function(body) {
- console.log(body);
-});
-
-
-require 'rest-client'
-require 'json'
-
-headers = {
- 'Accept' => 'application/json',
- 'Authorization' => 'API_KEY'
-}
-
-result = RestClient.get '/api/users/{user}/boards',
- params: {
- }, headers: headers
-
-p JSON.parse(result)
-
-
-import requests
-headers = {
- 'Accept': 'application/json',
- 'Authorization': 'API_KEY'
-}
-
-r = requests.get('/api/users/{user}/boards', params={
-
-}, headers = headers)
-
-print r.json()
-
-
-URL obj = new URL("/api/users/{user}/boards");
-HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-con.setRequestMethod("GET");
-int responseCode = con.getResponseCode();
-BufferedReader in = new BufferedReader(
- new InputStreamReader(con.getInputStream()));
-String inputLine;
-StringBuffer response = new StringBuffer();
-while ((inputLine = in.readLine()) != null) {
- response.append(inputLine);
-}
-in.close();
-System.out.println(response.toString());
-
-
-package main
-
-import (
- "bytes"
- "net/http"
-)
-
-func main() {
-
- headers := map[string][]string{
- "Accept": []string{"application/json"},
- "Authorization": []string{"API_KEY"},
-
- }
-
- data := bytes.NewBuffer([]byte{jsonReq})
- req, err := http.NewRequest("GET", "/api/users/{user}/boards", data)
- req.Header = headers
-
- client := &http.Client{}
- resp, err := client.Do(req)
- // ...
-}
-
-
-GET /api/users/{user}/boards
Get all boards attached to a user
-Parameters
-| Name | -In | -Type | -Required | -Description | -
|---|---|---|---|---|
| user | -path | -string | -true | -the ID of the user to retrieve the data | -
Detailed descriptions
-user: the ID of the user to retrieve the data
---Example responses
-
--200 Response
-
[
- {
- "_id": "string",
- "title": "string"
- }
-]
-
-Responses
-| Status | -Meaning | -Description | -Schema | -
|---|---|---|---|
| 200 | -OK | -200 response | -Inline | -
Response Schema
-Status Code 200
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| » _id | -string | -false | -none | -none | -
| » title | -string | -false | -none | -none | -
Checklists
get_all_checklists
@@ -9954,6 +7944,173 @@ System.out.println(response.toString()); To perform this operation, you must be authenticated by means of one of the following methods: UserSecurity +Boards
+exportJson
+ +++Code samples
+
# You can also use wget
+curl -X GET /api/boards/{board}/export \
+ -H 'Authorization: API_KEY'
+
+
+GET /api/boards/{board}/export HTTP/1.1
+
+
+var headers = {
+ 'Authorization':'API_KEY'
+
+};
+
+$.ajax({
+ url: '/api/boards/{board}/export',
+ method: 'get',
+
+ headers: headers,
+ success: function(data) {
+ console.log(JSON.stringify(data));
+ }
+})
+
+
+const fetch = require('node-fetch');
+
+const headers = {
+ 'Authorization':'API_KEY'
+
+};
+
+fetch('/api/boards/{board}/export',
+{
+ method: 'GET',
+
+ headers: headers
+})
+.then(function(res) {
+ return res.json();
+}).then(function(body) {
+ console.log(body);
+});
+
+
+require 'rest-client'
+require 'json'
+
+headers = {
+ 'Authorization' => 'API_KEY'
+}
+
+result = RestClient.get '/api/boards/{board}/export',
+ params: {
+ }, headers: headers
+
+p JSON.parse(result)
+
+
+import requests
+headers = {
+ 'Authorization': 'API_KEY'
+}
+
+r = requests.get('/api/boards/{board}/export', params={
+
+}, headers = headers)
+
+print r.json()
+
+
+URL obj = new URL("/api/boards/{board}/export");
+HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+con.setRequestMethod("GET");
+int responseCode = con.getResponseCode();
+BufferedReader in = new BufferedReader(
+ new InputStreamReader(con.getInputStream()));
+String inputLine;
+StringBuffer response = new StringBuffer();
+while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+}
+in.close();
+System.out.println(response.toString());
+
+
+package main
+
+import (
+ "bytes"
+ "net/http"
+)
+
+func main() {
+
+ headers := map[string][]string{
+ "Authorization": []string{"API_KEY"},
+
+ }
+
+ data := bytes.NewBuffer([]byte{jsonReq})
+ req, err := http.NewRequest("GET", "/api/boards/{board}/export", data)
+ req.Header = headers
+
+ client := &http.Client{}
+ resp, err := client.Do(req)
+ // ...
+}
+
+
+GET /api/boards/{board}/export
This route is used to export the board to a json file format.
+If user is already logged-in, pass loginToken as param +"authToken": '/api/boards/:boardId/export?authToken=:token'
+See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ +for detailed explanations
+Parameters
+| Name | +In | +Type | +Required | +Description | +
|---|---|---|---|---|
| board | +path | +string | +true | +the ID of the board we are exporting | +
Detailed descriptions
+board: the ID of the board we are exporting
+Responses
+| Status | +Meaning | +Description | +Schema | +
|---|---|---|---|
| 200 | +OK | +200 response | +None | +
Integrations
get_all_integrations
@@ -15135,676 +13292,6 @@ To perform this operation, you must be authenticated by means of one of the foll UserSecuritySchemas
-Boards
- -{
- "title": "string",
- "slug": "string",
- "archived": true,
- "createdAt": "string",
- "modifiedAt": "string",
- "stars": 0,
- "labels": [
- {
- "_id": "string",
- "name": "string",
- "color": "green"
- }
- ],
- "members": [
- {
- "userId": "string",
- "isAdmin": true,
- "isActive": true,
- "isNoComments": true,
- "isCommentOnly": true,
- "isWorker": true
- }
- ],
- "permission": "public",
- "color": "belize",
- "description": "string",
- "subtasksDefaultBoardId": "string",
- "subtasksDefaultListId": "string",
- "dateSettingsDefaultBoardId": "string",
- "dateSettingsDefaultListId": "string",
- "allowsSubtasks": true,
- "allowsAttachments": true,
- "allowsChecklists": true,
- "allowsComments": true,
- "allowsDescriptionTitle": true,
- "allowsDescriptionText": true,
- "allowsActivities": true,
- "allowsLabels": true,
- "allowsAssignee": true,
- "allowsMembers": true,
- "allowsRequestedBy": true,
- "allowsAssignedBy": true,
- "allowsReceivedDate": true,
- "allowsStartDate": true,
- "allowsEndDate": true,
- "allowsDueDate": true,
- "presentParentTask": "prefix-with-full-path",
- "startAt": "string",
- "dueAt": "string",
- "endAt": "string",
- "spentTime": 0,
- "isOvertime": true,
- "type": "string",
- "sort": 0
-}
-
-
-This is a Board.
-Properties
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| title | -string | -true | -none | -The title of the board | -
| slug | -string | -true | -none | -The title slugified. | -
| archived | -boolean | -true | -none | -Is the board archived? | -
| createdAt | -string | -true | -none | -Creation time of the board | -
| modifiedAt | -string|null | -false | -none | -Last modification time of the board | -
| stars | -number | -true | -none | -How many stars the board has | -
| labels | -[BoardsLabels] | -true | -none | -List of labels attached to a board | -
| members | -[BoardsMembers] | -true | -none | -List of members of a board | -
| permission | -string | -true | -none | -visibility of the board | -
| color | -string | -true | -none | -The color of the board. | -
| description | -string|null | -false | -none | -The description of the board | -
| subtasksDefaultBoardId | -string|null | -false | -none | -The default board ID assigned to subtasks. | -
| subtasksDefaultListId | -string|null | -false | -none | -The default List ID assigned to subtasks. | -
| dateSettingsDefaultBoardId | -string|null | -false | -none | -none | -
| dateSettingsDefaultListId | -string|null | -false | -none | -none | -
| allowsSubtasks | -boolean | -true | -none | -Does the board allows subtasks? | -
| allowsAttachments | -boolean | -true | -none | -Does the board allows attachments? | -
| allowsChecklists | -boolean | -true | -none | -Does the board allows checklists? | -
| allowsComments | -boolean | -true | -none | -Does the board allows comments? | -
| allowsDescriptionTitle | -boolean | -true | -none | -Does the board allows description title? | -
| allowsDescriptionText | -boolean | -true | -none | -Does the board allows description text? | -
| allowsActivities | -boolean | -true | -none | -Does the board allows comments? | -
| allowsLabels | -boolean | -true | -none | -Does the board allows labels? | -
| allowsAssignee | -boolean | -true | -none | -Does the board allows assignee? | -
| allowsMembers | -boolean | -true | -none | -Does the board allows members? | -
| allowsRequestedBy | -boolean | -true | -none | -Does the board allows requested by? | -
| allowsAssignedBy | -boolean | -true | -none | -Does the board allows requested by? | -
| allowsReceivedDate | -boolean | -true | -none | -Does the board allows received date? | -
| allowsStartDate | -boolean | -true | -none | -Does the board allows start date? | -
| allowsEndDate | -boolean | -true | -none | -Does the board allows end date? | -
| allowsDueDate | -boolean | -true | -none | -Does the board allows due date? | -
| presentParentTask | -string|null | -false | -none | -Controls how to present the parent task: - prefix-with-full-path: add a prefix with the full path - prefix-with-parent: add a prefisx with the parent name - subtext-with-full-path: add a subtext with the full path - subtext-with-parent: add a subtext with the parent name - no-parent: does not show the parent at all |
-
| startAt | -string|null | -false | -none | -Starting date of the board. | -
| dueAt | -string|null | -false | -none | -Due date of the board. | -
| endAt | -string|null | -false | -none | -End date of the board. | -
| spentTime | -number|null | -false | -none | -Time spent in the board. | -
| isOvertime | -boolean|null | -false | -none | -Is the board overtimed? | -
| type | -string | -true | -none | -The type of board | -
| sort | -number | -true | -none | -Sort value | -
Enumerated Values
-| Property | -Value | -
|---|---|
| permission | -public | -
| permission | -private | -
| color | -belize | -
| color | -nephritis | -
| color | -pomegranate | -
| color | -pumpkin | -
| color | -wisteria | -
| color | -moderatepink | -
| color | -strongcyan | -
| color | -limegreen | -
| color | -midnight | -
| color | -dark | -
| color | -relax | -
| color | -corteza | -
| color | -clearblue | -
| color | -natural | -
| color | -modern | -
| color | -moderndark | -
| presentParentTask | -prefix-with-full-path | -
| presentParentTask | -prefix-with-parent | -
| presentParentTask | -subtext-with-full-path | -
| presentParentTask | -subtext-with-parent | -
| presentParentTask | -no-parent | -
BoardsLabels
- -{
- "_id": "string",
- "name": "string",
- "color": "green"
-}
-
-
-Properties
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| _id | -string | -true | -none | -Unique id of a label | -
| name | -string | -false | -none | -Name of a label | -
| color | -string | -true | -none | -color of a label. Can be amongst green, yellow, orange, red, purple, blue, sky, lime, pink, black, silver, peachpuff, crimson, plum, darkgreen, slateblue, magenta, gold, navy, gray, saddlebrown, paleturquoise, mistyrose, indigo |
-
Enumerated Values
-| Property | -Value | -
|---|---|
| color | -green | -
| color | -yellow | -
| color | -orange | -
| color | -red | -
| color | -purple | -
| color | -blue | -
| color | -sky | -
| color | -lime | -
| color | -pink | -
| color | -black | -
| color | -silver | -
| color | -peachpuff | -
| color | -crimson | -
| color | -plum | -
| color | -darkgreen | -
| color | -slateblue | -
| color | -magenta | -
| color | -gold | -
| color | -navy | -
| color | -gray | -
| color | -saddlebrown | -
| color | -paleturquoise | -
| color | -mistyrose | -
| color | -indigo | -
BoardsMembers
- -{
- "userId": "string",
- "isAdmin": true,
- "isActive": true,
- "isNoComments": true,
- "isCommentOnly": true,
- "isWorker": true
-}
-
-
-Properties
-| Name | -Type | -Required | -Restrictions | -Description | -
|---|---|---|---|---|
| userId | -string | -true | -none | -The uniq ID of the member | -
| isAdmin | -boolean | -true | -none | -Is the member an admin of the board? | -
| isActive | -boolean | -true | -none | -Is the member active? | -
| isNoComments | -boolean | -false | -none | -Is the member not allowed to make comments | -
| isCommentOnly | -boolean | -false | -none | -Is the member only allowed to comment on the board | -
| isWorker | -boolean | -false | -none | -Is the member only allowed to move card, assign himself to card and comment | -
CardComments
{
diff --git a/public/api/wekan.yml b/public/api/wekan.yml
index 17f7674af..49ff25066 100644
--- a/public/api/wekan.yml
+++ b/public/api/wekan.yml
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
- version: v4.83
+ version: v4.84
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -134,198 +134,6 @@ paths:
description: |
Error in registration
- /api/boards:
- get:
- operationId: get_public_boards
- summary: Get all public boards
- tags:
- - Boards
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- type: array
- items:
- type: object
- properties:
- _id:
- type: string
- title:
- type: string
- post:
- operationId: new_board
- summary: Create a board
- description: |
- This allows to create a board.
-
- The color has to be chosen between `belize`, `nephritis`, `pomegranate`,
- `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`,
- `limegreen`, `midnight`, `dark`, `relax`, `corteza`:
-
-
- tags:
- - Boards
- consumes:
- - multipart/form-data
- - application/json
- parameters:
- - name: title
- in: formData
- description: |
- the new title of the board
- type: string
- required: true
- - name: owner
- in: formData
- description: |
- "ABCDE12345" <= User ID in Wekan.
- (Not username or email)
- type: string
- required: true
- - name: isAdmin
- in: formData
- description: |
- is the owner an admin of the board (default true)
- type: boolean
- required: false
- - name: isActive
- in: formData
- description: |
- is the board active (default true)
- type: boolean
- required: false
- - name: isNoComments
- in: formData
- description: |
- disable comments (default false)
- type: boolean
- required: false
- - name: isCommentOnly
- in: formData
- description: |
- only enable comments (default false)
- type: boolean
- required: false
- - name: isWorker
- in: formData
- description: |
- only move cards, assign himself to card and comment (default false)
- type: boolean
- required: false
- - name: permission
- in: formData
- description: |
- "private" board <== Set to "public" if you
- want public Wekan board
- type: string
- required: false
- - name: color
- in: formData
- description: |
- the color of the board
- type: string
- required: false
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- type: object
- properties:
- _id:
- type: string
- defaultSwimlaneId:
- type: string
- /api/boards/{board}:
- get:
- operationId: get_board
- summary: Get the board with that particular ID
- tags:
- - Boards
- parameters:
- - name: board
- in: path
- description: |
- the ID of the board to retrieve the data
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- $ref: "#/definitions/Boards"
- delete:
- operationId: delete_board
- summary: Delete a board
- tags:
- - Boards
- parameters:
- - name: board
- in: path
- description: |
- the ID of the board
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- /api/boards/{board}/attachments:
- get:
- operationId: get_board_attachments
- summary: Get the list of attachments of a board
- tags:
- - Boards
- parameters:
- - name: board
- in: path
- description: |
- the board ID
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- type: array
- items:
- type: object
- properties:
- attachmentId:
- type: string
- attachmentName:
- type: string
- attachmentType:
- type: string
- cardId:
- type: string
- listId:
- type: string
- swimlaneId:
- type: string
/api/boards/{board}/cards/{card}/checklists:
get:
operationId: get_all_checklists
@@ -1288,40 +1096,6 @@ paths:
200 response
schema:
$ref: "#/definitions/Integrations"
- /api/boards/{board}/labels:
- put:
- operationId: add_board_label
- summary: Add a label to a board
- description: |
- If the board doesn't have the name/color label, this function
- adds the label to the board.
- tags:
- - Boards
- consumes:
- - multipart/form-data
- - application/json
- parameters:
- - name: label
- in: formData
- description: the label value
- type: string
- required: true
- - name: board
- in: path
- description: |
- the board
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- type: string
/api/boards/{board}/lists:
get:
operationId: get_all_lists
@@ -1803,61 +1577,6 @@ paths:
properties:
_id:
type: string
- /api/boards/{board}/members/{member}:
- post:
- operationId: set_board_member_permission
- summary: Change the permission of a member of a board
- tags:
- - Boards
- - Users
- consumes:
- - multipart/form-data
- - application/json
- parameters:
- - name: isAdmin
- in: formData
- description: |
- admin capability
- type: boolean
- required: true
- - name: isNoComments
- in: formData
- description: |
- NoComments capability
- type: boolean
- required: true
- - name: isCommentOnly
- in: formData
- description: |
- CommentsOnly capability
- type: boolean
- required: true
- - name: isWorker
- in: formData
- description: |
- Worker capability
- type: boolean
- required: true
- - name: board
- in: path
- description: |
- the ID of the board that we are changing
- type: string
- required: true
- - name: member
- in: path
- description: |
- the ID of the user to change permissions
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
/api/boards/{board}/members/{user}/add:
post:
operationId: add_board_member
@@ -2314,349 +2033,7 @@ paths:
properties:
_id:
type: string
- /api/users/{user}/boards:
- get:
- operationId: get_boards_from_user
- summary: Get all boards attached to a user
- tags:
- - Boards
- parameters:
- - name: user
- in: path
- description: |
- the ID of the user to retrieve the data
- type: string
- required: true
- produces:
- - application/json
- security:
- - UserSecurity: []
- responses:
- '200':
- description: |-
- 200 response
- schema:
- type: array
- items:
- type: object
- properties:
- _id:
- type: string
- title:
- type: string
definitions:
- Boards:
- type: object
- description: This is a Board.
- properties:
- title:
- description: |
- The title of the board
- type: string
- slug:
- description: |
- The title slugified.
- type: string
- archived:
- description: |
- Is the board archived?
- type: boolean
- createdAt:
- description: |
- Creation time of the board
- type: string
- modifiedAt:
- description: |
- Last modification time of the board
- type: string
- x-nullable: true
- stars:
- description: |
- How many stars the board has
- type: number
- labels:
- description: |
- List of labels attached to a board
- type: array
- items:
- $ref: "#/definitions/BoardsLabels"
- members:
- description: |
- List of members of a board
- type: array
- items:
- $ref: "#/definitions/BoardsMembers"
- permission:
- description: |
- visibility of the board
- type: string
- enum:
- - public
- - private
- color:
- description: |
- The color of the board.
- type: string
- enum:
- - belize
- - nephritis
- - pomegranate
- - pumpkin
- - wisteria
- - moderatepink
- - strongcyan
- - limegreen
- - midnight
- - dark
- - relax
- - corteza
- - clearblue
- - natural
- - modern
- - moderndark
- description:
- description: |
- The description of the board
- type: string
- x-nullable: true
- subtasksDefaultBoardId:
- description: |
- The default board ID assigned to subtasks.
- type: string
- x-nullable: true
- subtasksDefaultListId:
- description: |
- The default List ID assigned to subtasks.
- type: string
- x-nullable: true
- dateSettingsDefaultBoardId:
- type: string
- x-nullable: true
- dateSettingsDefaultListId:
- type: string
- x-nullable: true
- allowsSubtasks:
- description: |
- Does the board allows subtasks?
- type: boolean
- allowsAttachments:
- description: |
- Does the board allows attachments?
- type: boolean
- allowsChecklists:
- description: |
- Does the board allows checklists?
- type: boolean
- allowsComments:
- description: |
- Does the board allows comments?
- type: boolean
- allowsDescriptionTitle:
- description: |
- Does the board allows description title?
- type: boolean
- allowsDescriptionText:
- description: |
- Does the board allows description text?
- type: boolean
- allowsActivities:
- description: |
- Does the board allows comments?
- type: boolean
- allowsLabels:
- description: |
- Does the board allows labels?
- type: boolean
- allowsAssignee:
- description: |
- Does the board allows assignee?
- type: boolean
- allowsMembers:
- description: |
- Does the board allows members?
- type: boolean
- allowsRequestedBy:
- description: |
- Does the board allows requested by?
- type: boolean
- allowsAssignedBy:
- description: |
- Does the board allows requested by?
- type: boolean
- allowsReceivedDate:
- description: |
- Does the board allows received date?
- type: boolean
- allowsStartDate:
- description: |
- Does the board allows start date?
- type: boolean
- allowsEndDate:
- description: |
- Does the board allows end date?
- type: boolean
- allowsDueDate:
- description: |
- Does the board allows due date?
- type: boolean
- presentParentTask:
- description: |
- Controls how to present the parent task:
-
- - `prefix-with-full-path`: add a prefix with the full path
- - `prefix-with-parent`: add a prefisx with the parent name
- - `subtext-with-full-path`: add a subtext with the full path
- - `subtext-with-parent`: add a subtext with the parent name
- - `no-parent`: does not show the parent at all
- type: string
- enum:
- - prefix-with-full-path
- - prefix-with-parent
- - subtext-with-full-path
- - subtext-with-parent
- - no-parent
- x-nullable: true
- startAt:
- description: |
- Starting date of the board.
- type: string
- x-nullable: true
- dueAt:
- description: |
- Due date of the board.
- type: string
- x-nullable: true
- endAt:
- description: |
- End date of the board.
- type: string
- x-nullable: true
- spentTime:
- description: |
- Time spent in the board.
- type: number
- x-nullable: true
- isOvertime:
- description: |
- Is the board overtimed?
- type: boolean
- x-nullable: true
- type:
- description: |
- The type of board
- type: string
- sort:
- description: |
- Sort value
- type: number
- required:
- - title
- - slug
- - archived
- - createdAt
- - stars
- - labels
- - members
- - permission
- - color
- - allowsSubtasks
- - allowsAttachments
- - allowsChecklists
- - allowsComments
- - allowsDescriptionTitle
- - allowsDescriptionText
- - allowsActivities
- - allowsLabels
- - allowsAssignee
- - allowsMembers
- - allowsRequestedBy
- - allowsAssignedBy
- - allowsReceivedDate
- - allowsStartDate
- - allowsEndDate
- - allowsDueDate
- - type
- - sort
- BoardsLabels:
- type: object
- properties:
- _id:
- description: |
- Unique id of a label
- type: string
- name:
- description: |
- Name of a label
- type: string
- color:
- description: |
- color of a label.
-
- Can be amongst `green`, `yellow`, `orange`, `red`, `purple`,
- `blue`, `sky`, `lime`, `pink`, `black`,
- `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`,
- `slateblue`, `magenta`, `gold`, `navy`, `gray`,
- `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`
- type: string
- enum:
- - green
- - yellow
- - orange
- - red
- - purple
- - blue
- - sky
- - lime
- - pink
- - black
- - silver
- - peachpuff
- - crimson
- - plum
- - darkgreen
- - slateblue
- - magenta
- - gold
- - navy
- - gray
- - saddlebrown
- - paleturquoise
- - mistyrose
- - indigo
- required:
- - _id
- - color
- BoardsMembers:
- type: object
- properties:
- userId:
- description: |
- The uniq ID of the member
- type: string
- isAdmin:
- description: |
- Is the member an admin of the board?
- type: boolean
- isActive:
- description: |
- Is the member active?
- type: boolean
- isNoComments:
- description: |
- Is the member not allowed to make comments
- type: boolean
- isCommentOnly:
- description: |
- Is the member only allowed to comment on the board
- type: boolean
- isWorker:
- description: |
- Is the member only allowed to move card, assign himself to card and comment
- type: boolean
- required:
- - userId
- - isAdmin
- - isActive
CardComments:
type: object
description: A comment on a card
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index f77695437..34e7b3619 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
- appVersion = 483,
+ appVersion = 484,
# Increment this for every release.
- appMarketingVersion = (defaultText = "4.83.0~2021-01-20"),
+ appMarketingVersion = (defaultText = "4.84.0~2021-01-22"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,