Commit Graph

376 Commits

Author SHA1 Message Date
eikek
c1ce0769eb Check file integrity 2022-03-12 12:58:34 +01:00
eikek
422c0905dc Add task to copy files 2022-03-12 12:58:28 +01:00
eikek
e82b00c582 Use different file stores based on config 2022-03-12 12:19:00 +01:00
eikek
c812ea1009 Store files in different binary stores 2022-03-12 12:18:58 +01:00
eikek
d3ef4b6166 Moved route definitions in RestApp 2022-03-12 12:18:36 +01:00
eikek
a3569598d8 Minor improvements
- use a one-line log format
- load templates only once
- fixed typos
- fix reset timezone in ui settings
- hide bookmarks headline if there are none
2022-03-02 22:22:54 +01:00
eikek
f22f0150e8 Set samesite=strict for all cookies 2022-02-27 22:57:31 +01:00
eikek
8103e25e32 Set default log format to fancy 2022-02-23 23:26:22 +01:00
Scala Steward
ece6b0354f Update yamusca-circe, yamusca-core to 0.9.0 2022-02-22 22:34:51 +01:00
eikek
8b42708db2 Remove old log stuff 2022-02-19 22:01:49 +01:00
eikek
e483a97de7 Adopt to new loggin api 2022-02-19 21:41:38 +01:00
eikek
553b1fa249 Add a file-repository for better organizing files
Docspell now must use a new api for accessing files.

Issue: #1379
2022-02-15 22:20:06 +01:00
eikek
4f9c91d6af Reordered some routes due to a change in http4s
Upstream ticket http4s#5959
2022-01-29 18:33:06 +01:00
eikek
e1a8b9b121 Use collective settings for shares 2022-01-29 17:36:18 +01:00
eikek
1ca64f09d1 Add route to get settings for a share
Returns the client settings of the creator.
2022-01-29 10:11:54 +01:00
eikek
73f47d7be3 Replace viewerjs with pdfjs viewer
The pdfjs distribution contains a standalone viewer already.
2022-01-20 00:16:39 +01:00
eikek
23cb34a6ff Manage notification channels separately and migrate
It's more convenient to manage notification channels separately, as it
is done with email settings. Notification hook and other forms are
adopted to only select channels. Hooks can now use more than one
channel.
2022-01-19 21:57:30 +01:00
eikek
76ad708111 Update sbt-openapi-schema plugin to 0.9.0 2022-01-17 17:53:31 +01:00
eikek
404fb2a37f Allow a custom message part for the periodic query task 2022-01-11 22:50:19 +01:00
eikek
dd9937740a Allow notification templates to fail
Templates were hardcoded. To make them dynamic, errors must be handled.
2022-01-11 21:49:39 +01:00
eikek
699cf091e6 Allow bookmarks in periodic query notification 2022-01-10 14:25:20 +01:00
eikek
54a4e6efee Fix formatting 2022-01-09 23:58:57 +01:00
eikek
9415f72ec0 Instead of client only, make bookmarks a server aware feature
Makes it much more useful
2022-01-09 23:58:57 +01:00
eikek
a50a0a9a1a Bookmark queries scoped to user or collective 2022-01-08 22:42:48 +01:00
eikek
05229a7e9c Allow managing clientsettings per collective 2022-01-08 12:38:14 +01:00
eikek
706cfaeb05 Introduce table to store client settings per collective 2022-01-08 12:38:14 +01:00
eikek
0b606e6b05 Use logfmt for log lines and remove ansi color codes 2021-12-19 22:29:56 +01:00
eikek
c21b2cdd29 Update scalafmt to 3.0.8 2021-12-11 22:46:55 +01:00
eikek
4ffc8d1f14 Add support for more generic notification
This is a start to have different kinds of notifications. It is
possible to be notified via e-mail, matrix or gotify. It also extends
the current "periodic query" for due items by allowing notification
over different channels. A "generic periodic query" variant is added
as well.
2021-12-11 18:57:32 +01:00
eikek
13f28f753a Use an internal url for the rest server to register for messages 2021-11-17 21:27:26 +01:00
eikek
28b4546607 Hide sidebar by default on small devices
Closes: #1169
2021-11-12 23:21:51 +01:00
eikek
7a8527f821 Indicate number of running jobs in tob nav
Issue: #1069
2021-11-12 22:01:30 +01:00
eikek
9acdb8ef96 Fix formatting 2021-11-12 00:10:12 +01:00
eikek
cf933b60a7 Encode ws messages as JSON 2021-11-11 23:54:37 +01:00
eikek
5c7947299f Fix scaladoc 2021-11-08 00:15:14 +01:00
eikek
7b8afe8371 Make internal endpoints available to nodes only 2021-11-08 00:13:02 +01:00
eikek
61c01ad79b Use job group instead of parsing the task arguments 2021-11-08 00:07:44 +01:00
eikek
b041e2616d Fix uploads with utf8 bytes in filenames
This adds a modified parser for `Content-Disposition` header to fix
issue #991. The parser in http4s for `Content-Disposition` header
removes filenames that are sent as plain utf8 bytes. See also
http4s/http4s#5053.
2021-11-07 22:11:00 +01:00
eikek
3e58d97f72 Add websockets and notify frontend when an item is processed 2021-11-06 21:32:30 +01:00
eikek
f38d520a1d Hooking the new pubsub impl into the application 2021-11-06 01:44:06 +01:00
eikek
8fd86f9ec1 Don't allow shares with fulltext queries
Currently the query implementation cannot combine multiple/nested
fulltext searches within a query. It doesn't seem useful to have
shares based on fulltext searches, so it is disabled for now.

