Compare commits

...

405 Commits

Author SHA1 Message Date
shamoon
7d74177c55 Enhancement: option to stop processing further mail rules 2025-02-24 09:00:47 -08:00
shamoon
a548c32c1f Enhancement: allow disabling the filesystem consumer (#9199) 2025-02-23 13:52:41 -08:00
shamoon
ea911e73c6 Fix: correct split confirm removal (#9195) 2025-02-22 07:27:44 -08:00
Max Mehl
6b7fb286f7 Chore: bump gotenberg docker images (#9189)
* Chore: update gotenberg Docker images to latest minor version

* Chore: update gotenberg Docker images to latest minor version for devcontainer
2025-02-21 13:29:21 -08:00
Andy Grunwald
b40479632b Development: Fix ImageMagick policy.xml path in devcontainer setup (#9188) 2025-02-21 18:20:40 +00:00
shamoon
c122c60d3f Feature: email document button (#8950) 2025-02-21 16:44:03 +00:00
shamoon
4f08b5fa20 Enhancement: "webui" workflowtrigger source option (#9170) 2025-02-21 08:26:00 -08:00
shamoon
3bf64ae7da Fix: saved views do not return to default display fields after setting and then removing (#9168) 2025-02-19 15:44:48 -08:00
dependabot[bot]
822c2d2d56 Chore(deps): Bump django-filter from 24.3 to 25.1 in the django group (#9143)
Bumps the django group with 1 update: [django-filter](https://github.com/carltongibson/django-filter).


Updates `django-filter` from 24.3 to 25.1
- [Release notes](https://github.com/carltongibson/django-filter/releases)
- [Changelog](https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst)
- [Commits](https://github.com/carltongibson/django-filter/compare/24.3...25.1)

---
updated-dependencies:
- dependency-name: django-filter
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: django
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-18 03:05:59 +00:00
dependabot[bot]
98e0a934ac Chore(deps-dev): Bump mkdocs-material in the development group (#9142)
Bumps the development group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.3 to 9.6.4
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.3...9.6.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-18 02:52:29 +00:00
shamoon
ceffcd6360 Fix: correct logged number of deleted documents on trash (#9148) 2025-02-17 18:41:47 -08:00
shamoon
37442ff829 Fix: include account confirm email (#9147) 2025-02-17 18:10:48 -08:00
shamoon
de5f66b3a0 Fix: remove additional scrollbar from popup preview (#9140) 2025-02-17 08:12:21 -08:00
shamoon
e37096f66f Fix: wrap selected display fields (#9139) 2025-02-17 08:12:04 -08:00
shamoon
e49ecd4dfe Enhancement: use charfield for webhook url, custom validation (#9128)
---------

Co-authored-by: Trenton H <797416+stumpylog@users.noreply.github.com>
2025-02-16 14:26:30 -08:00
shamoon
4718df271f Fix: reset documents sort field if user deletes the custom field (#9127) 2025-02-16 07:24:17 -08:00
shamoon
17bb3ebbf5 Chore: more efficient select cf update handler (#9099) 2025-02-16 00:29:35 +00:00
shamoon
5e00c1c676 Fix: resolve dynamic import warnings during jest tests 2025-02-14 16:16:15 -08:00
shamoon
a9ef7ff58e Fix: re-center navbar brand on mobile with notifications button 2025-02-12 21:30:44 -08:00
Trenton H
518091f856 Dependencies Updates to jbig2enc 0.30 (#9092) 2025-02-12 17:28:24 +00:00
shamoon
feb30f36df Fix: limit document title length in workflows (#9085) 2025-02-12 05:14:55 +00:00
LokiHung
bbad36717f Feature: Chinese Traditional translation (#9076)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-12 02:56:24 +00:00
dependabot[bot]
329ef7aef3 Chore(deps): Bump cryptography from 44.0.0 to 44.0.1 (#9080)
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.0 to 44.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.0...44.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-11 11:42:26 -08:00
Trenton H
2b2115e5f0 Enhancement: Use cached sessions for a minor performance improvement (#9074) 2025-02-11 16:18:19 +00:00
dependabot[bot]
ba5705a54f Chore(deps): Bump the small-changes group with 7 updates (#9064)
Bumps the small-changes group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [dateparser](https://github.com/scrapinghub/dateparser) | `1.2.0` | `1.2.1` |
| [imap-tools](https://github.com/ikvk/imap_tools) | `1.9.1` | `1.10.0` |
| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `16.8.0` | `16.9.0` |
| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.11.0` | `3.12.1` |
| [whitenoise](https://github.com/evansd/whitenoise) | `6.8.2` | `6.9.0` |
| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.1` | `3.3.3` |
| [imagehash](https://github.com/JohannesBuchner/imagehash) | `4.3.1` | `4.3.2` |


Updates `dateparser` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/scrapinghub/dateparser/releases)
- [Changelog](https://github.com/scrapinghub/dateparser/blob/master/HISTORY.rst)
- [Commits](https://github.com/scrapinghub/dateparser/compare/v1.2.0...v1.2.1)

Updates `imap-tools` from 1.9.1 to 1.10.0
- [Release notes](https://github.com/ikvk/imap_tools/releases)
- [Changelog](https://github.com/ikvk/imap_tools/blob/master/docs/release_notes.rst)
- [Commits](https://github.com/ikvk/imap_tools/compare/v1.9.1...v1.10.0)

Updates `ocrmypdf` from 16.8.0 to 16.9.0
- [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases)
- [Changelog](https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.rst)
- [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v16.8.0...v16.9.0)

Updates `rapidfuzz` from 3.11.0 to 3.12.1
- [Release notes](https://github.com/rapidfuzz/RapidFuzz/releases)
- [Changelog](https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/rapidfuzz/RapidFuzz/compare/v3.11.0...v3.12.1)

Updates `whitenoise` from 6.8.2 to 6.9.0
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.8.2...6.9.0)

Updates `factory-boy` from 3.3.1 to 3.3.3
- [Changelog](https://github.com/FactoryBoy/factory_boy/blob/master/docs/changelog.rst)
- [Commits](https://github.com/FactoryBoy/factory_boy/compare/3.3.1...3.3.3)

Updates `imagehash` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/JohannesBuchner/imagehash/releases)
- [Commits](https://github.com/JohannesBuchner/imagehash/compare/v4.3.1...v4.3.2)

---
updated-dependencies:
- dependency-name: dateparser
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: imap-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: ocrmypdf
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: rapidfuzz
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: whitenoise
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: factory-boy
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: imagehash
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: small-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-11 16:00:57 +00:00
shamoon
ea94626b82 Fix: add missing icon imports to inputs 2025-02-10 22:47:00 -08:00
shamoon
fdfea68576 Fix: fix cf ownership requirement 2025-02-10 18:58:45 -08:00
dependabot[bot]
4e61c2b2e6 Chore(deps-dev): Bump the development group with 3 updates (#9061)
Bumps the development group with 3 updates: [ruff](https://github.com/astral-sh/ruff), [pytest-django](https://github.com/pytest-dev/pytest-django) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.9.4 to 0.9.6
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.9.4...0.9.6)

Updates `pytest-django` from 4.9.0 to 4.10.0
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.9.0...v4.10.0)

Updates `mkdocs-material` from 9.6.2 to 9.6.3
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.2...9.6.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: pytest-django
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 22:07:13 +00:00
dependabot[bot]
7c959754a0 Chore(deps): Bump the django group across 1 directory with 2 updates (#9065)
Bumps the django group with 2 updates in the / directory: [django-allauth](https://github.com/sponsors/pennersr) and [django-cors-headers](https://github.com/adamchainz/django-cors-headers).


Updates `django-allauth` from 65.3.1 to 65.4.1
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `django-cors-headers` from 4.6.0 to 4.7.0
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/4.6.0...4.7.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: django
- dependency-name: django-cors-headers
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: django
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 21:07:37 +00:00
dependabot[bot]
fed16974dd Chore(deps): Bump drf-spectacular-sidecar in the major-versions group (#9063)
Bumps the major-versions group with 1 update: [drf-spectacular-sidecar](https://github.com/tfranzel/drf-spectacular-sidecar).


Updates `drf-spectacular-sidecar` from 2024.11.1 to 2025.2.1
- [Commits](https://github.com/tfranzel/drf-spectacular-sidecar/compare/2024.11.1...2025.2.1)

---
updated-dependencies:
- dependency-name: drf-spectacular-sidecar
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-10 12:52:44 -08:00
shamoon
ea3303aa76 Fix: accidentally removed datePickerFooterTemplate 2025-02-10 10:44:22 -08:00
shamoon
1dc80f04cb Feature: openapi spec, full api browser (#8948) 2025-02-10 16:43:07 +00:00
shamoon
c316ae369b Fix: add back doc link dropdown for cf query 2025-02-10 08:32:18 -08:00
shamoon
d94b284815 Fix: include doc link input import in custom fields query dropdown (#9058) 2025-02-10 08:13:34 -08:00
shamoon
63bb3644f6 Enhancement: filter by file type (#8946) 2025-02-10 08:09:50 -08:00
Trenton H
880f08599a Transitions the Docker image to use s6 and s6-overlay for process supervision instead of supervisord (#8886) 2025-02-07 11:25:54 -08:00
Silvia Bigler
71472a6a82 Enhancement: add layout options for email conversion (#8907)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-07 18:32:35 +00:00
Benoit Anastay
7f36163c3b Chore: use variables for zxing and psycopg version number (#9006)
* Use variables for zxing and psycopg

Code consistency

* Tweaks the downloaded files and moves the location of the ARG for better cache hits

---------

Co-authored-by: Trenton Holmes <797416+stumpylog@users.noreply.github.com>
2025-02-07 09:52:08 -08:00
Sebastian Steinbeißer
e560fa3be0 Chore: Enable ruff FBT (#8645) 2025-02-07 09:12:03 -08:00
shamoon
b274665e21 Tweak: add name to management toasts 2025-02-06 23:24:23 -08:00
shamoon
a499905605 Fix mistake in process mail error string 2025-02-06 23:10:19 -08:00
shamoon
b8bdc10f25 Feature: better toast notifications management (#8980) 2025-02-06 23:06:16 -08:00
shamoon
e08606af6e Enhancement: date picker and date filter dropdown improvements (#9033) 2025-02-06 23:01:48 -08:00
shamoon
52ab07c673 Fix: deselect and trigger refresh for deleted documents from bulk operations with "delete originals" (#8996) 2025-02-07 00:47:50 +00:00
XstreamGit
046d8456e2 Tweak: improve date matching regex for dates after numbers (#8964) 2025-02-06 19:09:35 +00:00
shamoon
3314c59828 Tweak: more accurate classifier last trained time (#9004) 2025-02-06 10:54:31 -08:00
shamoon
2103a499eb Enhancement: allow setting default pdf zoom (#9017) 2025-02-03 21:54:18 -08:00
dependabot[bot]
7ab779e78a Chore(deps-dev): Bump the development group with 2 updates (#9013)
* Chore(deps-dev): Bump the development group with 2 updates

Bumps the development group with 2 updates: [ruff](https://github.com/astral-sh/ruff) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.9.3 to 0.9.4
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.9.3...0.9.4)

Updates `mkdocs-material` from 9.5.50 to 9.6.2
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.50...9.6.2)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-02-04 03:21:55 +00:00
dependabot[bot]
49390c9427 Chore(deps): Bump django-soft-delete in the django group (#9014)
Bumps the django group with 1 update: [django-soft-delete](https://github.com/san4ezy/django_softdelete).


Updates `django-soft-delete` from 1.0.16 to 1.0.18
- [Changelog](https://github.com/san4ezy/django_softdelete/blob/master/CHANGELOG.md)
- [Commits](https://github.com/san4ezy/django_softdelete/commits)

---
updated-dependencies:
- dependency-name: django-soft-delete
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: django
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-03 18:00:47 -08:00
shamoon
6f29d64325 Fix: allow empty email in profile (#9012) 2025-02-03 11:59:45 -08:00
shamoon
065724befb Tweak: more verbose toast messages 2025-02-01 21:57:57 -08:00
shamoon
e877beea4e Fix: use button toolbar for management lists for better wrapping 2025-02-01 20:01:49 -08:00
dependabot[bot]
3e848e6e0f Chore(deps): Bump uuid from 11.0.2 to 11.0.5 in /src-ui (#8992)
Bumps [uuid](https://github.com/uuidjs/uuid) from 11.0.2 to 11.0.5.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v11.0.2...v11.0.5)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 01:55:54 +00:00
dependabot[bot]
2e5656e1ce Chore(deps-dev): Bump @codecov/webpack-plugin in /src-ui (#8991)
Bumps @codecov/webpack-plugin from 1.2.1 to 1.8.0.

---
updated-dependencies:
- dependency-name: "@codecov/webpack-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 01:46:24 +00:00
dependabot[bot]
438650bf17 Chore(deps-dev): Bump @playwright/test from 1.48.2 to 1.50.1 in /src-ui (#8993)
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.48.2 to 1.50.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.48.2...v1.50.1)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 01:35:21 +00:00
dependabot[bot]
7df0b621a5 Chore(deps-dev): Bump @types/node from 22.8.6 to 22.13.0 in /src-ui (#8989)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.8.6 to 22.13.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 01:21:35 +00:00
dependabot[bot]
4cd755f641 Chore(deps-dev): Bump the frontend-eslint-dependencies group (#8988)
Bumps the frontend-eslint-dependencies group in /src-ui with 4 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) and [eslint](https://github.com/eslint/eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.12.2 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.12.2 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser)

Updates `@typescript-eslint/utils` from 8.12.2 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/utils)

Updates `eslint` from 9.14.0 to 9.19.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.14.0...v9.19.0)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/utils"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-02 01:07:16 +00:00
dependabot[bot]
8597911d85 Chore(deps): Bump the frontend-angular-dependencies group (#8986)
Bumps the frontend-angular-dependencies group in /src-ui with 23 updates:

| Package | From | To |
| --- | --- | --- |
| [@angular/cdk](https://github.com/angular/components) | `19.0.2` | `19.1.2` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `19.0.3` | `19.1.4` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `19.0.3` | `19.1.4` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `19.0.3` | `19.1.4` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `19.0.3` | `19.1.4` |
| [@angular/localize](https://github.com/angular/angular) | `19.0.3` | `19.1.4` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `19.0.3` | `19.1.4` |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `19.0.3` | `19.1.4` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `19.0.3` | `19.1.4` |
| [@ng-select/ng-select](https://github.com/ng-select/ng-select) | `14.1.0` | `14.2.0` |
| [ngx-cookie-service](https://github.com/stevermeister/ngx-cookie-service) | `19.0.0` | `19.1.0` |
| [@angular-builders/custom-webpack](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/custom-webpack) | `19.0.0-beta.0` | `19.0.0` |
| [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) | `19.0.0-beta.1` | `19.0.0` |
| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `19.0.4` | `19.1.5` |
| [@angular-devkit/core](https://github.com/angular/angular-cli) | `19.0.4` | `19.1.5` |
| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `19.0.4` | `19.1.5` |
| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `19.0.0` | `19.0.2` |
| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `19.0.0` | `19.0.2` |
| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `19.0.0` | `19.0.2` |
| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `19.0.0` | `19.0.2` |
| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `19.0.0` | `19.0.2` |
| [@angular/cli](https://github.com/angular/angular-cli) | `19.0.4` | `19.1.5` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `19.0.3` | `19.1.4` |


Updates `@angular/cdk` from 19.0.2 to 19.1.2
- [Release notes](https://github.com/angular/components/releases)
- [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/components/compare/19.0.2...19.1.2)

Updates `@angular/common` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/common)

Updates `@angular/compiler` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/compiler)

Updates `@angular/core` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/core)

Updates `@angular/forms` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/forms)

Updates `@angular/localize` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/compare/19.0.3...19.1.4)

Updates `@angular/platform-browser` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/platform-browser)

Updates `@angular/platform-browser-dynamic` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/platform-browser-dynamic)

Updates `@angular/router` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/router)

Updates `@ng-select/ng-select` from 14.1.0 to 14.2.0
- [Release notes](https://github.com/ng-select/ng-select/releases)
- [Changelog](https://github.com/ng-select/ng-select/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ng-select/ng-select/compare/v14.1.0...v14.2.0)

Updates `ngx-cookie-service` from 19.0.0 to 19.1.0
- [Release notes](https://github.com/stevermeister/ngx-cookie-service/releases)
- [Changelog](https://github.com/stevermeister/ngx-cookie-service/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stevermeister/ngx-cookie-service/compare/v19.0.0...19.1.0)

Updates `@angular-builders/custom-webpack` from 19.0.0-beta.0 to 19.0.0
- [Release notes](https://github.com/just-jeb/angular-builders/releases)
- [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/custom-webpack/CHANGELOG.md)
- [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/custom-webpack@19.0.0/packages/custom-webpack)

Updates `@angular-builders/jest` from 19.0.0-beta.1 to 19.0.0
- [Release notes](https://github.com/just-jeb/angular-builders/releases)
- [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/jest/CHANGELOG.md)
- [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/jest@19.0.0/packages/jest)

Updates `@angular-devkit/build-angular` from 19.0.4 to 19.1.5
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/19.0.4...19.1.5)

Updates `@angular-devkit/core` from 19.0.4 to 19.1.5
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/19.0.4...19.1.5)

Updates `@angular-devkit/schematics` from 19.0.4 to 19.1.5
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/19.0.4...19.1.5)

Updates `@angular-eslint/builder` from 19.0.0 to 19.0.2
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v19.0.2/packages/builder)

Updates `@angular-eslint/eslint-plugin` from 19.0.0 to 19.0.2
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v19.0.2/packages/eslint-plugin)

Updates `@angular-eslint/eslint-plugin-template` from 19.0.0 to 19.0.2
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v19.0.2/packages/eslint-plugin-template)

Updates `@angular-eslint/schematics` from 19.0.0 to 19.0.2
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v19.0.2/packages/schematics)

Updates `@angular-eslint/template-parser` from 19.0.0 to 19.0.2
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v19.0.2/packages/template-parser)

Updates `@angular/cli` from 19.0.4 to 19.1.5
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/19.0.4...19.1.5)

Updates `@angular/compiler-cli` from 19.0.3 to 19.1.4
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/19.1.4/packages/compiler-cli)

---
updated-dependencies:
- dependency-name: "@angular/cdk"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/common"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/forms"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/localize"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/platform-browser"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/platform-browser-dynamic"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/router"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@ng-select/ng-select"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: ngx-cookie-service
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-builders/custom-webpack"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-builders/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/build-angular"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/schematics"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/builder"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin-template"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/schematics"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/template-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler-cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-01 16:51:46 -08:00
shamoon
befb80bddf Fix: Dont include frame component in component router service 2025-02-01 00:18:11 -08:00
shamoon
7af6983cab Merge branch 'main' into dev 2025-01-31 08:36:56 -08:00
github-actions[bot]
16d6bb7334 Documentation: Add v2.14.7 changelog (#8972)
* Changelog v2.14.7 - GHA

* Update changelog.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-31 08:36:29 -08:00
shamoon
49b658a944 Bump version to 2.14.7 2025-01-31 07:46:43 -08:00
shamoon
e1d8680698 Fix: also ensure symmetric doc link removal on bulk edit (#8963) 2025-01-31 07:44:47 -08:00
shamoon
ee72e2d1fd Fix: resolve error in trackBy 2025-01-31 07:44:47 -08:00
shamoon
e0ea4a4625 Fix: reflect doc links in bulk modify custom fields (#8962) 2025-01-31 07:44:47 -08:00
shamoon
c2a9ac332a Enhancement: require totp code for obtain auth token (#8936) 2025-01-31 07:44:47 -08:00
dependabot[bot]
bf368aadd0 Chore(deps-dev): Bump ruff from 0.9.2 to 0.9.3 in the development group (#8928)
* Chore(deps-dev): Bump ruff from 0.9.2 to 0.9.3 in the development group

Bumps the development group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.9.2 to 0.9.3
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.9.2...0.9.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-31 07:44:46 -08:00
shamoon
54e72d5b60 Fix: also ensure symmetric doc link removal on bulk edit (#8963) 2025-01-31 07:39:22 -08:00
shamoon
cf7422346a Fix: resolve error in trackBy 2025-01-31 00:35:12 -08:00
shamoon
5b8c9ef5fc Fix: reflect doc links in bulk modify custom fields (#8962) 2025-01-30 10:55:05 -08:00
shamoon
f56974f158 Feature: use 'share sheet' for download buttons on mobile (#8949) 2025-01-30 16:31:52 +00:00
Trenton H
427508edf1 Feature: Enable zxing for all platforms (#8947) 2025-01-30 15:43:23 +00:00
Trenton H
311b259cff Chore: Updates the curl command to download in parallel (#8945) 2025-01-29 21:00:49 +00:00
Sebastian Steinbeißer
fce7b03324 Chore: Switch from os.path to pathlib.Path (#8644) 2025-01-29 10:58:53 -08:00
shamoon
79956d6a7b Enhancement: require totp code for obtain auth token (#8936) 2025-01-29 15:23:44 +00:00
shamoon
978b072bff Enhancement: improve doc details close behavior (#8937) 2025-01-28 22:26:30 -08:00
dependabot[bot]
9c6f695dbf Chore(deps-dev): Bump ruff from 0.9.2 to 0.9.3 in the development group (#8928)
* Chore(deps-dev): Bump ruff from 0.9.2 to 0.9.3 in the development group

Bumps the development group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.9.2 to 0.9.3
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.9.2...0.9.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-28 15:25:21 +00:00
github-actions[bot]
0100fcbb23 Documentation: Add v2.14.6 changelog (#8930) 2025-01-27 16:51:46 -08:00
shamoon
1745da0d60 Bump version to 2.14.6 2025-01-27 09:24:07 -08:00
github-actions[bot]
e4e906ce2b New Crowdin translations by GitHub Action (#8863)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-27 08:55:19 -08:00
shamoon
80c7b97fec Update django.po 2025-01-27 08:19:50 -08:00
shamoon
270e70a958 Fix: backwards-compatible versioned API response for custom field select fields (#8912) 2025-01-27 07:34:23 -08:00
shamoon
082bf6fb8e Tweak: place 0 result items at bottom of filterable list (#8924) 2025-01-27 00:02:56 -08:00
shamoon
38296d9426 Fix: set larger page size for abstract service getFew (#8920) 2025-01-26 12:25:50 -08:00
shamoon
8311313e6e Nit: use camelCase 2025-01-25 13:28:08 -08:00
shamoon
ac292999ef Dev: fix utif bailout warning 2025-01-25 13:22:07 -08:00
shamoon
f3cda54cd1 Fix/refactor: remove doc observables, fix username async (#8908) 2025-01-25 12:38:36 -08:00
shamoon
8f9a294529 Fix: include missing fields for saved view widgets (#8905) 2025-01-25 07:49:14 -08:00
Trenton H
702de0cac3 Chore: Upgrades dependencies and hook versions (#8895) 2025-01-24 12:08:58 -08:00
shamoon
ca42762841 Fix: force set document not dirty before close after save (#8888) 2025-01-23 17:51:01 -08:00
shamoon
13cfd6f904 Change: Revert dropdown sorting by doc count (#8887) 2025-01-23 15:52:35 -08:00
shamoon
18c4e6029f Fixhancement: restore search highlighting and add for built-in viewer (#8885) 2025-01-23 15:00:46 -08:00
shamoon
6c34e37838 Fix: resolve cpu usage due to incorrect interval use (#8884) 2025-01-23 10:37:20 -08:00
github-actions[bot]
2c28348b56 Changelog v2.14.5 - GHA (#8852)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-21 17:50:53 -08:00
shamoon
79e541244e Bump version to 2.14.5 2025-01-21 17:02:38 -08:00
shamoon
74afad5976 Merge branch 'dev' 2025-01-21 17:02:07 -08:00
dependabot[bot]
c694c9791b Chore(deps-dev): Bump undici from 5.28.4 to 5.28.5 in /src-ui (#8851)
Bumps [undici](https://github.com/nodejs/undici) from 5.28.4 to 5.28.5.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.28.4...v5.28.5)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-22 00:38:44 +00:00
github-actions[bot]
11ceb8bde5 New Crowdin translations by GitHub Action (#8804) 2025-01-21 16:28:36 -08:00
dependabot[bot]
20ec8cb57b Chore(deps-dev): Bump the development group with 2 updates (#8841)
* Chore(deps-dev): Bump the development group with 2 updates

Bumps the development group with 2 updates: [ruff](https://github.com/astral-sh/ruff) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.8.6 to 0.9.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.6...0.9.2)

Updates `mkdocs-material` from 9.5.49 to 9.5.50
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.49...9.5.50)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

* Run new ruff format

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-21 19:22:25 +00:00
shamoon
bfc11a545b Change: use simpler method for attaching files (#8845) 2025-01-21 10:38:21 -08:00
shamoon
4866af31cb Documentation: update usage 2025-01-20 22:51:12 -08:00
shamoon
0ea4da03a7 Chore: fix coverage for superuser change 2025-01-20 12:02:20 -08:00
shamoon
41bcc12cc2 Change: restrict altering and creation of superusers to superusers only (#8837) 2025-01-20 11:57:22 -08:00
shamoon
475c231c6f Fix: fix long tag visual wrapping (#8833) 2025-01-20 07:43:39 -08:00
shamoon
e00dd46b22 Change: allow generate auth token without a usable password (#8824) 2025-01-19 13:49:16 -08:00
Trenton H
fd425aa618 Fix: Enforce classifier training ordering to prevent extra training (#8822) 2025-01-19 20:52:03 +00:00
shamoon
e1dde85c59 Fix failing test 2025-01-19 10:46:57 -08:00
shamoon
01207a284d Fix: import router module to not found component (#8821) 2025-01-19 10:37:31 -08:00
Thomas Hess
0f863ab378 Documentation: fix error in storage paths example in advanced_usage.md (#8817) 2025-01-19 18:04:55 +00:00
shamoon
258064b339 Fix: better reflect some mail account / rule permissions in UI (#8812) 2025-01-19 08:50:26 -08:00
kevin
2bcb37f3e9 Documentation: Add ISO number example (#8809) 2025-01-19 14:53:51 +00:00
github-actions[bot]
81f8c64b2c Changelog v2.14.4 - GHA (#8801)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-18 13:05:36 -08:00
shamoon
3b80112521 Bump version to 2.14.4 2025-01-18 12:27:08 -08:00
shamoon
459feea31e Merge branch 'dev' 2025-01-18 12:26:40 -08:00
github-actions[bot]
eea5839390 New Crowdin translations by GitHub Action (#8800)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-18 12:26:08 -08:00
github-actions[bot]
c79414ebd9 New Crowdin translations by GitHub Action (#8772)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-18 12:24:14 -08:00
shamoon
ed1775e689 Enhancement: allow specifying JSON encoding for webhooks (#8799) 2025-01-18 12:19:50 -08:00
shamoon
cd50f20a20 Fix: its paths not pathes 2025-01-18 07:43:02 -08:00
shamoon
c8ec70c05f Chore: update issue config for new GH issue workflow 2025-01-17 23:16:03 -08:00
shamoon
5e3ee3a80d Fix: disable API basic auth if MFA enabled (#8792) 2025-01-18 03:51:53 +00:00
Colin Yates
29726c3ce1 Documentation: note wget requirement for install script on macOS (#8793)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-18 00:46:47 +00:00
Trenton H
6804c92861 Fix: Include email and webhook objects in the export (#8790) 2025-01-17 13:00:59 -08:00
shamoon
a32077566b Fix: use MIMEBase for email attachments (#8762) 2025-01-16 18:48:19 +00:00
shamoon
283bcb4c91 Fix: handle page out of range in mgmt lists after delete (#8771) 2025-01-16 00:59:27 -08:00
shamoon
f68ee628d9 Refactor: consolidate original_file logic in wf handler 2025-01-15 22:13:40 -08:00
shamoon
bd5ba97ee8 Merge branch 'main' into dev 2025-01-15 21:40:56 -08:00
github-actions[bot]
325594034e Changelog v2.14.3 - GHA (#8761)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-15 21:26:20 -08:00
shamoon
28261ac51c Bump version to 2.14.3 2025-01-15 21:01:02 -08:00
github-actions[bot]
23ef52f405 New Crowdin translations by GitHub Action (#8760)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-15 20:41:57 -08:00
github-actions[bot]
2b45793bc2 New Crowdin translations by GitHub Action (#8759) 2025-01-15 20:39:00 -08:00
Trenton H
2f96cc0050 Adds a default 30s timeout for emails, instead of no timeout (#8757) 2025-01-15 21:46:37 +00:00
Max Mehl
d36e8254f3 Enhancement: set autofocus on MFA code field (#8756) 2025-01-15 21:32:55 +00:00
shamoon
405fab8514 Update handlers.py 2025-01-15 12:18:02 -08:00
shamoon
ee4f62a1b3 Fix: import forms modules for entries component (#8752) 2025-01-15 08:46:11 -08:00
shamoon
d97e4a9a95 Fix: fix email/wh actions on consume started (#8750) 2025-01-15 15:48:10 +00:00
shamoon
1cfba87114 Fix: import date picker module in cf query dropdown (#8749) 2025-01-15 06:46:36 -08:00
github-actions[bot]
b145ed315a Documentation: Add v2.14.2 changelog (#8743)
* Changelog v2.14.2 - GHA

* Update changelog.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-14 23:42:18 -08:00
shamoon
1f47b8c090 Bump version to 2.14.2 2025-01-14 23:18:12 -08:00
shamoon
1e3f2a1438 Fix: dont try to parse empty params (#8742) 2025-01-14 23:14:20 -08:00
shamoon
d61b2bbfc6 Fix: pass working file to workflows, pickle file bytes (#8741) 2025-01-14 23:03:40 -08:00
github-actions[bot]
e1d6b4a9ac New Crowdin translations by GitHub Action (#8724)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-14 17:13:03 -08:00
dependabot[bot]
9f398337c6 Chore(deps): Bump django from 5.1.4 to 5.1.5 (#8738)
Bumps [django](https://github.com/django/django) from 5.1.4 to 5.1.5.
- [Commits](https://github.com/django/django/compare/5.1.4...5.1.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-15 01:02:23 +00:00
shamoon
765bf1d11c Fix: use hard delete when bulk editing custom fields (#8740) 2025-01-14 16:47:29 -08:00
Trenton H
49a96ccee0 Lock the media directory and refresh the document to ensure we have where it actually lives before attaching (#8737) 2025-01-14 23:18:10 +00:00
shamoon
c45bbcaea2 Fix: include tooltip module for custom fields display (#8739) 2025-01-14 15:03:56 -08:00
shamoon
ab87aedfc7 Fix: remove id of webhook/email actions on copy (#8729) 2025-01-14 05:44:40 -08:00
shamoon
18e3ad8b22 Fix: import dnd module for merge confirm dialog (#8727) 2025-01-14 05:35:45 -08:00
shamoon
c342eafa8d Documentation: fix link 2025-01-13 18:05:47 -08:00
github-actions[bot]
290c44f5d5 Documentation: Add v2.14.1 changelog (#8714)
---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-13 18:04:22 -08:00
shamoon
02015ec404 Bump version to 2.14.1 2025-01-13 17:16:52 -08:00
shamoon
98b4f447d8 Merge branch 'dev' 2025-01-13 17:16:20 -08:00
github-actions[bot]
272691e386 New Crowdin translations by GitHub Action (#8700)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-13 16:41:24 -08:00
shamoon
1012cee39a Fix: include reprocess in MODIFIED_FIELD_BY_METHOD (#8710) 2025-01-13 14:12:02 -08:00
shamoon
19a5733d0d Fix: include tag component in list view (#8706) 2025-01-13 13:21:16 -08:00
shamoon
86788f1445 Fix: use unmodified original for checksum if exists (#8693) 2025-01-13 21:02:10 +00:00
shamoon
1d5e7e930e Fix: complete load with native PDF viewer (#8699) 2025-01-13 09:53:39 -08:00
github-actions[bot]
da6d568906 Changelog v2.14.0 - GHA (#8694)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-13 09:51:25 -08:00
shamoon
abf05d5ebe Bump version to 2.14.0 2025-01-13 07:47:25 -08:00
shamoon
5821033e3d Merge branch 'dev' 2025-01-13 07:47:08 -08:00
github-actions[bot]
5c1039d07d New Crowdin translations by GitHub Action (#8692)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-13 07:45:40 -08:00
github-actions[bot]
b874d6d1a4 New Crowdin translations by GitHub Action (#8691)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-13 07:34:10 -08:00
github-actions[bot]
68a47cbf0b New Crowdin translations by GitHub Action (#8178) 2025-01-13 07:32:04 -08:00
Michael Williams
ccc8917706 Documentation: minor formatting fix in config (#8683) 2025-01-13 07:26:02 +00:00
shamoon
4c4d3a45c2 Fix: fix jittering when toggling workflows 2025-01-11 22:42:24 -08:00
shamoon
6007b252d7 Fix: missing icon import, fix bulk edit cf messages 2025-01-11 22:25:12 -08:00
shamoon
3f05b9f921 Change: tweak some settings alignment 2025-01-11 17:55:19 -08:00
shamoon
67ec1aea42 Fix: add missing dropdown component to tasks 2025-01-09 22:49:31 -08:00
shamoon
f5a0b9c174 Fix: random styling fixes 2025-01-09 22:49:30 -08:00
Fabian Krüger
7035445d6a Documentation: Add hint to set Content-Length header for post document (#8639) 2025-01-08 04:13:24 +00:00
shamoon
a899ff16e3 Fix: use state param with oauth (#8636) 2025-01-08 03:48:36 +00:00
shamoon
d77c9e3bd5 Update configuration.md 2025-01-07 19:07:01 -08:00
shamoon
0ab21b6fc5 Fix: allow document editor to create share link 2025-01-07 07:59:35 -08:00
shamoon
485237caf1 Fix: check permissions for all documents via bulk download (#8631) 2025-01-07 00:10:11 -08:00
dependabot[bot]
9181aebc8c Chore(deps): Bump the small-changes group with 3 updates (#8627)
Bumps the small-changes group with 3 updates: [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF), [pathvalidate](https://github.com/thombashi/pathvalidate) and [zxing-cpp](https://github.com/zxing-cpp/zxing-cpp).


Updates `ocrmypdf` from 16.7.0 to 16.8.0
- [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases)
- [Changelog](https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.rst)
- [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v16.7.0...v16.8.0)

Updates `pathvalidate` from 3.2.1 to 3.2.3
- [Release notes](https://github.com/thombashi/pathvalidate/releases)
- [Changelog](https://github.com/thombashi/pathvalidate/blob/master/CHANGELOG.md)
- [Commits](https://github.com/thombashi/pathvalidate/compare/v3.2.1...v3.2.3)

Updates `zxing-cpp` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/zxing-cpp/zxing-cpp/releases)
- [Commits](https://github.com/zxing-cpp/zxing-cpp/compare/v2.2.0...v2.3.0)

---
updated-dependencies:
- dependency-name: ocrmypdf
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: pathvalidate
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: zxing-cpp
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 01:32:36 +00:00
dependabot[bot]
eec3f13610 Chore(deps-dev): Bump ruff from 0.8.4 to 0.8.6 in the development group (#8626)
* Chore(deps-dev): Bump ruff from 0.8.4 to 0.8.6 in the development group

Bumps the development group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.8.4 to 0.8.6
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.4...0.8.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-07 01:15:43 +00:00
Sebastian Steinbeißer
935d077836 Chore: Switch from os.path to pathlib.Path (#8325)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2025-01-06 12:12:27 -08:00
tsia
d06aac947d Chore: disable max-age for some document endpoints (#8611) 2025-01-06 18:36:04 +00:00
shamoon
1856837d21 Fix: more missing modules 2025-01-05 12:37:10 -08:00
shamoon
bac6a013ed Fix: add missing CustomFieldDisplayComponent to saved view widget
Closes #8614
2025-01-05 12:28:10 -08:00
shamoon
aef68f0b41 Fix: fix saved views triggering changeafterchecked warning 2025-01-04 13:24:35 -08:00
shamoon
7fbe4d0aad Fix: found a couple more missing components 2025-01-04 13:24:35 -08:00
Malte Breitzmann
2a1c6bf0ca Documentation: remove dollar sign in code snippets (#8600) 2025-01-04 00:30:25 +00:00
shamoon
8e6de2790e Fix: do not accept empty string for doc link value via API (#8596) 2025-01-03 15:16:00 -08:00
shamoon
94a20b4510 Fix: prevent saved view widgets cut off on mobile 2025-01-02 19:50:44 -08:00
shamoon
21558dcf8b Fix: add missing ngbdropdown for management lists on mobile 2025-01-02 16:26:26 -08:00
shamoon
85d913520b Fix: add one missing bs class 2025-01-01 22:31:45 -08:00
shamoon
f89b6281da Enhancement: angular 19 (#8584) 2025-01-01 22:26:53 -08:00
shamoon
75de53eb83 Fix relative date again 2025-01-01 21:49:51 -08:00
shamoon
b0dd77bfd8 Fix: fix hotkey arrows (#8583) 2025-01-01 21:10:56 -08:00
shamoon
51b0f6e325 Fix: remove outdated admin logentry handler (#8580) 2025-01-01 10:11:54 -08:00
shamoon
9153be489c Fix: tweak relative date 2025-01-01 09:47:27 -08:00
shamoon
90731e05f5 Fix: remove accidental console log 2024-12-30 23:11:53 -08:00
dependabot[bot]
9270f7290e Chore(deps): Bump django-allauth in the django group (#8574)
Bumps the django group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.3.0 to 65.3.1
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: django
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-30 14:44:20 -08:00
shamoon
4e3d25c714 Enhancement: custom field sorting (#8494) 2024-12-30 18:18:34 +00:00
shamoon
e44cfef662 Documentation: cleanup devcontainer docs and move into tasks and launch config files 2024-12-26 10:49:32 -08:00
Orce MARINKOVSKI
6c138a21d4 Development: devcontainer improvements (#8553)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-26 16:10:02 +00:00
Orce MARINKOVSKI
b5a1dc86a5 Development: fix devcontainer postCreateCommand (#8542) 2024-12-25 08:53:30 +00:00
shamoon
3520a83c2f Fix: fix occasional error toast overflow (#8552) 2024-12-24 23:11:48 -08:00
shamoon
93f2ef45f5 Fix: fix share link archive version detection (#8551) 2024-12-24 23:11:03 -08:00
shamoon
8291ec17d4 Fix: disable email workflow type if email not enabled 2024-12-24 09:31:59 -08:00
dependabot[bot]
5007855904 Chore(deps-dev): Bump ruff from 0.8.3 to 0.8.4 in the development group (#8546)
* Chore(deps-dev): Bump ruff from 0.8.3 to 0.8.4 in the development group

Bumps the development group with 1 update: [ruff](https://github.com/astral-sh/ruff).


Updates `ruff` from 0.8.3 to 0.8.4
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.3...0.8.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-23 22:07:57 +00:00
dependabot[bot]
754cf17c90 Chore(deps): Bump the small-changes group with 6 updates (#8547)
Bumps the small-changes group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [gotenberg-client](https://github.com/stumpylog/gotenberg-client) | `0.7.0` | `0.8.2` |
| [httpx-oauth](https://github.com/frankie567/httpx-oauth) | `0.16.0` | `0.16.1` |
| [imap-tools](https://github.com/ikvk/imap_tools) | `1.7.4` | `1.8.0` |
| [jinja2](https://github.com/pallets/jinja) | `3.1.4` | `3.1.5` |
| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.10.1` | `3.11.0` |
| [tika-client](https://github.com/stumpylog/tika-rest-client) | `0.7.0` | `0.8.1` |


Updates `gotenberg-client` from 0.7.0 to 0.8.2
- [Release notes](https://github.com/stumpylog/gotenberg-client/releases)
- [Changelog](https://github.com/stumpylog/gotenberg-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stumpylog/gotenberg-client/compare/0.7.0...0.8.2)

Updates `httpx-oauth` from 0.16.0 to 0.16.1
- [Release notes](https://github.com/frankie567/httpx-oauth/releases)
- [Commits](https://github.com/frankie567/httpx-oauth/compare/v0.16.0...v0.16.1)

Updates `imap-tools` from 1.7.4 to 1.8.0
- [Release notes](https://github.com/ikvk/imap_tools/releases)
- [Changelog](https://github.com/ikvk/imap_tools/blob/master/docs/release_notes.rst)
- [Commits](https://github.com/ikvk/imap_tools/compare/v1.7.4...v1.8.0)

Updates `jinja2` from 3.1.4 to 3.1.5
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5)

Updates `rapidfuzz` from 3.10.1 to 3.11.0
- [Release notes](https://github.com/rapidfuzz/RapidFuzz/releases)
- [Changelog](https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/rapidfuzz/RapidFuzz/compare/v3.10.1...v3.11.0)

Updates `tika-client` from 0.7.0 to 0.8.1
- [Release notes](https://github.com/stumpylog/tika-rest-client/releases)
- [Changelog](https://github.com/stumpylog/tika-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stumpylog/tika-rest-client/compare/0.7.0...0.8.1)

---
updated-dependencies:
- dependency-name: gotenberg-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: httpx-oauth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: imap-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: rapidfuzz
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: tika-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-23 13:48:21 -08:00
shamoon
6972d0337f Fix: fix some popover closing behavior 2024-12-21 21:04:55 -08:00
HiranChaudhuri
452ea2ccf9 Enhancement: add timeout for Tika client (#8520)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-19 16:58:26 +00:00
shamoon
2bcbed31e9 Fix: add some minor frontend permissions checks (#8524) 2024-12-19 08:08:46 -08:00
shamoon
20b7ff9f9f Fix: resolve test warning 2024-12-19 08:05:06 -08:00
dependabot[bot]
3f7a0802a4 Chore(deps-dev): Bump the development group with 2 updates (#8502)
Bumps the development group with 2 updates: [ruff](https://github.com/astral-sh/ruff) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).

Updates `ruff` from 0.8.2 to 0.8.3
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.2...0.8.3)

Updates `mkdocs-material` from 9.5.48 to 9.5.49
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.48...9.5.49)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-Authored-By: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-16 13:53:12 -08:00
shamoon
ea514a7ed8 FIx: obliquely trim spaces from global search (#8484) 2024-12-13 07:39:16 -08:00
shamoon
af67dbe523 Update frontend strings 2024-12-13 07:36:41 -08:00
shamoon
8cd09ba10d Chore: add prettier organize imports 2024-12-13 00:45:20 -08:00
shamoon
9e4bc05a24 Fix: include global perms for bulk edit endpoint (#8468) 2024-12-12 15:38:54 +00:00
shamoon
dafb0b1f21 Enhancement: process mail button (#8466) 2024-12-11 11:03:53 -08:00
shamoon
2ac2a6dec6 Fix: frontend better reflect global perms for bulk edit, disabled form state (#8469) 2024-12-11 01:05:23 -08:00
shamoon
beb8ed8313 Fix: minor safari visual fixes around loading cards 2024-12-10 08:49:18 -08:00
shamoon
997db0fea1 Chore: update ng2 pdf viewer (#8462) 2024-12-09 16:12:53 -08:00
dependabot[bot]
64d40a7c37 Chore(deps-dev): Bump the development group with 2 updates (#8458)
Bumps the development group with 2 updates: [ruff](https://github.com/astral-sh/ruff) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.8.1 to 0.8.2
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.1...0.8.2)

Updates `mkdocs-material` from 9.5.47 to 9.5.48
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.47...9.5.48)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 22:56:28 +00:00
dependabot[bot]
dc422b5dac Chore(deps): Bump django-soft-delete from 1.0.15 to 1.0.16 in the django group (#8459)
* Chore(deps): Bump django-soft-delete in the django group

Bumps the django group with 1 update: [django-soft-delete](https://github.com/san4ezy/django_softdelete).


Updates `django-soft-delete` from 1.0.15 to 1.0.16
- [Commits](https://github.com/san4ezy/django_softdelete/commits)

---
updated-dependencies:
- dependency-name: django-soft-delete
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: django
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 21:48:54 +00:00
dependabot[bot]
f56ab150b0 Chore(deps): Bump the small-changes group with 4 updates (#8460)
* Chore(deps): Bump the small-changes group with 4 updates

Bumps the small-changes group with 4 updates: [httpx-oauth](https://github.com/frankie567/httpx-oauth), [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF), [redis](https://github.com/redis/redis-py) and [scikit-learn](https://github.com/scikit-learn/scikit-learn).


Updates `httpx-oauth` from 0.15.1 to 0.16.0
- [Release notes](https://github.com/frankie567/httpx-oauth/releases)
- [Commits](https://github.com/frankie567/httpx-oauth/compare/v0.15.1...v0.16.0)

Updates `ocrmypdf` from 16.6.2 to 16.7.0
- [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases)
- [Changelog](https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.rst)
- [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v16.6.2...v16.7.0)

Updates `redis` from 5.2.0 to 5.2.1
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v5.2.0...v5.2.1)

Updates `scikit-learn` from 1.5.2 to 1.6.0
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.5.2...1.6.0)

---
updated-dependencies:
- dependency-name: httpx-oauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: ocrmypdf
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
...

Signed-off-by: dependabot[bot] <support@github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-09 21:35:09 +00:00
shamoon
e3fa3fe818 Chore: use rxjs instead of JS setInterval for timers (#8461) 2024-12-09 13:14:48 -08:00
shamoon
0a7c296194 Chore: refactor loading stuff to be more DRY 2024-12-09 12:57:58 -08:00
shamoon
c2e34b36ce Fix: only adjust icon position inside buttons 2024-12-09 12:17:27 -08:00
shamoon
084f2f2822 Enhancement: slightly nicer filter editor loading 2024-12-09 09:52:36 -08:00
shamoon
e4f69dc945 Feature: bulk edit custom field values (#8428) 2024-12-09 17:35:49 +00:00
shamoon
8574d28c6f Fix: hide other filtering buttons, fix e2e test paths 2024-12-08 21:23:41 -08:00
shamoon
27f575c2d1 Fix some strings 2024-12-08 20:34:16 -08:00
Quadrubo
8e3a021b0f Documentation: correct socket info for gpg decryption of emails (#8453) 2024-12-08 16:27:11 -08:00
shamoon
20e45407f5 Fix: fix trash column display on mobile 2024-12-07 08:05:11 -08:00
shamoon
f836c5ce3e Chore: some logging to trash emptying 2024-12-07 08:04:10 -08:00
dependabot[bot]
476d753720 Chore(deps): Bump django from 5.1.3 to 5.1.4 (#8445)
Bumps [django](https://github.com/django/django) from 5.1.3 to 5.1.4.
- [Commits](https://github.com/django/django/compare/5.1.3...5.1.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-06 16:20:38 -08:00
shamoon
65b48952cd Refactor: loading component 2024-12-06 00:46:21 -08:00
shamoon
0647812699 Enhancement: improved loading visuals (#8435) 2024-12-05 20:26:28 -08:00
shamoon
8722ff481c Fix: use update preview component for dashboard widget 2024-12-04 23:14:08 -08:00
shamoon
0c883d064e Fix: some random frontend fixes and coverage 2024-12-04 21:15:45 -08:00
shamoon
df2c139721 Chore: mark another test flaky 2024-12-04 12:10:31 -08:00
shamoon
24b678b7e6 Delete workflow-dialog.component.scss 2024-12-04 00:21:28 -08:00
Paul-Vincent Roll
1f85da64e4 Documentation: add search caveat when using MariaDB (#8424)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-03 13:16:43 -08:00
shamoon
a14b9127b6 Fix: sidebar saved views label, add spacing to settings columns 2024-12-03 11:44:44 -08:00
shamoon
7d182ab894 Enhancement: prune audit logs and management command (#8416) 2024-12-03 19:28:27 +00:00
shamoon
51c339d1b7 Chore: compact settings 2024-12-03 11:19:49 -08:00
shamoon
ab548e36c7 Change: make saved views manage its own component (#8423) 2024-12-03 11:09:02 -08:00
shamoon
ae4e8808b0 Fix: move filter to header, mobile layout improvement 2024-12-03 11:07:04 -08:00
shamoon
b4e369b556 Enhancement: file task filtering (#8421) 2024-12-03 10:44:52 -08:00
shamoon
5f7c60d9a1 Chore: remove some tsconfig and jest stuff 2024-12-03 09:12:38 -08:00
shamoon
fca10227bc Update translation strings 2024-12-02 23:04:58 -08:00
shamoon
007e5a5473 Fix: dont link related document if document is in the trash 2024-12-02 19:42:54 -08:00
shamoon
70d9a6fd36 Enhancement: auto-link duplicate document for failed tasks (#8415) 2024-12-02 19:11:40 -08:00
lufi
0406fca59b Enhancement: include current filename placeholder in workflows (#8319)
Co-authored-by: Trenton H <797416+stumpylog@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-03 03:09:27 +00:00
shamoon
1d65628132 Feature: email, webhook workflow actions (#8108) 2024-12-03 00:12:40 +00:00
dependabot[bot]
81a5baa451 Chore(deps-dev): Bump the development group with 4 updates (#8414)
* Chore(deps-dev): Bump the development group with 4 updates

Bumps the development group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [pytest](https://github.com/pytest-dev/pytest), [pytest-httpx](https://github.com/Colin-b/pytest_httpx) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.8.0 to 0.8.1
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.8.0...0.8.1)

Updates `pytest` from 8.3.3 to 8.3.4
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.3...8.3.4)

Updates `pytest-httpx` from 0.34.0 to 0.35.0
- [Release notes](https://github.com/Colin-b/pytest_httpx/releases)
- [Changelog](https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/Colin-b/pytest_httpx/compare/v0.34.0...v0.35.0)

Updates `mkdocs-material` from 9.5.46 to 9.5.47
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.46...9.5.47)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
- dependency-name: pytest-httpx
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update .pre-commit-config.yaml

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-12-02 23:29:56 +00:00
dependabot[bot]
e9254d4eef Chore(deps): Bump codecov/codecov-action in the actions group (#8401)
Bumps the actions group with 1 update: [codecov/codecov-action](https://github.com/codecov/codecov-action).


Updates `codecov/codecov-action` from 4 to 5
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 08:59:45 -08:00
shamoon
0fc1860d4c Enhancement: use stable unique IDs for custom field select options (#8299) 2024-12-02 04:15:38 +00:00
dependabot[bot]
00485138f9 Chore(deps-dev): Bump the development group with 4 updates (#8352)
Bumps the development group with 4 updates: [ruff](https://github.com/astral-sh/ruff), [pytest-httpx](https://github.com/Colin-b/pytest_httpx), [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `ruff` from 0.7.3 to 0.8.0
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.7.3...0.8.0)

Updates `pytest-httpx` from 0.33.0 to 0.34.0
- [Release notes](https://github.com/Colin-b/pytest_httpx/releases)
- [Changelog](https://github.com/Colin-b/pytest_httpx/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/Colin-b/pytest_httpx/compare/v0.33.0...v0.34.0)

Updates `pytest-rerunfailures` from 14.0 to 15.0
- [Changelog](https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst)
- [Commits](https://github.com/pytest-dev/pytest-rerunfailures/compare/14.0...15.0)

Updates `mkdocs-material` from 9.5.44 to 9.5.46
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.44...9.5.46)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: pytest-httpx
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development
- dependency-name: pytest-rerunfailures
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: development
- dependency-name: mkdocs-material
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 18:56:54 -08:00
shamoon
79345f0a69 Enhancement: better TIFF display support (#8087) 2024-12-01 11:46:19 -08:00
dependabot[bot]
3aec0b3372 Chore(deps): Bump the small-changes group across 1 directory with 7 updates (#8399)
Bumps the small-changes group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [django-allauth](https://github.com/sponsors/pennersr) | `65.2.0` | `65.3.0` |
| [channels](https://github.com/django/channels) | `4.1.0` | `4.2.0` |
| [channels-redis](https://github.com/django/channels_redis) | `4.2.0` | `4.2.1` |
| [mysqlclient](https://github.com/PyMySQL/mysqlclient) | `2.2.5` | `2.2.6` |
| [ocrmypdf](https://github.com/ocrmypdf/OCRmyPDF) | `16.6.1` | `16.6.2` |
| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.3` | `1.3.4` |
| [tqdm](https://github.com/tqdm/tqdm) | `4.67.0` | `4.67.1` |



Updates `django-allauth` from 65.2.0 to 65.3.0
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `channels` from 4.1.0 to 4.2.0
- [Changelog](https://github.com/django/channels/blob/main/CHANGELOG.txt)
- [Commits](https://github.com/django/channels/compare/4.1.0...4.2.0)

Updates `channels-redis` from 4.2.0 to 4.2.1
- [Changelog](https://github.com/django/channels_redis/blob/main/CHANGELOG.txt)
- [Commits](https://github.com/django/channels_redis/compare/4.2.0...4.2.1)

Updates `mysqlclient` from 2.2.5 to 2.2.6
- [Release notes](https://github.com/PyMySQL/mysqlclient/releases)
- [Changelog](https://github.com/PyMySQL/mysqlclient/blob/main/HISTORY.rst)
- [Commits](https://github.com/PyMySQL/mysqlclient/compare/v2.2.5...v2.2.6)

Updates `ocrmypdf` from 16.6.1 to 16.6.2
- [Release notes](https://github.com/ocrmypdf/OCRmyPDF/releases)
- [Changelog](https://github.com/ocrmypdf/OCRmyPDF/blob/main/docs/release_notes.rst)
- [Commits](https://github.com/ocrmypdf/OCRmyPDF/compare/v16.6.1...v16.6.2)

Updates `setproctitle` from 1.3.3 to 1.3.4
- [Changelog](https://github.com/dvarrazzo/py-setproctitle/blob/master/HISTORY.rst)
- [Commits](https://github.com/dvarrazzo/py-setproctitle/compare/version-1.3.3...version-1.3.4)

Updates `tqdm` from 4.67.0 to 4.67.1
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.67.0...v4.67.1)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: channels
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: small-changes
- dependency-name: channels-redis
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: mysqlclient
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: ocrmypdf
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: setproctitle
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
- dependency-name: tqdm
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: small-changes
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-01 19:12:23 +00:00
shamoon
dbccd13915 Enhancement: History (audit log) for bulk edit operations (#8196) 2024-12-01 17:53:52 +00:00
Johan Ohly
fbeaed930e Documentation: fix docker hub image name (#8398) 2024-12-01 07:38:49 -08:00
shamoon
5a74a92b74 Fix: missing import in frontend tests 2024-11-29 23:01:15 -08:00
shamoon
d1a4c1f2eb Enhancement: larger previews in action dialogs (#8387) 2024-11-29 22:58:59 -08:00
shamoon
9614528033 Enhancement: filterable list count sorting and opacification (#8386) 2024-11-29 22:36:40 -08:00
shamoon
548a7f05d8 Enhancement: preview button for document list and trash, refactor (#8384) 2024-11-29 21:24:33 -08:00
shamoon
771b6606e0 Fix: include subpath in logo url (#8374) 2024-11-28 08:57:44 -08:00
shamoon
c08ca6e3e5 Fixhancement: dispatch change event from current field prior to save (#8369) 2024-11-27 23:25:52 -08:00
shamoon
a186527f07 Enhancement: use theme-color meta tag (#8359) 2024-11-26 10:24:48 -08:00
shamoon
ecb300845c Update frontend translation strings 2024-11-26 09:23:26 -08:00
shamoon
fcf532f13e Documentation: documentation updates 2024-11-24 14:20:20 -08:00
shamoon
cc93bc41df Chore: tiny typo in ci.yml 2024-11-24 12:55:39 -08:00
shamoon
c6fdf4409b Fix: include distinct on workflow objects filter 2024-11-24 12:22:48 -08:00
shamoon
37f8a77516 Chore: cleanup urls, use actions for some views (#8346) 2024-11-24 12:06:31 -08:00
shamoon
2b29233a1e Feature: scheduled workflow trigger (#8036) 2024-11-24 18:22:31 +00:00
Trenton H
d5572137de Fixes install script to handle languages with dashes or underscores (#8341) 2024-11-23 08:15:13 -08:00
dependabot[bot]
d370704286 Chore(deps): Bump tornado from 6.4.1 to 6.4.2 (#8336)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.1 to 6.4.2.
- [Changelog](https://github.com/tornadoweb/tornado/blob/v6.4.2/docs/releases.rst)
- [Commits](https://github.com/tornadoweb/tornado/compare/v6.4.1...v6.4.2)

---
updated-dependencies:
- dependency-name: tornado
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 14:48:51 -08:00
shamoon
be684c9a11 Fix: handle very old dates with positive offset too (#8335) 2024-11-22 08:39:51 -08:00
shamoon
447b4cdb98 Refactor: fix unnecessary use of filterable dropdown sorting (#8328) 2024-11-21 18:50:52 -08:00
shamoon
f6cc2f9fc3 Enhancement: offer link to restored document (#8321) 2024-11-20 16:51:00 -08:00
shamoon
beb69ae01e Update frontend translation strings 2024-11-20 16:42:45 -08:00
shamoon
8bfe68743d Enhancement: support owner permissions for file tasks (#8195) 2024-11-20 20:25:53 +00:00
shamoon
9c1561adfb Change: change update content to handle archive disabled (#8315) 2024-11-20 20:01:13 +00:00
dependabot[bot]
d7d3fed833 Chore(deps): Bump watchdog in the major-versions group (#8257)
Bumps the major-versions group with 1 update: [watchdog](https://github.com/gorakhargosh/watchdog).


Updates `watchdog` from 5.0.3 to 6.0.0
- [Release notes](https://github.com/gorakhargosh/watchdog/releases)
- [Changelog](https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst)
- [Commits](https://github.com/gorakhargosh/watchdog/compare/v5.0.3...v6.0.0)

---
updated-dependencies:
- dependency-name: watchdog
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: major-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-19 08:50:21 -08:00
Kevin Doren
827121808a Enhancement: Add --compare-json option to document_exporter to write json files only if changed (#8261) 2024-11-19 07:20:24 -08:00
shamoon
f0e71330ac Enhancement: next / previous shortcuts for document list (#8309) 2024-11-18 11:05:00 -08:00
shamoon
e4578b4589 Chore: change doc detail icon 2024-11-18 11:03:56 -08:00
shamoon
e94a92ed59 Feature: two-factor authentication (#8012) 2024-11-18 18:34:46 +00:00
ftibi93
6c3d6d562d Documentation: fix docker-compose.portainer.yml GID (#8273) 2024-11-16 04:19:18 +00:00
shamoon
c324a71e91 Fix: include db_index caveat in squashed migrations (#8292) 2024-11-15 07:42:10 -08:00
shamoon
2e6f85cc3a Tweak: use fixed position for navbar (#8279) 2024-11-14 00:22:26 -08:00
shamoon
56ef263540 Fix: fix log line trackby function 2024-11-14 00:05:38 -08:00
shamoon
36ecb8587d Fix: prevent duplicate workflow runs (#8268) 2024-11-13 07:18:21 -08:00
shamoon
ad9bdaf1b8 Merge branch 'main' into dev 2024-11-12 22:35:42 -08:00
shamoon
22f29b3659 Chore: add note about select options to edit dialog (#8267) 2024-11-12 22:25:05 -08:00
shamoon
0dc47d156f Update frontend translation strings 2024-11-12 19:42:39 -08:00
shamoon
3633fb382f Enhancement: save & next / close shortcut key (#8243) 2024-11-12 16:21:10 -08:00
shamoon
a283a65813 Feature: loading preview, better text popup preview (#8011) 2024-11-12 16:20:52 -08:00
Sebastian Steinbeißer
74d0c9fda5 Switch src/documents/bulk*.py from os.path to pathlib.Path (#7862)
Also:
* Ensure that the ruff PTH check remains enabled for these files and
all files added in the future.
* Add some type annotations.
2024-11-12 17:04:07 +00:00
Trenton H
d1f255a22e Chore: Bulk backend dependency updates (#8212) 2024-11-11 11:54:51 -08:00
github-actions[bot]
ceb834bdef Documentation: Add v2.13.5 changelog (#8248)
* Changelog v2.13.5 - GHA

* Update changelog.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-10 09:03:05 -08:00
shamoon
6c230f098a Bump version to 2.13.5 2024-11-10 08:25:10 -08:00
shamoon
da40d03be6 Merge branch 'dev' 2024-11-10 08:24:31 -08:00
shamoon
a6f4c75a72 Fix: handle page count exception for pw-protected files (#8240) 2024-11-10 03:33:47 -08:00
shamoon
c22a80abd3 Fix: correctly track task id in list for change detection (#8230) 2024-11-08 00:19:05 -08:00
Trenton H
2806b1820e Updates all runner images to use Ubuntu Noble (#8213) 2024-11-08 02:14:47 +00:00
Trenton H
177cc9d985 Fixes admin pages to show trashed documents too (#8068) 2024-11-07 23:04:29 +00:00
shamoon
da85b05ea4 Fix: tag colors stay fixed in list when selected (#8225) 2024-11-07 11:59:03 -08:00
shamoon
82fd706dca Fix: another Firefox plaintext popup fix 2024-11-06 08:58:15 -08:00
shamoon
2f06680f76 Fix: fix re-activation of save button when adding / removing array items (#8208) 2024-11-05 20:01:36 -08:00
shamoon
64095a710a Fix: Dont check empty ASNs 2024-11-05 20:01:36 -08:00
shamoon
005150c84f Fix: fix thumbnail clipping, select inverted color in safari (#8193) 2024-11-04 13:44:35 -08:00
shamoon
c57cd7e298 Fix: select checkbox should remain visible (#8185) 2024-11-04 04:32:57 -08:00
shamoon
ef329fc687 Fix: warn with proper error on ASN exists in trash (#8176) 2024-11-03 17:52:59 -08:00
dependabot[bot]
695967cbb2 Chore(deps): Bump stumpylog/image-cleaner-action in the actions group (#8142)
Bumps the actions group with 1 update: [stumpylog/image-cleaner-action](https://github.com/stumpylog/image-cleaner-action).


Updates `stumpylog/image-cleaner-action` from 0.8.0 to 0.9.0
- [Release notes](https://github.com/stumpylog/image-cleaner-action/releases)
- [Changelog](https://github.com/stumpylog/image-cleaner-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stumpylog/image-cleaner-action/compare/v0.8.0...v0.9.0)

---
updated-dependencies:
- dependency-name: stumpylog/image-cleaner-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-03 15:33:12 +00:00
github-actions[bot]
c028910cdd Changelog v2.13.4 - GHA (#8170)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-03 06:27:10 -08:00
shamoon
37f836db2c Merge branch 'dev' 2024-11-03 05:28:57 -08:00
shamoon
d01192b81e Fix: fix dark mode icon blend mode in 2.13.3 (#8166) 2024-11-03 05:27:20 -08:00
shamoon
9655c89b69 Bump version to 2.13.4 2024-11-03 05:08:08 -08:00
shamoon
ccf1430f82 Merge branch 'dev' 2024-11-03 05:07:43 -08:00
shamoon
c2509ea439 Fix: fix clipped popup preview in 2.13.3 (#8165) 2024-11-03 05:06:39 -08:00
github-actions[bot]
3cd9bcebe6 Changelog v2.13.3 - GHA (#8160)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-02 22:47:15 -07:00
shamoon
2368fd15cb Bump version to 2.13.3 2024-11-02 22:19:03 -07:00
shamoon
cc35b321c5 Merge branch 'dev' 2024-11-02 22:18:35 -07:00
github-actions[bot]
1ddbc31c59 New Crowdin translations by GitHub Action (#8159)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-11-02 21:58:06 -07:00
github-actions[bot]
6ae8ab4af3 New Crowdin translations by GitHub Action (#8130)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-11-02 21:56:35 -07:00
shamoon
37dc791301 Fix: fix auto-clean PDFs, create parent dir for storing unmodified original (#8157) 2024-11-02 20:54:28 -07:00
Yichi Yang
5fed311ffc Fix: correctly handle "exists, false" in custom field query filter (#8158) 2024-11-02 18:40:50 -07:00
dependabot[bot]
e74f182662 Chore(deps-dev): Bump the frontend-eslint-dependencies group (#8145)
Bumps the frontend-eslint-dependencies group in /src-ui with 4 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser), [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) and [eslint](https://github.com/eslint/eslint).


Updates `@typescript-eslint/eslint-plugin` from 8.8.0 to 8.12.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.12.2/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.8.0 to 8.12.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.12.2/packages/parser)

Updates `@typescript-eslint/utils` from 8.8.0 to 8.12.2
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.12.2/packages/utils)

Updates `eslint` from 9.11.1 to 9.14.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.11.1...v9.14.0)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: "@typescript-eslint/utils"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-eslint-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-02 02:44:00 +00:00
dependabot[bot]
3f094c88bd Chore(deps-dev): Bump @types/node from 22.7.4 to 22.8.6 in /src-ui (#8148)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.7.4 to 22.8.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 23:44:28 +00:00
dependabot[bot]
631eaa2109 Chore(deps-dev): Bump @playwright/test from 1.47.2 to 1.48.2 in /src-ui (#8147)
Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.47.2 to 1.48.2.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.47.2...v1.48.2)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 23:35:04 +00:00
dependabot[bot]
27fadf6963 Chore(deps): Bump uuid from 10.0.0 to 11.0.2 in /src-ui (#8146)
Bumps [uuid](https://github.com/uuidjs/uuid) from 10.0.0 to 11.0.2.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v10.0.0...v11.0.2)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 23:25:07 +00:00
dependabot[bot]
d53b300a7f Chore(deps): Bump tslib from 2.7.0 to 2.8.1 in /src-ui (#8149)
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.7.0 to 2.8.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/v2.7.0...v2.8.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 23:13:13 +00:00
dependabot[bot]
6cc626fd86 Chore(deps-dev): Bump @codecov/webpack-plugin in /src-ui (#8150)
Bumps @codecov/webpack-plugin from 1.2.0 to 1.2.1.

---
updated-dependencies:
- dependency-name: "@codecov/webpack-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 23:01:54 +00:00
dependabot[bot]
8b8f1af513 Chore(deps-dev): Bump @types/jest (#8144)
Bumps the frontend-jest-dependencies group in /src-ui with 1 update: [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest).


Updates `@types/jest` from 29.5.13 to 29.5.14
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-jest-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-01 22:45:03 +00:00
dependabot[bot]
4226a1bddc Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 21 updates (#8143)
* Chore(deps): Bump the frontend-angular-dependencies group

Bumps the frontend-angular-dependencies group in /src-ui with 21 updates:

| Package | From | To |
| --- | --- | --- |
| [@angular/cdk](https://github.com/angular/components) | `18.2.6` | `18.2.11` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `18.2.6` | `18.2.10` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `18.2.6` | `18.2.10` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `18.2.6` | `18.2.10` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `18.2.6` | `18.2.10` |
| [@angular/localize](https://github.com/angular/angular) | `18.2.6` | `18.2.10` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `18.2.6` | `18.2.10` |
| [@angular/platform-browser-dynamic](https://github.com/angular/angular/tree/HEAD/packages/platform-browser-dynamic) | `18.2.6` | `18.2.10` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `18.2.6` | `18.2.10` |
| [@ng-select/ng-select](https://github.com/ng-select/ng-select) | `13.9.0` | `13.9.1` |
| [ng2-pdf-viewer](https://github.com/VadimDez/ng2-pdf-viewer) | `10.3.1` | `10.3.4` |
| [@angular-devkit/build-angular](https://github.com/angular/angular-cli) | `18.2.6` | `18.2.11` |
| [@angular-devkit/core](https://github.com/angular/angular-cli) | `18.2.6` | `18.2.11` |
| [@angular-devkit/schematics](https://github.com/angular/angular-cli) | `18.2.6` | `18.2.11` |
| [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) | `18.3.1` | `18.4.0` |
| [@angular-eslint/eslint-plugin](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin) | `18.3.1` | `18.4.0` |
| [@angular-eslint/eslint-plugin-template](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/eslint-plugin-template) | `18.3.1` | `18.4.0` |
| [@angular-eslint/schematics](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/schematics) | `18.3.1` | `18.4.0` |
| [@angular-eslint/template-parser](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/template-parser) | `18.3.1` | `18.4.0` |
| [@angular/cli](https://github.com/angular/angular-cli) | `18.2.6` | `18.2.11` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `18.2.6` | `18.2.10` |


Updates `@angular/cdk` from 18.2.6 to 18.2.11
- [Release notes](https://github.com/angular/components/releases)
- [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/components/compare/18.2.6...18.2.11)

Updates `@angular/common` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/common)

Updates `@angular/compiler` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/compiler)

Updates `@angular/core` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/core)

Updates `@angular/forms` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/forms)

Updates `@angular/localize` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/compare/18.2.6...18.2.10)

Updates `@angular/platform-browser` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/platform-browser)

Updates `@angular/platform-browser-dynamic` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/platform-browser-dynamic)

Updates `@angular/router` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/router)

Updates `@ng-select/ng-select` from 13.9.0 to 13.9.1
- [Release notes](https://github.com/ng-select/ng-select/releases)
- [Changelog](https://github.com/ng-select/ng-select/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ng-select/ng-select/compare/v13.9.0...v13.9.1)

Updates `ng2-pdf-viewer` from 10.3.1 to 10.3.4
- [Release notes](https://github.com/VadimDez/ng2-pdf-viewer/releases)
- [Changelog](https://github.com/VadimDez/ng2-pdf-viewer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/VadimDez/ng2-pdf-viewer/compare/10.3.1...10.3.4)

Updates `@angular-devkit/build-angular` from 18.2.6 to 18.2.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.11)

Updates `@angular-devkit/core` from 18.2.6 to 18.2.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.11)

Updates `@angular-devkit/schematics` from 18.2.6 to 18.2.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.11)

Updates `@angular-eslint/builder` from 18.3.1 to 18.4.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/builder)

Updates `@angular-eslint/eslint-plugin` from 18.3.1 to 18.4.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/eslint-plugin)

Updates `@angular-eslint/eslint-plugin-template` from 18.3.1 to 18.4.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/eslint-plugin-template/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/eslint-plugin-template)

Updates `@angular-eslint/schematics` from 18.3.1 to 18.4.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/schematics/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/schematics)

Updates `@angular-eslint/template-parser` from 18.3.1 to 18.4.0
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/template-parser/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v18.4.0/packages/template-parser)

Updates `@angular/cli` from 18.2.6 to 18.2.11
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/18.2.6...18.2.11)

Updates `@angular/compiler-cli` from 18.2.6 to 18.2.10
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/18.2.10/packages/compiler-cli)

---
updated-dependencies:
- dependency-name: "@angular/cdk"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/common"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/localize"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/platform-browser"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/platform-browser-dynamic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/router"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@ng-select/ng-select"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: ng2-pdf-viewer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/build-angular"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-devkit/schematics"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/builder"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/eslint-plugin-template"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/schematics"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular-eslint/template-parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
- dependency-name: "@angular/compiler-cli"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: frontend-angular-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* Change output name

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-11-01 22:32:12 +00:00
shamoon
289a7a2348 Documentation: re-add 2.13.0 changelog (#8135) 2024-10-31 12:18:32 -07:00
horvatkm
702ab1b77a Chore: update field in bug-report.yml (#8123) 2024-10-30 22:07:35 +00:00
shamoon
e22ccbda26 Fix: dont use filters for inverted thumbnails (#8121) 2024-10-30 11:43:02 -07:00
shamoon
56d296f04b Fix: use static object for activedisplayfields to prevent changes (#8120) 2024-10-30 11:21:01 -07:00
shamoon
11cfa0871e Fix: dont invert pdf colors in FF (#8110) 2024-10-30 00:54:19 -07:00
shamoon
159344f033 Fix: make mail account password and refresh token text fields (#8107) 2024-10-29 21:54:47 -07:00
github-actions[bot]
d8cfed5f5e Changelog v2.13.2 - GHA (#8103)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-10-29 12:45:11 -07:00
shamoon
94fe7a9e3d Bump version to 2.13.2 2024-10-29 11:09:19 -07:00
shamoon
9c9b4effe2 Merge branch 'dev' 2024-10-29 11:08:50 -07:00
github-actions[bot]
75f5007ede New Crowdin translations by GitHub Action (#8101)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-29 11:07:03 -07:00
github-actions[bot]
d95baf4e6b New Crowdin translations by GitHub Action (#8093)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-29 11:05:08 -07:00
shamoon
aac04e73b9 Fix: correct serializing of auth tokens for export (#8100) 2024-10-29 17:02:32 +00:00
shamoon
3af3484a00 Fix: cf query dropdown styling affecting other components (#8095) 2024-10-28 23:14:11 -07:00
github-actions[bot]
90e68af6cf Documentation: Add v2.13.1 changelog (#8085)
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-10-28 12:44:21 -07:00
shamoon
eee08d389f Bump version to 2.13.1 2024-10-28 11:27:57 -07:00
github-actions[bot]
b3b0e95d2d New Crowdin translations by GitHub Action (#8083)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-28 11:00:35 -07:00
shamoon
35907313e8 Fix: allow removing dead document links from UI, validate via API (#8081) 2024-10-28 10:39:17 -07:00
github-actions[bot]
d4a20c7e30 New Crowdin translations by GitHub Action (#8080)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-28 09:00:31 -07:00
shamoon
3b1dffe0dc Fix: dont display trashed docs in doc links 2024-10-28 08:57:38 -07:00
shamoon
fa0ab0de27 Merge branch 'main' into dev 2024-10-28 08:42:07 -07:00
Trenton H
3b2b4a9177 Removes whitenoise patches and upgrades it to 6.8.1 (#8079) 2024-10-28 15:34:26 +00:00
github-actions[bot]
3d030637ca New Crowdin translations by GitHub Action (#8025)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-28 07:03:42 -07:00
shamoon
79092c27c5 Fix: Make customfieldinstance soft delete, fix filepath when deleted (#8067) 2024-10-28 14:02:09 +00:00
shamoon
28fdb170bf Fix: handle uuid fields created under mariadb and Django 4 (#8034) 2024-10-28 13:54:16 +00:00
Trenton H
335c6c3820 Fix: Update filename correctly if the document is in the trash (#8066)
* Fixes an issue where the filename is not updated if the document is in the trash (but the file is moved)
2024-10-28 02:45:31 +00:00
Trenton H
ad23cce2e6 Handle a special case where the none marker exists in a way which could create an absolute path (#8060) 2024-10-28 01:51:07 +00:00
shamoon
0d96cd03d5 Fix: disable custom field signals during import in 2.13.0 (#8065) 2024-10-27 18:43:24 -07:00
shamoon
1888ee6a3f Fix: doc link documents search should exclude null (#8064) 2024-10-27 17:13:29 -07:00
marph91
605aa50b00 Documentation: Fix list indentation (#8050)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-10-28 00:02:06 +00:00
shamoon
149d770ad1 Enhancement: auto-update document filenames with CF select fields (#8045) 2024-10-27 23:45:21 +00:00
shamoon
b2e9f3195a Fix: fix custom field query empty element removal (#8056) 2024-10-27 06:53:59 -07:00
shamoon
33e9990ed5 Chore: fix changelog script (#8022) 2024-10-27 03:36:12 +00:00
shamoon
e775b6346a Fix: dont try to load PAPERLESS_MODEL_FILE as env from file (#8040) 2024-10-26 22:29:20 +00:00
shamoon
54e17f5b74 Documentation: fix docs index page on mobile (#8035) 2024-10-26 11:36:40 -07:00
shamoon
ff1639d58b Fix: dont include all allauth urls (#8010) 2024-10-26 15:06:22 +00:00
shamoon
7649903d3c Enhancement / fix: include social accounts and api tokens in export (#8016) 2024-10-26 06:51:22 -07:00
tooomm
7a5d707fc0 Documentation: Resolve display and link errors in changelog (#8019)
---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-10-26 01:13:22 -07:00
github-actions[bot]
85e00aecb4 Documentation: Add v2.13.0 changelog (#8009)
* Changelog v2.13.0 - GHA

* Update changelog.md

* Update changelog.md

* Update changelog.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2024-10-26 01:00:19 -07:00
shamoon
53aa216a4a Fix: oauth settings without base url (#8020) 2024-10-26 00:57:36 -07:00
shamoon
2814cd110d Merge pull request #7902 from paperless-ngx/beta
[Beta] Paperless-ngx v2.13.0 Beta Release
2024-10-25 10:13:40 -07:00
shamoon
b9315b018a Merge branch 'dev' into beta 2024-10-25 09:33:44 -07:00
github-actions[bot]
27f7ba8cf8 New Crowdin translations by GitHub Action (#8008)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-25 09:33:22 -07:00
shamoon
df9917b0f4 Merge branch 'dev' into beta 2024-10-25 09:18:11 -07:00
github-actions[bot]
86418f6e04 New Crowdin translations by GitHub Action (#7911)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-10-25 09:17:18 -07:00
shamoon
69a6a12319 Correct repo maintenance documentation 2024-10-25 09:16:24 -07:00
shamoon
b501d89846 Update repo maintenance rules 2024-10-24 16:15:59 -07:00
shamoon
f6548e0e55 Enhancement: automatically refresh display list after custom field edit 2024-10-22 09:19:22 -07:00
shamoon
a4b8bf1250 Fix: prevent focus error on custom field edit when switching from select 2024-10-20 19:19:30 -07:00
shamoon
1726aec989 Enhancement: automatically refresh display list after custom field edit 2024-10-20 19:17:18 -07:00
shamoon
549312859e Merge branch 'dev' into beta 2024-10-20 19:06:52 -07:00
Trenton H
544e9c4fe2 Use a TextField for the storage path field (#7967) 2024-10-20 11:23:46 -07:00
shamoon
0520db5e93 Update translation strings 2024-10-19 22:56:57 -07:00
shamoon
1cb85d41f3 Change: dont show remove button at all from doc link dropdowns if disabled 2024-10-19 17:23:37 -07:00
tooomm
fb94a5d377 Fix: remove space before my profile button in dropdown (#7963) 2024-10-19 17:17:53 -07:00
shamoon
85e2081e40 Merge branch 'dev' into beta 2024-10-18 22:36:27 -07:00
shamoon
71e2565386 Enhancement: auto-focus default select field in custom field dropdown (#7961) 2024-10-18 22:35:57 -07:00
shamoon
82be90f7ff Merge branch 'dev' into beta 2024-10-17 14:33:05 -07:00
shamoon
f0ad073bb2 Fix: document link field consistent behavior with insufficient permissions (#7953) 2024-10-17 14:32:56 -07:00
shamoon
61c804a6e3 Merge branch 'dev' into beta 2024-10-16 16:57:08 -07:00
shamoon
de95b296a0 Change: open not edit (#7942) 2024-10-16 16:56:40 -07:00
shamoon
86a57838a8 Fix: tweak icon placement in small doc card buttons 2024-10-16 16:39:20 -07:00
shamoon
bddb9bfad8 Update preview-popup.component.scss 2024-10-15 21:58:25 -07:00
shamoon
7098ec9bf5 Merge branch 'dev' into beta 2024-10-15 10:56:53 -07:00
Trenton H
c2cfaaf8af Fix: Handling of Nones when using custom fields in filepath templating (#7933) 2024-10-15 17:54:15 +00:00
shamoon
6292296876 Fix: trigger move and rename after custom fields saved (#7927) 2024-10-15 10:08:50 -07:00
shamoon
9f68e0f76a Merge branch 'dev' into beta 2024-10-14 07:57:01 -07:00
shamoon
4e849b545a Fix: v2.13.0 RC1: increase field max lengths to accommodate larger tokens (#7916) 2024-10-14 07:56:47 -07:00
shamoon
e43fee41cb Merge branch 'main' into beta 2024-10-14 07:56:21 -07:00
shamoon
613f8a0065 Bump version to 2.13.0 2024-10-14 07:56:14 -07:00
shamoon
baf6484454 Chore: include beta in tagged version display 2024-10-14 07:55:03 -07:00
shamoon
9b84dc06b6 Enhancement: support retain barcode split pages (#7912) 2024-10-13 20:51:39 -07:00
shamoon
cb617531bc Fix: preserve text linebreaks in doc edit (#7908) 2024-10-13 10:45:05 -07:00
shamoon
8e61a29137 Chore: dont run repo maintenance in forks 2024-10-13 10:44:13 -07:00
tooomm
dfcecb3a5c Chore: do not run Crowdin action on forks (#7904) 2024-10-13 08:37:41 -07:00
Matthieu
f6135f9ad0 Documentation: fix link to redis security docs (#7766) 2024-09-23 14:45:35 -07:00
763 changed files with 144861 additions and 96040 deletions

View File

@@ -123,13 +123,13 @@ RUN set -eux \
WORKDIR /usr/src/paperless/src/docker/ WORKDIR /usr/src/paperless/src/docker/
COPY [ \ COPY [ \
"docker/imagemagick-policy.xml", \ "docker/rootfs/etc/ImageMagick-6/paperless-policy.xml", \
"./" \ "./" \
] ]
RUN set -eux \ RUN set -eux \
&& echo "Configuring ImageMagick" \ && echo "Configuring ImageMagick" \
&& mv imagemagick-policy.xml /etc/ImageMagick-6/policy.xml && mv paperless-policy.xml /etc/ImageMagick-6/policy.xml
# Packages needed only for building a few quick Python # Packages needed only for building a few quick Python
# dependencies # dependencies

View File

@@ -1,117 +0,0 @@
# Paperless NGX Development Environment
## Overview
Welcome to the Paperless NGX development environment! This setup uses VSCode DevContainers to provide a consistent and seamless development experience.
### What are DevContainers?
DevContainers are a feature in VSCode that allows you to develop within a Docker container. This ensures that your development environment is consistent across different machines and setups. By defining a containerized environment, you can eliminate the "works on my machine" problem.
### Advantages of DevContainers
- **Consistency**: Same environment for all developers.
- **Isolation**: Separate development environment from your local machine.
- **Reproducibility**: Easily recreate the environment on any machine.
- **Pre-configured Tools**: Include all necessary tools and dependencies in the container.
## DevContainer Setup
The DevContainer configuration provides up all the necessary services for Paperless NGX, including:
- Redis
- Gotenberg
- Tika
Data is stored using Docker volumes to ensure persistence across container restarts.
## Configuration Files
The setup includes debugging configurations (`launch.json`) and tasks (`tasks.json`) to help you manage and debug various parts of the project:
- **Backend Debugging:**
- `manage.py runserver`
- `manage.py document-consumer`
- `celery`
- **Maintenance Tasks:**
- Create superuser
- Run migrations
- Recreate virtual environment (`.venv` with pipenv)
- Compile frontend assets
## Getting Started
### Step 1: Running the DevContainer
To start the DevContainer:
1. Open VSCode.
2. Open the project folder.
3. Open the command palette:
- **Windows/Linux**: `Ctrl+Shift+P`
- **Mac**: `Cmd+Shift+P`
4. Type and select `Dev Containers: Rebuild and Reopen in Container`.
VSCode will build and start the DevContainer environment.
### Step 2: Initial Setup
Once the DevContainer is up and running, perform the following steps:
1. **Compile Frontend Assets**:
- Open the command palette:
- **Windows/Linux**: `Ctrl+Shift+P`
- **Mac**: `Cmd+Shift+P`
- Select `Tasks: Run Task`.
- Choose `Frontend Compile`.
2. **Run Database Migrations**:
- Open the command palette:
- **Windows/Linux**: `Ctrl+Shift+P`
- **Mac**: `Cmd+Shift+P`
- Select `Tasks: Run Task`.
- Choose `Migrate Database`.
3. **Create Superuser**:
- Open the command palette:
- **Windows/Linux**: `Ctrl+Shift+P`
- **Mac**: `Cmd+Shift+P`
- Select `Tasks: Run Task`.
- Choose `Create Superuser`.
### Debugging and Running Services
You can start and debug backend services either as debugging sessions via `launch.json` or as tasks.
#### Using `launch.json`:
1. Press `F5` or go to the **Run and Debug** view in VSCode.
2. Select the desired configuration:
- `Runserver`
- `Document Consumer`
- `Celery`
#### Using Tasks:
1. Open the command palette:
- **Windows/Linux**: `Ctrl+Shift+P`
- **Mac**: `Cmd+Shift+P`
2. Select `Tasks: Run Task`.
3. Choose the desired task:
- `Runserver`
- `Document Consumer`
- `Celery`
### Additional Maintenance Tasks
Additional tasks are available for common maintenance operations:
- **Recreate .venv**: For setting up the virtual environment using pipenv.
- **Migrate Database**: To apply database migrations.
- **Create Superuser**: To create an admin user for the application.
## Let's Get Started!
Follow the steps above to get your development environment up and running. Happy coding!

View File

@@ -3,14 +3,26 @@
"dockerComposeFile": "docker-compose.devcontainer.sqlite-tika.yml", "dockerComposeFile": "docker-compose.devcontainer.sqlite-tika.yml",
"service": "paperless-development", "service": "paperless-development",
"workspaceFolder": "/usr/src/paperless/paperless-ngx", "workspaceFolder": "/usr/src/paperless/paperless-ngx",
"postCreateCommand": "/bin/bash -c pre-commit install && pipenv install --dev", "postCreateCommand": "pipenv install --dev && pipenv run pre-commit install",
"customizations": { "customizations": {
"vscode": { "vscode": {
"extensions": [ "extensions": [
"mhutchie.git-graph", "mhutchie.git-graph",
"ms-python.python" "ms-python.python",
] "ms-vscode.js-debug-nightly",
"eamodio.gitlens",
"yzhang.markdown-all-in-one"
],
"settings": {
"python.defaultInterpreterPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
"python.pythonPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
"python.terminal.activateEnvInCurrentTerminal": true,
"editor.formatOnPaste": false,
"editor.formatOnSave": true,
"editor.formatOnType": true,
"files.trimTrailingWhitespace": true
}
} }
}, },
"remoteUser": "paperless" "remoteUser": "paperless"
} }

View File

@@ -27,7 +27,7 @@ services:
image: docker.io/library/redis:7 image: docker.io/library/redis:7
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- redisdata:/data - ./redisdata:/data
# No ports need to be exposed; the VSCode DevContainer plugin manages them. # No ports need to be exposed; the VSCode DevContainer plugin manages them.
paperless-development: paperless-development:
@@ -43,14 +43,16 @@ services:
volumes: volumes:
- ..:/usr/src/paperless/paperless-ngx:delegated - ..:/usr/src/paperless/paperless-ngx:delegated
- ../.devcontainer/vscode:/usr/src/paperless/paperless-ngx/.vscode:delegated # VSCode config files - ../.devcontainer/vscode:/usr/src/paperless/paperless-ngx/.vscode:delegated # VSCode config files
- pipenv:/usr/src/paperless/paperless-ngx/.venv # Pipenv environment persisted in volume - pipenv:/usr/src/paperless/paperless-ngx/.venv
- /usr/src/paperless/paperless-ngx/src/documents/static/frontend # Static frontend files exist only in container - /usr/src/paperless/paperless-ngx/src/documents/static/frontend # Static frontend files exist only in container
- /usr/src/paperless/paperless-ngx/src/.pytest_cache - /usr/src/paperless/paperless-ngx/src/.pytest_cache
- /usr/src/paperless/paperless-ngx/.ruff_cache - /usr/src/paperless/paperless-ngx/.ruff_cache
- /usr/src/paperless/paperless-ngx/htmlcov - /usr/src/paperless/paperless-ngx/htmlcov
- /usr/src/paperless/paperless-ngx/.coverage - /usr/src/paperless/paperless-ngx/.coverage
- data:/usr/src/paperless/paperless-ngx/data - ./data:/usr/src/paperless/paperless-ngx/data
- media:/usr/src/paperless/paperless-ngx/media - ./media:/usr/src/paperless/paperless-ngx/media
- ./consume:/usr/src/paperless/paperless-ngx/consume
- ~/.gitconfig:/usr/src/paperless/.gitconfig:ro
environment: environment:
PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_TIKA_ENABLED: 1 PAPERLESS_TIKA_ENABLED: 1
@@ -63,7 +65,7 @@ services:
command: /bin/sh -c "chown -R paperless:paperless /usr/src/paperless/paperless-ngx/src/documents/static/frontend && chown -R paperless:paperless /usr/src/paperless/paperless-ngx/.ruff_cache && while sleep 1000; do :; done" command: /bin/sh -c "chown -R paperless:paperless /usr/src/paperless/paperless-ngx/src/documents/static/frontend && chown -R paperless:paperless /usr/src/paperless/paperless-ngx/.ruff_cache && while sleep 1000; do :; done"
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:7.10 image: docker.io/gotenberg/gotenberg:8.17
restart: unless-stopped restart: unless-stopped
# The Gotenberg Chromium route is used to convert .eml files. We do not # The Gotenberg Chromium route is used to convert .eml files. We do not
@@ -78,7 +80,4 @@ services:
restart: unless-stopped restart: unless-stopped
volumes: volumes:
data:
media:
redisdata:
pipenv: pipenv:

View File

@@ -2,42 +2,57 @@
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "manage.py runserver", "name": "Chrome: Debug Angular Frontend",
"description": "Debug the Angular Dev Frontend in Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/src-ui",
"preLaunchTask": "Start: Frontend Angular"
},
{
"name": "Debug: Backend Server (manage.py runserver)",
"description": "Debug the Django Backend Server",
"type": "python", "type": "python",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/src/manage.py", "program": "${workspaceFolder}/src/manage.py",
"console": "integratedTerminal", "args": [
"justMyCode": true, "runserver"
"args": ["runserver"], ],
"django": true "django": true,
},
{
"name": "manage.py document_consumer",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/src/manage.py",
"console": "integratedTerminal",
"justMyCode": true,
"args": ["document_consumer"],
"django": true
},
{
"name": "celery",
"type": "python",
"cwd": "${workspaceFolder}/src",
"request": "launch",
"module": "celery",
"console": "integratedTerminal", "console": "integratedTerminal",
"env": { "env": {
"PYTHONPATH": "${workspaceFolder}/src" "PYTHONPATH": "${workspaceFolder}/src"
}, },
"python": "${workspaceFolder}/.venv/bin/python"
},
{
"name": "Debug: Consumer Service (manage.py document_consumer)",
"description": "Debug the Consumer Service which processes files from a directory",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/src/manage.py",
"args": [ "args": [
"-A", "document_consumer"
"paperless", ],
"worker", "django": true,
"-l", "console": "integratedTerminal",
"DEBUG" "env": {
] "PYTHONPATH": "${workspaceFolder}/src"
},
"python": "${workspaceFolder}/.venv/bin/python"
}
],
"compounds": [
{
"name": "Debug: FullStack",
"description": "Debug run the Angular dev frontend, Django backend, and consumer service",
"configurations": [
"Chrome: Debug Angular Frontend",
"Debug: Backend Server (manage.py runserver)",
"Debug: Consumer Service (manage.py document_consumer)"
],
"preLaunchTask": "Start: Celery Worker"
} }
] ]
} }

View File

@@ -1,27 +1,84 @@
{ {
"version": "2.0.0", "version": "2.0.0",
"tasks": [ "tasks": [
{ {
"label": "manage.py document_consumer", "label": "Start: Celery Worker",
"type": "shell", "description": "Start the Celery Worker which processes background and consume tasks",
"command": "pipenv run python manage.py document_consumer", "type": "shell",
"group": "build", "command": "pipenv run celery --app paperless worker -l DEBUG",
"presentation": { "isBackground": true,
"echo": true, "options": {
"reveal": "always", "cwd": "${workspaceFolder}/src"
"focus": false, },
"panel": "shared", "problemMatcher": [
"showReuseMessage": false, {
"clear": true, "owner": "custom",
"revealProblems": "onProblem" "pattern": [
}, {
"options": { "regexp": ".",
"cwd": "${workspaceFolder}/src" "file": 1,
} "location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": "celery.*",
"endsPattern": "ready"
}
}
]
}, },
{ {
"label": "manage.py runserver", "label": "Start: Frontend Angular",
"description": "Start the Frontend Angular Dev Server",
"type": "shell",
"command": "npm start",
"isBackground": true,
"options": {
"cwd": "${workspaceFolder}/src-ui"
},
"problemMatcher": [
{
"owner": "custom",
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".*",
"endsPattern": "Compiled successfully"
}
}
]
},
{
"label": "Start: Consumer Service (manage.py document_consumer)",
"description": "Start the Consumer Service which processes files from a directory",
"type": "shell",
"command": "pipenv run python manage.py document_consumer",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src"
}
},
{
"label": "Start: Backend Server (manage.py runserver)",
"description": "Start the Backend Server which serves the Django API and the compiled Angular frontend",
"type": "shell", "type": "shell",
"command": "pipenv run python manage.py runserver", "command": "pipenv run python manage.py runserver",
"group": "build", "group": "build",
@@ -37,100 +94,130 @@
"options": { "options": {
"cwd": "${workspaceFolder}/src" "cwd": "${workspaceFolder}/src"
} }
},
{
"label": "Maintenance: manage.py migrate",
"description": "Apply database migrations",
"type": "shell",
"command": "pipenv run python manage.py migrate",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
}, },
{ "options": {
"label": "Maintenance: manage.py migrate", "cwd": "${workspaceFolder}/src"
"type": "shell", }
"command": "pipenv run python manage.py migrate",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
}, },
"options": { {
"cwd": "${workspaceFolder}/src" "label": "Maintenance: Build Documentation",
"description": "Build the documentation with MkDocs",
"type": "shell",
"command": "pipenv run mkdocs build --config-file mkdocs.yml && pipenv run mkdocs serve",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"label": "Maintenance: manage.py createsuperuser",
"description": "Create a superuser",
"type": "shell",
"command": "pipenv run python manage.py createsuperuser",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src"
}
},
{
"label": "Maintenance: recreate .venv",
"description": "Recreate the python virtual environment and install python dependencies",
"type": "shell",
"command": "rm -R -v .venv/* || pipenv install --dev",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"label": "Maintenance: Install Frontend Dependencies",
"description": "Install frontend (npm) dependencies",
"type": "npm",
"script": "install",
"path": "src-ui",
"group": "clean",
"problemMatcher": [],
"detail": "install dependencies from package"
},
{
"description": "Clean install frontend dependencies and build the frontend for production",
"label": "Maintenance: Compile frontend for production",
"type": "shell",
"command": "npm ci && ./node_modules/.bin/ng build --configuration production",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src-ui"
}
},
{
"label": "Project Setup: Run all Init Tasks",
"description": "Runs all init tasks to setup the project including migrate the database, create a superuser and compile the frontend for production",
"dependsOrder": "sequence",
"dependsOn": [
"Maintenance: manage.py migrate",
"Maintenance: manage.py createsuperuser",
"Maintenance: Compile frontend for production"
]
},
{
"label": "Project Start: Run all Services",
"description": "Runs all services required to start the project including the Celery Worker, the Consumer Service and the Backend Server",
"dependsOn": [
"Start: Celery Worker",
"Start: Consumer Service (manage.py document_consumer)",
"Start: Backend Server (manage.py runserver)"
]
} }
},
{
"label": "Maintenance: manage.py createsuperuser",
"type": "shell",
"command": "pipenv run python manage.py createsuperuser",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src"
}
},
{
"label": "compile frontend",
"type": "shell",
"command": "npm ci && ./node_modules/.bin/ng build --configuration production",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src-ui"
}
},
{
"label": "Maintenance: recreate .venv",
"type": "shell",
"command": "rm -R -v .venv/* || pipenv install --dev",
"group": "none",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}"
}
},
{
"label": "Celery Worker",
"type": "shell",
"command": "pipenv run celery --app paperless worker -l DEBUG",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared",
"showReuseMessage": false,
"clear": true,
"revealProblems": "onProblem"
},
"options": {
"cwd": "${workspaceFolder}/src"
}
}
] ]
} }

View File

@@ -26,3 +26,5 @@
./dist ./dist
./scripts ./scripts
./resources ./resources
# Other stuff
**/*.drawio.png

View File

@@ -98,7 +98,7 @@ body:
label: Browser label: Browser
description: Which browser you are using, if relevant. description: Which browser you are using, if relevant.
placeholder: e.g. Chrome, Safari placeholder: e.g. Chrome, Safari
- type: input - type: textarea
id: config-changes id: config-changes
attributes: attributes:
label: Configuration changes label: Configuration changes

View File

@@ -2,10 +2,10 @@ blank_issues_enabled: false
contact_links: contact_links:
- name: 🤔 Questions and Help - name: 🤔 Questions and Help
url: https://github.com/paperless-ngx/paperless-ngx/discussions url: https://github.com/paperless-ngx/paperless-ngx/discussions
about: This issue tracker is not for support questions. Please refer to our Discussions. about: General questions or support for using Paperless-ngx.
- name: 💬 Chat - name: 💬 Chat
url: https://matrix.to/#/#paperlessngx:matrix.org url: https://matrix.to/#/#paperlessngx:matrix.org
about: Want to discuss Paperless-ngx with others? Check out our chat. about: Want to discuss Paperless-ngx with others? Check out our chat.
- name: 🚀 Feature Request - name: 🚀 Feature Request
url: https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=feature-requests url: https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=feature-requests
about: Remember to search for existing feature requests and "up-vote" any you like about: Remember to search for existing feature requests and "up-vote" those that you like.

View File

@@ -16,7 +16,7 @@ on:
env: env:
# This is the version of pipenv all the steps will use # This is the version of pipenv all the steps will use
# If changing this, change Dockerfile # If changing this, change Dockerfile
DEFAULT_PIP_ENV_VERSION: "2024.0.3" DEFAULT_PIP_ENV_VERSION: "2024.4.1"
# This is the default version of Python to use in most steps which aren't specific # This is the default version of Python to use in most steps which aren't specific
DEFAULT_PYTHON_VERSION: "3.11" DEFAULT_PYTHON_VERSION: "3.11"
@@ -30,7 +30,7 @@ jobs:
github.repository github.repository
name: Linting Checks name: Linting Checks
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
steps: steps:
- -
name: Checkout repository name: Checkout repository
@@ -46,7 +46,7 @@ jobs:
documentation: documentation:
name: "Build & Deploy Documentation" name: "Build & Deploy Documentation"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- pre-commit - pre-commit
steps: steps:
@@ -95,7 +95,7 @@ jobs:
tests-backend: tests-backend:
name: "Backend Tests (Python ${{ matrix.python-version }})" name: "Backend Tests (Python ${{ matrix.python-version }})"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- pre-commit - pre-commit
strategy: strategy:
@@ -131,7 +131,7 @@ jobs:
- -
name: Configure ImageMagick name: Configure ImageMagick
run: | run: |
sudo cp docker/imagemagick-policy.xml /etc/ImageMagick-6/policy.xml sudo cp docker/rootfs/etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml
- -
name: Install Python dependencies name: Install Python dependencies
run: | run: |
@@ -170,7 +170,7 @@ jobs:
install-frontend-depedendencies: install-frontend-depedendencies:
name: "Install Frontend Dependencies" name: "Install Frontend Dependencies"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- pre-commit - pre-commit
steps: steps:
@@ -201,7 +201,7 @@ jobs:
tests-frontend: tests-frontend:
name: "Frontend Tests (Node ${{ matrix.node-version }} - ${{ matrix.shard-index }}/${{ matrix.shard-count }})" name: "Frontend Tests (Node ${{ matrix.node-version }} - ${{ matrix.shard-index }}/${{ matrix.shard-count }})"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- install-frontend-depedendencies - install-frontend-depedendencies
strategy: strategy:
@@ -261,7 +261,7 @@ jobs:
tests-coverage-upload: tests-coverage-upload:
name: "Upload to Codecov" name: "Upload to Codecov"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- tests-backend - tests-backend
- tests-frontend - tests-frontend
@@ -283,7 +283,7 @@ jobs:
merge-multiple: true merge-multiple: true
- -
name: Upload frontend coverage to Codecov name: Upload frontend coverage to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
# not required for public repos, but intermittently fails otherwise # not required for public repos, but intermittently fails otherwise
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
@@ -299,7 +299,7 @@ jobs:
path: src/ path: src/
- -
name: Upload coverage to Codecov name: Upload coverage to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
# not required for public repos, but intermittently fails otherwise # not required for public repos, but intermittently fails otherwise
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
@@ -333,7 +333,7 @@ jobs:
build-docker-image: build-docker-image:
name: Build Docker image for ${{ github.ref_name }} name: Build Docker image for ${{ github.ref_name }}
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || startsWith(github.ref, 'refs/heads/fix-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || contains(github.ref, 'beta.rc') || startsWith(github.ref, 'refs/tags/v')) if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || startsWith(github.ref, 'refs/heads/fix-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || contains(github.ref, 'beta.rc') || startsWith(github.ref, 'refs/tags/v'))
concurrency: concurrency:
group: ${{ github.workflow }}-build-docker-image-${{ github.ref_name }} group: ${{ github.workflow }}-build-docker-image-${{ github.ref_name }}
@@ -406,7 +406,7 @@ jobs:
- -
name: Login to Docker Hub name: Login to Docker Hub
uses: docker/login-action@v3 uses: docker/login-action@v3
# Don't attempt to login is not pushing to Docker Hub # Don't attempt to login if not pushing to Docker Hub
if: steps.push-other-places.outputs.enable == 'true' if: steps.push-other-places.outputs.enable == 'true'
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -414,7 +414,7 @@ jobs:
- -
name: Login to Quay.io name: Login to Quay.io
uses: docker/login-action@v3 uses: docker/login-action@v3
# Don't attempt to login is not pushing to Quay.io # Don't attempt to login if not pushing to Quay.io
if: steps.push-other-places.outputs.enable == 'true' if: steps.push-other-places.outputs.enable == 'true'
with: with:
registry: quay.io registry: quay.io
@@ -461,7 +461,7 @@ jobs:
needs: needs:
- build-docker-image - build-docker-image
- documentation - documentation
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
steps: steps:
- -
name: Checkout name: Checkout
@@ -482,12 +482,6 @@ jobs:
name: Install Python dependencies name: Install Python dependencies
run: | run: |
pipenv --python ${{ steps.setup-python.outputs.python-version }} sync --dev pipenv --python ${{ steps.setup-python.outputs.python-version }} sync --dev
-
name: Patch whitenoise
run: |
curl --fail --silent --show-error --location --output 484.patch https://github.com/evansd/whitenoise/pull/484.patch
patch -d $(pipenv --venv)/lib/python3.11/site-packages --verbose -p2 < 484.patch
rm 484.patch
- -
name: Install system dependencies name: Install system dependencies
run: | run: |
@@ -575,7 +569,7 @@ jobs:
publish-release: publish-release:
name: "Publish Release" name: "Publish Release"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
outputs: outputs:
prerelease: ${{ steps.get_version.outputs.prerelease }} prerelease: ${{ steps.get_version.outputs.prerelease }}
changelog: ${{ steps.create-release.outputs.body }} changelog: ${{ steps.create-release.outputs.body }}
@@ -625,7 +619,7 @@ jobs:
append-changelog: append-changelog:
name: "Append Changelog" name: "Append Changelog"
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- publish-release - publish-release
if: needs.publish-release.outputs.prerelease == 'false' if: needs.publish-release.outputs.prerelease == 'false'
@@ -655,7 +649,9 @@ jobs:
git checkout ${{ needs.publish-release.outputs.version }}-changelog git checkout ${{ needs.publish-release.outputs.version }}-changelog
echo -e "# Changelog\n\n${{ needs.publish-release.outputs.changelog }}\n" > changelog-new.md echo -e "# Changelog\n\n${{ needs.publish-release.outputs.changelog }}\n" > changelog-new.md
echo "Manually linking usernames" echo "Manually linking usernames"
sed -i -r 's|@(.+?) \(\[#|[@\1](https://github.com/\1) ([#|ig' changelog-new.md sed -i -r 's|@([a-zA-Z0-9_]+) \(\[#|[@\1](https://github.com/\1) ([#|g' changelog-new.md
echo "Removing unneeded comment tags"
sed -i -r 's|@<!---->|@|g' changelog-new.md
CURRENT_CHANGELOG=`tail --lines +2 changelog.md` CURRENT_CHANGELOG=`tail --lines +2 changelog.md`
echo -e "$CURRENT_CHANGELOG" >> changelog-new.md echo -e "$CURRENT_CHANGELOG" >> changelog-new.md
mv changelog-new.md changelog.md mv changelog-new.md changelog.md

View File

@@ -21,7 +21,7 @@ jobs:
cleanup-images: cleanup-images:
name: Cleanup Image Tags for ${{ matrix.primary-name }} name: Cleanup Image Tags for ${{ matrix.primary-name }}
if: github.repository_owner == 'paperless-ngx' if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -33,7 +33,7 @@ jobs:
- -
name: Clean temporary images name: Clean temporary images
if: "${{ env.TOKEN != '' }}" if: "${{ env.TOKEN != '' }}"
uses: stumpylog/image-cleaner-action/ephemeral@v0.8.0 uses: stumpylog/image-cleaner-action/ephemeral@v0.9.0
with: with:
token: "${{ env.TOKEN }}" token: "${{ env.TOKEN }}"
owner: "${{ github.repository_owner }}" owner: "${{ github.repository_owner }}"
@@ -47,7 +47,7 @@ jobs:
cleanup-untagged-images: cleanup-untagged-images:
name: Cleanup Untagged Images Tags for ${{ matrix.primary-name }} name: Cleanup Untagged Images Tags for ${{ matrix.primary-name }}
if: github.repository_owner == 'paperless-ngx' if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
needs: needs:
- cleanup-images - cleanup-images
strategy: strategy:
@@ -61,7 +61,7 @@ jobs:
- -
name: Clean untagged images name: Clean untagged images
if: "${{ env.TOKEN != '' }}" if: "${{ env.TOKEN != '' }}"
uses: stumpylog/image-cleaner-action/untagged@v0.8.0 uses: stumpylog/image-cleaner-action/untagged@v0.9.0
with: with:
token: "${{ env.TOKEN }}" token: "${{ env.TOKEN }}"
owner: "${{ github.repository_owner }}" owner: "${{ github.repository_owner }}"

View File

@@ -23,7 +23,7 @@ on:
jobs: jobs:
analyze: analyze:
name: Analyze name: Analyze
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
permissions: permissions:
actions: read actions: read
contents: read contents: read

View File

@@ -15,7 +15,8 @@ on:
jobs: jobs:
synchronize-with-crowdin: synchronize-with-crowdin:
name: Crowdin Sync name: Crowdin Sync
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- name: Checkout - name: Checkout

View File

@@ -15,7 +15,7 @@ permissions:
jobs: jobs:
pr_opened_or_reopened: pr_opened_or_reopened:
name: pr_opened_or_reopened name: pr_opened_or_reopened
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
permissions: permissions:
# write permission is required for autolabeler # write permission is required for autolabeler
pull-requests: write pull-requests: write

View File

@@ -16,7 +16,8 @@ concurrency:
jobs: jobs:
stale: stale:
name: 'Stale' name: 'Stale'
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- uses: actions/stale@v9 - uses: actions/stale@v9
with: with:
@@ -31,7 +32,8 @@ jobs:
for your contributions. See our [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/dev/CONTRIBUTING.md#automatic-repository-maintenance) for more details. for your contributions. See our [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/dev/CONTRIBUTING.md#automatic-repository-maintenance) for more details.
lock-threads: lock-threads:
name: 'Lock Old Threads' name: 'Lock Old Threads'
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- uses: dessant/lock-threads@v5 - uses: dessant/lock-threads@v5
with: with:
@@ -56,7 +58,8 @@ jobs:
See our [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/dev/CONTRIBUTING.md#automatic-repository-maintenance) for more details. See our [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/dev/CONTRIBUTING.md#automatic-repository-maintenance) for more details.
close-answered-discussions: close-answered-discussions:
name: 'Close Answered Discussions' name: 'Close Answered Discussions'
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- uses: actions/github-script@v7 - uses: actions/github-script@v7
with: with:
@@ -112,7 +115,8 @@ jobs:
} }
close-outdated-discussions: close-outdated-discussions:
name: 'Close Outdated Discussions' name: 'Close Outdated Discussions'
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- uses: actions/github-script@v7 - uses: actions/github-script@v7
with: with:
@@ -203,7 +207,8 @@ jobs:
} }
close-unsupported-feature-requests: close-unsupported-feature-requests:
name: 'Close Unsupported Feature Requests' name: 'Close Unsupported Feature Requests'
runs-on: ubuntu-latest if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-24.04
steps: steps:
- uses: actions/github-script@v7 - uses: actions/github-script@v7
with: with:
@@ -212,15 +217,20 @@ jobs:
return new Promise(resolve => setTimeout(resolve, ms)); return new Promise(resolve => setTimeout(resolve, ms));
} }
const CUTOFF_MAX_COUNT = 80;
const CUTOFF_1_DAYS = 180; const CUTOFF_1_DAYS = 180;
const CUTOFF_1_COUNT = 5; const CUTOFF_1_COUNT = 5;
const CUTOFF_2_DAYS = 365; const CUTOFF_2_DAYS = 365;
const CUTOFF_2_COUNT = 10; const CUTOFF_2_COUNT = 20;
const CUTOFF_3_DAYS = 730;
const CUTOFF_3_COUNT = 40;
const cutoff1Date = new Date(); const cutoff1Date = new Date();
cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS); cutoff1Date.setDate(cutoff1Date.getDate() - CUTOFF_1_DAYS);
const cutoff2Date = new Date(); const cutoff2Date = new Date();
cutoff2Date.setDate(cutoff2Date.getDate() - CUTOFF_2_DAYS); cutoff2Date.setDate(cutoff2Date.getDate() - CUTOFF_2_DAYS);
const cutoff3Date = new Date();
cutoff3Date.setDate(cutoff3Date.getDate() - CUTOFF_3_DAYS);
const query = `query( const query = `query(
$owner:String!, $owner:String!,
@@ -250,9 +260,12 @@ jobs:
const result = await github.graphql(query, variables); const result = await github.graphql(query, variables);
for (const discussion of result.repository.discussions.nodes) { for (const discussion of result.repository.discussions.nodes) {
const discussionDate = new Date(discussion.updatedAt); const discussionUpdatedDate = new Date(discussion.updatedAt);
if ((discussionDate < cutoff1Date && discussion.upvoteCount < CUTOFF_1_COUNT) || const discussionCreatedDate = new Date(discussion.createdAt);
(discussionDate < cutoff2Date && discussion.upvoteCount < CUTOFF_2_COUNT)) { if ((discussionUpdatedDate < cutoff1Date && discussion.upvoteCount < CUTOFF_MAX_COUNT) ||
(discussionCreatedDate < cutoff1Date && discussion.upvoteCount < CUTOFF_1_COUNT) ||
(discussionCreatedDate < cutoff2Date && discussion.upvoteCount < CUTOFF_2_COUNT) ||
(discussionCreatedDate < cutoff3Date && discussion.upvoteCount < CUTOFF_3_COUNT)) {
console.log(`Closing discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt} with votes ${discussion.upvoteCount}`); console.log(`Closing discussion #${discussion.number} (${discussion.id}), last updated at ${discussion.updatedAt} with votes ${discussion.upvoteCount}`);
const addCommentMutation = `mutation($discussion:ID!, $body:String!) { const addCommentMutation = `mutation($discussion:ID!, $body:String!) {
addDiscussionComment(input:{discussionId:$discussion, body:$body}) { addDiscussionComment(input:{discussionId:$discussion, body:$body}) {

6
.gitignore vendored
View File

@@ -100,3 +100,9 @@ scripts/nuke
# celery schedule file # celery schedule file
celerybeat-schedule* celerybeat-schedule*
# ignore .devcontainer sub folders
/.devcontainer/consume/
/.devcontainer/data/
/.devcontainer/media/
/.devcontainer/redisdata/

View File

@@ -5,7 +5,7 @@
repos: repos:
# General hooks # General hooks
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0 rev: v5.0.0
hooks: hooks:
- id: check-docstring-first - id: check-docstring-first
- id: check-json - id: check-json
@@ -29,7 +29,7 @@ repos:
- id: check-case-conflict - id: check-case-conflict
- id: detect-private-key - id: detect-private-key
- repo: https://github.com/codespell-project/codespell - repo: https://github.com/codespell-project/codespell
rev: v2.3.0 rev: v2.4.0
hooks: hooks:
- id: codespell - id: codespell
exclude: "(^src-ui/src/locale/)|(^src-ui/e2e/)|(^src/paperless_mail/tests/samples/)" exclude: "(^src-ui/src/locale/)|(^src-ui/e2e/)|(^src/paperless_mail/tests/samples/)"
@@ -46,9 +46,12 @@ repos:
- ts - ts
- markdown - markdown
exclude: "(^Pipfile\\.lock$)" exclude: "(^Pipfile\\.lock$)"
additional_dependencies:
- prettier@3.3.3
- 'prettier-plugin-organize-imports@4.1.0'
# Python hooks # Python hooks
- repo: https://github.com/astral-sh/ruff-pre-commit - repo: https://github.com/astral-sh/ruff-pre-commit
rev: 'v0.6.8' rev: v0.9.6
hooks: hooks:
- id: ruff - id: ruff
- id: ruff-format - id: ruff-format

View File

@@ -1,16 +0,0 @@
{
# https://prettier.io/docs/en/options.html#semicolons
"semi": false,
# https://prettier.io/docs/en/options.html#quotes
"singleQuote": true,
# https://prettier.io/docs/en/options.html#trailing-commas
"trailingComma": "es5",
"overrides": [
{
"files": ["index.md", "administration.md"],
"options": {
"tabWidth": 4
}
}
]
}

19
.prettierrc.js Normal file
View File

@@ -0,0 +1,19 @@
const config = {
// https://prettier.io/docs/en/options.html#semicolons
semi: false,
// https://prettier.io/docs/en/options.html#quotes
singleQuote: true,
// https://prettier.io/docs/en/options.html#trailing-commas
trailingComma: 'es5',
overrides: [
{
files: ['docs/*.md'],
options: {
tabWidth: 4,
},
},
],
plugins: [require('prettier-plugin-organize-imports')],
}
module.exports = config

View File

@@ -31,17 +31,57 @@ extend-select = [
"PLE", # https://docs.astral.sh/ruff/rules/#pylint-pl "PLE", # https://docs.astral.sh/ruff/rules/#pylint-pl
"RUF", # https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf "RUF", # https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
"FLY", # https://docs.astral.sh/ruff/rules/#flynt-fly "FLY", # https://docs.astral.sh/ruff/rules/#flynt-fly
"PTH", # https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
"FBT", # https://docs.astral.sh/ruff/rules/#flake8-boolean-trap-fbt
] ]
# TODO PTH https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
ignore = ["DJ001", "SIM105", "RUF012"] ignore = ["DJ001", "SIM105", "RUF012"]
[lint.per-file-ignores] [lint.per-file-ignores]
".github/scripts/*.py" = ["E501", "INP001", "SIM117"] ".github/scripts/*.py" = ["E501", "INP001", "SIM117"]
"docker/wait-for-redis.py" = ["INP001", "T201"] "docker/wait-for-redis.py" = ["INP001", "T201"]
"src/documents/file_handling.py" = ["PTH"] # TODO Enable & remove
"src/documents/management/commands/document_consumer.py" = ["PTH"] # TODO Enable & remove
"src/documents/management/commands/document_exporter.py" = ["PTH"] # TODO Enable & remove
"src/documents/migrations/0012_auto_20160305_0040.py" = ["PTH"] # TODO Enable & remove
"src/documents/migrations/0014_document_checksum.py" = ["PTH"] # TODO Enable & remove
"src/documents/migrations/1003_mime_types.py" = ["PTH"] # TODO Enable & remove
"src/documents/migrations/1012_fix_archive_files.py" = ["PTH"] # TODO Enable & remove
"src/documents/models.py" = ["SIM115", "PTH"] # TODO PTH Enable & remove
"src/documents/parsers.py" = ["PTH"] # TODO Enable & remove
"src/documents/signals/handlers.py" = ["PTH"] # TODO Enable & remove
"src/documents/tasks.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_api_app_config.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_classifier.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_consumer.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_file_handling.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_management.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_management_consumer.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_management_exporter.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_management_thumbnails.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_migration_archive_files.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_migration_document_pages_count.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_migration_mime_type.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_sanity_check.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_tasks.py" = ["PTH"] # TODO Enable & remove
"src/documents/tests/test_views.py" = ["PTH"] # TODO Enable & remove
"src/documents/views.py" = ["PTH"] # TODO Enable & remove
"src/paperless/checks.py" = ["PTH"] # TODO Enable & remove
"src/paperless/settings.py" = ["PTH"] # TODO Enable & remove
"src/paperless/tests/test_checks.py" = ["PTH"] # TODO Enable & remove
"src/paperless/urls.py" = ["PTH"] # TODO Enable & remove
"src/paperless/views.py" = ["PTH"] # TODO Enable & remove
"src/paperless_mail/mail.py" = ["PTH"] # TODO Enable & remove
"src/paperless_mail/preprocessor.py" = ["PTH"] # TODO Enable & remove
"src/paperless_tesseract/parsers.py" = ["PTH"] # TODO Enable & remove
"src/paperless_tesseract/tests/test_parser.py" = ["RUF001", "PTH"] # TODO PTH Enable & remove
"src/paperless_tika/tests/test_live_tika.py" = ["PTH"] # TODO Enable & remove
"src/paperless_tika/tests/test_tika_parser.py" = ["PTH"] # TODO Enable & remove
# Testing
"*/tests/*.py" = ["E501", "SIM117"] "*/tests/*.py" = ["E501", "SIM117"]
# Migrations
"*/migrations/*.py" = ["E501", "SIM", "T201"] "*/migrations/*.py" = ["E501", "SIM", "T201"]
"src/paperless_tesseract/tests/test_parser.py" = ["RUF001"] # Docker specific
"src/documents/models.py" = ["SIM115"] "docker/rootfs/usr/local/bin/wait-for-redis.py" = ["INP001", "T201"]
[lint.isort] [lint.isort]
force-single-line = true force-single-line = true

View File

@@ -147,7 +147,7 @@ community members. That said, in an effort to keep the repository organized and
- Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity. - Issues, pull requests and discussions that are closed will be locked after 30 days of inactivity.
- Discussions with a marked answer will be automatically closed. - Discussions with a marked answer will be automatically closed.
- Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity. - Discussions in the 'General' or 'Support' categories will be closed after 180 days of inactivity.
- Feature requests that do not meet the following thresholds will be closed: 5 "up-votes" after 180 days of inactivity or 10 "up-votes" after 365 days. - Feature requests that do not meet the following thresholds will be closed: 180 days of inactivity, < 5 "up-votes" after 180 days, < 20 "up-votes" after 1 year or < 80 "up-votes" at 2 years.
In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns. In all cases, threads can be re-opened by project maintainers and, of course, users can always create a new discussion for related concerns.
Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features. Finally, remember that all information remains searchable and 'closed' feature requests can still serve as inspiration for new features.

View File

@@ -18,7 +18,7 @@ ARG PNGX_TAG_VERSION=
# Add the tag to the environment file if its a tagged dev build # Add the tag to the environment file if its a tagged dev build
RUN set -eux && \ RUN set -eux && \
case "${PNGX_TAG_VERSION}" in \ case "${PNGX_TAG_VERSION}" in \
dev|fix*|feature*) \ dev|beta|fix*|feature*) \
sed -i -E "s/version: '([0-9\.]+)'/version: '\1 #${PNGX_TAG_VERSION}'/g" /src/src-ui/src/environments/environment.prod.ts \ sed -i -E "s/version: '([0-9\.]+)'/version: '\1 #${PNGX_TAG_VERSION}'/g" /src/src-ui/src/environments/environment.prod.ts \
;; \ ;; \
esac esac
@@ -39,15 +39,70 @@ COPY Pipfile* ./
RUN set -eux \ RUN set -eux \
&& echo "Installing pipenv" \ && echo "Installing pipenv" \
&& python3 -m pip install --no-cache-dir --upgrade pipenv==2024.0.3 \ && python3 -m pip install --no-cache-dir --upgrade pipenv==2024.4.1 \
&& echo "Generating requirement.txt" \ && echo "Generating requirement.txt" \
&& pipenv requirements > requirements.txt && pipenv requirements > requirements.txt
# Stage: s6-overlay-base
# Purpose: Installs s6-overlay and rootfs
# Comments:
# - Don't leave anything extra in here either
FROM docker.io/python:3.12-slim-bookworm AS s6-overlay-base
WORKDIR /usr/src/s6
# https://github.com/just-containers/s6-overlay#customizing-s6-overlay-behaviour
ENV \
S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \
S6_VERBOSITY=1 \
PATH=/command:$PATH
# Buildx provided, must be defined to use though
ARG TARGETARCH
ARG TARGETVARIANT
# Lock this version
ARG S6_OVERLAY_VERSION=3.2.0.2
ARG S6_BUILD_TIME_PKGS="curl \
xz-utils"
RUN set -eux \
&& echo "Installing build time packages" \
&& apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${S6_BUILD_TIME_PKGS} \
&& echo "Determining arch" \
&& S6_ARCH="" \
&& if [ "${TARGETARCH}${TARGETVARIANT}" = "amd64" ]; then S6_ARCH="x86_64"; \
elif [ "${TARGETARCH}${TARGETVARIANT}" = "arm64" ]; then S6_ARCH="aarch64"; fi\
&& if [ -z "${S6_ARCH}" ]; then { echo "Error: Not able to determine arch"; exit 1; }; fi \
&& echo "Installing s6-overlay for ${S6_ARCH}" \
&& curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 \
"https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \
"https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz.sha256" \
"https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \
"https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz.sha256" \
&& echo "Validating s6-archive checksums" \
&& sha256sum --check ./*.sha256 \
&& echo "Unpacking archives" \
&& tar --directory / -Jxpf s6-overlay-noarch.tar.xz \
&& tar --directory / -Jxpf s6-overlay-${S6_ARCH}.tar.xz \
&& echo "Removing downloaded archives" \
&& rm ./*.tar.xz \
&& rm ./*.sha256 \
&& echo "Cleaning up image" \
&& apt-get --yes purge ${S6_BUILD_TIME_PKGS} \
&& apt-get --yes autoremove --purge \
&& rm -rf /var/lib/apt/lists/*
# Copy our service defs and filesystem
COPY ./docker/rootfs /
# Stage: main-app # Stage: main-app
# Purpose: The final image # Purpose: The final image
# Comments: # Comments:
# - Don't leave anything extra in here # - Don't leave anything extra in here
FROM docker.io/python:3.12-slim-bookworm AS main-app FROM s6-overlay-base AS main-app
LABEL org.opencontainers.image.authors="paperless-ngx team <hello@paperless-ngx.com>" LABEL org.opencontainers.image.authors="paperless-ngx team <hello@paperless-ngx.com>"
LABEL org.opencontainers.image.documentation="https://docs.paperless-ngx.com/" LABEL org.opencontainers.image.documentation="https://docs.paperless-ngx.com/"
@@ -61,7 +116,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ARG TARGETARCH ARG TARGETARCH
# Can be workflow provided, defaults set for manual building # Can be workflow provided, defaults set for manual building
ARG JBIG2ENC_VERSION=0.29 ARG JBIG2ENC_VERSION=0.30
ARG QPDF_VERSION=11.9.0 ARG QPDF_VERSION=11.9.0
ARG GS_VERSION=10.03.1 ARG GS_VERSION=10.03.1
@@ -127,91 +182,39 @@ RUN set -eux \
&& apt-get update \ && apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${RUNTIME_PACKAGES} \ && apt-get install --yes --quiet --no-install-recommends ${RUNTIME_PACKAGES} \
&& echo "Installing pre-built updates" \ && echo "Installing pre-built updates" \
&& curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 \
https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10-common_${GS_VERSION}.dfsg-1_all.deb \
https://github.com/paperless-ngx/builder/releases/download/jbig2enc-${JBIG2ENC_VERSION}/jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb \
&& echo "Installing qpdf ${QPDF_VERSION}" \ && echo "Installing qpdf ${QPDF_VERSION}" \
&& curl --fail --silent --show-error --location \
--output libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb \
&& curl --fail --silent --show-error --location \
--output qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/qpdf-${QPDF_VERSION}/qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb \
&& dpkg --install ./libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb \ && dpkg --install ./libqpdf29_${QPDF_VERSION}-1_${TARGETARCH}.deb \
&& dpkg --install ./qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb \ && dpkg --install ./qpdf_${QPDF_VERSION}-1_${TARGETARCH}.deb \
&& echo "Installing Ghostscript ${GS_VERSION}" \ && echo "Installing Ghostscript ${GS_VERSION}" \
&& curl --fail --silent --show-error --location \
--output libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
&& curl --fail --silent --show-error --location \
--output ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
&& curl --fail --silent --show-error --location \
--output libgs10-common_${GS_VERSION}.dfsg-1_all.deb \
https://github.com/paperless-ngx/builder/releases/download/ghostscript-${GS_VERSION}/libgs10-common_${GS_VERSION}.dfsg-1_all.deb \
&& dpkg --install ./libgs10-common_${GS_VERSION}.dfsg-1_all.deb \ && dpkg --install ./libgs10-common_${GS_VERSION}.dfsg-1_all.deb \
&& dpkg --install ./libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \ && dpkg --install ./libgs10_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
&& dpkg --install ./ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \ && dpkg --install ./ghostscript_${GS_VERSION}.dfsg-1_${TARGETARCH}.deb \
&& echo "Installing jbig2enc" \ && echo "Installing jbig2enc" \
&& curl --fail --silent --show-error --location \
--output jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb \
https://github.com/paperless-ngx/builder/releases/download/jbig2enc-${JBIG2ENC_VERSION}/jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb \
&& dpkg --install ./jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb \ && dpkg --install ./jbig2enc_${JBIG2ENC_VERSION}-1_${TARGETARCH}.deb \
&& echo "Configuring imagemagick" \
&& cp /etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml \
&& echo "Cleaning up image layer" \ && echo "Cleaning up image layer" \
&& rm --force --verbose *.deb \ && rm --force --verbose *.deb \
&& rm --recursive --force --verbose /var/lib/apt/lists/* \ && rm --recursive --force --verbose /var/lib/apt/lists/*
&& echo "Installing supervisor" \
&& python3 -m pip install --default-timeout=1000 --upgrade --no-cache-dir supervisor==4.2.5
# Copy gunicorn config # Copy gunicorn config
# Changes very infrequently # Changes very infrequently
WORKDIR /usr/src/paperless/ WORKDIR /usr/src/paperless/
COPY gunicorn.conf.py . COPY --chown=1000:1000 gunicorn.conf.py /usr/src/paperless/gunicorn.conf.py
# setup docker-specific things
# These change sometimes, but rarely
WORKDIR /usr/src/paperless/src/docker/
COPY [ \
"docker/imagemagick-policy.xml", \
"docker/supervisord.conf", \
"docker/docker-entrypoint.sh", \
"docker/docker-prepare.sh", \
"docker/paperless_cmd.sh", \
"docker/wait-for-redis.py", \
"docker/env-from-file.sh", \
"docker/management_script.sh", \
"docker/flower-conditional.sh", \
"docker/install_management_commands.sh", \
"/usr/src/paperless/src/docker/" \
]
RUN set -eux \
&& echo "Configuring ImageMagick" \
&& mv imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \
&& echo "Configuring supervisord" \
&& mkdir /var/log/supervisord /var/run/supervisord \
&& mv supervisord.conf /etc/supervisord.conf \
&& echo "Setting up Docker scripts" \
&& mv docker-entrypoint.sh /sbin/docker-entrypoint.sh \
&& chmod 755 /sbin/docker-entrypoint.sh \
&& mv docker-prepare.sh /sbin/docker-prepare.sh \
&& chmod 755 /sbin/docker-prepare.sh \
&& mv wait-for-redis.py /sbin/wait-for-redis.py \
&& chmod 755 /sbin/wait-for-redis.py \
&& mv env-from-file.sh /sbin/env-from-file.sh \
&& chmod 755 /sbin/env-from-file.sh \
&& mv paperless_cmd.sh /usr/local/bin/paperless_cmd.sh \
&& chmod 755 /usr/local/bin/paperless_cmd.sh \
&& mv flower-conditional.sh /usr/local/bin/flower-conditional.sh \
&& chmod 755 /usr/local/bin/flower-conditional.sh \
&& echo "Installing management commands" \
&& chmod +x install_management_commands.sh \
&& ./install_management_commands.sh
WORKDIR /usr/src/paperless/src/ WORKDIR /usr/src/paperless/src/
# Python dependencies # Python dependencies
# Change pretty frequently # Change pretty frequently
COPY --from=pipenv-base /usr/src/pipenv/requirements.txt ./ COPY --chown=1000:1000 --from=pipenv-base /usr/src/pipenv/requirements.txt ./
# Packages needed only for building a few quick Python # Packages needed only for building a few quick Python
# dependencies # dependencies
@@ -224,25 +227,23 @@ ARG BUILD_PACKAGES="\
default-libmysqlclient-dev \ default-libmysqlclient-dev \
pkg-config" pkg-config"
ARG ZXING_VERSION=2.3.0
ARG PSYCOPG_VERSION=3.2.4
# hadolint ignore=DL3042 # hadolint ignore=DL3042
RUN --mount=type=cache,target=/root/.cache/pip/,id=pip-cache \ RUN --mount=type=cache,target=/root/.cache/pip/,id=pip-cache \
set -eux \ set -eux \
&& echo "Installing build system packages" \ && echo "Installing build system packages" \
&& apt-get update \ && apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \ && apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& python3 -m pip install --no-cache-dir --upgrade wheel \ && python3 -m pip install --upgrade wheel \
&& echo "Installing Python requirements" \ && echo "Installing Python requirements" \
&& curl --fail --silent --show-error --location \ && curl --fail --silent --no-progress-meter --show-error --location --remote-name-all --parallel --parallel-max 4 \
--output psycopg_c-3.2.2-cp312-cp312-linux_x86_64.whl \ https://github.com/paperless-ngx/builder/releases/download/psycopg-${PSYCOPG_VERSION}/psycopg_c-${PSYCOPG_VERSION}-cp312-cp312-linux_x86_64.whl \
https://github.com/paperless-ngx/builder/releases/download/psycopg-3.2.2/psycopg_c-3.2.2-cp312-cp312-linux_x86_64.whl \ https://github.com/paperless-ngx/builder/releases/download/psycopg-${PSYCOPG_VERSION}/psycopg_c-${PSYCOPG_VERSION}-cp312-cp312-linux_aarch64.whl \
&& curl --fail --silent --show-error --location \ https://github.com/paperless-ngx/builder/releases/download/zxing-${ZXING_VERSION}/zxing_cpp-${ZXING_VERSION}-cp312-cp312-linux_aarch64.whl \
--output psycopg_c-3.2.2-cp312-cp312-linux_aarch64.whl \ https://github.com/paperless-ngx/builder/releases/download/zxing-${ZXING_VERSION}/zxing_cpp-${ZXING_VERSION}-cp312-cp312-linux_x86_64.whl \
https://github.com/paperless-ngx/builder/releases/download/psycopg-3.2.2/psycopg_c-3.2.2-cp312-cp312-linux_aarch64.whl \
&& python3 -m pip install --default-timeout=1000 --find-links . --requirement requirements.txt \ && python3 -m pip install --default-timeout=1000 --find-links . --requirement requirements.txt \
&& echo "Patching whitenoise for compression speedup" \
&& curl --fail --silent --show-error --location --output 484.patch https://github.com/evansd/whitenoise/pull/484.patch \
&& patch -d /usr/local/lib/python3.12/site-packages --verbose -p2 < 484.patch \
&& rm 484.patch \
&& echo "Installing NLTK data" \ && echo "Installing NLTK data" \
&& python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" snowball_data \ && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" snowball_data \
&& python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" stopwords \ && python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/share/nltk_data" stopwords \
@@ -280,18 +281,16 @@ RUN set -eux \
&& echo "Adjusting all permissions" \ && echo "Adjusting all permissions" \
&& chown --from root:root --changes --recursive paperless:paperless /usr/src/paperless \ && chown --from root:root --changes --recursive paperless:paperless /usr/src/paperless \
&& echo "Collecting static files" \ && echo "Collecting static files" \
&& gosu paperless python3 manage.py collectstatic --clear --no-input --link \ && s6-setuidgid paperless python3 manage.py collectstatic --clear --no-input --link \
&& gosu paperless python3 manage.py compilemessages && s6-setuidgid paperless python3 manage.py compilemessages
VOLUME ["/usr/src/paperless/data", \ VOLUME ["/usr/src/paperless/data", \
"/usr/src/paperless/media", \ "/usr/src/paperless/media", \
"/usr/src/paperless/consume", \ "/usr/src/paperless/consume", \
"/usr/src/paperless/export"] "/usr/src/paperless/export"]
ENTRYPOINT ["/sbin/docker-entrypoint.sh"] ENTRYPOINT ["/init"]
EXPOSE 8000 EXPOSE 8000
CMD ["/usr/local/bin/paperless_cmd.sh"]
HEALTHCHECK --interval=30s --timeout=10s --retries=5 CMD [ "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000" ] HEALTHCHECK --interval=30s --timeout=10s --retries=5 CMD [ "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000" ]

25
Pipfile
View File

@@ -7,23 +7,25 @@ name = "pypi"
dateparser = "~=1.2" dateparser = "~=1.2"
# WARNING: django does not use semver. # WARNING: django does not use semver.
# Only patch versions are guaranteed to not introduce breaking changes. # Only patch versions are guaranteed to not introduce breaking changes.
django = "~=5.1.1" django = "~=5.1.5"
django-allauth = {extras = ["socialaccount"], version = "*"} django-allauth = {extras = ["mfa", "socialaccount"], version = "*"}
django-auditlog = "*" django-auditlog = "*"
django-celery-results = "*" django-celery-results = "*"
django-compression-middleware = "*" django-compression-middleware = "*"
django-cors-headers = "*" django-cors-headers = "*"
django-extensions = "*" django-extensions = "*"
django-filter = "~=24.3" django-filter = "~=25.1"
django-guardian = "*" django-guardian = "*"
django-multiselectfield = "*" django-multiselectfield = "*"
django-soft-delete = "*" django-soft-delete = "*"
djangorestframework = "==3.15.2" djangorestframework = "~=3.15.2"
djangorestframework-guardian = "*" djangorestframework-guardian = "*"
drf-spectacular = "*"
drf-spectacular-sidecar = "*"
drf-writable-nested = "*" drf-writable-nested = "*"
bleach = "*" bleach = "*"
celery = {extras = ["redis"], version = "*"} celery = {extras = ["redis"], version = "*"}
channels = "~=4.1" channels = "~=4.2"
channels-redis = "*" channels-redis = "*"
concurrent-log-handler = "*" concurrent-log-handler = "*"
filelock = "*" filelock = "*"
@@ -37,7 +39,7 @@ jinja2 = "~=3.1"
langdetect = "*" langdetect = "*"
mysqlclient = "*" mysqlclient = "*"
nltk = "*" nltk = "*"
ocrmypdf = "~=16.5" ocrmypdf = "~=16.9"
pathvalidate = "*" pathvalidate = "*"
pdf2image = "*" pdf2image = "*"
psycopg = {version = "*", extras = ["c"]} psycopg = {version = "*", extras = ["c"]}
@@ -49,23 +51,24 @@ python-magic = "*"
pyzbar = "*" pyzbar = "*"
rapidfuzz = "*" rapidfuzz = "*"
redis = {extras = ["hiredis"], version = "*"} redis = {extras = ["hiredis"], version = "*"}
scikit-learn = "~=1.5" scikit-learn = "~=1.6"
setproctitle = "*" setproctitle = "*"
tika-client = "*" tika-client = "*"
tqdm = "*" tqdm = "*"
# See https://github.com/paperless-ngx/paperless-ngx/issues/5494 # See https://github.com/paperless-ngx/paperless-ngx/issues/5494
uvicorn = {extras = ["standard"], version = "==0.25.0"} uvicorn = {extras = ["standard"], version = "==0.25.0"}
watchdog = "~=4.0" watchdog = "~=6.0"
whitenoise = "~=6.7" whitenoise = "~=6.9"
whoosh = "~=2.7" whoosh = "~=2.7"
zxing-cpp = {version = "*", platform_machine = "== 'x86_64'"} zxing-cpp = "*"
[dev-packages] [dev-packages]
# Linting # Linting
pre-commit = "*" pre-commit = "*"
ruff = "*" ruff = "*"
# Testing
factory-boy = "*" factory-boy = "*"
# Testing
pytest = "*" pytest = "*"
pytest-cov = "*" pytest-cov = "*"
pytest-django = "*" pytest-django = "*"

5175
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -55,7 +55,7 @@ A full list of [features](https://docs.paperless-ngx.com/#features) and [screens
# Getting started # Getting started
The easiest way to deploy paperless is `docker compose`. The files in the [`/docker/compose` directory](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) are configured to pull the image from GitHub Packages. The easiest way to deploy paperless is `docker compose`. The files in the [`/docker/compose` directory](https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose) are configured to pull the image from the GitHub container registry.
If you'd like to jump right in, you can configure a `docker compose` environment with our install script: If you'd like to jump right in, you can configure a `docker compose` environment with our install script:

View File

@@ -5,7 +5,7 @@
services: services:
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:8.7 image: docker.io/gotenberg/gotenberg:8.17
hostname: gotenberg hostname: gotenberg
container_name: gotenberg container_name: gotenberg
network_mode: host network_mode: host

View File

@@ -1,26 +1,17 @@
###############################################################################
# Paperless-ngx settings #
###############################################################################
# See http://docs.paperless-ngx.com/configuration/ for all available options.
# The UID and GID of the user used to run paperless in the container. Set this # The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the # to your UID and GID on the host so that you have write access to the
# consumption directory. # consumption directory.
#USERMAP_UID=1000 #USERMAP_UID=1000
#USERMAP_GID=1000 #USERMAP_GID=1000
# Additional languages to install for text recognition, separated by a # See the documentation linked above for all options. A few commonly adjusted settings
# whitespace. Note that this is # are provided below.
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
# language used for OCR.
# The container installs English, German, Italian, Spanish and French by
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
#PAPERLESS_OCR_LANGUAGES=tur ces
###############################################################################
# Paperless-specific settings #
###############################################################################
# All settings defined in the paperless.conf.example can be used here. The
# Docker setup does not use the configuration file.
# A few commonly adjusted settings are provided below.
# This is required if you will be exposing Paperless-ngx on a public domain # This is required if you will be exposing Paperless-ngx on a public domain
# (if doing so please consider security measures such as reverse proxy) # (if doing so please consider security measures such as reverse proxy)
@@ -30,13 +21,17 @@
# be a very long sequence of random characters. You don't need to remember it. # be a very long sequence of random characters. You don't need to remember it.
#PAPERLESS_SECRET_KEY=change-me #PAPERLESS_SECRET_KEY=change-me
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC. # Use this variable to set a timezone for the Paperless Docker containers. Defaults to UTC.
#PAPERLESS_TIME_ZONE=America/Los_Angeles #PAPERLESS_TIME_ZONE=America/Los_Angeles
# The default language to use for OCR. Set this to the language most of your # The default language to use for OCR. Set this to the language most of your
# documents are written in. # documents are written in.
#PAPERLESS_OCR_LANGUAGE=eng #PAPERLESS_OCR_LANGUAGE=eng
# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx # Additional languages to install for text recognition, separated by a whitespace.
#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX # Note that this is different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines
#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required # the language used for OCR.
# The container installs English, German, Italian, Spanish and French by default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
#PAPERLESS_OCR_LANGUAGES=tur ces

View File

@@ -77,7 +77,7 @@ services:
PAPERLESS_TIKA_ENDPOINT: http://tika:9998 PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:8.7 image: docker.io/gotenberg/gotenberg:8.17
restart: unless-stopped restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not # The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript. # want to allow external content like tracking pixels or even javascript.

View File

@@ -19,6 +19,8 @@
# #
# - Open portainer Stacks list and click 'Add stack' # - Open portainer Stacks list and click 'Add stack'
# - Paste the contents of this file and assign a name, e.g. 'paperless' # - Paste the contents of this file and assign a name, e.g. 'paperless'
# - Upload 'docker-compose.env' by clicking on 'Load variables from .env file'
# - Modify the environment variables as needed
# - Click 'Deploy the stack' and wait for it to be deployed # - Click 'Deploy the stack' and wait for it to be deployed
# - Open the list of containers, select paperless_webserver_1 # - Open the list of containers, select paperless_webserver_1
# - Click 'Console' and then 'Connect' to open the command line inside the container # - Click 'Console' and then 'Connect' to open the command line inside the container
@@ -61,28 +63,8 @@ services:
environment: environment:
PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db PAPERLESS_DBHOST: db
# The UID and GID of the user used to run paperless in the container. Set this env_file:
# to your UID and GID on the host so that you have write access to the - stack.env
# consumption directory.
USERMAP_UID: 1000
USERMAP_GID: 100
# Additional languages to install for text recognition, separated by a
# whitespace. Note that this is
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
# language used for OCR.
# The container installs English, German, Italian, Spanish and French by
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
#PAPERLESS_OCR_LANGUAGES: tur ces
# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
#PAPERLESS_SECRET_KEY: change-me
# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
#PAPERLESS_TIME_ZONE: America/Los_Angeles
# The default language to use for OCR. Set this to the language most of your
# documents are written in.
#PAPERLESS_OCR_LANGUAGE: eng
volumes: volumes:
data: data:

View File

@@ -71,7 +71,7 @@ services:
PAPERLESS_TIKA_ENDPOINT: http://tika:9998 PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:8.7 image: docker.io/gotenberg/gotenberg:8.17
restart: unless-stopped restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not # The gotenberg chromium route is used to convert .eml files. We do not

View File

@@ -59,7 +59,7 @@ services:
PAPERLESS_TIKA_ENDPOINT: http://tika:9998 PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg: gotenberg:
image: docker.io/gotenberg/gotenberg:8.7 image: docker.io/gotenberg/gotenberg:8.17
restart: unless-stopped restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not # The gotenberg chromium route is used to convert .eml files. We do not

View File

@@ -1,120 +0,0 @@
#!/usr/bin/env bash
set -e
wait_for_postgres() {
local attempt_num=1
local -r max_attempts=5
echo "Waiting for PostgreSQL to start..."
local -r host="${PAPERLESS_DBHOST:-localhost}"
local -r port="${PAPERLESS_DBPORT:-5432}"
# Disable warning, host and port can't have spaces
# shellcheck disable=SC2086
while [ ! "$(pg_isready --host ${host} --port ${port})" ]; do
if [ $attempt_num -eq $max_attempts ]; then
echo "Unable to connect to database."
exit 1
else
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
fi
attempt_num=$(("$attempt_num" + 1))
sleep 5
done
echo "Connected to PostgreSQL"
}
wait_for_mariadb() {
echo "Waiting for MariaDB to start..."
local -r host="${PAPERLESS_DBHOST:=localhost}"
local -r port="${PAPERLESS_DBPORT:=3306}"
local attempt_num=1
local -r max_attempts=5
# Disable warning, host and port can't have spaces
# shellcheck disable=SC2086
while ! true > /dev/tcp/$host/$port; do
if [ $attempt_num -eq $max_attempts ]; then
echo "Unable to connect to database."
exit 1
else
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
fi
attempt_num=$(("$attempt_num" + 1))
sleep 5
done
echo "Connected to MariaDB"
}
wait_for_redis() {
# We use a Python script to send the Redis ping
# instead of installing redis-tools just for 1 thing
if ! python3 /sbin/wait-for-redis.py; then
exit 1
fi
}
migrations() {
(
# flock is in place to prevent multiple containers from doing migrations
# simultaneously. This also ensures that the db is ready when the command
# of the current container starts.
flock 200
echo "Apply database migrations..."
python3 manage.py migrate --skip-checks --no-input
) 200>"${DATA_DIR}/migration_lock"
}
django_checks() {
# Explicitly run the Django system checks
echo "Running Django checks"
python3 manage.py check
}
search_index() {
local -r index_version=9
local -r index_version_file=${DATA_DIR}/.index_version
if [[ (! -f "${index_version_file}") || $(<"${index_version_file}") != "$index_version" ]]; then
echo "Search index out of date. Updating..."
python3 manage.py document_index reindex --no-progress-bar
echo ${index_version} | tee "${index_version_file}" >/dev/null
fi
}
superuser() {
if [[ -n "${PAPERLESS_ADMIN_USER}" ]]; then
python3 manage.py manage_superuser
fi
}
do_work() {
if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
wait_for_mariadb
elif [[ -n "${PAPERLESS_DBHOST}" ]]; then
wait_for_postgres
fi
wait_for_redis
migrations
django_checks
search_index
superuser
}
do_work

View File

@@ -1,42 +0,0 @@
#!/usr/bin/env bash
# Scans the environment variables for those with the suffix _FILE
# When located, checks the file exists, and exports the contents
# of the file as the same name, minus the suffix
# This allows the use of Docker secrets or mounted files
# to fill in any of the settings configurable via environment
# variables
set -eu
for line in $(printenv)
do
# Extract the name of the environment variable
env_name=${line%%=*}
# Check if it starts with "PAPERLESS_" and ends in "_FILE"
if [[ ${env_name} == PAPERLESS_*_FILE ]]; then
# This should have been named different..
if [[ ${env_name} == "PAPERLESS_OCR_SKIP_ARCHIVE_FILE" ]]; then
continue
fi
# Extract the value of the environment
env_value=${line#*=}
# Check the file exists
if [[ -f ${env_value} ]]; then
# Trim off the _FILE suffix
non_file_env_name=${env_name%"_FILE"}
echo "Setting ${non_file_env_name} from file"
# Reads the value from th file
val="$(< "${!env_name}")"
# Sets the normal name to the read file contents
export "${non_file_env_name}"="${val}"
else
echo "File ${env_value} referenced by ${env_name} doesn't exist"
fi
fi
done

View File

@@ -1,12 +0,0 @@
#!/usr/bin/env bash
echo "Checking if we should start flower..."
if [[ -n "${PAPERLESS_ENABLE_FLOWER}" ]]; then
# Small delay to allow celery to be up first
echo "Starting flower in 5s"
sleep 5
celery --app paperless flower --conf=/usr/src/paperless/src/paperless/flowerconfig.py
else
echo "Not starting flower"
fi

BIN
docker/init-flow.drawio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Run this script to generate the management commands again (for example if a new command is create or the template is updated)
set -eu set -eu
for command in decrypt_documents \ for command in decrypt_documents \
@@ -14,9 +16,11 @@ for command in decrypt_documents \
document_thumbnails \ document_thumbnails \
document_sanity_checker \ document_sanity_checker \
document_fuzzy_match \ document_fuzzy_match \
manage_superuser; manage_superuser \
convert_mariadb_uuid \
prune_audit_logs;
do do
echo "installing $command..." echo "installing $command..."
sed "s/management_command/$command/g" management_script.sh > /usr/local/bin/$command sed "s/management_command/$command/g" management_script.sh >"$PWD/rootfs/usr/local/bin/$command"
chmod +x /usr/local/bin/$command chmod +x "$PWD/rootfs/usr/local/bin/$command"
done done

View File

@@ -1,17 +1,13 @@
#!/usr/bin/env bash #!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
set -e set -e
cd /usr/src/paperless/src/ cd "${PAPERLESS_SRC_DIR}"
# This ensures environment is setup
# shellcheck disable=SC1091
source /sbin/env-from-file.sh
if [[ $(id -u) == 0 ]] ; if [[ $(id -u) == 0 ]]; then
then s6-setuidgid paperless python3 manage.py management_command "$@"
gosu paperless python3 manage.py management_command "$@" elif [[ $(id -un) == "paperless" ]]; then
elif [[ $(id -un) == "paperless" ]] ;
then
python3 manage.py management_command "$@" python3 manage.py management_command "$@"
else else
echo "Unknown user." echo "Unknown user."

View File

@@ -1,16 +0,0 @@
#!/usr/bin/env bash
SUPERVISORD_WORKING_DIR="${PAPERLESS_SUPERVISORD_WORKING_DIR:-$PWD}"
rootless_args=()
if [ "$(id -u)" == "$(id -u paperless)" ]; then
rootless_args=(
--user
paperless
--logfile
"${SUPERVISORD_WORKING_DIR}/supervisord.log"
--pidfile
"${SUPERVISORD_WORKING_DIR}/supervisord.pid"
)
fi
exec /usr/local/bin/supervisord -c /etc/supervisord.conf "${rootless_args[@]}"

View File

@@ -0,0 +1,8 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-complete]"
declare -r end_time=$(date +%s)
declare -r start_time=${PAPERLESS_START_TIME_S}
echo "${log_prefix} paperless-ngx docker container init completed in $(($end_time-$start_time)) seconds"
echo "${log_prefix} Starting services"

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-complete/run

View File

@@ -0,0 +1,44 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[custom-init]"
# Mostly borrowed from the LinuxServer.io base image
# https://github.com/linuxserver/docker-baseimage-ubuntu/tree/bionic/root/etc/cont-init.d
declare -r custom_script_dir="/custom-cont-init.d"
# Tamper checking.
# Don't run files which are owned by anyone except root
# Don't run files which are writeable by others
if [ -d "${custom_script_dir}" ]; then
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 ! -user root)" ]; then
echo "${log_prefix} **** Potential tampering with custom scripts detected ****"
echo "${log_prefix} **** The folder '${custom_script_dir}' must be owned by root ****"
exit 0
fi
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 -perm -o+w)" ]; then
echo "${log_prefix} **** The folder '${custom_script_dir}' or some of contents have write permissions for others, which is a security risk. ****"
echo "${log_prefix} **** Please review the permissions and their contents to make sure they are owned by root, and can only be modified by root. ****"
exit 0
fi
# Make sure custom init directory has files in it
if [ -n "$(/bin/ls --almost-all "${custom_script_dir}" 2>/dev/null)" ]; then
echo "${log_prefix} files found in ${custom_script_dir} executing"
# Loop over files in the directory
for SCRIPT in "${custom_script_dir}"/*; do
NAME="$(basename "${SCRIPT}")"
if [ -f "${SCRIPT}" ]; then
echo "${log_prefix} ${NAME}: executing..."
/command/with-contenv /bin/bash "${SCRIPT}"
echo "${log_prefix} ${NAME}: exited $?"
elif [ ! -f "${SCRIPT}" ]; then
echo "${log_prefix} ${NAME}: is not a file"
fi
done
else
echo "${log_prefix} no custom files found exiting..."
fi
else
echo "${log_prefix} ${custom_script_dir} doesn't exist, nothing to do"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-custom-init/run

View File

@@ -0,0 +1,30 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[env-init]"
echo "${log_prefix} Checking for environment from files"
if find /run/s6/container_environment/*"_FILE" -maxdepth 1 > /dev/null 2>&1; then
for FILENAME in /run/s6/container_environment/*; do
if [[ "${FILENAME##*/}" == PAPERLESS_*_FILE ]]; then
# This should have been named different..
if [[ ${FILENAME} == "PAPERLESS_OCR_SKIP_ARCHIVE_FILE" || ${FILENAME} == "PAPERLESS_MODEL_FILE" ]]; then
continue
fi
SECRETFILE=$(cat "${FILENAME}")
# Check the file exists
if [[ -f ${SECRETFILE} ]]; then
# Trim off trailing _FILE
FILESTRIP=${FILENAME//_FILE/}
# Set environment variable
cat "${SECRETFILE}" > "${FILESTRIP}"
echo "${log_prefix} ${FILESTRIP##*/} set from ${FILENAME##*/}"
else
echo "${log_prefix} cannot find secret in ${FILENAME##*/}"
fi
fi
done
else
echo "${log_prefix} No *_FILE environment found"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-env-file/run

View File

@@ -0,0 +1,33 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-folders]"
declare -r export_dir="/usr/src/paperless/export"
declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}"
declare -r media_root_dir="${PAPERLESS_MEDIA_ROOT:-/usr/src/paperless/media}"
declare -r consume_dir="${PAPERLESS_CONSUMPTION_DIR:-/usr/src/paperless/consume}"
declare -r tmp_dir="${PAPERLESS_SCRATCH_DIR:=/tmp/paperless}"
echo "${log_prefix} Checking for folder existence"
for dir in \
"${export_dir}" \
"${data_dir}" "${data_dir}/index" \
"${media_root_dir}" "${media_root_dir}/documents" "${media_root_dir}/documents/originals" "${media_root_dir}/documents/thumbnails" \
"${consume_dir}" \
"${tmp_dir}"; do
if [[ ! -d "${dir}" ]]; then
mkdir --parents --verbose "${dir}"
fi
done
echo "${log_prefix} Adjusting file and folder permissions"
for dir in \
"${export_dir}" \
"${data_dir}" \
"${media_root_dir}" \
"${consume_dir}" \
"${tmp_dir}"; do
find "${dir}" -not \( -user paperless -and -group paperless \) -exec chown --changes paperless:paperless {} +
done

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-folders/run

View File

@@ -0,0 +1,20 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-migrations]"
declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}"
(
# flock is in place to prevent multiple containers from doing migrations
# simultaneously. This also ensures that the db is ready when the command
# of the current container starts.
flock 200
echo "${log_prefix} Apply database migrations..."
cd "${PAPERLESS_SRC_DIR}"
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
exec python3 manage.py migrate --skip-checks --no-input
else
exec s6-setuidgid paperless python3 manage.py migrate --skip-checks --no-input
fi
) 200>"${data_dir}/migration_lock"

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-migrations/run

View File

@@ -0,0 +1,22 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-user]"
declare -r usermap_original_uid=$(id -u paperless)
declare -r usermap_original_gid=$(id -g paperless)
declare -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid}
declare -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}}
if [[ ${usermap_new_uid} != "${usermap_original_uid}" ]]; then
echo "${log_prefix} Mapping UID for paperless to $usermap_new_uid"
usermod --non-unique --uid "${usermap_new_uid}" paperless
else
echo "${log_prefix} No UID changes for paperless"
fi
if [[ ${usermap_new_gid} != "${usermap_original_gid}" ]]; then
echo "${log_prefix} Mapping GID for paperless to $usermap_new_gid"
groupmod --non-unique --gid "${usermap_new_gid}" paperless
else
echo "${log_prefix} No GID changes for paperless"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-modify-user/run

View File

@@ -0,0 +1,28 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-index]"
declare -r index_version=9
declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}"
declare -r index_version_file="${data_dir}/.index_version"
update_index () {
echo "${log_prefix} Search index out of date. Updating..."
cd "${PAPERLESS_SRC_DIR}"
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
python3 manage.py document_index reindex --no-progress-bar
echo ${index_version} | tee "${index_version_file}" > /dev/null
else
s6-setuidgid paperless python3 manage.py document_index reindex --no-progress-bar
echo ${index_version} | s6-setuidgid paperless tee "${index_version_file}" > /dev/null
fi
}
if [[ (! -f "${index_version_file}") ]]; then
echo "${log_prefix} No index version file found"
update_index
elif [[ $(<"${index_version_file}") != "$index_version" ]]; then
echo "${log_prefix} index version updated"
update_index
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-search-index/run

View File

@@ -0,0 +1,19 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-start]"
echo "${log_prefix} paperless-ngx docker container starting..."
# Set some directories into environment for other steps to access via environment
# Sort of like variables for later
printf "/usr/src/paperless/src" > /var/run/s6/container_environment/PAPERLESS_SRC_DIR
echo $(date +%s) > /var/run/s6/container_environment/PAPERLESS_START_TIME_S
# Check if we're starting as a non-root user
if [ $(id -u) == $(id -u paperless) ]; then
printf "true" > /var/run/s6/container_environment/USER_IS_NON_ROOT
echo "${log_prefix} paperless-ngx docker container running under a user"
else
echo "${log_prefix} paperless-ngx docker container starting init as root"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-start/run

View File

@@ -0,0 +1,20 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-superuser]"
if [[ -n "${PAPERLESS_ADMIN_USER}" ]]; then
echo "${log_prefix} Creating superuser..."
cd "${PAPERLESS_SRC_DIR}"
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
python3 manage.py manage_superuser
else
s6-setuidgid paperless python3 manage.py manage_superuser
fi
echo "${log_prefix} Superuser creation done"
else
echo "${log_prefix} Not creating superuser"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-superuser/run

View File

@@ -0,0 +1,15 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-checks]"
# Explicitly run the Django system checks
echo "${log_prefix} Running Django checks"
cd "${PAPERLESS_SRC_DIR}"
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
python3 manage.py check
else
s6-setuidgid paperless python3 manage.py check
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-system-checks/run

View File

@@ -0,0 +1,65 @@
#!/command/with-contenv /usr/bin/bash
# shellcheck shell=bash
declare -r log_prefix="[init-tesseract-langs]"
install_languages() {
echo "Installing languages..."
read -ra langs <<<"$1"
# Check that it is not empty
if [ ${#langs[@]} -eq 0 ]; then
return
fi
# Build list of packages to install
to_install=()
for lang in "${langs[@]}"; do
pkg="tesseract-ocr-$lang"
if dpkg --status "$pkg" &>/dev/null; then
echo "${log_prefix} Package $pkg already installed!"
continue
else
to_install+=("$pkg")
fi
done
# Use apt only when we install packages
if [ ${#to_install[@]} -gt 0 ]; then
# Warn the user if they're not root, but try anyway
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
echo "${log_prefix} ERROR: Unable to install language ${pkg} as non-root, startup may fail"
fi
apt-get --quiet update &>/dev/null
for pkg in "${to_install[@]}"; do
if ! apt-cache --quiet show "$pkg" &>/dev/null; then
echo "${log_prefix} Skipped $pkg: Package not found! :("
continue
fi
echo "${log_prefix} Installing package $pkg..."
if ! apt-get --quiet --assume-yes install "$pkg" &>/dev/null; then
echo "${log_prefix} Could not install $pkg"
exit 1
else
echo "${log_prefix} Installed $pkg"
fi
done
fi
}
echo "${log_prefix} Checking if additional teseract languages needed"
# Install additional languages if specified
if [[ -n "$PAPERLESS_OCR_LANGUAGES" ]]; then
install_languages "$PAPERLESS_OCR_LANGUAGES"
echo "${log_prefix} Additional packages installed"
else
echo "${log_prefix} No additional installs requested"
fi

View File

@@ -0,0 +1 @@
oneshot

View File

@@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-tesseract-langs/run

Some files were not shown because too many files have changed in this diff Show More