Matthias Mair
45daef8442
feat: more mail sending backends and plugability ( #9608 )
...
* [FR] Improve Email handeling
Fixes #7950
* extend implementation of email thread and message models
* add missing args
* add unit test
* increase test coverage
* make key not necessary
* do not consider in coverage
* add email apis
* Add email admin
* fix email configuration check
* improve rendering
* squash migrations
* add config value overview
* log if mails were send
* add additional headers
* fix api unit test
* fix url resolving
* add InvenTree specific task to issue mails
required to extend sending options (prio, reply to)
* use internal sending task to keep telemetry cleaner
* add prio handling
* add plugin handling
* add setting
* factor plugin method out
* add typing
* move function
* bump version
* fix import path
* add a test for the test endpoint
* fix checking logic
* Add anymail sending / tracking handling
* add more ordering fields to api
* remove unneeded assingment
* add basic docs
* handle incoming emails with anymail
* Add inbox handling
Closes https://github.com/inventree/InvenTree/issues/7951
* add list of supported ESPs
* add better error transparency when sending fails
* add missing migration
* combine migrations back down
* fix todos
* fix qc export
* fix missing model props
* add tests
* ensure things are passed as a list
* fix list formatting
* fix deps
* move tests
* add testing with anymail
* allow handling of priority and headers
* add test for events
* add test for inbound messages
* rename variable
* increase coverage
* fix format
* add setting doc
* fix link
* rename fnc
* disable pro test
* make messages clearer
* fix doc syntax
* fix assign
* fix test
* revert test disablement
* add enum
* disable check for now
* try changing test around
* add incoming mail processing
* fix import
* add docs
* Fix mail.md
* bump deps
* fix api version
2025-06-20 11:49:02 +10:00
Matthias Mair
797b5f57b0
feat(backend): improve worker tracing ( #9808 )
...
* feat(backend): improve worker log
* refactor tracing details
* add tracing to gunicorn setup
* add sqlite tracing
* add system metrics
* instument wsgi
* make dbengine better accessible
* fix instruction
* instrument worker
* track task scheduling
* trace common tasks
* patch in support for django q
* trace various tasks
* add trcing for other dbs
* ignore coverage on tracing stuff
* more ignorance
2025-06-20 09:47:28 +10:00
Matthias Mair
00c974b629
feat: add cluster monitor task ( #9812 )
2025-06-20 09:45:25 +10:00
Matthias Mair
7a984f831f
bump backend deps ( #9713 )
...
* bump backend deps
* lower xmlsec to fix build
* add permament pin
* lower allauth as there are api changes
* unify dependabot config
2025-06-02 11:26:49 +10:00
Matthias Mair
8bb03b7afd
feat(backend): add oauth2 ( #9333 )
...
* feat(backend): add oauth2
* fix import
* Add inventree roles
* refactor to make lookup more efficient
* fix single scope definitions
* cleanup
* fix schema
* reduce auth methods
* fix OAuth validator
* re-enable token and basic auth again
* Add models to role mapping
* change scope args
* add debug step for schema generation
* add oauth config for schema generation
* improve token -> permission mapping
* fix req
* extend checks to ensure normal auth also passes
* fix api version
* fix ignore
* fix rule name
* bump api version
* remove old modelref
* move scope definition
* make test results easier to work with
* add tests to ensure scopes are in sync with rulesets
* fix docstring
* fix various permissions and their mapping to oauth
* refactor
* simplify
* fix permission mapping
* ignore failure cases
* fix unauthenticated access
* flag oAuth2 till it is done
* Add OIDC support
* add RSA key generation and docs
* fix test
* move imports
* update ignore
* feat(backend): Add API Schema stats
* add scope stats
* fix name
* fix scope output
* feat(backend): test custom command
* add warning for unknown scopes
* reduce diff in launch.json
* cleanup diff
* add error code for ruleset / scope issues
* update structure
* add oauth docs
* add experimetnal feature docs
* simplify metadata endpoint
* add importer model
* refactor(backend): simplify metadata endpoint
* fix imports
* simplify even more
* remove unneeded schema tooling
* fix permission mappings
* fix testing
* fix role calculations
* fix mapping
* remove importer change to unblock this
* remove importer scope everywhere
* fix merge conflict in test
* add missing models
* fix api version
* fix OASToken matcher
* revert permission class change
* reduce size of test log by writing schema
* fix permissions
* fix file path
* extend schema to remove need for TokenMatchesOASRequirements
* cleanup permissions file
* add base object permission
2025-04-18 19:27:32 +10:00
Matthias Mair
858eb8f807
chore(backend): bump drf ( #9407 )
...
* chore(backend): bump drf
* bump api
2025-03-30 14:11:23 +11:00
Oliver
a453c9b286
[refactor] Remove django-weasyprint entirely ( #9316 )
...
* Remove django-weasyprint entirely
* Handle null request
* Bug fix
2025-03-17 07:51:29 +11:00
Matthias Mair
03278c56c9
Remove django-allauth-2fa, dj-rest-auth and django-user-sessions ( #6293 )
...
* Remove django-allauth-2fa
Fixes #6281
* fix req
* fix file again
* remove allauth_2fa flows
* reintroduce otp
* fix rq
* remove old ref
* remove otp things from settings
* reintroduce otp codes
* remove totp section
* bump version
* fix reqs
* add missing model
* ignore TOTP migration if the model is not laoded
* add model deps
* add extra migrations step for easier testing
* add migration testing
* remove old catch
* cover static devies too
* remove more old stuff
* fix import
* mrege migrations
* bump API version
* switch to allauth.usersessions
* add headless
* re-add saml/openid
* user sessions cleanup
* turn off normal allauth urls if CUI is not active
* disable tests that rely on old endpoints - to be replaced
* always track session changes
* remove old allauth templates
* remove old ref
* add missing model
* fix session lookup
* always logout when pwd is changed
* reimplement session ending
* fix merge
* upgrade reqs
* lower cryptography version
* clean allauth_2fa reference
* disable test temporarly
* fix migration check
* disable tests temporarly
* Re-implement auth flow using new APIs; adds MFA to PUI
* re-implement logoff
* stop failure message from appearing when in MFA flow
* remove jwt mention
* fix: email endpoints (to be cleaned TODO@matmair)
* remove unused endpoints
* ignore the now often-used 410 error
* fix auth for email actions in MFA scenarios
* add mfa listing use build-in forms
* add dummy entry for missing frontend urls; see TODO@matmair
* remove unneeded change of confirm url
* add mfa reg endpoint (not fully implemented)
* implement more provider stuff
* simplify calls
* make calls more robust
* switch to browser based sessions
* add todo's
* update api version
* remove x-session, not needed anymore
* remove old urls
* remove ui preference - there is no decision anymore
* fix login redirect logic
* change name to ensure 1p can detect field
* add mfa table
* fix remove sso provider account action; provider (user) admin stuff is done
* reduce templates to the raw basics
* fix tests
* more exclusions
* rewrite url structure
* move buildin token test
* re-enable registration tests
* re-implement registrations
* enable registration for now
* re-implement password change
* adjust tests
* fix asserts
* align names with allauth
* simplify
* refactor and rephrasing
* fix nesting issue
* clean up urls even more
* add mfa add and remove screens
* add type
* revert dep change
* fix api version
* re-add settings
* simplify urls
* Add timeout to login wait for
* fix url assertation
* remove unneded mfa_enabled
* add setting for configuring types
* bump api version
* fix password reset flow
* change settings order
* save auth context
* rename var to remove confusion
* make login/register seperate paths
* make info text better
* adjust urls
* add error message
* disable buttons if no email is set
* add custom adapters for MFA and headless authentication to use upstreamed features
* move auth settings to status
* respect more settings
* update settings
* bump api version
* remove depreceated docs part
* remove dj_rest_auth stuff
* fix api_version bump
* remove temp fix
* fix provider login
* remove unsupported option
* remove hash requirement for now
* simplify customisation
* implement email-verification
* remove auth from api docs
* fix override of get_frontend_url
details in https://codeberg.org/allauth/django-allauth/pulls/4248
* bump api again
* fix req
* Revert "remove hash requirement for now"
This reverts commit 00bb6c5274
.
* remove usage of git repo
* fix doc string
* extend schema generation to just patch in allauth
* patch allauth OAI ref names
* reduce types
* refactor code structure
* fix ref patching a bit more
* add param cleanup
* ensure strings, number, bools are handled correctly in cleanup
* move fnc
* shorten names
* bump allauth
* re-add auth doc section
* fix doc structure
* revert playwrigth change
* ckean up browser only path
* clean up parameters that we do not use
* re-add 2fa required middleware
* fix mail sending hook
* fix password set texts
* Add forced mfa setup
* remove type
* adjust api_version
* Remove debug prints
* Add error message for TOTP creation
* Handle failed TOTP login
* fix reqs
* Add error on 409 during login
* fix tested url
* fix api_version
* fix allauth version
* minimize req diff
* further minimize diff
---------
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com >
2025-02-22 11:11:04 +11:00
dependabot[bot]
2521862b1a
Bump the dependencies group across 1 directory with 9 updates ( #9134 ) use
...
* Bump the dependencies group across 1 directory with 9 updates
Bumps the dependencies group with 9 updates in the /src/backend directory:
| Package | From | To |
| --- | --- | --- |
| [coverage[toml]](https://github.com/nedbat/coveragepy ) | `7.6.11` | `7.6.12` |
| [dj-rest-auth](https://github.com/iMerica/dj-rest-auth ) | `7.0.0` | `7.0.1` |
| [django-allauth-2fa](https://github.com/valohai/django-allauth-2fa ) | `0.11.1` | `0.12.0` |
| [django-filter](https://github.com/carltongibson/django-filter ) | `24.3` | `25.1` |
| [django-money](https://github.com/django-money/django-money ) | `3.2.0` | `3.5.3` |
| [djangorestframework](https://github.com/encode/django-rest-framework ) | `3.14.0` | `3.15.2` |
| [pydyf](https://github.com/CourtBouillon/pydyf ) | `0.10.0` | `0.11.0` |
| [sentry-sdk](https://github.com/getsentry/sentry-python ) | `2.20.0` | `2.22.0` |
| [weasyprint](https://github.com/Kozea/WeasyPrint ) | `62.3` | `64.1` |
Updates `coverage[toml]` from 7.6.11 to 7.6.12
- [Release notes](https://github.com/nedbat/coveragepy/releases )
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst )
- [Commits](https://github.com/nedbat/coveragepy/compare/7.6.11...7.6.12 )
Updates `dj-rest-auth` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/iMerica/dj-rest-auth/releases )
- [Commits](https://github.com/iMerica/dj-rest-auth/compare/7.0.0...7.0.1 )
Updates `django-allauth-2fa` from 0.11.1 to 0.12.0
- [Release notes](https://github.com/valohai/django-allauth-2fa/releases )
- [Changelog](https://github.com/valohai/django-allauth-2fa/blob/main/CHANGELOG.rst )
- [Commits](https://github.com/valohai/django-allauth-2fa/compare/v0.11.1...v0.12.0 )
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 )
Updates `django-money` from 3.2.0 to 3.5.3
- [Release notes](https://github.com/django-money/django-money/releases )
- [Changelog](https://github.com/django-money/django-money/blob/main/docs/changes.rst )
- [Commits](https://github.com/django-money/django-money/compare/3.2...3.5.3 )
Updates `djangorestframework` from 3.14.0 to 3.15.2
- [Release notes](https://github.com/encode/django-rest-framework/releases )
- [Commits](https://github.com/encode/django-rest-framework/compare/3.14.0...3.15.2 )
Updates `pydyf` from 0.10.0 to 0.11.0
- [Release notes](https://github.com/CourtBouillon/pydyf/releases )
- [Changelog](https://github.com/CourtBouillon/pydyf/blob/main/docs/changelog.rst )
- [Commits](https://github.com/CourtBouillon/pydyf/compare/v0.10.0...v0.11.0 )
Updates `sentry-sdk` from 2.20.0 to 2.22.0
- [Release notes](https://github.com/getsentry/sentry-python/releases )
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md )
- [Commits](https://github.com/getsentry/sentry-python/compare/2.20.0...2.22.0 )
Updates `weasyprint` from 62.3 to 64.1
- [Release notes](https://github.com/Kozea/WeasyPrint/releases )
- [Changelog](https://github.com/Kozea/WeasyPrint/blob/main/docs/changelog.rst )
- [Commits](https://github.com/Kozea/WeasyPrint/compare/v62.3...v64.1 )
---
updated-dependencies:
- dependency-name: coverage[toml]
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: dj-rest-auth
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: django-allauth-2fa
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: django-filter
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: dependencies
- dependency-name: django-money
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: djangorestframework
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: pydyf
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: sentry-sdk
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: weasyprint
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix req
* clean up req file
* lower drf again
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com >
2025-02-22 08:02:53 +11:00
dependabot[bot]
40c1dc704f
Bump cryptography from 43.0.3 to 44.0.1 in /src/backend ( #9064 )
...
* Bump cryptography from 43.0.3 to 44.0.1 in /src/backend
Bumps [cryptography](https://github.com/pyca/cryptography ) from 43.0.3 to 44.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst )
- [Commits](https://github.com/pyca/cryptography/compare/43.0.3...44.0.1 )
---
updated-dependencies:
- dependency-name: cryptography
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix req
* set upper limit
* use highest version available on bullseye
* remove lower limit
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com >
2025-02-12 17:14:37 +11:00
Matthias Mair
f7f6e27c6e
feat(backend): improve tag docs ( #8960 )
...
* add admindocs
* add tag export command
* add filter export
* switch to yaml
* upload meta info to artifacts
* format workflow file
* fix creation command
* keep all artifacts in schema repo
* fix namespace
* use one command for export
* include tags and filters in docs
* change default filename
* fix call
* fix itteration syntax
* clean up rendering
* fix formatting
* simple escape
2025-01-28 09:42:13 +11:00
Matthias Mair
c57b51cb0e
chore(backend): bump deps ( #8905 )
...
* bump backend reqs
* raq down cryptography
* fix req
* bump api version
2025-01-19 17:50:22 +11:00
Oliver
c815455461
Datamatrix ( #8853 )
...
* Implement datamatrix barcode generation
* Update documentation
* Update package requirements
* Add unit test
* Raise error on empty barcode data
* Update docs/hooks.py
2025-01-08 12:06:00 +11:00
Matthias Mair
7f1cc4658b
Fix REST registration endpoint ( #8738 )
...
* Re-add html account base
Fixes #8690
* fix base template
* override dj-rest-auth pattern to fix fixed token model reference
* pin req
* fix urls.py
* move definition out to separate file
* fix possible issues where email is not enabled but UI shows that registration is enabled
* fix import order
* fix token recovery
* make sure registration redirects
* fix name change
* fix import name
* adjust description
* cleanup
* bum api version
* add test for registration
* add test for registration requirements
2024-12-24 11:53:25 +11:00
Oliver
71eb2814d4
Remove django-import-export ( #8685 )
...
* Remove django-import-export requirement
* Update settings.py
* Clean up admin files
* Remove much of the old BOM exporter framework
* Add note for future self
* Remove dead unit test files
* Remove defunct AjaxView classes
* Remove InvenTreeRoleMixin
* Update docs for data import
* Export docs
2024-12-24 07:19:36 +11:00
Oliver
9f1d1abd5b
Remove "crispy forms" integration ( #8684 )
...
* Remove "crispy forms" integration
- No longer doing any back-end form rendering
* Remove django-formtools package
* Fix comment in settings.py
---------
Co-authored-by: Matthias Mair <code@mjmair.com >
2024-12-18 09:25:14 +11:00
Oliver
368f3b7bd4
Remove regex dependency ( #8547 )
...
* Remove regex from requirements file
* Fix order of operations
- Remove hidden chars before removing HTML tags
* Remove requirement for regex package
* Additional unit tests
* Remove debug msg
* Fix for newline removal
* Fix variable shadowing
* Defer import of PIL.Image
2024-11-26 20:29:51 +11:00
Matthias Mair
e4a39692ff
Add structlog ( #7937 )
...
* Add structlog
Closes #3960
* fix formatting
* make log writing optional
* ignore logfiles
* fix variable naming
2024-11-19 19:48:20 +11:00
Oliver
99e37de1d8
Update pint library to latest version ( #8028 )
...
* Update pint library to latest version
* Fix hash
* Handle AssertionError
2024-08-29 12:37:38 +10:00
Matthias Mair
d647471588
Chore: Bump python requirements ( #7961 )
...
* bump requirements
* lower bound on pydyf
2024-08-23 23:03:31 +00:00
Matthias Mair
1d4114b6f5
General backend deps bump ( #7521 )
...
* bump backend deps
* use lower version of drf
* pin import-export to under 4.9
* pin drf below 3.15
* add note about pins
* lower regex version
2024-07-08 08:14:04 +10:00
Matthias Mair
fddcb629b6
[PUI] Add licenses texts to PUI ( #6855 )
...
* compile a license texts bundle
* add backend license extraction on install
* change path for licenses
* add to gitignore
* Add api to expose license paths
* add texts
* add frontend rendering of licensing files
* Handle errors when fetching license information
* Format backend packages.txt in json
* Improved API rendering:
- Handle file errors
- Render as JSON object
* Improve frontend modal rendering
- Separate frontend / backend into tabs
- Split packages into accordion
* Generate JSON file for fronten deps
* Fix rendering for frontend deps
* Update src/frontend/src/components/modals/LicenseModal.tsx
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com >
* Update src/frontend/src/components/modals/LicenseModal.tsx
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com >
* make reading of licenses objects dynamic
* remove unsued import
* style fixes
* style fixes
* default to first value
* use new syntax to call docker compose
* merge fix
* fix path
* Roll back #6942
* Update qc_checks.yaml
Run migration checks when requirements file changes
---------
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com >
Co-authored-by: Lukas <76838159+wolflu05@users.noreply.github.com >
2024-04-04 10:31:20 +11:00
dependabot[bot]
5548254c48
Bump django-money from 3.2.0 to 3.4.1 in /src/backend ( #6942 )
...
* Bump django-money from 3.2.0 to 3.4.1 in /src/backend
Bumps [django-money](https://github.com/django-money/django-money ) from 3.2.0 to 3.4.1.
- [Release notes](https://github.com/django-money/django-money/releases )
- [Changelog](https://github.com/django-money/django-money/blob/main/docs/changes.rst )
- [Commits](https://github.com/django-money/django-money/compare/3.2...3.4.1 )
---
updated-dependencies:
- dependency-name: django-money
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* merge fix
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Matthias Mair <code@mjmair.com >
2024-04-03 21:56:22 +11:00
Matthias Mair
0bace3f3af
Code structure refactor ( #5582 )
...
* moved docker files to /contrib/container
* changed code owners to make more precise
* updated CI to use new subdirs
* added manual trigger for testing
* moved ci files
* moved assets into subdir
* moved deploy template file to contrib
* moved django files to src/backend
* updated paths in scripts etc
* updated reqs path
* fixed version file path
* fixed flake8 path
* fixed path to node ressources
* fixed task paths
* added dep path for node
* removed unused yarn lockfile
* removed unused ci script
* updated internal backend paths for tasks
* updated translation stats path
* fixed source path for coverage
* fixed main commit repo path
* fit in changes from testing
* gather packager improvements (#149 )
* Matmair/issue5578 (#143 )
* moved docker files to /contrib/container
* changed code owners to make more precise
* updated CI to use new subdirs
* added manual trigger for testing
* moved ci files
* moved assets into subdir
* moved deploy template file to contrib
* moved django files to src/backend
* updated paths in scripts etc
* updated reqs path
* fixed version file path
* fixed flake8 path
* fixed path to node ressources
* fixed task paths
* added dep path for node
* removed unused yarn lockfile
* removed unused ci script
* updated internal backend paths for tasks
* updated translation stats path
* fixed source path for coverage
* fixed main commit repo path
* fix docker path
* use project dir
* move project dir command
* fixed docker paths
* another fix?
* seperate tasks out
* remove tasks
* some debugging
* ci: add .deepsource.toml
* Update .deepsource.toml
* also ignore migrations
* more debugging
* fix path issues
* remove debug script
* fix style
* change locale path
* Fixed paths for requirements
* Added dummy requirements to fool packager
* fixed exec path
* remove deepsource
---------
Co-authored-by: deepsource-io[bot] <42547082+deepsource-io[bot]@users.noreply.github.com>
* Added docs for file structure
* Fixed style errors
* updated deepsource paths
* fix deepsource paths
* fixed reqs
* merge fixes
* move newly added dirs too
* fix reqs files
* another dep fix
* merge upstream/master
* revert removal of tags
* merge upstream
* enabled detection of old config files
* adapt coverage src
* also detect and support old location for plugins.txt
* style fix
* fix ~/init.sh location
* fix requirements path
* fix config to current master
* move new folders
* fix import order
* fix paths for qc_check
* fix docs build
* fix fix path
* set docker project dir
* just use a cd
* set image path?
* set file correct
* fix copy path
* fix tasks dir
* fix init path
* fix copy path
* set prject dir
* fix paths
* remove old prod files
* fix dev env path
* set docker file
* Fix devcontainer docker compose file
* fix login attempt values
* fix init.sh path
* Fix pathing for Docker
* Docker build fix
- Set INVENTREE_BACKEND_DIR separately
* Update init.sh
* Fix path
* Update requirements.txt
* merge
* fix rq merge
* fix docker compose usage
---------
Co-authored-by: deepsource-io[bot] <42547082+deepsource-io[bot]@users.noreply.github.com>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com >
2024-04-03 12:16:59 +11:00