Repository navigation
Releases: Dennis-Otto/paperless-sync
Releases · Dennis-Otto/paperless-sync
Release list
v0.2.0
Immutable
release. Only release title and notes can be modified.
Security
- A run that can't reach Paperless, because Paperless is down or its name or certificate fails, no longer writes the Paperless API token into the Nextcloud log. Before, the log received the token in plain text with the trace of the error, with every failed run by hand or by the schedule, and so did everyone who reads the log or receives a copy of it. Every earlier version is affected: create a new API token in Paperless, enter it in the settings, and delete the old Nextcloud logs and their copies, such as in backups or log collectors.
- The API token goes only to the Paperless URL that it was saved with, so another URL needs the token again. Before, saving without a token sent the stored token to the new URL to test the connection, so whoever could save the settings, with the session of an administrator for example, could receive it at a server of their own. The settings page asks for the token as soon as the URL changes. A URL changed past the settings page, with
occor Nextcloud's provisioning API, doesn't get the token either: synchronization pauses until the token is entered again. The update keeps the stored token for the URL that is configured. - Saving the settings and disconnecting Paperless ask for the password of the administrator, as Nextcloud does for its own sensitive settings, unless it was confirmed in the last 30 minutes.
- A Paperless at an address of your network, such as
http://paperless:8000in Docker orhttp://192.168.1.20:8000, works with the new setting Paperless runs in my local network, which allows such an address only for the requests of Paperless Sync to the saved Paperless URL. Before, saving failed withHost "paperless" violates local access rules, and the only way out was the switchallow_local_remote_servers, which turns off Nextcloud's protection against server-side request forgery for every app and every user. Saving and a run by hand now say what to do instead, also for a name that only the hosts file of the server knows, and the settings page moves the focus to the setting. While the setting is off, a download that Paperless redirects to an address of your network is refused, also when Nextcloud'sdns_pinningis turned off. If you turned that switch on for this app, turn the setting on and save, then turn the switch off again:occ config:system:delete allow_local_remote_servers.
Features
- The settings page shows how the last run ended at every visit, also a scheduled run that nobody watched: its state, in red when it failed or had errors, when it finished, the last successful run, the next scheduled run, the errors of the run in a box of their own, and its report. While a run is active, the page follows it until it ends.
- The Nextcloud log has a warning, with the ID and the path of the document, when an error of a document first occurs or changes. An error that comes back in every run is logged once.
Bug fixes
- On Paperless-ngx 3.x, the
.error.txtof a failed import of the inbox has the reason of Paperless again, such as a file type that it doesn't take, and the ID of the Paperless task. Before, it said only Paperless import failed: Paperless-ngx 3.x answers in version 10 of its API by default, whose shape the app didn't read. - A file of the inbox whose task Paperless cancelled, or has not finished a day after the upload, no longer waits in the inbox for good. A cancelled task,
REVOKEDin the task list of Paperless, moves the file to the error folder with that reason. A day after the upload, a file whose content Paperless has, found by its checksum, counts as imported. A task that Paperless still lists as pending or started moves the file to the error folder, with a note that the document may still appear, because Paperless-ngx 3.x would import a second upload as a duplicate. A task that Paperless no longer lists, as after a restart of its queue, sends the file up again after 15 minutes, with an error in the report and a warning in the Nextcloud log. - Every request asks for version 9 of the Paperless API, so that a new default of Paperless can't change the answers that the app reads. The settings page names the Paperless that the last run reached, such as The last run reached Paperless-ngx 3.3.0 through version 9 of its API., and the report names the document that a successful import created, such as
IMPORT SUCCESS: Dokumente/Paperless/Eingang/police.pdf -> P456. Paperless Sync now needs Paperless-ngx 2.16 or newer, the first version with version 9 of the API; with an older Paperless, saving and every run say so. - A new content of a document, such as a new archive version after Paperless processed it again, updates its file in Nextcloud in place, so the file keeps its shares and public links, comments, tags and favorites, and in a scheduled run its previous content becomes a version of the file. Before, the app deleted the file and wrote a new one with a new file ID: shares and public links of the file broke, its comments, tags and favorites were lost, the old copy filled the trash bin of the target user, and the desktop and mobile clients downloaded it as a new file. A document whose content and path change moves first and is updated at its new path.
- A document that Paperless restores from its trash, or lists again after it was missing, keeps the copy that the trash behavior Keep archive file in place left in place, without a download. Before, the run downloaded it and wrote it again.
- With the conflict policy Skip and report conflict, the app updates its own copies: a document whose content changed while its path stayed the same, or which came back after it was missing, is no longer reported as a conflict in every run while its copy stays outdated. A file that someone else put at the path, and a copy that someone changed in Nextcloud, also one whose document gets a new path, are still left alone and reported as a conflict.
- You can pause scheduled synchronization while Paperless is down, its token revoked or the target user disabled: uncheck Enable scheduled synchronization and save. Saving tests the connection only when the schedule is on or a new token is entered, and says so when it didn't. Before, every save had to pass the test, so the only ways to stop a schedule that failed every few minutes were Disconnect, which deleted every setting, and
occ. - Disconnect deletes the API token and turns off scheduled synchronization and Paperless runs in my local network, and keeps the other settings, also your deletion policy, as its question says. Before, it deleted every setting while the page went on showing the old values.
- The settings page always shows what Nextcloud stored, also after a save or a disconnect, such as the URL without a slash at its end, and says when the form has changes that aren't saved, also changes that you make while a save is in progress. Run dry-run and Synchronize now use the saved settings, so Synchronize now waits until you save, and the browser asks before you leave the page with unsaved changes. Before, a run could apply settings that the page didn't show.
- Results and errors appear next to the buttons, which stay at the bottom of the window, and an error takes the focus. Before, they appeared below the long form, out of view. The page no longer shows the HTML of a proxy, such as its 504 Gateway Time-out during a long run: while the status shows the run, it says that the run continues and follows it there. A lost connection and an expired session are explained in your language, a run with errors says how many, and a failed refresh of the status no longer replaces the result of the run.
- The save button says Save when saving doesn't test the connection, with the schedule off and no new token, and Test connection and save when it does. An error that names a setting, such as Enable scheduled synchronization after a failed test, scrolls that setting into view, where the buttons at the bottom of the window no longer hide it. The hint to turn off the schedule is in German for German administrators. When neither a run nor the status answers, the status no longer shows the run as running for good, and the message asks you to refresh it.
- The questions before a run and before Disconnect, and the other messages of the settings page itself, are in German for German administrators.
- A dry-run no longer pushes back the next scheduled run: the interval counts from the last real run, also one started with Synchronize now. Before, a dry-run at 10:00 with an interval of an hour moved the next run to 11:00. Only a dry-run that is still running holds the next run back, until it ends.
- The interval is at least 5 minutes, as a hint below it explains: Nextcloud starts background jobs every 5 minutes at most. Before, the settings accepted 1 to 4 minutes, which acted as 5. An interval below 5 minutes that you saved before acts as 5 minutes, as it did, and the settings show it as such.
- Disconnect sits at the right end of the bar of buttons, away from Synchronize now, and every checkbox sits next to the first line of its label. Before, the styles of Nextcloud put Disconnect right after Synchronize now and pushed every checkbox below its label. The titles of the sections no longer wrap next to their description, and each section links to its part of the guide.
- The settings of deletion say in plain words what they do: turn on permanent deletion only after a few runs with deletion off looked right, and Also delete copies of documents that disappeared without passing the Paperless trash, which replaces Also allow deletion when the app never observed the Paperless trash state.
- On Paperless-ngx 2.x, a change of the title, tags, correspondent or type of a document moves its file to the new path, as on Paperless-ngx 3, instead of downloading the document again and replacing the file. Before, the app only recognize...
v0.1.10
Immutable
release. Only release title and notes can be modified.
Bug fixes
- Files of the Nextcloud inbox reach Paperless also when Nextcloud can't tell their size beforehand, as for files on object storage such as S3. Before, the upload had no
Content-Length, Paperless refused it withNo file was submitted., and the app uploaded every file of the inbox again in every run. - A file that Paperless refuses, such as one of an unsupported type, an empty one or one too large for a proxy in front of Paperless, stays in the inbox and is skipped until it changes. The report of the run and the Nextcloud log name the reason of Paperless once. Before, the app uploaded the file again in every run.
- When Paperless can't be reached or fails with a server error, a run uploads no further files of the inbox, and the file is tried again after 15 minutes, then after twice as long each time, at most once a day. Before, every run uploaded every file of the inbox again.
Every pull request of this release
Bug fixes
v0.1.9
Immutable
release. Only release title and notes can be modified.
Bug fixes
- The report of a run by hand lists every file that the run wrote, moved or deleted and every import, as the report of a dry-run does. Before, it counted the changes but said "No file changes were required." below the counts.
- The status in the settings names the state of the last run in the language of the user, such as "Completed" or "Abgeschlossen". Before, it showed an internal name such as
completedornever-run, also in German.
Every pull request of this release
Bug fixes
v0.1.8
Immutable
release. Only release title and notes can be modified.
Bug fixes
- The list of file changes in the report of a run can be scrolled with the keyboard and shows the focus, so that the long report of a large archive is readable without a mouse; screen readers name it "File changes of the run".
Every pull request of this release
Bug fixes
v0.1.7
Immutable
release. Only release title and notes can be modified.
Bug fixes
- The copy of a document that disappeared from Paperless now moves to the deleted folder after the confirmation runs also when a run reaches its batch size first: it waits for the next run. Before, it stayed where it was for good.
- Moved to trash and Deleted in the summary of a run count only copies that were really moved or deleted, no longer documents whose copy was already gone.
- A copy of a missing document that cannot be moved or deleted is reported as an error of that document, and the run carries on with the others. Before, the whole run failed.
- A document in the Paperless trash whose copy is already gone no longer counts as Moved to trash in every run, and the path recorded for its copy no longer grows by one more deleted folder and date in each run.
- A document in the Paperless trash that was never exported no longer causes an error in every run.
- With the trash behavior Keep archive file in place, a dry run no longer reports and counts a move to the trash that the real run doesn't make.
Every pull request of this release
Bug fixes
v0.1.6
Fixed
- Saving, resetting, running and refreshing the administration settings no longer fails with empty request URLs when Nextcloud renders the settings page before it has loaded the app (the same cause as paperless-unified-search#25). The app now declares its routes as attributes on the controllers, which Nextcloud 29 and later register for every enabled app.
What's Changed
Fixes
- fix: register the routes as attributes by @Dennis-Otto in #34
Other changes
- ci: look after issues with the issue assistant by @Dennis-Otto in #33
Full Changelog: v0.1.5...v0.1.6
v0.1.5
What's Changed
Dependencies
- chore(deps): Bump anchore/sbom-action from 0.24.2 to 0.24.3 in the actions-routine group by @dependabot[bot] in #30
- chore(deps): Bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in #31
Full Changelog: v0.1.4...v0.1.5
v0.1.4
What's Changed
Dependencies
- chore(deps-dev): Bump vimeo/psalm from 6.18.1 to 6.19.1 in the composer-routine group by @dependabot[bot] in #28
Full Changelog: v0.1.3...v0.1.4
v0.1.3
What's Changed
Dependencies
- chore(deps-dev): Bump vimeo/psalm from 6.17.2 to 6.18.1 in the composer-routine group by @dependabot[bot] in #23
- chore(deps): Bump the actions-routine group with 3 updates by @dependabot[bot] in #24
- chore(deps): Bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in #26
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
Dependencies
- chore(deps-dev): Bump vimeo/psalm from 6.17.0 to 6.17.2 in the composer-routine group by @dependabot[bot] in #20
- chore(deps): Bump the actions-routine group with 3 updates by @dependabot[bot] in #21
Other changes
- ci: pin Dependabot auto-merge to the inspected commit by @Dennis-Otto in #19
Full Changelog: v0.1.1...v0.1.2