Compare commits

...
38 Commits
Author SHA1 Message Date
Lauri Ojansivu edbc8ed92b v7.82 2025-02-24 20:21:33 +02:00
Lauri Ojansivu 07e9ec0617 Updated ChangeLog. 2025-02-24 15:12:07 +02:00
Lauri Ojansivu 18d0fa4327 Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic.
Thanks to delopers of depedencies and xet7 !

Fixes #5694
2025-02-24 14:56:54 +02:00
Lauri Ojansivu 666ee84033 Updated dependencies.
Thanks to developes of dependencies "
2025-02-23 15:55:20 +02:00
Lauri Ojansivu 120642f47d Updated ChangeLog. 2025-02-21 21:22:14 +02:00
Lauri Ojansivu 148b81262d Updated requirements at docs.
Thanks to mueller-ma !

Fixes #5692
2025-02-21 21:12:28 +02:00
Lauri Ojansivu c41467f76e Merge pull request #5691 from wekan/dependabot/npm_and_yarn/dompurify-3.2.4
Bump dompurify from 2.5.6 to 3.2.4
2025-02-15 15:47:49 +02:00
dependabot[bot] c83e83b8b1 Bump dompurify from 2.5.6 to 3.2.4
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.5.6 to 3.2.4.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.5.6...3.2.4)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-15 08:58:49 +00:00
Lauri Ojansivu 563a508e26 Added missing ) character.
Thanks to xet7 !
2025-02-11 22:12:57 +02:00
Lauri Ojansivu 1d8347cc23 Merge pull request #5682 from salleman33/devel
Update metrics.js
2025-02-11 17:28:33 +02:00
salleman 874abf2c41 Update metrics.js
Add possibility to use a token in place of ipaddress to access metrics route
2025-02-11 12:06:23 +01:00
Lauri Ojansivu 3e18f820ea v7.81 2025-02-07 16:13:52 +02:00
Lauri Ojansivu b571f1c953 Upgraded to MongoDB 6.0.20 at Snap Candidate.
Thanks to MongoDB developers!
2025-02-07 16:11:48 +02:00
Lauri Ojansivu fd69c7ceb8 Updated ChangeLog. 2025-02-05 04:41:42 +02:00
Lauri Ojansivu d15faa1890 Updated ChangeLog. 2025-01-29 14:15:31 +02:00
Lauri Ojansivu 0c7e12c5e7 Added Meteor 3.1 learning course to docs.
Thanks to producer of learning course !
2025-01-29 14:13:21 +02:00
Lauri Ojansivu 36a3077853 Fix misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL.
Thanks to hubermam !

Fixes #5665
2025-01-29 14:09:31 +02:00
Lauri Ojansivu 51bc23dbd9 Updated ChangeLog. 2025-01-29 13:40:34 +02:00
Lauri Ojansivu 0b1e0bd395 Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs.
Thanks to salleman33 !

Fixes #5671
2025-01-29 13:38:40 +02:00
Lauri Ojansivu 151aafd114 Updated ChangeLog. 2025-01-29 10:23:12 +02:00
Lauri Ojansivu 16c8a65a1c Updated ChangeLog. 2025-01-29 10:22:08 +02:00
Lauri Ojansivu f3133e9cd8 Merge pull request #5670 from wekan/dependabot/github_actions/docker/build-push-action-6.13.0
Bump docker/build-push-action from 6.12.0 to 6.13.0
2025-01-29 10:14:55 +02:00
dependabot[bot] de84aa7674 Bump docker/build-push-action from 6.12.0 to 6.13.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.12.0 to 6.13.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/67a2d409c0a876cbe6b11854e3e25193efe4e62d...ca877d9245402d1537745e0e356eab47c3520991)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 20:17:17 +00:00
Lauri Ojansivu 1bdbfe86bb Merge pull request #5663 from wekan/dependabot/github_actions/helm/chart-releaser-action-1.7.0
Bump helm/chart-releaser-action from 1.6.0 to 1.7.0
2025-01-21 22:44:23 +02:00
Lauri Ojansivu 397b9f439e Merge pull request #5662 from wekan/dependabot/github_actions/docker/build-push-action-6.12.0
Bump docker/build-push-action from 6.11.0 to 6.12.0
2025-01-21 22:44:12 +02:00
dependabot[bot] 261e0aee0f Bump helm/chart-releaser-action from 1.6.0 to 1.7.0
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases)
- [Commits](https://github.com/helm/chart-releaser-action/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 20:02:15 +00:00
dependabot[bot] a6d9bde658 Bump docker/build-push-action from 6.11.0 to 6.12.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.11.0 to 6.12.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/b32b51a8eda65d6793cd0494a773d4f6bcef32dc...67a2d409c0a876cbe6b11854e3e25193efe4e62d)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 20:02:13 +00:00
Lauri Ojansivu 8d0a07e1a8 Updated translations. 2025-01-19 23:06:23 +02:00
Lauri Ojansivu 659615e6f2 Merge pull request #5658 from wekan/dependabot/github_actions/docker/build-push-action-6.11.0
Bump docker/build-push-action from 6.10.0 to 6.11.0
2025-01-15 12:18:49 +02:00
dependabot[bot] 9f0b82c0d5 Bump docker/build-push-action from 6.10.0 to 6.11.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.10.0 to 6.11.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/48aba3b46d1b1fec4febb7c5d0c644b249a11355...b32b51a8eda65d6793cd0494a773d4f6bcef32dc)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 20:55:32 +00:00
Lauri Ojansivu 9a23dcc991 v7.80 2025-01-12 23:48:05 +02:00
Lauri Ojansivu 980d345305 Updated ChangeLog. 2025-01-12 23:19:51 +02:00
Lauri Ojansivu 41f76ee974 Updated translations. 2025-01-11 20:53:31 +02:00
Lauri Ojansivu 83a60e6303 Merge pull request #5655 from NadavTasher/bugfix/fix-assignment-of-removed-members
Fix assignee toggling keyboard shortcut to only toggle current board members
2025-01-03 17:32:58 +02:00
Nadav Tasher 7b23c85117 Fix assignee toggling keyboard shortcut to only toggle current board members 2025-01-03 17:15:40 +02:00
Lauri Ojansivu ff3900d100 Merge pull request #5654 from NadavTasher/bugfix/mouse-over-card-reactive-cache 2025-01-03 16:12:17 +02:00
Nadav Tasher e5e4b8ebfb Fix card issues with ReactiveCache when using keyboard shortcuts
When using ReactiveCache.getCard, a buggy instance of Card is returned.
The bug experienced is that .assignees and .members are not always up-to-date.

This can be reproduced by trying to hover over cards and triggering a keyboard
shortcut that interacts with a card.
2025-01-03 12:08:08 +02:00
Lauri Ojansivu 9516b75d65 Updated translations. 2025-01-02 19:39:08 +02:00
34 changed files with 1656 additions and 285 deletions

No files matched your search