Issue: #446
2021-10-25 21:29:55 +02:00
eikek
668cd7d974 Refactor config validation 2021-10-25 11:27:06 +02:00
eikek
118d23c3a2 Add list of env variables to documentation
Issue: #1121
2021-10-25 00:23:20 +02:00
eikek
94b26a1721 Generate random server secret if not provided from config 2021-10-25 00:23:20 +02:00
eikek
4e5924d796 Refactor config loading and add config from environment
Issue: #1121
2021-10-24 23:02:39 +02:00
eikek
48d2bec9c4 Update http4s to 0.23.6 2021-10-24 18:24:03 +02:00
eikek
6696aba481 Show user shares when asking to delete user 2021-10-24 01:41:18 +02:00
eikek
2ac0b84e52 Link shares to the user, not the collective
The user is required when searching because of folders (sadly), so the
share is connected to the user.
2021-10-24 01:41:18 +02:00
eikek
337293128d Add route to send mail for a share 2021-10-23 14:33:24 +02:00
eikek
f216c472ee Detect how to display pdf files
Closes: #1099
2021-10-23 14:33:24 +02:00
eikek
1a10216e3d Get item details from a share 2021-10-23 14:33:24 +02:00
eikek
9eb2f9c6fe Implement binary routes for shares 2021-10-23 14:33:24 +02:00
eikek
813797756c Extend search stats to fully populate search menu
Refs: #856
2021-10-23 14:33:24 +02:00
eikek
e961a5ac10 Use search stats to populate search menu 2021-10-23 14:33:24 +02:00
eikek
e52271f9cd Implement share preview image 2021-10-23 14:33:24 +02:00
eikek
a286556116 Initial impl of search route 2021-10-23 14:33:24 +02:00
eikek
f4596db63d Authorize share access 2021-10-23 14:33:24 +02:00
eikek
4ef9d6c3ff Add expired flag to share details 2021-10-23 14:33:24 +02:00
eikek
c7d587bea4 Basic management of shares 2021-10-23 14:33:24 +02:00
eikek
f74624485f Allow to manage passwords for a collective 2021-09-30 10:35:38 +02:00
eikek
40727d205a Refactor occurrences folding streams of strings 2021-09-23 15:26:20 +02:00
eikek
1761526e20 Simplify MimeType class and parse mimetypes in a more lenient way 2021-09-23 14:10:24 +02:00
eikek
e31107eb49 Require a otp to disable 2fa 2021-09-23 09:27:44 +02:00
eikek
bbfc5b56d8 Document TOTP 2021-09-23 09:27:44 +02:00
eikek
4362301212 Fix base64 string in default config
While not being used, it is parsed and fails if it's not valid base64.
2021-09-22 19:48:10 +02:00
eikek
9013f2de5b Update scalafmt settings 2021-09-22 17:23:24 +02:00
eikek
20a829cf7a Refactoring for migrating to binny library 2021-09-22 14:18:43 +02:00
eikek
9785db0683 Change license header of all files 2021-09-21 22:35:38 +02:00
eikek
8df235e9db Delete the user along its data 2021-09-08 20:57:10 +02:00
eikek
11de82402e Add cross checks for the server config 2021-09-06 14:47:42 +02:00
eikek
4237caa755 Add some documentation for OIDC 2021-09-06 14:24:52 +02:00
eikek
28fdeb5a93 Fixing http redirect status codes 2021-09-06 11:40:47 +02:00
eikek
468ba90158 Fix OTP authentication for external accounts 2021-09-06 01:07:31 +02:00
eikek
8158e36d40 Improve logging and rename oauth->openid 2021-09-06 00:29:19 +02:00
eikek
984dda9da0 Add OpenID support to webapp 2021-09-05 23:43:07 +02:00
eikek
f8362329a9 Authenticate with external accounts using OIDC
After successful authentication at the provider, an account is
automatically created at docspell and the user is logged in.
2021-09-05 21:39:30 +02:00
eikek
aa099a340e Remove unused code 2021-09-05 21:38:14 +02:00
eikek
aef56233a5 Add a new column to distinguish local from external users 2021-09-05 21:38:14 +02:00
eikek
b73c252762 Implement authentication via OpenIdConnect and OAuth2
The new subproject "oidc" handles all the details for working with an
OpenID Connect provider (like keycloak) or only OAuth2 - only
supporting the "Authorization Code Flow" for both variants.
2021-09-05 17:32:15 +02:00
eikek
1afc005a6c Adopt login process for two-factor auth 2021-08-31 21:29:07 +02:00
eikek
309a52393a Initial impl for totp 2021-08-31 16:45:39 +02:00
eikek
cf88f5c2de Allow to specify ordering when retrieving meta data
The query now searches in more fields. For example, when getting a
list of tags, the query is applied to the tag name *and* category.
When listing persons, the query now also looks in the associated
organization name.

