* fix: missing graceful shutdown handler
* fix: asar - use async fs operation
* fix: scheduler - graceful shutdown and wait for running jobs to complete
When the total page number is large enough (usually about 80+), sqlite will throw error: "Too many variables". This commit reduces the chunk size for sqlite configuration.
* Update storage.js to match pageHelper.injectPageMetadata
At pageHelper.injectPageMetadata references editorKey and tags to build metadata, but this data seems not to be supplied to this function, since page object is only built from specified columns.
As a result, tags are always empty when exporting pages, and editor key appears as undefined.
It happens also with git storage, but may happen with another storage providers.
I run into this issue running Wiki.js 2.5.170 with the following Docker stack:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39373979b693 requarks/wiki:2 "docker-entrypoint.s…" 44 minutes ago Up 9 minutes 0.0.0.0:80->3000/tcp, 0.0.0.0:443->3443/tcp wiki
608de6278aaa requarks/wiki-update-companion:latest "dotnet wiki-update-…" 5 months ago Up 6 hours 80/tcp wiki-update-companion
12c7b35ba295 postgres:11 "docker-entrypoint.s…" 5 months ago Up 6 hours 5432/tcp db
* Provide id to allow to query for tags
* Update git storage to provide editorKey and tags
If in server config mysql has autocommit = 0, then wikijs fails with locks like this:
```
2020-10-30T12:56:51.725Z [JOB] error: Rebuilding page tree: [ FAILED ]
2020-10-30T12:56:51.726Z [JOB] error: truncate `pageTree` - Lock wait timeout exceeded; try restarting transaction
```
For building suggest in elasticsearch, the safeContent field will be splitted into arrays. If the page is renamed or moved, the server will throw error: "Cannot read property 'split' of Undefined", and the index will be broken. Here two lines are added to fix this issue.
* Feature: Custom configuration for elasticsearch
For better search results especially in Chinese, which the standard token analyzer may not work well.
* Set default analyzer in settings when building index
* Remove dangling comma
This adds cookieEncryptionKeyString configuration in the Azure AD
authentication module. It represents an array of cookie encryption
strings and enables workaround for SameSite cookies.
In our setup (based on yunohost) the profile.email field could be either a string (and that was properly handled) or an array.
This code adds support for the case where it is an array.
* fix: secure html module removes allowfullscreen, allow and frameborder attributes from iframes
* Apply suggestions from code review
fix: remove deprecated attributes for iframe in secure html module
Co-authored-by: Nicolas Giard <github@ngpixel.com>
This code will allow the "search" component to correctly filter pages by usergroup permissions based on tags instead of paths
Co-authored-by: Riccardo Re <riccardo.re@clevermind.cloud>
* fix: pass userinfo URL in oidc strategy
The userinfo URL from the definition was not being provided to the
passport strategy, which resulted in a type error trying to resolve the
user's profile. Furthermore, the name of the defined URL was
inconsistent with all other authentication method URLs.
* fix: pass all necessary scopes to oidc auth method
When no scopes are provided, passport-openidconnect uses only `openid`,
which does not contain the username or email address. Include `profile`
and `email` to ensure the necessary claims are included.
* fix: update oidc method to call processProfile correctly
Now the profile object and providerKey are passed to processProfile. The
usernameClaim no longer has any use as the email address is the
username.
* fix: mark oidc authentication method as available
* change language in edit, history and source pages
* fix: remove unnecessary i18n locale switch for download page
Co-authored-by: Nicolas Giard <github@ngpixel.com>