+1 -1
View File
@@ -55,7 +55,7 @@ jobs:
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
uses: docker/build-push-action@ca877d9245402d1537745e0e356eab47c3520991
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
+1 -1
View File
@@ -25,6 +25,6 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.6.0
uses: helm/chart-releaser-action@v1.7.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
+63
View File
@@ -15,6 +15,69 @@ Fixing other platforms In Progress.
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# v7.82 2025-02-24 WeKan ® release
This release adds the following new features:
- [Add possibility to use a token in place of ipaddress to access metrics route](https://github.com/wekan/wekan/pull/5682).
Thanks to salleman33.
and adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/pull/5691).
Thanks to dependabot.
- [Updated requirements at docs](https://github.com/wekan/wekan/commit/148b81262d0d143460e881d645fefa6740aae40d).
Thanks to mueller-ma.
- [Updated dependencies](https://github.com/wekan/wekan/commit/666ee8403388f7d5e1a30cf0e53bc46a70bf1c40).
Thanks to developes of dependencies.
- [Fixed building WeKan. Updated dompurify. Forked Meteor 2.14 version of meteor-node-stubs to update elliptic](https://github.com/wekan/wekan/commit/18d0fa43275cd2955dd6416213e316ca08a62255).
Thanks to developers of depedencies and xet7.
and fixes the following bugs:
- [Added missing ) character](https://github.com/wekan/wekan/commit/563a508e269be87eb713e2888409525e1ba82001).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.81 2025-02-07 WeKan ® release
This release adds the following new features:
- [Helm Chart: Added secretManaged value for enabling or disabling the creation of secret by Helm](https://github.com/wekan/charts/pull/39).
Thanks to salleman33.
and adds the following updates:
- [Updated Docker Actions](https://github.com/wekan/wekan/pull/5670).
Thanks to dependabot.
- [Added Meteor 3.1 learning course to docs](https://github.com/wekan/wekan/commit/0c7e12c5e7f322bdbaaa61100e66153dd0b92e4d).
Thanks to producer of learning course.
- [Upgraded to MongoDB 6.0.20 at Snap Candidate](https://github.com/wekan/wekan/commit/b571f1c9530b899db75bf28a03c18277a9b77cb8).
Thanks to MongoDB developers.
and fixes the following bugs:
- [Fixed env variable METRICS_ACCEPTED_IP_ADDRESS to be same as at docs](https://github.com/wekan/wekan/commit/0b1e0bd39569175668c195b63dde91bf0e6f1b24).
Thanks to salleman33.
- [Fixed misspelling of hours at env variable setting LDAP_BACKGROUND_SYNC_INTERVAL](https://github.com/wekan/wekan/commit/36a307785369337a788499065f64175971878930).
Thanks to hubermam.
- [Helm Chart: Restore pod security context in deployment](https://github.com/wekan/charts/pull/40).
Thanks to adalinesimonian.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.80 2025-01-12 WeKan ® release
This release fixes the following bugs:
- [Fix card updating issues with ReactiveCache when using keyboard shortcuts](https://github.com/wekan/wekan/pull/5654).
Thanks to NadavTasher.
- [Fix assignee toggling keyboard shortcut to only toggle current board members](https://github.com/wekan/wekan/pull/5655).
Thanks to NadavTasher.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.79 2025-01-02 WeKan ® release
This release adds the following new features:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v7.79.0"
appVersion: "v7.82.0"
files:
userUploads:
- README.md
+13 -11
View File
@@ -133,7 +133,7 @@ Mousetrap.bind(numbArray, (evt, key) => {
const cardIds = MultiSelection.getSelectedCardIds();
for (const cardId of cardIds)
{
card = ReactiveCache.getCard(cardId);
card = Cards.findOne(cardId);
if(num <= board.labels.length)
{
card.removeLabel(labels[num-1]["_id"]);
@@ -157,7 +157,7 @@ Mousetrap.bind(numArray, (evt, key) => {
const cardIds = MultiSelection.getSelectedCardIds();
for (const cardId of cardIds)
{
card = ReactiveCache.getCard(cardId);
card = Cards.findOne(cardId);
if(num <= board.labels.length)
{
card.addLabel(labels[num-1]["_id"]);
@@ -171,7 +171,7 @@ Mousetrap.bind(numArray, (evt, key) => {
return;
}
if (ReactiveCache.getCurrentUser().isBoardMember()) {
const card = ReactiveCache.getCard(cardId);
const card = Cards.findOne(cardId);
if(num <= board.labels.length)
{
card.toggleLabel(labels[num-1]["_id"]);
@@ -190,21 +190,23 @@ Mousetrap.bind(_.range(1, 10).map(x => `ctrl+alt+${x}`), (evt, key) => {
const memberIndex = parseInt(key.split("+").pop()) - 1;
const currentBoard = Utils.getCurrentBoard();
const boardMembers = currentBoard.memberUsers();
const validBoardMembers = currentBoard.memberUsers().filter(member => member.isBoardMember());
if (memberIndex >= boardMembers.length)
if (memberIndex >= validBoardMembers.length)
return;
const memberId = validBoardMembers[memberIndex]._id;
if (MultiSelection.isActive()) {
for (const cardId of MultiSelection.getSelectedCardIds())
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
Cards.findOne(cardId).toggleAssignee(memberId);
} else {
const cardId = getSelectedCardId();
if (!cardId)
return;
ReactiveCache.getCard(cardId).toggleAssignee(boardMembers[memberIndex]._id);
Cards.findOne(cardId).toggleAssignee(memberId);
}
});
@@ -220,7 +222,7 @@ Mousetrap.bind('m', evt => {
}
if (ReactiveCache.getCurrentUser().isBoardMember()) {
const card = ReactiveCache.getCard(cardId);
const card = Cards.findOne(cardId);
card.toggleAssignee(currentUserId);
// We should prevent scrolling in card when spacebar is clicked
// This should do it according to Mousetrap docs, but it doesn't
@@ -240,7 +242,7 @@ Mousetrap.bind('space', evt => {
}
if (ReactiveCache.getCurrentUser().isBoardMember()) {
const card = ReactiveCache.getCard(cardId);
const card = Cards.findOne(cardId);
card.toggleMember(currentUserId);
// We should prevent scrolling in card when spacebar is clicked
// This should do it according to Mousetrap docs, but it doesn't
@@ -260,7 +262,7 @@ const archiveCard = evt => {
}
if (Utils.canModifyBoard()) {
const card = ReactiveCache.getCard(cardId);
const card = Cards.findOne(cardId);
card.archive();
// We should prevent scrolling in card when spacebar is clicked
// This should do it according to Mousetrap docs, but it doesn't
@@ -289,7 +291,7 @@ Mousetrap.bind('n', evt => {
if (Utils.canModifyBoard()) {
// Find the current hovered card
const card = ReactiveCache.getCard(cardId);
const card = Cards.findOne(cardId);
// Find the button and click it
$(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click();
+6 -2
View File
@@ -577,10 +577,14 @@ services:
# If the sync of the users should be done in the background
#- LDAP_BACKGROUND_SYNC=false
#
# At which interval does the background task sync.
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
- LDAP_BACKGROUND_SYNC_INTERVAL=''
#
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
#
+6 -2
View File
@@ -575,10 +575,14 @@ services:
# If the sync of the users should be done in the background
#- LDAP_BACKGROUND_SYNC=false
#
# At which interval does the background task sync.
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hour
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
- LDAP_BACKGROUND_SYNC_INTERVAL=''
#
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
#
+4
View File
@@ -1,3 +1,7 @@
## Learning Course: Your First Meteor 3.1 Application
- https://www.youtube.com/watch?v=aFZzBb2oRi8&list=PLKKckIyt2nF863eP16mvVgWKR4JDyJoKy
## Meteor 3 Example Code
- https://github.com/fredmaiaarantes/simpletasks
+1 -8
View File
@@ -1,8 +1 @@
Wekan works on x64. There is not yet version for [Raspberry Pi](https://github.com/wekan/wekan/issues/1053).
Wekan requires MongoDB 3.2.x . For other requirements and versions see [VirtualBox scripts](https://github.com/wekan/wekan-maintainer/tree/master/virtualbox) or [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile).
Known bugs with other versions:
- Node 6.x: 100% CPU usage.
- MongoDB 3.4.x: Wekan crashes when uploading attachment.
- [Hardened kernel prevents creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398)
WeKan Requiremens are at https://wekan.github.io/install/
+35 -7
View File
@@ -52,7 +52,15 @@ sudo snap set wekan ldap-authentication-userdn='CN=LDAP-User,OU=Service Accounts
sudo snap set wekan ldap-authentication-password='<password>'
sudo snap set wekan ldap-log-enabled='true'
sudo snap set wekan ldap-background-sync='true'
sudo snap set wekan ldap-background-sync-interval='every 1 minute'
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
# At which interval does the background task sync in milliseconds.
# If not in use, Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
#sudo snap set wekan ldap-background-sync-interval=''
sudo snap set wekan ldap-background-sync-interval='every 1 hours'
sudo snap set wekan ldap-background-sync-keep-existant-users-updated='true'
sudo snap set wekan ldap-background-sync-import-new-users='true'
sudo snap set wekan ldap-encryption='false'
@@ -100,7 +108,15 @@ snap set wekan ldap-basedn='dc=example,dc=com'
snap set wekan ldap-background-sync='true'
snap set wekan ldap-background-sync-keep-existant-users-updated='true'
snap set wekan ldap-background-sync-import-new-users='true'
snap set wekan ldap-background-sync-interval='Every 1 minute'
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
# At which interval does the background task sync in milliseconds.
# If not in use, Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
#sudo snap set wekan ldap-background-sync-interval=''
snap set wekan ldap-background-sync-interval='every 1 hours'
snap set wekan ldap-merge-existing-users='true'
snap set wekan ldap-user-search-field='uid'
snap set wekan ldap-user-search-filter='(&(objectclass=person))'
@@ -121,7 +137,15 @@ sudo snap set wekan ldap-authentication-password='********'
sudo snap set wekan ldap-authentication-userdn='cn=admin,dc=*******,dc=lan'
sudo snap set wekan ldap-background-sync='true'
sudo snap set wekan ldap-background-sync-import-new-users='true'
sudo snap set wekan ldap-background-sync-interval='Every 1 minute'
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#sudo snap set wekan ldap-background-sync-interval='every 1 hours'
# At which interval does the background task sync in milliseconds.
# If not in use, Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
#sudo snap set wekan ldap-background-sync-interval=''
sudo snap set wekan ldap-background-sync-interval='every 1 hours'
sudo snap set wekan ldap-basedn='dc=*****,dc=lan'
sudo snap set wekan ldap-email-field='mail'
sudo snap set wekan ldap-enable='true'
@@ -316,10 +340,14 @@ services:
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
# example : LDAP_BACKGROUND_SYNC=true
- LDAP_BACKGROUND_SYNC=false
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync
# example : LDAP_BACKGROUND_SYNC_INTERVAL='every 15 minutes'
# for more info: http://bunkat.github.io/later/parsers.html#text
- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour'
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
- LDAP_BACKGROUND_SYNC_INTERVAL=''
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
+42 -2
View File
@@ -1,7 +1,12 @@
- At some cases [Hardened kernel may prevent creating new Wekan boards at Sandstorm](https://github.com/wekan/wekan/issues/1398)
# Sandstorm at Debian and Ubuntu
### Sandstorm CloudFlare DNS settings
Sandstorm works when configured to full domain, with CloudFlare SSL/TLS, with Caddy.
Not subdomain, not sub-url, and not with Let's Encrypt that AFAIK does not support wildcard SSL/TLS.
Source: https://github.com/sandstorm-io/sandstorm/issues/3714#issuecomment-2366866243
For me, it works at CloudFlare DNS using TLS Strict checking and DNS setting clicking to orange cloud icon to make TLS proxy with Origin certificate, that is at /etc/caddy/certs/example.com.pem with above private key and below cert.
@@ -13,17 +18,52 @@ DNS records:
```
Caddyfile, proxy to KVM VM that is running Debian and Sandstorm:
```
# Full domain where Sandstorm login is. Not subdomain. Not sub-url.
*.example.com example.com {
tls {
load /etc/caddy/certs
alpn http/1.1
}
# If KVM VM, it's IP address:
#reverse_proxy 123.123.123.123:80
# Localhost port 81, when not in KVM VM
reverse_proxy 127.0.0.1:81
}
reverse_proxy 123.123.123.123:80
blog.somecompany.com {
tls {
load /etc/caddy/certs
alpn http/1.1
}
# Blog hosted at Sandstorm WordPress
reverse_proxy 127.0.0.1:81
}
othercompany.com {
tls {
load /etc/caddy/certs
alpn http/1.1
}
# Website hosted at Sandstorm Hacker CMS
reverse_proxy 127.0.0.1:81
}
```
At /opt/sandstorm/sandstorm.conf is domain, http port etc.
If having Sandstorm inside of KVM VM: https://github.com/wekan/wekan/blob/main/docs/Platforms/FOSS/Snap/Many-Snaps-on-LXC.md
At /opt/sandstorm/sandstorm.conf is domain where Sandstorm login is, http port etc.
```
SERVER_USER=sandstorm
PORT=81
MONGO_PORT=6081
BIND_IP=127.0.0.1
BASE_URL=https://example.com
WILDCARD_HOST=*.example.com
UPDATE_CHANNEL=dev
ALLOW_DEV_ACCOUNTS=false
SMTP_LISTEN_PORT=25
#SANDCATS_BASE_DOMAIN=sandcats.io
#HTTPS_PORT=443
```
Some related info at:
https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
@@ -520,6 +520,15 @@ services:
# https://bunkat.github.io/later/parsers.html#text
#- LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour'
#
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#- LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
- LDAP_BACKGROUND_SYNC_INTERVAL=''
#
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
+4 -4
View File
@@ -10,19 +10,19 @@ This is without container (without Docker or Snap).
Right click and download files 1-4:
1. [wekan-7.79-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64-windows.zip)
1. [wekan-7.82-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64-windows.zip)
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-signed.msi)
3. [mongodb-windows-x86_64-6.0.20-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.20-signed.msi)
4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat)
5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer
6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass.
6. Double click `mongodb-windows-x86_64-6.0.20-signed.msi` . In installer, uncheck downloading MongoDB compass.
7. Unzip `wekan-7.79-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
7. Unzip `wekan-7.82-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
```
bundle (directory)
+7 -7
View File
@@ -49,7 +49,7 @@
"activity-archived": "hat %s ins Archiv verschoben",
"activity-attached": "hat %s an %s angehängt",
"activity-created": "hat %s erstellt",
"activity-changedListTitle": "Die Liste wurde umbenannt zu",
"activity-changedListTitle": "Liste umbenannt zu %s",
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
"activity-excluded": "hat %s von %s ausgeschlossen",
"activity-imported": "hat %s in %s von %s importiert",
@@ -1257,16 +1257,16 @@
"text": "Text",
"translation-text": "Übersetzungstext",
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)",
"convert-to-markdown": "Als Markdown konvertieren",
"import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält",
"collapse": "Einklappen",
"uncollapse": "Aufklappen",
"hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden",
"hideAllChecklistItems": "Verberge alle Checklisteneinträge",
"support": "Unterstützung",
"supportPopup-title": "Unterstützung",
"accessibility-page-enabled": "Barrierefreie Seite freigeschaltet",
"accessibility-title": "Barrierefreies Thema",
"accessibility-content": "Barrierefreie Inhalte"
"support": "Support",
"supportPopup-title": "Support",
"accessibility-page-enabled": "Bedienungshilfe Seite freigeschaltet",
"accessibility-title": "Bedienungshilfe Titel",
"accessibility-content": "Bedienungshilfe Inhalt"
}
+8 -8
View File
@@ -90,8 +90,8 @@
"set-list-width": "Setze Breite",
"set-list-width-value": "Setze min & max Breite (Pixels)",
"list-width-error-message": "Breite der Liste muss eine Ganzzahl größer als 100 sein",
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
"keyboard-shortcuts-enabled": "Tastaturkürzel sind aktiviert. Klicke, um sie zu deaktivieren.",
"keyboard-shortcuts-disabled": "Tastaturkürzel sind deaktiviert. Klicke, um sie zu aktivieren.",
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
"set-swimlane-height-value": "Höhe der Swimlane (Pixel)",
@@ -266,9 +266,9 @@
"checklists": "Checklisten",
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
"auto-list-width": "Auto list width",
"click-to-enable-auto-width": "Automatische Listenbreite ist deaktiviert. Klicke, um sie zu aktivieren.",
"click-to-disable-auto-width": "Automatische Listenbreite ist aktiviert. Klicke, um sie zu deaktivieren.",
"auto-list-width": "Automatische Listenbreite",
"clipboard": "Zwischenablage oder Drag & Drop",
"close": "Schließen",
"close-board": "Board schließen",
@@ -383,7 +383,7 @@
"email-sent": "E-Mail gesendet",
"email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__",
"email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
"enable-vertical-scrollbars": "Enable vertical scrollbars",
"enable-vertical-scrollbars": "Vertikale Bildlaufleisten aktivieren",
"enable-wip-limit": "WIP-Limit einschalten",
"error-board-doesNotExist": "Dieses Board existiert nicht",
"error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein",
@@ -610,7 +610,7 @@
"has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten",
"time": "Zeit",
"title": "Titel",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-assignees": "Schalte Zugewiesene 1-9 für die Karte um (in der Reihenfolge der Hinzufügung zum Board).",
"toggle-labels": "Label 1-9 zur Karte hinzufügen. Bei Mehrfachauswahl Label 1-9 hinzufügen",
"remove-labels-multiselect": "Labels 1-9 bei Karten-Mehrfachauswahl entfernen",
"tracking": "Folgen",
@@ -1257,7 +1257,7 @@
"text": "Text",
"translation-text": "Übersetzungstext",
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Kalenderwoche anzeigen (ISO 8601)",
"convert-to-markdown": "Als Markdown konvertieren",
"import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen",
"collapse": "Einklappen",
File diff suppressed because it is too large. Load diff
+36 -36
View File
@@ -86,12 +86,12 @@
"add-card": "Ajouter une carte",
"add-card-to-top-of-list": "Ajouter la carte en haut de la liste",
"add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste",
"setListWidthPopup-title": "Set Widths",
"set-list-width": "Set Widths",
"set-list-width-value": "Set Min & Max Widths (pixels)",
"list-width-error-message": "List widths must be integers greater than 100",
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
"setListWidthPopup-title": "Définir les largeurs",
"set-list-width": "Définir les largeurs",
"set-list-width-value": "Définir les largeurs mini. & maxi. (pixels)",
"list-width-error-message": "Les largeurs de liste doivent être des entiers supérieurs à 100",
"keyboard-shortcuts-enabled": "Raccourcis clavier activés. Cliquer pour désactiver.",
"keyboard-shortcuts-disabled": "Raccourcis clavier désactivés. Cliquer pour activer.",
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
"set-swimlane-height": "Définir la hauteur du couloir",
"set-swimlane-height-value": "Hauteur du couloir (pixels)",
@@ -107,7 +107,7 @@
"add-label": "Ajouter une étiquette",
"add-list": "Ajouter une liste",
"add-after-list": "Ajouter après la liste",
"add-members": "Assigner des participants",
"add-members": "Ajouter des participants",
"added": "Ajouté le",
"addMemberPopup-title": "Participants",
"memberPopup-title": "Préférence du participant",
@@ -139,7 +139,7 @@
"templates": "Modèles",
"template-container": "Conteneur de modèles",
"add-template-container": "Ajouter un conteneur de modèles",
"assign-member": "Affecter un participant",
"assign-member": "Attribuer à un participant",
"attached": "joint",
"attachment": "Pièce jointe",
"attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Cela est irréversible.",
@@ -199,7 +199,7 @@
"card-edit-labels": "Gérer les étiquettes",
"card-edit-members": "Gérer les participants",
"card-labels-title": "Modifier les étiquettes de la carte.",
"card-members-title": "Assigner ou supprimer des participants à la carte.",
"card-members-title": "Ajouter ou supprimer des participants du tableau à la carte.",
"card-start": "Début",
"card-start-on": "Commence le",
"cardAttachmentsPopup-title": "Ajouter depuis",
@@ -266,9 +266,9 @@
"checklists": "Check-lists",
"click-to-star": "Cliquez pour ajouter ce tableau aux favoris.",
"click-to-unstar": "Cliquez pour retirer ce tableau des favoris.",
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
"auto-list-width": "Auto list width",
"click-to-enable-auto-width": "Largeur de liste auto. désactivée. Cliquer pour activer.",
"click-to-disable-auto-width": "Largeur de liste auto. activée. Cliquer pour désactiver.",
"auto-list-width": "Largeur de liste auto.",
"clipboard": "Presse-papier ou glisser-déposer",
"close": "Fermer",
"close-board": "Fermer le tableau",
@@ -310,7 +310,7 @@
"no-comments": "Aucun commentaire",
"no-comments-desc": "Ne peut pas voir les commentaires et les activités.",
"worker": "Travailleur",
"worker-desc": "Peut seulement déplacer des cartes, s'assigner à une carte et la commenter.",
"worker-desc": "Peut seulement déplacer des cartes, s'attribuer une carte et la commenter.",
"computer": "Ordinateur",
"confirm-subtask-delete-popup": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?",
"confirm-checklist-delete-popup": "Êtes-vous sûr de vouloir supprimer la check-list ?",
@@ -383,7 +383,7 @@
"email-sent": "Courriel envoyé",
"email-verifyEmail-subject": "Vérifier votre adresse de courriel sur __siteName__",
"email-verifyEmail-text": "Bonjour __user__,\n\nPour vérifier votre compte courriel, il suffit de cliquer sur le lien ci-dessous.\n\n__url__\n\nMerci.",
"enable-vertical-scrollbars": "Enable vertical scrollbars",
"enable-vertical-scrollbars": "Activer les barres de défilement verticales",
"enable-wip-limit": "Activer la limite WIP",
"error-board-doesNotExist": "Ce tableau n'existe pas",
"error-board-notAdmin": "Vous devez être administrateur de ce tableau pour faire cela",
@@ -437,8 +437,8 @@
"filter-no-label": "Aucune étiquette",
"filter-member-label": "Filtrer par participant",
"filter-no-member": "Aucun participant",
"filter-assignee-label": "Filtrer par personne assignée",
"filter-no-assignee": "Pas de personne assignée",
"filter-assignee-label": "Filtrer par intervenant",
"filter-no-assignee": "Pas d'intervenant",
"filter-custom-fields-label": "Filtrer par champs personnalisés",
"filter-no-custom-fields": "Pas de champs personnalisés",
"filter-show-archive": "Montrer les listes archivées",
@@ -471,9 +471,9 @@
"import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".",
"import-json-placeholder": "Collez ici les données JSON valides",
"import-csv-placeholder": "Déposez ici vos données valides CSV/TSV",
"import-map-members": "Assigner des participants",
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.",
"import-members-map-note": "Note: les participants ne concordant pas seront assignés à l'utilisateur courant.",
"import-map-members": "Faire correspondre les participants",
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez faire correspondre les participants que vous souhaitez importer à vos utilisateurs.",
"import-members-map-note": "Note: les participants ne concordant pas seront attribués à l'utilisateur courant.",
"import-show-user-mapping": "Contrôler l'assignation des participants",
"import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce participant",
"importMapMembersAddPopup-title": "Sélectionner le participant",
@@ -581,13 +581,13 @@
"set-wip-limit-value": "Définit une limite maximale au nombre de cartes de cette liste",
"setWipLimitPopup-title": "Définir la limite WIP",
"shortcut-add-self": "S'ajouter à la carte courante",
"shortcut-assign-self": "Affecter cette carte à vous-même",
"shortcut-assign-self": "S'attribuer cette carte",
"shortcut-autocomplete-emoji": "Auto-complétion des emoji",
"shortcut-autocomplete-members": "Auto-complétion des participants",
"shortcut-clear-filters": "Retirer tous les filtres",
"shortcut-close-dialog": "Fermer la boîte de dialogue",
"shortcut-filter-my-cards": "Filtrer mes cartes",
"shortcut-filter-my-assigned-cards": "Filtrer mes cartes assignées",
"shortcut-filter-my-assigned-cards": "Filtrer mes cartes attribuées",
"shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
"shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres",
"shortcut-toggle-searchbar": "Afficher/Masquer la barre latérale de recherche",
@@ -610,8 +610,8 @@
"has-spenttime-cards": "A des cartes avec du temps passé",
"time": "Temps",
"title": "Titre",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-labels": "Bascule les étiquettes 1-9 pour les cartes. La sélection multiple ajoute les étiquettes 1-9",
"toggle-assignees": "Changer les intervenants 1-9 sur une carte (par ordre d'ajout au tableau)",
"toggle-labels": "Afficher/Masquer les étiquettes 1-9 sur les cartes. La sélection multiple ajoute les étiquettes 1-9",
"remove-labels-multiselect": "La multi-sélection supprime les étiquettes 1-9",
"tracking": "Suivi",
"tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou participant.",
@@ -729,7 +729,7 @@
"setCardActionsColorPopup-title": "Choisissez une couleur",
"setSwimlaneColorPopup-title": "Choisissez une couleur",
"setListColorPopup-title": "Choisissez une couleur",
"assigned-by": "Assigné par",
"assigned-by": "Attribué par",
"requested-by": "Demandé par",
"card-sorting-by-number": "Tri numérique des cartes",
"board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.",
@@ -928,8 +928,8 @@
"accounts-allowUserDelete": "Autoriser les utilisateurs à supprimer leur compte",
"hide-minicard-label-text": "Cacher l'étiquette de la mini-carte",
"show-desktop-drag-handles": "Voir les poignées de déplacement du bureau",
"assignee": "Personne assignée",
"cardAssigneesPopup-title": "Personne assignée",
"assignee": "Intervenant",
"cardAssigneesPopup-title": "Intervenant",
"addmore-detail": "Ajouter une description plus détaillée",
"show-on-card": "Afficher sur la carte",
"show-on-minicard": "Afficher sur la mini-carte",
@@ -1023,7 +1023,7 @@
"operator-user-abbrev": "@",
"operator-member": "participant",
"operator-member-abbrev": "m",
"operator-assignee": "personne assignée",
"operator-assignee": "intervenant",
"operator-assignee-abbrev": "a",
"operator-creator": "créateur",
"operator-status": "statut",
@@ -1054,7 +1054,7 @@
"predicate-checklist": "check-list",
"predicate-start": "début",
"predicate-end": "fin",
"predicate-assignee": "personne assignée",
"predicate-assignee": "intervenant",
"predicate-member": "participant",
"predicate-public": "public",
"predicate-private": "privé",
@@ -1079,13 +1079,13 @@
"globalSearch-instructions-operator-comment": "`__operator_comment__:<texte>` - cartes dont le commentaire contient *<texte>*.",
"globalSearch-instructions-operator-label": "`__operator_label__:<couleur>` `__operator_label__:<nom>` - cartes qui ont une étiquette correspondant à *<couleur>* ou à *<nom>*.",
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<nom|couleur>` - raccourci pour `__operator_label__:<couleur>` ou `__operator_label__:<nom>`",
"globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *assigné* ou est un *participant*.",
"globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *participant* ou *intervenant*.",
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:<nom>`",
"globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *attribuées* à l'utilisateur *<nom>*",
"globalSearch-instructions-operator-creator": "`__operator_creator__:<utilisateur>` - cartes dont le créateur est *<utilisateur>*",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau assigné à l'organisation *<name>*",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau assigné à l'équipe *<name>*",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau attribué à l'organisation *<name>*",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau attribué à l'équipe *<name>*",
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.",
"globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins",
"globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins",
@@ -1257,7 +1257,7 @@
"text": "Texte",
"translation-text": "Texte traduit",
"show-subtasks-field": "Afficher le champ des sous-tâches",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Afficher la semaine de l'année (ISO 8601)",
"convert-to-markdown": "Convertir en markdown",
"import-board-zip": "Ajouter un fichier .zip qui contient les fichiers JSON du tableau et les noms de sous-répertoires avec les pièces jointes",
"collapse": "Réduire",
@@ -1266,7 +1266,7 @@
"hideAllChecklistItems": "Cacher tous les éléments de la check-list",
"support": "Support",
"supportPopup-title": "Support",
"accessibility-page-enabled": "Accessibility page enabled",
"accessibility-title": "Accessibility topic",
"accessibility-content": "Accessibility content"
"accessibility-page-enabled": "Page d'accessibilité activée",
"accessibility-title": "Sujet d'accessibilité",
"accessibility-content": "Contenu d'accessibilité"
}
+2 -2
View File
@@ -610,7 +610,7 @@
"has-spenttime-cards": "יש כרטיסי זמן שהושקע",
"time": "זמן",
"title": "כותרת",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-assignees": "הצגת/הסרת מוקצים 1-‏9 בכרטיסים (לפי סדר ההוספה ללוח).",
"toggle-labels": "החלפת מצב תוויות 1-‎9 לכרטיס. בחירה מרוכזת מוסיפה תוויות 1‏-9",
"remove-labels-multiselect": "בחירה מרוכזת מסירה תוויות 1-‏9",
"tracking": "מעקב",
@@ -1257,7 +1257,7 @@
"text": "טקסט",
"translation-text": "טקסט תרגום",
"show-subtasks-field": "הצגת שדה תת־משימות",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "הצגת שבוע בשנה (ISO 8601)",
"convert-to-markdown": "המרה ל־Markdown",
"import-board-zip": "הוספת קובץ ‎.zip עם קובצי JSON של לוח, ותת־תיקיות בשם הלוח עם קבצים מצורפים",
"collapse": "צמצום",
+1 -1
View File
@@ -1257,7 +1257,7 @@
"text": "テキスト",
"translation-text": "翻訳テキスト",
"show-subtasks-field": "サブタスクフィールドを表示",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "年内の暦週番号(ISO 8601準拠)",
"convert-to-markdown": "マークダウンに変換",
"import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する",
"collapse": "Collapse",
+1 -1
View File
@@ -1257,7 +1257,7 @@
"text": "テキスト",
"translation-text": "翻訳テキスト",
"show-subtasks-field": "サブタスクフィールドを表示",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "年内の暦週番号(ISO 8601準拠)",
"convert-to-markdown": "マークダウンに変換",
"import-board-zip": "ボードJSONファイルを含む zip ファイルと、添付ファイルを含むボード名サブディレクトリを追加する",
"collapse": "折りたたむ",
+1 -1
View File
@@ -1257,7 +1257,7 @@
"text": "Tekst",
"translation-text": "Te vertalen tekst",
"show-subtasks-field": "Toon subtakenveld",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Toon weeknummers (ISO 8601)",
"convert-to-markdown": "Converteer naar markdown",
"import-board-zip": "Voeg .zip bestand toe met bord JSON bestanden, en bordnaam subdirectories met bijlagen.",
"collapse": "Inklappen",
+2 -2
View File
@@ -610,7 +610,7 @@
"has-spenttime-cards": "Gastou cartões de tempo",
"time": "Tempo",
"title": "Título",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-assignees": "Alternar administradores 1-9 para cartão (Por ordem de adição no quadro)",
"toggle-labels": "Alternar etiquetas 1-9 para cartão. Multi-seleção adiciona etiquetas 1-9",
"remove-labels-multiselect": "Multi-seleção remove etiquetas 1-9",
"tracking": "Rastreamento",
@@ -1257,7 +1257,7 @@
"text": "Texto",
"translation-text": "Texto de tradução",
"show-subtasks-field": "Mostrar campo subtarefas",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Mostrar semana do ano (ISO8601)",
"convert-to-markdown": "Converter para markdown",
"import-board-zip": "Adicione o arquivo .zip que contém arquivos JSON do quadro e subdiretórios de nomes do quadro com anexos",
"collapse": "Expandir",
+2 -2
View File
@@ -610,7 +610,7 @@
"has-spenttime-cards": "Har spenderat tidkort",
"time": "Tid",
"title": "Titel",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-assignees": "Växla tilldelade personer 1-9 för kort (I den ordning de lades till i tavlan).",
"toggle-labels": "Toggle-etiketter 1-9 för kortet. Multi-Selection lägger till etiketter 1-9.",
"remove-labels-multiselect": "Multi-Selection raderar etikett 1-9",
"tracking": "Spåra",
@@ -1257,7 +1257,7 @@
"text": "Text",
"translation-text": "Översatt text",
"show-subtasks-field": "Visa underuppgiftsfält",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "Visa veckonummer (ISO 8601)",
"convert-to-markdown": "Konvertera till markdown",
"import-board-zip": "Lägga till .zip-filen till tavlans JSON filer, och tavla",
"collapse": "Fäll ihop",
+6 -6
View File
@@ -49,7 +49,7 @@
"activity-archived": "%s Arşive taşındı",
"activity-attached": "%s içine %s ekledi",
"activity-created": "%s öğesini oluşturdu",
"activity-changedListTitle": "renamed list to %s",
"activity-changedListTitle": "Liste adı %syapıldı",
"activity-customfield-created": "%s adlı özel alan yaratıldı",
"activity-excluded": "%s içinden %s çıkarttı",
"activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı",
@@ -86,10 +86,10 @@
"add-card": "Kart Ekle",
"add-card-to-top-of-list": "Listenin Başına Kart Ekle",
"add-card-to-bottom-of-list": "Listenin Sonuna Kart Ekle",
"setListWidthPopup-title": "Set Widths",
"set-list-width": "Set Widths",
"set-list-width-value": "Set Min & Max Widths (pixels)",
"list-width-error-message": "List widths must be integers greater than 100",
"setListWidthPopup-title": "Genişlik Ata",
"set-list-width": "Genişlik Ata",
"set-list-width-value": "En Az & En Çok Genişlik (piksel) Ata ",
"list-width-error-message": "Liste genişliği 100'den büyük sayısal bir değer olmalı",
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
"setSwimlaneHeightPopup-title": "Kulvar Uzunluğunu Ayarla",
@@ -300,7 +300,7 @@
"color-white": "beyaz",
"color-yellow": "sarı",
"unset-color": "Seçilmemiş",
"comments": "Comments",
"comments": "Yorumlar",
"comment": "Yorum",
"comment-placeholder": "Yorum Yaz",
"comment-only": "Sadece yorum",
+4 -4
View File
@@ -610,7 +610,7 @@
"has-spenttime-cards": "耗時卡",
"time": "時間",
"title": "標題",
"toggle-assignees": "Toggle assignees 1-9 for card (By order of addition to board).",
"toggle-assignees": "切換卡片的代理人 1-9(按加入看板的順序)。",
"toggle-labels": "切換卡片的標籤 1-9。多重選擇新增標籤 1-9",
"remove-labels-multiselect": "多重選擇移除標籤 1-9",
"tracking": "訂閱相關通知",
@@ -1079,10 +1079,10 @@
"globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - 卡片評論包含 *<text>*.",
"globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - 卡片標籤要符合 *<color>* 或 *<name>",
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name|color>` - 的簡寫 `__operator_label__:<color>` 或 `__operator_label__:<name>`",
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *分配者*",
"globalSearch-instructions-operator-user": "`__operator_user__:<username>` - 卡片,其中 *<username>* 是 *成員* 或 *代理人*",
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - `user:<username>` 的簡寫",
"globalSearch-instructions-operator-member": "`__operator_member__:<username>` - 卡片,其中 *<username>* 是i *成員*",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *分配者*",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - 卡片,其中 *<username>* 是 *代理人*",
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` - 卡片,其中 *<username>* 是卡片的建立者",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - 屬於分配給組織 *<name>* 看板的卡片",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - 屬於分配給團隊 *<name>* 看板的卡片",
@@ -1257,7 +1257,7 @@
"text": "文字",
"translation-text": "翻譯文字",
"show-subtasks-field": "顯示子工作項目欄位",
"show-week-of-year": "Show week of year (ISO 8601)",
"show-week-of-year": "顯示年度週數 (ISO 8601)",
"convert-to-markdown": "轉換為 Markdown",
"import-board-zip": "新增包含看板 JSON 檔案與帶有附件的看板名稱子目錄的 .zip 檔案",
"collapse": "損毀",
+31 -6
View File
@@ -2,13 +2,38 @@ import { Meteor } from 'meteor/meteor';
import Users from '../users';
function acceptedIpAddress(ipAddress) {
const trustedIpAddress = process.env.WEKAN_METRICS_ACCEPTED_IP_ADDRESS;
const trustedIpAddress = process.env.METRICS_ACCEPTED_IP_ADDRESS;
return (
trustedIpAddress !== undefined &&
trustedIpAddress.split(',').includes(ipAddress)
);
}
function accessToken(req) {
const valid_token = process.env.METRICS_ACCESS_TOKEN;
let token;
if (req.headers && req.headers.authorization) {
var parts = req.headers.authorization.split(" ");
if (parts.length === 2) {
var scheme = parts[0];
var credentials = parts[1];
if (/^Bearer$/i.test(scheme)) {
token = credentials;
}
}
}
if (!token && req.query && req.query.access_token) {
token = req.query.access_token;
}
return (
token !== undefined &&
valid_token !== undefined &&
token == valid_token
);
}
const getBoardTitleWithMostActivities = (dateWithXdaysAgo, nbLimit) => {
return Promise.await(
Activities.rawCollection()
@@ -48,8 +73,8 @@ Meteor.startup(() => {
// const ipAddress = req.socket.remoteAddress
// }
// List of trusted ip adress will be found in environment variable "WEKAN_METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas)
if (acceptedIpAddress(ipAddress)) {
// List of trusted ip adress will be found in environment variable "METRICS_ACCEPTED_IP_ADDRESS" (separeted with commas)
if (acceptedIpAddress(ipAddress) || (accessToken(req))) {
let metricsRes = '';
let resCount = 0;
//connected users
@@ -170,12 +195,12 @@ Meteor.startup(() => {
metricsRes +=
'# Top 10 boards with most activities dated 30 days ago\n';
//Get top 10 table with most activities in current month
//Get top 10 table with most activities in current month
const boardTitleWithMostActivities = getBoardTitleWithMostActivities(
dateWithXdaysAgo,
xdays,
);
const boardWithMostActivities = boardTitleWithMostActivities.map(
(board) => board.lookup[0].title,
);
@@ -185,7 +210,7 @@ Meteor.startup(() => {
`wekan_top10BoardsWithMostActivities{n="${title}"} ${
index + 1
}` + '\n';
});
});
res.writeHead(200); // HTTP status
res.end(metricsRes);
+77 -156
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v7.79.0",
"version": "v7.82.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -108,6 +108,12 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
},
"@types/trusted-types": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
"optional": true
},
"@wekanteam/dragscroll": {
"version": "git+https://github.com/wekan/dragscroll.git#6ea215c8cdbde9362ecba8ffb72ce9f9fde842d2",
"from": "git+https://github.com/wekan/dragscroll.git"
@@ -600,9 +606,12 @@
}
},
"dompurify": {
"version": "2.5.6",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz",
"integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ=="
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz",
"integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==",
"requires": {
"@types/trusted-types": "^2.0.7"
}
},
"domutils": {
"version": "2.8.0",
@@ -1373,16 +1382,15 @@
"integrity": "sha512-SBbbYWvFYvsxHVL+q6ZB8lT3rp2LSvfALD2V52H+MGH2IgJsevy0VtXRkRG0EsUewwOaDTIKBn9DlD8HQ3GSwg=="
},
"meteor-node-stubs": {
"version": "1.2.12",
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.12.tgz",
"integrity": "sha512-mzp3KI2aGNDhFlCVXPd0pfMr2z9A5vl1AqEgV13/z7AgKwcbd2X+ymE6tpSAMkrrQb40PU9PC2B59bCb6XkAaw==",
"version": "git+https://github.com/wekan/meteor-node-stubs.git#4f2609bc4d9d700ff79424ad4ed8dbf1f06666cb",
"from": "git+https://github.com/wekan/meteor-node-stubs.git",
"requires": {
"@meteorjs/crypto-browserify": "^3.12.1",
"assert": "^2.1.0",
"browserify-zlib": "^0.2.0",
"buffer": "^5.7.1",
"console-browserify": "^1.2.0",
"constants-browserify": "^1.0.0",
"crypto-browserify": "^3.12.0",
"domain-browser": "^4.23.0",
"elliptic": "^6.6.0",
"events": "^3.3.0",
@@ -1398,46 +1406,19 @@
"string_decoder": "^1.3.0",
"timers-browserify": "^2.0.12",
"tty-browserify": "0.0.1",
"url": "^0.11.4",
"url": "^0.11.3",
"util": "^0.12.5",
"vm-browserify": "^1.1.2"
},
"dependencies": {
"@meteorjs/crypto-browserify": {
"version": "3.12.1",
"bundled": true,
"requires": {
"browserify-cipher": "^1.0.1",
"browserify-sign": "^4.2.3",
"create-ecdh": "^4.0.4",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"diffie-hellman": "^5.0.3",
"hash-base": "~3.0.4",
"inherits": "^2.0.4",
"pbkdf2": "^3.1.2",
"public-encrypt": "^4.0.3",
"randombytes": "^2.1.0",
"randomfill": "^1.0.4"
},
"dependencies": {
"hash-base": {
"version": "3.0.4",
"bundled": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
}
}
},
"asn1.js": {
"version": "4.10.1",
"version": "5.4.1",
"bundled": true,
"requires": {
"bn.js": "^4.0.0",
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0"
"minimalistic-assert": "^1.0.0",
"safer-buffer": "^2.1.0"
},
"dependencies": {
"bn.js": {
@@ -1513,64 +1494,23 @@
}
},
"browserify-sign": {
"version": "4.2.3",
"version": "4.2.2",
"bundled": true,
"requires": {
"bn.js": "^5.2.1",
"browserify-rsa": "^4.1.0",
"create-hash": "^1.2.0",
"create-hmac": "^1.1.7",
"elliptic": "^6.5.5",
"hash-base": "~3.0",
"elliptic": "^6.5.4",
"inherits": "^2.0.4",
"parse-asn1": "^5.1.7",
"readable-stream": "^2.3.8",
"parse-asn1": "^5.1.6",
"readable-stream": "^3.6.2",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"bn.js": {
"version": "5.2.1",
"bundled": true
},
"hash-base": {
"version": "3.0.4",
"bundled": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
},
"readable-stream": {
"version": "2.3.8",
"bundled": true,
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"bundled": true
}
}
},
"string_decoder": {
"version": "1.1.1",
"bundled": true,
"requires": {
"safe-buffer": "~5.1.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"bundled": true
}
}
}
}
},
@@ -1598,14 +1538,12 @@
"bundled": true
},
"call-bind": {
"version": "1.0.7",
"version": "1.0.5",
"bundled": true,
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
"get-intrinsic": "^1.2.1",
"set-function-length": "^1.1.1"
}
},
"cipher-base": {
@@ -1624,10 +1562,6 @@
"version": "1.0.0",
"bundled": true
},
"core-util-is": {
"version": "1.0.3",
"bundled": true
},
"create-ecdh": {
"version": "4.0.4",
"bundled": true,
@@ -1665,13 +1599,30 @@
"sha.js": "^2.4.8"
}
},
"define-data-property": {
"version": "1.1.4",
"crypto-browserify": {
"version": "3.12.0",
"bundled": true,
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
"browserify-cipher": "^1.0.0",
"browserify-sign": "^4.0.0",
"create-ecdh": "^4.0.0",
"create-hash": "^1.1.0",
"create-hmac": "^1.1.0",
"diffie-hellman": "^5.0.0",
"inherits": "^2.0.1",
"pbkdf2": "^3.0.3",
"public-encrypt": "^4.0.0",
"randombytes": "^2.0.0",
"randomfill": "^1.0.3"
}
},
"define-data-property": {
"version": "1.1.1",
"bundled": true,
"requires": {
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.0"
}
},
"define-properties": {
@@ -1711,7 +1662,7 @@
"bundled": true
},
"elliptic": {
"version": "6.6.0",
"version": "6.6.1",
"bundled": true,
"requires": {
"bn.js": "^4.11.9",
@@ -1724,22 +1675,11 @@
},
"dependencies": {
"bn.js": {
"version": "4.12.0",
"version": "4.12.1",
"bundled": true
}
}
},
"es-define-property": {
"version": "1.0.0",
"bundled": true,
"requires": {
"get-intrinsic": "^1.2.4"
}
},
"es-errors": {
"version": "1.3.0",
"bundled": true
},
"events": {
"version": "3.3.0",
"bundled": true
@@ -1764,10 +1704,9 @@
"bundled": true
},
"get-intrinsic": {
"version": "1.2.4",
"version": "1.2.2",
"bundled": true,
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
@@ -1782,10 +1721,10 @@
}
},
"has-property-descriptors": {
"version": "1.0.2",
"version": "1.0.1",
"bundled": true,
"requires": {
"es-define-property": "^1.0.0"
"get-intrinsic": "^1.2.2"
}
},
"has-proto": {
@@ -1882,10 +1821,6 @@
"which-typed-array": "^1.1.11"
}
},
"isarray": {
"version": "1.0.0",
"bundled": true
},
"md5.js": {
"version": "1.3.5",
"bundled": true,
@@ -1918,7 +1853,7 @@
"bundled": true
},
"object-inspect": {
"version": "1.13.2",
"version": "1.13.1",
"bundled": true
},
"object-is": {
@@ -1952,25 +1887,14 @@
"bundled": true
},
"parse-asn1": {
"version": "5.1.7",
"version": "5.1.6",
"bundled": true,
"requires": {
"asn1.js": "^4.10.1",
"browserify-aes": "^1.2.0",
"evp_bytestokey": "^1.0.3",
"hash-base": "~3.0",
"pbkdf2": "^3.1.2",
"safe-buffer": "^5.2.1"
},
"dependencies": {
"hash-base": {
"version": "3.0.4",
"bundled": true,
"requires": {
"inherits": "^2.0.1",
"safe-buffer": "^5.0.1"
}
}
"asn1.js": "^5.2.0",
"browserify-aes": "^1.0.0",
"evp_bytestokey": "^1.0.0",
"pbkdf2": "^3.0.3",
"safe-buffer": "^5.1.1"
}
},
"path-browserify": {
@@ -1992,10 +1916,6 @@
"version": "0.11.10",
"bundled": true
},
"process-nextick-args": {
"version": "2.0.1",
"bundled": true
},
"public-encrypt": {
"version": "4.0.3",
"bundled": true,
@@ -2019,10 +1939,10 @@
"bundled": true
},
"qs": {
"version": "6.13.0",
"version": "6.11.2",
"bundled": true,
"requires": {
"side-channel": "^1.0.6"
"side-channel": "^1.0.4"
}
},
"querystring-es3": {
@@ -2065,16 +1985,18 @@
"version": "5.2.1",
"bundled": true
},
"safer-buffer": {
"version": "2.1.2",
"bundled": true
},
"set-function-length": {
"version": "1.2.2",
"version": "1.1.1",
"bundled": true,
"requires": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"define-data-property": "^1.1.1",
"get-intrinsic": "^1.2.1",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2"
"has-property-descriptors": "^1.0.0"
}
},
"setimmediate": {
@@ -2090,13 +2012,12 @@
}
},
"side-channel": {
"version": "1.0.6",
"version": "1.0.4",
"bundled": true,
"requires": {
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
}
},
"stream-browserify": {
@@ -2136,11 +2057,11 @@
"bundled": true
},
"url": {
"version": "0.11.4",
"version": "0.11.3",
"bundled": true,
"requires": {
"punycode": "^1.4.1",
"qs": "^6.12.3"
"qs": "^6.11.2"
}
},
"util": {
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v7.79.0",
"version": "v7.82.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
@@ -28,7 +28,7 @@
"ajv": "^6.12.6",
"bcryptjs": "^2.4.3",
"bson": "^4.5.2",
"dompurify": "^2.5.6",
"dompurify": "^3.2.4",
"es6-promise": "^4.2.4",
"escape-string-regexp": "^5.0.0",
"fibers": "^5.0.3",
@@ -44,7 +44,7 @@
"markdown-it-emoji": "^2.0.0",
"markdown-it-mathjax3": "^4.3.2",
"meteor-accounts-t9n": "^2.6.0",
"meteor-node-stubs": "^1.2.12",
"meteor-node-stubs": "https://github.com/wekan/meteor-node-stubs.git",
"minio": "^7.1.3",
"moment": "^2.29.4",
"os": "^0.1.2",
+3 -3
View File
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v7.79</title>
<title>Wekan REST API v7.82</title>
<style>
</style>
@@ -1549,7 +1549,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.79">Wekan REST API v7.79</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.82">Wekan REST API v7.82</a>
</li>
@@ -2068,7 +2068,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v7.79</h1>
<h1 id="wekan-rest-api">Wekan REST API v7.82</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
+1 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v7.79
version: v7.82
description: |
The REST API allows you to control and extend Wekan with ease.
+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 = 779,
appVersion = 782,
# Increment this for every release.
appMarketingVersion = (defaultText = "7.79.0~2025-01-02"),
appMarketingVersion = (defaultText = "7.82.0~2025-02-24"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+5 -5
View File
@@ -1,5 +1,5 @@
name: wekan
version: '7.79'
version: '7.82'
base: core20
summary: Open Source kanban
description: |
@@ -65,7 +65,7 @@ apps:
parts:
mongodb:
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.19.tgz
source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.20.tgz
plugin: dump
stage-packages:
- libssl1.1
@@ -170,9 +170,9 @@ parts:
# Cleanup
mkdir .build
cd .build
wget https://github.com/wekan/wekan/releases/download/v7.79/wekan-7.79-amd64.zip
unzip wekan-7.79-amd64.zip
rm wekan-7.79-amd64.zip
wget https://github.com/wekan/wekan/releases/download/v7.82/wekan-7.82-amd64.zip
unzip wekan-7.82-amd64.zip
rm wekan-7.82-amd64.zip
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf
+3
View File
@@ -459,6 +459,9 @@ REM # example : LDAP_BACKGROUND_SYNC=true
REM SET LDAP_BACKGROUND_SYNC=false
REM # LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
REM # The format must be as specified in:
REM # https://bunkat.github.io/later/parsers.html#text
REM SET LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
REM # At which interval does the background task sync in milliseconds.
REM # Leave this unset, so it uses default, and does not crash.
REM # https://github.com/wekan/wekan/issues/2354#issuecomment-515305722
+3
View File
@@ -385,6 +385,9 @@
#export LDAP_BACKGROUND_SYNC=false
#
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
# The format must be as specified in:
# https://bunkat.github.io/later/parsers.html#text
#export LDAP_BACKGROUND_SYNC_INTERVAL=every 1 hours
# At which interval does the background task sync in milliseconds.
# Leave this unset, so it uses default, and does not crash.
# https://github.com/wekan/wekan/issues/2354#issuecomment-515305722