This has been used to make some headers in the meta data tables
clickable to sort the list accordingly.

Refs: #965, #538
2021-08-27 23:04:54 +02:00
eikek
993a391c13 Add the attachment-only option to a source
The upload request can now contain a boolean for importing only
attachments when e-mails are uploaded. This option is now also added
to a source url.

Refs: #983
2021-08-23 14:19:11 +02:00
eikek
751fa3da5a Add attachments-only filter to uploads
When uploading a file which is an e-mail, this option allows to skip
the mail body when the file is being processed.
2021-08-21 13:49:12 +02:00
Scala Steward
e4fecefaea
Reformat with scalafmt 3.0.0 2021-08-19 08:50:30 +02:00
eikek
85085ec173 Implement item merge 2021-08-16 12:32:54 +02:00
eikek
f4a2b86ea8 Use a minimum age of items to remove
In order to keep deleted items for a while, the periodic task can now
use a duration to only remove items with a certain age. This can be
used to ensure that a deleted item stays at least X days before it
will be removed from the database.

Refs: #347
2021-08-15 12:32:50 +02:00
eikek
31d885ed79 Refactor user tasks to support collective and user scopes
Before, there were periodic tasks run per collective and not user by
making sure that submitter + group are the same value. This is now
encoded in `UserTaskScope` so it is now obvious and errors can be
reduced when using this.
2021-08-14 22:07:56 +02:00
eikek
27fd7a5867 Make sure the empty-trash task is started for all collectives 2021-08-14 20:40:04 +02:00
eikek
4901276c66 Change "empty trash" settings for a collective and submit the job 2021-08-14 19:33:15 +02:00
eikek
f999662905 Add routes to restore deleted items 2021-08-14 16:48:03 +02:00
eikek
edb344314f Use an enum instead of a boolean to differentiate search
It's not very likely to have more modes of search besides normal and
trashed, but got surprised in that way quite often and it's nicer this
way anyways.
2021-08-14 15:11:48 +02:00
eikek
a7b74bd5ae Allow to search in soft-deleted items
A new query/request parameter can be used to apply a search to only
soft-deleted items.

The query expression `Trashed` has been introduced which selects only
items with state `Deleted`. This is another option an analog to
`ValidItemStates` (both cannot be used together as they would select
no items). This new query node is not added to the parser, because
users may not use it in their own queries - it must be part of the
"fixed" query so the application can control in which subset to search
(it would otherwise be possible to select any items).
2021-08-14 14:53:05 +02:00
eikek
cb777e30c0 Delete items by introducing a deleted state
When deleting items via the http api, they are not deleted anymore but
a new status "Deleted" is set. The collective insights contains now a
count separately for deleted items.
2021-08-14 14:18:03 +02:00
eikek
08ce6b5256 Fix path to viewerjs for pdf view 2021-08-13 00:58:13 +02:00
eikek
1901fe1a8c Adopt deprecated APIs from fs2; use fs2.Path 2021-08-07 17:51:56 +02:00
eikek
9578dd2b2b Add route to remove tags for a single item 2021-07-25 23:27:06 +02:00
eikek
fcef52856a Allow tag ids or tag names when replacing tags 2021-07-25 21:26:22 +02:00
eikek
916217df4f Make convert-all-pdfs an admin endpoint 2021-07-25 01:25:24 +02:00
eikek
f7eed33545 Return a 404 if a source was not found when checking a file 2021-07-08 21:17:48 +02:00