Lauri Ojansivu 4 years ago
parent
commit
ff4f5e6c04
7 changed files with 11 additions and 3457 deletions
  1. 4 1
      CHANGELOG.md
  2. 1 1
      Stackerfile.yml
  3. 1 1
      package-lock.json
  4. 1 1
      package.json
  5. 1 1
      public/api/wekan.html
  6. 1 3450
      public/api/wekan.yml
  7. 2 2
      sandstorm-pkgdef.capnp

+ 4 - 1
CHANGELOG.md

@@ -1,4 +1,4 @@
-# Upcoming Wekan release
+# v5.04 2021-03-07 Wekan release
 
 This release adds the following speed improvements:
 
@@ -12,6 +12,9 @@ and adds the following new features:
   Thanks to chrisi51.
 - [Add custom field editing to the REST API](https://github.com/wekan/wekan/pull/3593).
   Thanks to dudeofawesome.
+- [Related to custom field editing, Fixed generating API docs and Wekan Custom Fields
+  REST API](https://github.com/wekan/wekan/commit/0bb3b670753c6ba20b0ad63f63d273036f609ee5).
+  Thanks to xet7.
 
 and adds back the following platforms:
 

+ 1 - 1
Stackerfile.yml

@@ -1,5 +1,5 @@
 appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v5.03.0"
+appVersion: "v5.04.0"
 files:
   userUploads:
     - README.md

+ 1 - 1
package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v5.03.0",
+  "version": "v5.04.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v5.03.0",
+  "version": "v5.04.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

File diff suppressed because it is too large
+ 1 - 1
public/api/wekan.html


+ 1 - 3450
public/api/wekan.yml

@@ -1,7 +1,7 @@
 swagger: '2.0'
 info:
   title: Wekan REST API
-  version: v5.03
+  version: v5.04
   description: |
     The REST API allows you to control and extend Wekan with ease.
 
@@ -134,3453 +134,4 @@ 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`:
-
-         <img src="https://wekan.github.io/board-colors.png" width="40%" alt="Wekan logo" />
-      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
-      summary: Get the list of checklists attached to a card
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          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
-    post:
-      operationId: new_checklist
-      summary: create a new checklist
-      tags:
-        - Checklists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the title of the new checklist
-          type: string
-          required: true
-        - name: items
-          in: formData
-          description: |
-            the list of items on the new checklist
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/checklists/{checklist}:
-    get:
-      operationId: get_checklist
-      summary: Get a checklist
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the ID of the checklist
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              cardId:
-                type: string
-              title:
-                type: string
-              finishedAt:
-                type: string
-              createdAt:
-                type: string
-              sort:
-                type: number
-              items:
-                type: array
-                items:
-                  type: object
-                  properties:
-                    _id:
-                      type: string
-                    title:
-                      type: string
-                    isFinished:
-                      type: boolean
-    delete:
-      operationId: delete_checklist
-      summary: Delete a checklist
-      description: |
-        The checklist will be removed, not put in the recycle bin.
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the ID of the checklist to remove
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}:
-    get:
-      operationId: get_checklist_item
-      summary: Get a checklist item
-      tags:
-        - ChecklistItems
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/ChecklistItems"
-    put:
-      operationId: edit_checklist_item
-      summary: Edit a checklist item
-      tags:
-        - ChecklistItems
-        - Checklists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: isFinished
-          in: formData
-          description: |
-            is the item checked?
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            the new text of the item
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_checklist_item
-      summary: Delete a checklist item
-      description: |
-        Note: this operation can't be reverted.
-      tags:
-        - ChecklistItems
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item to be removed
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/comments:
-    get:
-      operationId: get_all_comments
-      summary: Get all comments attached to a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                comment:
-                  type: string
-                authorId:
-                  type: string
-    post:
-      operationId: new_comment
-      summary: Add a comment on a card
-      tags:
-        - CardComments
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: authorId
-          in: formData
-          description: |
-            the user who 'posted' the comment
-          type: string
-          required: true
-        - name: comment
-          in: formData
-          description: the comment value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/comments/{comment}:
-    get:
-      operationId: get_comment
-      summary: Get a comment on a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-        - name: comment
-          in: path
-          description: |
-            the ID of the comment to retrieve
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/CardComments"
-    delete:
-      operationId: delete_comment
-      summary: Delete a comment on a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-        - name: comment
-          in: path
-          description: |
-            the ID of the comment to delete
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}:
-    get:
-      operationId: get_cards_by_custom_field
-      summary: Get all Cards that matchs a value of a specific custom field
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the list ID
-          type: string
-          required: true
-        - name: customFieldValue
-          in: path
-          description: |
-            the value to look for
-          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
-                description:
-                  type: string
-                listId:
-                  type: string
-                swinlaneId:
-                  type: string
-  /api/boards/{board}/custom-fields:
-    get:
-      operationId: get_all_custom_fields
-      summary: Get the list of Custom Fields attached to a board
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                name:
-                  type: string
-                type:
-                  type: string
-    post:
-      operationId: new_custom_field
-      summary: Create a Custom Field
-      tags:
-        - CustomFields
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: name
-          in: formData
-          description: |
-            the name of the custom field
-          type: string
-          required: true
-        - name: type
-          in: formData
-          description: |
-            the type of the custom field
-          type: string
-          required: true
-        - name: settings
-          in: formData
-          description: |
-            the settings object of the custom field
-          type: string
-          required: true
-        - name: showOnCard
-          in: formData
-          description: |
-            should we show the custom field on cards?
-          type: boolean
-          required: true
-        - name: automaticallyOnCard
-          in: formData
-          description: |
-            should the custom fields automatically be added on cards?
-          type: boolean
-          required: true
-        - name: showLabelOnMiniCard
-          in: formData
-          description: |
-            should the label of the custom field be shown on minicards?
-          type: boolean
-          required: true
-        - name: authorId
-          in: formData
-          description: the authorId value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/custom-fields/{customField}:
-    get:
-      operationId: get_custom_field
-      summary: Get a Custom Fields attached to a board
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the ID of the custom field
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/CustomFields"
-    delete:
-      operationId: delete_custom_field
-      summary: Delete a Custom Fields attached to a board
-      description: |
-        The Custom Field can't be retrieved after this operation
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the ID of the custom field
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/export:
-    get:
-      operationId: exportJson
-      summary: This route is used to export the board to a json file format.
-      description: |
-        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
-      tags:
-        - Boards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board we are exporting
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-  /api/boards/{board}/integrations:
-    get:
-      operationId: get_all_integrations
-      summary: Get all integrations in board
-      tags:
-        - Integrations
-      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:
-              $ref: "#/definitions/Integrations"
-    post:
-      operationId: new_integration
-      summary: Create a new integration
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: url
-          in: formData
-          description: |
-            the URL of the integration
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/integrations/{int}:
-    get:
-      operationId: get_integration
-      summary: Get a single integration in board
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Integrations"
-    put:
-      operationId: edit_integration
-      summary: Edit integration data
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: enabled
-          in: formData
-          description: |
-            is the integration enabled?
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            new name of the integration
-          type: string
-          required: false
-        - name: url
-          in: formData
-          description: |
-            new URL of the integration
-          type: string
-          required: false
-        - name: token
-          in: formData
-          description: |
-            new token of the integration
-          type: string
-          required: false
-        - name: activities
-          in: formData
-          description: |
-            new list of activities of the integration
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_integration
-      summary: Delete integration
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/integrations/{int}/activities:
-    delete:
-      operationId: delete_integration_activities
-      summary: Delete subscribed activities
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Integrations"
-    post:
-      operationId: new_integration_activities
-      summary: Add subscribed activities
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: activities
-          in: formData
-          description: the activities value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            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
-      summary: Get the list of Lists attached to a board
-      tags:
-        - Lists
-      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:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_list
-      summary: Add a List to a board
-      tags:
-        - Lists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the title of the List
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}:
-    get:
-      operationId: get_list
-      summary: Get a List attached to a board
-      tags:
-        - Lists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the List ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Lists"
-    delete:
-      operationId: delete_list
-      summary: Delete a List
-      description: |
-        This **deletes** a list from a board.
-         The list is not put in the recycle bin.
-      tags:
-        - Lists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the ID of the list to remove
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}/cards:
-    get:
-      operationId: get_all_cards
-      summary: Get all Cards attached to a List
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID
-          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
-                description:
-                  type: string
-    post:
-      operationId: new_card
-      summary: Create a new Card
-      tags:
-        - Cards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: authorId
-          in: formData
-          description: the authorId value
-          type: string
-          required: true
-        - name: members
-          in: formData
-          description: |
-            the member IDs list of the new card
-          type: string
-          required: false
-        - name: assignees
-          in: formData
-          description: |
-            the array of maximum one ID of assignee of the new card
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            the title of the new card
-          type: string
-          required: true
-        - name: description
-          in: formData
-          description: |
-            the description of the new card
-          type: string
-          required: true
-        - name: swimlaneId
-          in: formData
-          description: |
-            the swimlane ID of the new card
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID of the new card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the new card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}/cards/{card}:
-    get:
-      operationId: get_card
-      summary: Get a Card
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Cards"
-    put:
-      operationId: edit_card
-      summary: Edit Fields in a Card
-      description: |
-        Edit a card
-
-         The color has to be chosen between `white`, `green`, `yellow`, `orange`,
-         `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`,
-         `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`,
-         `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`,
-         `indigo`:
-
-         <img src="/card-colors.png" width="40%" alt="Wekan card colors" />
-
-         Note: setting the color to white has the same effect than removing it.
-      tags:
-        - Cards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the new title of the card
-          type: string
-          required: false
-        - name: sort
-          in: formData
-          description: |
-            the new sort value of the card
-          type: string
-          required: false
-        - name: parentId
-          in: formData
-          description: |
-            change the parent of the card
-          type: string
-          required: false
-        - name: description
-          in: formData
-          description: |
-            the new description of the card
-          type: string
-          required: false
-        - name: color
-          in: formData
-          description: |
-            the new color of the card
-          type: string
-          required: false
-        - name: vote
-          in: formData
-          description: |
-            the vote object
-          type: object
-          required: false
-        - name: labelIds
-          in: formData
-          description: |
-            the new list of label IDs attached to the card
-          type: string
-          required: false
-        - name: requestedBy
-          in: formData
-          description: |
-            the new requestedBy field of the card
-          type: string
-          required: false
-        - name: assignedBy
-          in: formData
-          description: |
-            the new assignedBy field of the card
-          type: string
-          required: false
-        - name: receivedAt
-          in: formData
-          description: |
-            the new receivedAt field of the card
-          type: string
-          required: false
-        - name: startAt
-          in: formData
-          description: |
-            the new startAt field of the card
-          type: string
-          required: false
-        - name: dueAt
-          in: formData
-          description: |
-            the new dueAt field of the card
-          type: string
-          required: false
-        - name: endAt
-          in: formData
-          description: |
-            the new endAt field of the card
-          type: string
-          required: false
-        - name: spentTime
-          in: formData
-          description: |
-            the new spentTime field of the card
-          type: string
-          required: false
-        - name: isOverTime
-          in: formData
-          description: |
-            the new isOverTime field of the card
-          type: boolean
-          required: false
-        - name: customFields
-          in: formData
-          description: |
-            the new customFields value of the card
-          type: string
-          required: false
-        - name: members
-          in: formData
-          description: |
-            the new list of member IDs attached to the card
-          type: string
-          required: false
-        - name: assignees
-          in: formData
-          description: |
-            the array of maximum one ID of assignee attached to the card
-          type: string
-          required: false
-        - name: swimlaneId
-          in: formData
-          description: |
-            the new swimlane ID of the card
-          type: string
-          required: false
-        - name: listId
-          in: formData
-          description: |
-            the new list ID of the card (move operation)
-          type: string
-          required: false
-        - name: authorId
-          in: formData
-          description: |
-            change the owner of the card
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_card
-      summary: Delete a card from a board
-      description: |
-        This operation **deletes** a card, and therefore the card
-         is not put in the recycle bin.
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            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
-      summary: Add New Board Member with Role
-      description: |
-        Only the admin user (the first user) can call the REST API.
-
-         **Note**: see [Boards.set_board_member_permission](#set_board_member_permission)
-         to later change the permissions.
-      tags:
-        - Users
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: the action value
-          type: string
-          required: true
-        - name: isAdmin
-          in: formData
-          description: |
-            is the user an admin of the board
-          type: boolean
-          required: true
-        - name: isNoComments
-          in: formData
-          description: |
-            disable comments
-          type: boolean
-          required: true
-        - name: isCommentOnly
-          in: formData
-          description: |
-            only enable comments
-          type: boolean
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-  /api/boards/{board}/members/{user}/remove:
-    post:
-      operationId: remove_board_member
-      summary: Remove Member from Board
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: |
-            the action (needs to be `remove`)
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-  /api/boards/{board}/swimlanes:
-    get:
-      operationId: get_all_swimlanes
-      summary: Get the list of swimlanes attached to a board
-      tags:
-        - Swimlanes
-      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
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_swimlane
-      summary: Add a swimlane to a board
-      tags:
-        - Swimlanes
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the new title of the swimlane
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/swimlanes/{swimlane}:
-    get:
-      operationId: get_swimlane
-      summary: Get a swimlane
-      tags:
-        - Swimlanes
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the ID of the swimlane
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Swimlanes"
-    delete:
-      operationId: delete_swimlane
-      summary: Delete a swimlane
-      description: |
-        The swimlane will be deleted, not moved to the recycle bin
-      tags:
-        - Swimlanes
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the ID of the swimlane
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/swimlanes/{swimlane}/cards:
-    get:
-      operationId: get_swimlane_cards
-      summary: get all cards attached to a swimlane
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the swimlane ID
-          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
-                description:
-                  type: string
-                listId:
-                  type: string
-  /api/boards_count:
-    get:
-      operationId: get_boards_count
-      summary: Get public and private boards count
-      tags:
-        - Boards
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              private:
-                type: integer
-              public:
-                type: integer
-  /api/createtoken/{user}:
-    post:
-      operationId: create_user_token
-      summary: Create a user token
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the ID of the user to create token for.
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/user:
-    get:
-      operationId: get_current_user
-      summary: returns the current user
-      tags:
-        - Users
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Users"
-  /api/users:
-    get:
-      operationId: get_all_users
-      summary: return all the users
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                username:
-                  type: string
-    post:
-      operationId: new_user
-      summary: Create a new user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: username
-          in: formData
-          description: |
-            the new username
-          type: string
-          required: true
-        - name: email
-          in: formData
-          description: |
-            the email of the new user
-          type: string
-          required: true
-        - name: password
-          in: formData
-          description: |
-            the password of the new user
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/users/{user}:
-    get:
-      operationId: get_user
-      summary: get a given user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the user ID or username
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Users"
-    put:
-      operationId: edit_user
-      summary: edit a given user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-
-         Possible values for *action*:
-         - `takeOwnership`: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on.
-         - `disableLogin`: Disable a user (the user is not allowed to login and his login tokens are purged)
-         - `enableLogin`: Enable a user
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: |
-            the action
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-    delete:
-      operationId: delete_user
-      summary: Delete a user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the ID of the user to delete
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            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
-      archivedAt:
-        description: |
-           Latest archiving time of the board
-        type: string
-        x-nullable: true
-      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
-    properties:
-      boardId:
-        description: |
-           the board ID
-        type: string
-      cardId:
-        description: |
-           the card ID
-        type: string
-      text:
-        description: |
-           the text of the comment
-        type: string
-      createdAt:
-        description: |
-           when was the comment created
-        type: string
-      modifiedAt:
-        type: string
-      userId:
-        description: |
-           the author ID of the comment
-        type: string
-    required:
-      - boardId
-      - cardId
-      - text
-      - createdAt
-      - modifiedAt
-      - userId
-  Cards:
-    type: object
-    properties:
-      title:
-        description: |
-           the title of the card
-        type: string
-        x-nullable: true
-      archived:
-        description: |
-           is the card archived
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date
-        type: string
-        x-nullable: true
-      parentId:
-        description: |
-           ID of the parent card
-        type: string
-        x-nullable: true
-      listId:
-        description: |
-           List ID where the card is
-        type: string
-        x-nullable: true
-      swimlaneId:
-        description: |
-           Swimlane ID where the card is
-        type: string
-      boardId:
-        description: |
-           Board ID of the card
-        type: string
-        x-nullable: true
-      coverId:
-        description: |
-           Cover ID of the card
-        type: string
-        x-nullable: true
-      color:
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - silver
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      createdAt:
-        description: |
-           creation date
-        type: string
-      modifiedAt:
-        type: string
-      customFields:
-        description: |
-           list of custom fields
-        type: array
-        items:
-          $ref: "#/definitions/CardsCustomfields"
-        x-nullable: true
-      dateLastActivity:
-        description: |
-           Date of last activity
-        type: string
-      description:
-        description: |
-           description of the card
-        type: string
-        x-nullable: true
-      requestedBy:
-        description: |
-           who requested the card (ID of the user)
-        type: string
-        x-nullable: true
-      assignedBy:
-        description: |
-           who assigned the card (ID of the user)
-        type: string
-        x-nullable: true
-      labelIds:
-        description: |
-           list of labels ID the card has
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      members:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      assignees:
-        description: |
-           who is assignee of the card (user ID),
-           maximum one ID of assignee in array.
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      receivedAt:
-        description: |
-           Date the card was received
-        type: string
-        x-nullable: true
-      startAt:
-        description: |
-           Date the card was started to be worked on
-        type: string
-        x-nullable: true
-      dueAt:
-        description: |
-           Date the card is due
-        type: string
-        x-nullable: true
-      endAt:
-        description: |
-           Date the card ended
-        type: string
-        x-nullable: true
-      spentTime:
-        description: |
-           How much time has been spent on this
-        type: number
-        x-nullable: true
-      isOvertime:
-        description: |
-           is the card over time?
-        type: boolean
-        x-nullable: true
-      userId:
-        description: |
-           user ID of the author of the card
-        type: string
-      sort:
-        description: |
-           Sort value
-        type: number
-      subtaskSort:
-        description: |
-           subtask sort value
-        type: number
-        x-nullable: true
-      type:
-        description: |
-           type of the card
-        type: string
-      linkedId:
-        description: |
-           ID of the linked card
-        type: string
-        x-nullable: true
-      vote:
-        description: |
-           vote object, see below
-        $ref: "#/definitions/CardsVote"
-        x-nullable: true
-    required:
-      - archived
-      - swimlaneId
-      - createdAt
-      - modifiedAt
-      - dateLastActivity
-      - userId
-      - sort
-      - type
-  CardsVote:
-    type: object
-    properties:
-      question:
-        type: string
-      positive:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      negative:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      end:
-        type: string
-      public:
-        type: boolean
-      allowNonBoardMembers:
-        type: boolean
-    required:
-      - question
-      - public
-      - allowNonBoardMembers
-  CardsCustomfields:
-    type: object
-  ChecklistItems:
-    type: object
-    description:  An item in a checklist
-    properties:
-      title:
-        description: |
-           the text of the item
-        type: string
-      sort:
-        description: |
-           the sorting field of the item
-        type: number
-      isFinished:
-        description: |
-           Is the item checked?
-        type: boolean
-      checklistId:
-        description: |
-           the checklist ID the item is attached to
-        type: string
-      cardId:
-        description: |
-           the card ID the item is attached to
-        type: string
-      createdAt:
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-    required:
-      - title
-      - sort
-      - isFinished
-      - checklistId
-      - cardId
-      - modifiedAt
-  Checklists:
-    type: object
-    description:  A Checklist
-    properties:
-      cardId:
-        description: |
-           The ID of the card the checklist is in
-        type: string
-      title:
-        description: |
-           the title of the checklist
-        type: string
-      finishedAt:
-        description: |
-           When was the checklist finished
-        type: string
-        x-nullable: true
-      createdAt:
-        description: |
-           Creation date of the checklist
-        type: string
-      modifiedAt:
-        type: string
-      sort:
-        description: |
-           sorting value of the checklist
-        type: number
-    required:
-      - cardId
-      - title
-      - createdAt
-      - modifiedAt
-      - sort
-  CustomFields:
-    type: object
-    description:  A custom field on a card in the board
-    properties:
-      boardIds:
-        description: |
-           the ID of the board
-        type: array
-        items:
-          type: string
-      name:
-        description: |
-           name of the custom field
-        type: string
-      type:
-        description: |
-           type of the custom field
-        type: string
-        enum:
-          - text
-          - number
-          - date
-          - dropdown
-          - checkbox
-          - currency
-      settings:
-        description: |
-           settings of the custom field
-        $ref: "#/definitions/CustomFieldsSettings"
-      showOnCard:
-        description: |
-           should we show on the cards this custom field
-        type: boolean
-      automaticallyOnCard:
-        description: |
-           should the custom fields automatically be added on cards?
-        type: boolean
-      alwaysOnCard:
-        description: |
-           should the custom field be automatically added to all cards?
-        type: boolean
-      showLabelOnMiniCard:
-        description: |
-           should the label of the custom field be shown on minicards?
-        type: boolean
-      createdAt:
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-    required:
-      - boardIds
-      - name
-      - type
-      - settings
-      - showOnCard
-      - automaticallyOnCard
-      - alwaysOnCard
-      - showLabelOnMiniCard
-      - modifiedAt
-  CustomFieldsSettings:
-    type: object
-    properties:
-      currencyCode:
-        type: string
-      dropdownItems:
-        description: |
-           list of drop down items objects
-        type: array
-        items:
-          $ref: "#/definitions/CustomFieldsSettingsDropdownitems"
-  CustomFieldsSettingsDropdownitems:
-    type: object
-  Integrations:
-    type: object
-    description:  Integration with third-party applications
-    properties:
-      enabled:
-        description: |
-           is the integration enabled?
-        type: boolean
-      title:
-        description: |
-           name of the integration
-        type: string
-        x-nullable: true
-      type:
-        description: |
-           type of the integratation (Default to 'outgoing-webhooks')
-        type: string
-      activities:
-        description: |
-           activities the integration gets triggered (list)
-        type: array
-        items:
-          type: string
-      url:
-        type: string
-      token:
-        description: |
-           token of the integration
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           Board ID of the integration
-        type: string
-      createdAt:
-        description: |
-           Creation date of the integration
-        type: string
-      modifiedAt:
-        type: string
-      userId:
-        description: |
-           user ID who created the interation
-        type: string
-    required:
-      - enabled
-      - type
-      - activities
-      - url
-      - boardId
-      - createdAt
-      - modifiedAt
-      - userId
-  Lists:
-    type: object
-    description:  A list (column) in the Wekan board.
-    properties:
-      title:
-        description: |
-           the title of the list
-        type: string
-      starred:
-        description: |
-           if a list is stared
-           then we put it on the top
-        type: boolean
-        x-nullable: true
-      archived:
-        description: |
-           is the list archived
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           the board associated to this list
-        type: string
-      swimlaneId:
-        description: |
-           the swimlane associated to this list. Used for templates
-        type: string
-      createdAt:
-        description: |
-           creation date
-        type: string
-      sort:
-        description: |
-           is the list sorted
-        type: number
-        x-nullable: true
-      updatedAt:
-        description: |
-           last update of the list
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-      wipLimit:
-        description: |
-           WIP object, see below
-        $ref: "#/definitions/ListsWiplimit"
-        x-nullable: true
-      color:
-        description: |
-           the color of the list
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      type:
-        description: |
-           The type of list
-        type: string
-    required:
-      - title
-      - archived
-      - boardId
-      - swimlaneId
-      - createdAt
-      - modifiedAt
-      - type
-  ListsWiplimit:
-    type: object
-    properties:
-      value:
-        description: |
-           value of the WIP
-        type: number
-      enabled:
-        description: |
-           is the WIP enabled
-        type: boolean
-      soft:
-        description: |
-           is the WIP a soft or hard requirement
-        type: boolean
-    required:
-      - value
-      - enabled
-      - soft
-  Swimlanes:
-    type: object
-    description:  A swimlane is an line in the kaban board.
-    properties:
-      title:
-        description: |
-           the title of the swimlane
-        type: string
-      archived:
-        description: |
-           is the swimlane archived?
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date of the swimlane
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           the ID of the board the swimlane is attached to
-        type: string
-      createdAt:
-        description: |
-           creation date of the swimlane
-        type: string
-      sort:
-        description: |
-           the sort value of the swimlane
-        type: number
-        x-nullable: true
-      color:
-        description: |
-           the color of the swimlane
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      updatedAt:
-        description: |
-           when was the swimlane last edited
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-      type:
-        description: |
-           The type of swimlane
-        type: string
-    required:
-      - title
-      - archived
-      - boardId
-      - createdAt
-      - modifiedAt
-      - type
-  Users:
-    type: object
-    description:  A User in wekan
-    properties:
-      username:
-        description: |
-           the username of the user
-        type: string
-        x-nullable: true
-      emails:
-        description: |
-           the list of emails attached to a user
-        type: array
-        items:
-          $ref: "#/definitions/UsersEmails"
-        x-nullable: true
-      createdAt:
-        description: |
-           creation date of the user
-        type: string
-      modifiedAt:
-        type: string
-      profile:
-        description: |
-           profile settings
-        $ref: "#/definitions/UsersProfile"
-        x-nullable: true
-      services:
-        description: |
-           services field of the user
-        type: object
-        x-nullable: true
-      heartbeat:
-        description: |
-           last time the user has been seen
-        type: string
-        x-nullable: true
-      isAdmin:
-        description: |
-           is the user an admin of the board?
-        type: boolean
-        x-nullable: true
-      createdThroughApi:
-        description: |
-           was the user created through the API?
-        type: boolean
-        x-nullable: true
-      loginDisabled:
-        description: |
-           loginDisabled field of the user
-        type: boolean
-        x-nullable: true
-      authenticationMethod:
-        description: |
-           authentication method of the user
-        type: string
-      sessionData:
-        description: |
-           profile settings
-        $ref: "#/definitions/UsersSessiondata"
-        x-nullable: true
-      importUsernames:
-        description: |
-           username for imported
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-    required:
-      - createdAt
-      - modifiedAt
-      - authenticationMethod
-  UsersEmails:
-    type: object
-    properties:
-      address:
-        description: |
-           The email address
-        type: string
-      verified:
-        description: |
-           Has the email been verified
-        type: boolean
-    required:
-      - address
-      - verified
-  UsersProfile:
-    type: object
-    properties:
-      avatarUrl:
-        description: |
-           URL of the avatar of the user
-        type: string
-      emailBuffer:
-        description: |
-           list of email buffers of the user
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      fullname:
-        description: |
-           full name of the user
-        type: string
-      showDesktopDragHandles:
-        description: |
-           does the user want to hide system messages?
-        type: boolean
-      hideCheckedItems:
-        description: |
-           does the user want to hide checked checklist items?
-        type: boolean
-      hiddenSystemMessages:
-        description: |
-           does the user want to hide system messages?
-        type: boolean
-      hiddenMinicardLabelText:
-        description: |
-           does the user want to hide minicard label texts?
-        type: boolean
-      initials:
-        description: |
-           initials of the user
-        type: string
-      invitedBoards:
-        description: |
-           board IDs the user has been invited to
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      language:
-        description: |
-           language of the user
-        type: string
-      notifications:
-        description: |
-           enabled notifications for the user
-        type: array
-        items:
-          $ref: "#/definitions/UsersProfileNotifications"
-      activity:
-        description: |
-           The id of the activity this notification references
-        type: string
-      read:
-        description: |
-           the date on which this notification was read
-        type: string
-      showCardsCountAt:
-        description: |
-           showCardCountAt field of the user
-        type: number
-      startDayOfWeek:
-        description: |
-           startDayOfWeek field of the user
-        type: number
-      starredBoards:
-        description: |
-           list of starred board IDs
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      icode:
-        description: |
-           icode
-        type: string
-      boardView:
-        description: |
-           boardView field of the user
-        type: string
-        enum:
-          - board-view-swimlanes
-          - board-view-lists
-          - board-view-cal
-      listSortBy:
-        description: |
-           default sort list for user
-        type: string
-        enum:
-          - -modifiedat
-          - modifiedat
-          - -title
-          - title
-          - -sort
-          - sort
-      templatesBoardId:
-        description: |
-           Reference to the templates board
-        type: string
-      cardTemplatesSwimlaneId:
-        description: |
-           Reference to the card templates swimlane Id
-        type: string
-      listTemplatesSwimlaneId:
-        description: |
-           Reference to the list templates swimlane Id
-        type: string
-      boardTemplatesSwimlaneId:
-        description: |
-           Reference to the board templates swimlane Id
-        type: string
-    required:
-      - activity
-      - templatesBoardId
-      - cardTemplatesSwimlaneId
-      - listTemplatesSwimlaneId
-      - boardTemplatesSwimlaneId
-  UsersSessiondata:
-    type: object
-    properties:
-      totalHits:
-        description: |
-           Total hits from last search
-        type: number
-      lastHit:
-        description: |
-           last hit that was returned
-        type: number

+ 2 - 2
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 = 503,
+    appVersion = 504,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "5.03.0~2021-03-03"),
+    appMarketingVersion = (defaultText = "5.04.0~2021-03-07"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

Some files were not shown because too many files changed in this diff