Bump versions for v9.42

This commit is contained in:
github-actions[bot] committed 2026-06-13 14:38:34 +00:00
1 parent cb43837c32
commit 967b8482d3
9 files changed
+99 -16

No files matched your search

+1 -1
View File
@@ -7,7 +7,7 @@ LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
# TARGETARCH and TARGETVARIANT are automatically provided by Docker Buildx
ARG TARGETARCH
ARG TARGETVARIANT
ARG VERSION=9.41
ARG VERSION=9.42
ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils gnupg wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3 unzip"
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v9.41.0"
appVersion: "v9.42.0"
files:
userUploads:
- README.md
+2 -2
View File
@@ -10,7 +10,7 @@ This is without container (without Docker or Snap).
Right click and download files 1-4:
1. [wekan-9.41-win64.zip](https://github.com/wekan/wekan/releases/download/v9.41/wekan-9.41-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
1. [wekan-9.42-win64.zip](https://github.com/wekan/wekan/releases/download/v9.42/wekan-9.42-win64.zip) or newest available at https://github.com/wekan/wekan/releases/
2. [node.exe](https://nodejs.org/dist/latest-v24.x/win-x64/node.exe)
@@ -22,7 +22,7 @@ Right click and download files 1-4:
6. Double click `mongodb-windows-x86_64-7.0.34-signed.msi` . In installer, uncheck downloading MongoDB compass.
7. Unzip `wekan-9.41-win64.zip` , inside it is directory `bundle`, to it copy other files:
7. Unzip `wekan-9.42-win64.zip` , inside it is directory `bundle`, to it copy other files:
```
bundle (directory)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v9.41.0",
"version": "v9.42.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v9.41.0",
"version": "v9.42.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+3 -3
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="utf8" />
<title>WeKan REST API v9.41</title>
<title>WeKan REST API v9.42</title>
<!-- needed for adaptive design -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
@@ -423,7 +423,7 @@ data-styled.g139[id="sc-iIvZUO"]{content:"kAmnlO,"}/*!sc*/
55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
-231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
-104.0616 -231.873,-231.248 z
" fill="currentColor"></path></g></svg></div></div><div class="sc-jtyQFi ldXCvc api-content"><div class="sc-eCQgVK jleRXN"><div class="sc-iCECmn lhRBUS"><div class="sc-hKVpXn kktglN api-info"><h1 class="sc-fuztkK sc-ctiVdb eRMVDe cBgvIi">Wekan REST API<!-- --> <span>(<!-- -->v9.41<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:</p><div class="sc-iJSMbW sc-cBEgGa fiNpIH ewCFMV"></div><div data-role="redoc-summary" html="" class="sc-iJSMbW sc-cBEgGa fiNpIH ewCFMV"></div><div data-role="redoc-description" html="&lt;p&gt;The REST API allows you to control and extend Wekan with ease.&lt;/p&gt;
" fill="currentColor"></path></g></svg></div></div><div class="sc-jtyQFi ldXCvc api-content"><div class="sc-eCQgVK jleRXN"><div class="sc-iCECmn lhRBUS"><div class="sc-hKVpXn kktglN api-info"><h1 class="sc-fuztkK sc-ctiVdb eRMVDe cBgvIi">Wekan REST API<!-- --> <span>(<!-- -->v9.42<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:</p><div class="sc-iJSMbW sc-cBEgGa fiNpIH ewCFMV"></div><div data-role="redoc-summary" html="" class="sc-iJSMbW sc-cBEgGa fiNpIH ewCFMV"></div><div data-role="redoc-description" html="&lt;p&gt;The REST API allows you to control and extend Wekan with ease.&lt;/p&gt;
&lt;p&gt;If you are an end-user and not a dev or a tester, &lt;a href=&quot;https://github.com/wekan/wekan/issues/new&quot;&gt;create an issue&lt;/a&gt; to request new APIs.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;All API calls in the documentation are made using &lt;code&gt;curl&lt;/code&gt;. However, you are free to use Java / Python / PHP / Golang / Ruby / Swift / Objective-C / Rust / Scala / C# or any other programming languages.&lt;/p&gt;
@@ -1337,7 +1337,7 @@ comment-only / worker members are rejected).</p>
" class="sc-iJSMbW sc-cBEgGa sc-ciCrSJ fiNpIH dNfUH dDDioG"><p>Attachment not found</p>
</div></button></div></div></div><div class="sc-jSppWd sc-gKkgUA fpMlmc bdQQyo"><div class="sc-fXwuWv fYxpnv"><button class="sc-jWMFtl jzaJhV"><span type="delete" class="sc-eEFuoE iINwyG http-verb delete">delete</span><span class="sc-FpjRO dsIRaZ">/api/attachment/delete/{attachmentId}</span><svg class="sc-dYjPD bQKUih" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmtEmb tUxhh"><div class="sc-ljIcGq bAnPPh"><div html="" class="sc-iJSMbW sc-cBEgGa fiNpIH bAoMjv"></div><div tabindex="0" role="button"><div class="sc-jlJOIR PEJyb"><span></span>/api/attachment/delete/{attachmentId}</div></div></div></div></div></div></div></div></div><div class="sc-ekVkVN bjzTxL"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.0","info":{"title":"Wekan REST API","version":"v9.41","description":"The REST API allows you to control and extend Wekan with ease.\n\nIf you are an end-user and not a dev or a tester, [create an issue](https://github.com/wekan/wekan/issues/new) to request new APIs.\n\n> All API calls in the documentation are made using `curl`. However, you are free to use Java / Python / PHP / Golang / Ruby / Swift / Objective-C / Rust / Scala / C# or any other programming languages.\n\n# Production Security Concerns\nWhen calling a production Wekan server, ensure it is running via HTTPS and has a valid SSL Certificate. The login method requires you to post your username and password in plaintext, which is why we highly suggest only calling the REST login api over HTTPS. Also, few things to note:\n\n* Only call via HTTPS\n* Implement a timed authorization token expiration strategy\n* Ensure the calling user only has permissions for what they are calling and no more\n"},"paths":{"/users/login":{"post":{"operationId":"login","summary":"Login with REST API","tags":["Login"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"}}}}},"description":"Login credentials","required":true},"responses":{"200":{"description":"Successful authentication","content":{"*/*":{"schema":{"type":"object","required":["id","token","tokenExpires"],"properties":{"id":{"type":"string","description":"User ID"},"token":{"type":"string","description":"Authentication token\n"},"tokenExpires":{"type":"string","format":"date-time","description":"Token expiration date\n"}}}}}},"400":{"description":"Error in authentication\n","content":{"*/*":{"schema":{"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string"}}}}}},"default":{"description":"Error in authentication\n"}}}},"/users/register":{"post":{"operationId":"register","summary":"Register with REST API","description":"Notes:\n - You will need to provide the token for any of the authenticated methods.\n","tags":["Login"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"},"email":{"description":"Your email\n","type":"string"}},"required":["username","password","email"]}}},"required":true},"responses":{"200":{"description":"Successful registration","content":{"*/*":{"schema":{"items":{"properties":{"id":{"type":"string"},"token":{"type":"string"},"tokenExpires":{"type":"string"}}}}}}},"400":{"description":"Error in registration\n","content":{"*/*":{"schema":{"items":{"properties":{"error":{"type":"number"},"reason":{"type":"string"}}}}}}},"default":{"description":"Error in registration\n"}}}},"/api/boards":{"get":{"operationId":"get_boards","tags":["Boards"],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}},"post":{"operationId":"post_boards","tags":["Boards"],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}":{"get":{"operationId":"get_board","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}},"delete":{"operationId":"delete_board","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}/attachments":{"get":{"operationId":"get_board_attachments","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}/attachments/{attachment}/export":{"get":{"operationId":"exportJson","summary":"This route is used to export a attachement to a json file format.","description":"If user is already logged-in, pass loginToken as param\n \"authToken\": '/api/boards/:boardId/attachments/:attachmentId/export?authToken=:token'\n","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the ID of the board we are exporting\n","required":true,"schema":{"type":"string"}},{"name":"attachment","in":"path","description":"the ID of the aLine truncated
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.0","info":{"title":"Wekan REST API","version":"v9.42","description":"The REST API allows you to control and extend Wekan with ease.\n\nIf you are an end-user and not a dev or a tester, [create an issue](https://github.com/wekan/wekan/issues/new) to request new APIs.\n\n> All API calls in the documentation are made using `curl`. However, you are free to use Java / Python / PHP / Golang / Ruby / Swift / Objective-C / Rust / Scala / C# or any other programming languages.\n\n# Production Security Concerns\nWhen calling a production Wekan server, ensure it is running via HTTPS and has a valid SSL Certificate. The login method requires you to post your username and password in plaintext, which is why we highly suggest only calling the REST login api over HTTPS. Also, few things to note:\n\n* Only call via HTTPS\n* Implement a timed authorization token expiration strategy\n* Ensure the calling user only has permissions for what they are calling and no more\n"},"paths":{"/users/login":{"post":{"operationId":"login","summary":"Login with REST API","tags":["Login"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["username","password"],"properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"}}}}},"description":"Login credentials","required":true},"responses":{"200":{"description":"Successful authentication","content":{"*/*":{"schema":{"type":"object","required":["id","token","tokenExpires"],"properties":{"id":{"type":"string","description":"User ID"},"token":{"type":"string","description":"Authentication token\n"},"tokenExpires":{"type":"string","format":"date-time","description":"Token expiration date\n"}}}}}},"400":{"description":"Error in authentication\n","content":{"*/*":{"schema":{"type":"object","properties":{"error":{"type":"string"},"reason":{"type":"string"}}}}}},"default":{"description":"Error in authentication\n"}}}},"/users/register":{"post":{"operationId":"register","summary":"Register with REST API","description":"Notes:\n - You will need to provide the token for any of the authenticated methods.\n","tags":["Login"],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"username":{"description":"Your username\n","type":"string"},"password":{"description":"Your password\n","type":"string","format":"password"},"email":{"description":"Your email\n","type":"string"}},"required":["username","password","email"]}}},"required":true},"responses":{"200":{"description":"Successful registration","content":{"*/*":{"schema":{"items":{"properties":{"id":{"type":"string"},"token":{"type":"string"},"tokenExpires":{"type":"string"}}}}}}},"400":{"description":"Error in registration\n","content":{"*/*":{"schema":{"items":{"properties":{"error":{"type":"number"},"reason":{"type":"string"}}}}}}},"default":{"description":"Error in registration\n"}}}},"/api/boards":{"get":{"operationId":"get_boards","tags":["Boards"],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}},"post":{"operationId":"post_boards","tags":["Boards"],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}":{"get":{"operationId":"get_board","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}},"delete":{"operationId":"delete_board","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}/attachments":{"get":{"operationId":"get_board_attachments","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the board value","required":true,"schema":{"type":"string"}}],"security":[{"UserSecurity":[]}],"responses":{"200":{"description":"200 response"}}}},"/api/boards/{board}/attachments/{attachment}/export":{"get":{"operationId":"exportJson","summary":"This route is used to export a attachement to a json file format.","description":"If user is already logged-in, pass loginToken as param\n \"authToken\": '/api/boards/:boardId/attachments/:attachmentId/export?authToken=:token'\n","tags":["Boards"],"parameters":[{"name":"board","in":"path","description":"the ID of the board we are exporting\n","required":true,"schema":{"type":"string"}},{"name":"attachment","in":"path","description":"the ID of the aLine truncated
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
+84 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v9.41
version: v9.42
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -3185,6 +3185,17 @@ definitions:
items:
$ref: "#/definitions/BoardsTeams"
x-nullable: true
importUsernames:
description: |
Usernames of imported (e.g. Trello) board members that were not mapped
to an existing WeKan user during import. Kept so an admin can map them
to real users later (People panel -> user -> Imported Usernames), after
which future imports of this board auto-map.
type: array
items:
type: string
x-nullable: true
x-nullable: true
color:
description: |
The color of the board.
@@ -3195,6 +3206,13 @@ definitions:
The background image URL of the board.
type: string
x-nullable: true
backgroundImageId:
description: |
The id of the active board background attachment (a board-level
Attachment with meta.source === 'board-background'), when the active
background is an uploaded/imported image rather than an external URL.
type: string
x-nullable: true
allowsCardCounterList:
description: |
Show card counter per list
@@ -3621,6 +3639,8 @@ definitions:
- teamId
- teamDisplayName
- isActive
BoardsImportusernames:
type: object
CardComments:
type: object
description: A comment on a card
@@ -3776,6 +3796,49 @@ definitions:
Date the card ended
type: string
x-nullable: true
dueComplete:
description: |
Has the due date been marked complete? Imported from Trello
(card.dueComplete) and toggled by the minicard due checkbox.
type: boolean
x-nullable: true
stickers:
description: |
list of stickers shown on the card (imported from Trello)
type: array
items:
$ref: "#/definitions/CardsStickers"
x-nullable: true
locationName:
description: |
human readable location name of the card (imported from Trello)
type: string
x-nullable: true
locationAddress:
description: |
street address of the card location (imported from Trello)
type: string
x-nullable: true
locationLatitude:
description: |
latitude of the card location (imported from Trello)
type: number
x-nullable: true
locationLongitude:
description: |
longitude of the card location (imported from Trello)
type: number
x-nullable: true
locations:
description: |
list of locations attached to the card. Supports multiple locations,
each with an optional name, address and coordinates. A legacy single
location stored in the locationName/Address/Latitude/Longitude fields
is surfaced through getLocations() for backwards compatibility.
type: array
items:
$ref: "#/definitions/CardsLocations"
x-nullable: true
spentTime:
description: |
How much time has been spent on this
@@ -3995,6 +4058,10 @@ definitions:
type: object
CardsAssignees:
type: object
CardsStickers:
type: object
CardsLocations:
type: object
CardsVotePositive:
type: object
CardsVoteNegative:
@@ -4500,6 +4567,12 @@ definitions:
description: |
has user at card Custom Fields have Grid (false) or one per row (true) layout?
type: boolean
trelloApiSaved:
description: |
Has the user saved Trello API credentials (key + token) for importing?
The credentials themselves are stored server-side only (never published
to the client); this is just the published "saved" indicator.
type: boolean
hiddenMinicardLabelText:
description: |
does the user want to hide minicard label texts?
@@ -4529,6 +4602,16 @@ definitions:
description: |
language of the user
type: string
mapProvider:
description: |
which map service the card "Open in map" links use
('openstreetmap' (default), 'google', 'bing' or 'apple').
type: string
enum:
- openstreetmap
- google
- bing
- apple
moveAndCopyDialog:
description: |
move and copy card dialog
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 941,
appVersion = 942,
# Increment this for every release.
appMarketingVersion = (defaultText = "9.41~2026-06-11"),
appMarketingVersion = (defaultText = "9.42~2026-06-13"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+4 -4
View File
@@ -1,5 +1,5 @@
name: wekan
version: '9.41'
version: '9.42'
base: core26
build-base: devel
confinement: strict
@@ -194,14 +194,14 @@ parts:
exit 1
;;
esac
WEKAN_ZIP="wekan-9.41-${WEKAN_ARCH}.zip"
WEKAN_ZIP="wekan-9.42-${WEKAN_ARCH}.zip"
NODE_TAR="node-v24.16.0-linux-${NODE_ARCH}.tar.xz"
echo "Cleaning environment first"
rm -rf .build
mkdir .build
cd .build
#wget https://github.com/wekan/wekan/releases/download/v9.41/wekan-9.41-amd64.zip
wget "https://github.com/wekan/wekan/releases/download/v9.41/${WEKAN_ZIP}"
#wget https://github.com/wekan/wekan/releases/download/v9.42/wekan-9.42-amd64.zip
wget "https://github.com/wekan/wekan/releases/download/v9.42/${WEKAN_ZIP}"
unzip "${WEKAN_ZIP}"
rm "${WEKAN_ZIP}"
# Fix: bcrypt 5.0.1 (Meteor accounts-password) ships node-addon-api@3