Commit Graph
1763 Commits
Author SHA1 Message Date
Oliver 5e7bf4f92d Reduce unit test time in CI (#13244)
- test_api_endpoints reduced from 231s to 17s
2026-11-10 20:35:39 +11:00
Matthias Mair a8a867400d feat(backend): enable disabling of basic authentication (#13169)
* !feat(backend): disable basic authentication by default

* align PR

* add PR number

* fix schema creation/discovery

* mask basic auth

* fix error code

* reduce diff

* adjust changelog message

* fix test (needs basic auth which is now off by default)

* switch to default on; retain warning

* update test for new default

* fix assertation
2026-11-10 13:32:38 +11:00
github-actions[bot] be9639266d New Crowdin translations by GitHub Action (#13204)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-10 11:40:19 +11:00
OliverandMatthias Mair 061981ac54 ignore opentelemetry export logs from sentry.io upload (#13232)
Co-authored-by: Matthias Mair <code@mjmair.com>
2026-11-09 23:12:50 +11:00
Oliver 2497dd5425 [bug] date import (#13225)
- Handle date values during data import
- reported via sentry.io
2026-11-09 14:55:48 +11:00
Matthias Mair 8f668657b3 provide context in docker startup logs (#13227)
* provide context in docker startup logs

* reduce unnecessary docker logging

* this is set in one place; can be less complicated
2026-11-09 14:53:48 +11:00
Oliver df2a5d853e Add CI checks for /api-doc/ endpoint (#13210)
* Add CI checks for /api-doc/ endpoint

Ref: https://github.com/inventree/InvenTree/issues/13200

* fix playwright test

* Reduce flakiness
2026-11-08 17:55:12 +11:00
Oliver 3866f7dbf5 [bug] Handle concurrent plugin registry reloads (#13223)
Identified as potential cause of flaky playwright tests
2026-11-08 16:08:14 +11:00
Matthias Mair 35428bcb9f feat(backend): add signal for currency change (#13207)
* feat(backend): add signal for currency change

* fix receiver
2026-11-08 10:59:54 +11:00
Joe Rogers 4ba5cfbb67 Token and Audit Log missing API annotations (#13221)
* Document existing token warning field in schema

* Unrequire audit log entry changes_detail

* Update api version
2026-11-08 10:59:24 +11:00
dependabot[bot]andMatthias Mair f46aaed511 chore(deps): bump the dependencies group across 2 directories with 31 updates (#13209)
* chore(deps): bump the dependencies group across 2 directories with 31 updates

Bumps the dependencies group with 3 updates in the /contrib/dev_reqs directory: [uv](https://github.com/astral-sh/uv), [jc](https://github.com/kellyjonbrazil/jc) and [pip](https://github.com/pypa/pip).
Bumps the dependencies group with 28 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [boto3](https://github.com/boto/boto3) | `1.43.118` | `1.43.122` |
| [botocore](https://github.com/boto/botocore) | `1.43.118` | `1.43.122` |
| [django-js-asset](https://github.com/feincms/django-js-asset) | `4.2.0` | `5.0.0` |
| [dnspython](https://github.com/rthalley/dnspython) | `2.9.0` | `2.9.1` |
| [fonttools](https://github.com/fonttools/fonttools) | `4.67.0` | `4.68.0` |
| [opentelemetry-exporter-http-transport](https://github.com/open-telemetry/opentelemetry-python) | `0.66b1` | `0.66b2` |
| [opentelemetry-exporter-otlp-common](https://github.com/open-telemetry/opentelemetry-python) | `0.66b1` | `0.66b2` |
| [opentelemetry-exporter-otlp-proto-common](https://github.com/open-telemetry/opentelemetry-python) | `1.45.1` | `1.45.2` |
| [opentelemetry-exporter-otlp-proto-grpc](https://github.com/open-telemetry/opentelemetry-python) | `1.45.1` | `1.45.2` |
| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.45.1` | `1.45.2` |
| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.66b1` | `0.66b2` |
| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.66b1` | `0.66b2` |
| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.45.1` | `1.45.2` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.66b1` | `0.66b2` |
| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.66b1` | `0.66b2` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.13.5` | `4.14.0` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.14.1` | `2.14.2` |
| [pydantic-core](https://github.com/pydantic/pydantic) | `2.50.1` | `2.50.2` |
| [python-dateutil](https://github.com/dateutil/dateutil) | `2.9.0.post0` | `3.0.0` |
| [tzdata](https://github.com/python/tzdata) | `2026.5` | `2026.6` |
| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.5.1` | `2.5.2` |
| [xmlsec](https://github.com/xmlsec/python-xmlsec) | `1.3.17` | `1.3.18` |
| [prek](https://github.com/j178/prek) | `0.5.7` | `0.5.9` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [scim2-client](https://github.com/python-scim/scim2-client) | `0.13.2` | `0.14.1` |
| [scim2-tester](https://github.com/python-scim/scim2-tester) | `0.5.2` | `0.6.4` |
| [types-psycopg2](https://github.com/python/typeshed) | `2.9.21.20261008` | `2.9.21.20261030` |
| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20260906` | `6.0.12.20261030` |



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

Updates `jc` from 1.26.1 to 1.26.2
- [Release notes](https://github.com/kellyjonbrazil/jc/releases)
- [Changelog](https://github.com/kellyjonbrazil/jc/blob/master/CHANGELOG)
- [Commits](https://github.com/kellyjonbrazil/jc/compare/v1.26.1...v1.26.2)

Updates `pip` from 26.2.2 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `boto3` from 1.43.118 to 1.43.122
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.43.118...1.43.122)

Updates `botocore` from 1.43.118 to 1.43.122
- [Commits](https://github.com/boto/botocore/compare/1.43.118...1.43.122)

Updates `django-js-asset` from 4.2.0 to 5.0.0
- [Changelog](https://github.com/feincms/django-js-asset/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/feincms/django-js-asset/compare/4.2...5.0)

Updates `dnspython` from 2.9.0 to 2.9.1
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.9.0...v2.9.1)

Updates `fonttools` from 4.67.0 to 4.68.0
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](https://github.com/fonttools/fonttools/compare/4.67.0...4.68.0)

Updates `opentelemetry-exporter-http-transport` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/commits)

Updates `opentelemetry-exporter-otlp-common` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/commits)

Updates `opentelemetry-exporter-otlp-proto-common` from 1.45.1 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.1...v1.45.2)

Updates `opentelemetry-exporter-otlp-proto-grpc` from 1.45.1 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.1...v1.45.2)

Updates `opentelemetry-exporter-otlp-proto-http` from 1.45.1 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.1...v1.45.2)

Updates `opentelemetry-instrumentation` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-instrumentation-dbapi` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `opentelemetry-proto` from 1.45.1 to 1.45.2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.45.1...v1.45.2)

Updates `opentelemetry-semantic-conventions` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python/commits)

Updates `opentelemetry-util-http` from 0.66b1 to 0.66b2
- [Release notes](https://github.com/open-telemetry/opentelemetry-python-contrib/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-python-contrib/commits)

Updates `platformdirs` from 4.13.5 to 4.14.0
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.13.5...4.14.0)

Updates `pydantic` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.14.2/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.14.1...v2.14.2)

Updates `pydantic-core` from 2.50.1 to 2.50.2
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/core-v2.50.1...core-v2.50.2)

Updates `python-dateutil` from 2.9.0.post0 to 3.0.0
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](https://github.com/dateutil/dateutil/compare/2.9.0.post0...3.0.0)

Updates `tzdata` from 2026.5 to 2026.6
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2026.5...2026.6)

Updates `wrapt` from 2.5.1 to 2.5.2
- [Release notes](https://github.com/GrahamDumpleton/wrapt/releases)
- [Changelog](https://github.com/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst)
- [Commits](https://github.com/GrahamDumpleton/wrapt/compare/2.5.1...2.5.2)

Updates `xmlsec` from 1.3.17 to 1.3.18
- [Release notes](https://github.com/xmlsec/python-xmlsec/releases)
- [Commits](https://github.com/xmlsec/python-xmlsec/compare/1.3.17...1.3.18)

Updates `prek` from 0.5.7 to 0.5.9
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/main/CHANGELOG.md)
- [Commits](https://github.com/j178/prek/compare/v0.5.7...v0.5.9)

Updates `pytest` from 9.1.1 to 9.2.0
- [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/9.1.1...9.2.0)

Updates `scim2-client` from 0.13.2 to 0.14.1
- [Release notes](https://github.com/python-scim/scim2-client/releases)
- [Changelog](https://github.com/python-scim/scim2-client/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-client/compare/0.13.2...0.14.1)

Updates `scim2-tester` from 0.5.2 to 0.6.4
- [Release notes](https://github.com/python-scim/scim2-tester/releases)
- [Changelog](https://github.com/python-scim/scim2-tester/blob/main/doc/changelog.rst)
- [Commits](https://github.com/python-scim/scim2-tester/compare/0.5.2...0.6.4)

Updates `types-psycopg2` from 2.9.21.20261008 to 2.9.21.20261030
- [Commits](https://github.com/python/typeshed/commits)

Updates `types-pyyaml` from 6.0.12.20260906 to 6.0.12.20261030
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: uv
  dependency-version: 0.13.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: jc
  dependency-version: 1.26.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.43.122
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.122
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-js-asset
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: dnspython
  dependency-version: 2.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: fonttools
  dependency-version: 4.68.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-http-transport
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-common
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-common
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-grpc
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: opentelemetry-exporter-otlp-proto-http
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-instrumentation-dbapi
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-proto
  dependency-version: 1.45.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: opentelemetry-util-http
  dependency-version: 0.66b2
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: platformdirs
  dependency-version: 4.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: pydantic
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pydantic-core
  dependency-version: 2.50.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: python-dateutil
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: tzdata
  dependency-version: '2026.6'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wrapt
  dependency-version: 2.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: xmlsec
  dependency-version: 1.3.18
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: prek
  dependency-version: 0.5.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-client
  dependency-version: 0.14.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: scim2-tester
  dependency-version: 0.6.4
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: types-psycopg2
  dependency-version: 2.9.21.20261030
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20261030
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
...

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

* fix bumps

* remove fsm bump

---------

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>
2026-11-08 07:34:02 +11:00
Matthias Mair b4e74791e6 fix otel middleware instrumentation (#13219)
* fix otel instrumentation

* fix name conflict
2026-11-08 07:33:17 +11:00
Oliver da655f2312 Prevent creation of duplicate emails (#13212)
* Prevent creation of duplicate emails

* Bump API version
2026-11-07 16:03:33 +11:00
Matthias Mair c54c69c1bc update logging setup to respect json setting (#13216)
* fix json_log to ensure we really only log json

* also control gunicorn

* reduce noise in action
2026-11-07 16:02:41 +11:00
Oliver 02d6a038bf Token issuance updates (#13214)
- Ensure all token issuance endpoints are explicitly checked for MFA auth
- Additional backend unit tests
- Additional frontend unit tests
2026-11-07 13:18:30 +11:00
Oliver 0cb1852e0d Permissions fix for metadata endpoints (#13213)
Metadata API endpoints now observe the user permissions associated with the underlying models
2026-11-07 12:21:35 +11:00
sufyanaslam198 08dad19122 Temporary fix fpr Redoc (#13201)
Added temporary fix for Redoc distribution URL as Redoc 3 is an ES-module-only and drf-spectacular's template can't load (tfranzel/drf-spectacular#1543)
2026-11-07 10:08:17 +11:00
github-actions[bot] a9c21da6a7 New Crowdin translations by GitHub Action (#13192)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-06 11:52:55 +11:00
Oliver a6b7a5bf3a [bug] support custom stock status on tranfer (#13194)
- Closes https://github.com/inventree/InvenTree/issues/13191
2026-11-05 14:16:51 +11:00
d01645c5fb feat(stock): add exclude_from_stock option to StockLocation (#7064) (#13166)
* feat(stock): add exclude_from_stock option to StockLocation (#7064)

* feat(stock): add UI detail, table filters, API version bump, and prek formatting (#7064)

---------

Co-authored-by: UGREEN USER <jaharoni@debian.dedomain>
Co-authored-by: WholeTroutMedia <cortex@inceptionengine.systems>
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
2026-11-05 12:06:26 +11:00
Matthias Mair d5d0bfabc4 Small fixes (#13190)
* remove iregular import pattern

* remove dead code

* remove unneeded import
2026-11-05 09:35:27 +11:00
github-actions[bot] df098c46b0 New Crowdin translations by GitHub Action (#13160)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-05 08:32:56 +11:00
Oliver ec5d6324f8 [bug] Fix 'get_user_language' (#13180)
- The 'LANGUAGE" user setting does not exist
- Introduced in https://github.com/inventree/InvenTree/pull/12944
2026-11-04 14:13:41 +11:00
Oliver 6d1a26d540 1.8.0 (#13176)
* Set release version in CHANGELOG

* Add section for next release

* Bump version to 1.8.0-dev
2026-11-04 01:44:35 +11:00
Oliver d8f09fa078 Token fixes (#13175)
* Prevent junk token from bypassing MFA

* updated docs

* Fix read-only token fields

* Fix API version ref
2026-11-03 23:05:23 +11:00
Matthias Mair 315b5bd134 Merge commit from fork
* remove mfa disableing on the token flow

* also check for mfa in token issuance
2026-11-03 20:26:16 +11:00
Matthias Mair 4121d9a8a5 Merge commit from fork
* fix basic auth without mfa

* refactor order to use new basic auth class

* remove session auth taht would bybpass mfa (mfa thing fixed in another session)

* allign with other PRs

prep for merge with https://github.com/inventree/InvenTree/pull/13169/

* fix schema generation
2026-11-03 20:23:32 +11:00
Matthias Mair 16fa2ee5cd Merge commit from fork
* fix oauth scopes

* fix typing
2026-11-03 20:20:10 +11:00
Oliver 62d363a99d [UI] Context details for plugin actions (#13172)
* [UI] Context details for plugin actions

Adds additional target instance context when registering custom UI actions

* Add CHANGELOG entry

* Improve test
2026-11-03 17:22:26 +11:00
Oliver 461186bee9 [UI] Launch forms directly from plugin (#13174)
* [UI] Launch forms directly from plugin

Provide ability for plugins to dynamically launch modal forms, without specifying the underlying react components.

This allows (for example) a primary action on a detail page to launch a new native API form

* Add CHANGELOG entry
2026-11-03 16:41:33 +11:00
Oliver bc8c1aefa2 CustomUnit fixes (#13161)
* CustomUnit fixes

- Require staff access for data import
- Prevent overload of built-in units

* fix unit tests
2026-11-03 09:16:08 +11:00
Oliver 2629cde722 Data Import Fixes (#13162)
- Improved validation of data import session
- Handle FieldError if incorrect filter field is provided
- Prevent model traversal via import session filtering
- Added regression tests
2026-11-02 20:41:47 +11:00
github-actions[bot] dcec25f777 New Crowdin translations by GitHub Action (#13127)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-11-02 14:00:49 +11:00
Oliver 4fb0226ecc [bug] Settings fix (#13156)
* Fix error when generating default settings

- Prevent database error on conflicting rows
- Can be caused by concurrent user requests

* ignore conflicts for TipResult
2026-11-02 12:09:09 +11:00
Oliver 1b8bdad061 Token improvements (#13155)
- More secure masking of tokens
- Fix lowercase bug
- Use consistent date checking
2026-11-02 10:33:19 +11:00
dependabot[bot]andMatthias Mair 61a2c2af5f chore(deps): bump pypdf from 6.21.2 to 6.21.4 in /src/backend (#13144)
* chore(deps): bump pypdf from 6.21.2 to 6.21.4 in /src/backend

Bumps [pypdf](https://github.com/py-pdf/pypdf) from 6.21.2 to 6.21.4.
- [Release notes](https://github.com/py-pdf/pypdf/releases)
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md)
- [Commits](https://github.com/py-pdf/pypdf/compare/6.21.2...6.21.4)

---
updated-dependencies:
- dependency-name: pypdf
  dependency-version: 6.21.4
  dependency-type: direct:production
...

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

* fix style

* also bump pyasn1

---------

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>
2026-11-02 07:08:21 +11:00
Oliver 9bb7d23f80 Logout user when deleting UserSession (#13145) 2026-11-02 07:07:54 +11:00
Oliver b5cfd9528e Fix for revoking token (#13149)
- Do not revoke if already revoked
- Prevents overwrite of previous revoking information
2026-11-02 07:07:24 +11:00
Oliver f12d7f88a7 Fix for token issue message (#13150)
Fix for translated strings
2026-11-02 07:06:52 +11:00
Oliver 04c1a73697 Check if user is active when checking token (#13148)
* Check if user is active when checking token

* Ensure token rejection logs a warning
2026-11-02 07:06:27 +11:00
Matthias Mair f36321a918 add state transtion graph export (#13136) 2026-11-01 20:43:27 +11:00
Matthias Mair df7f9521d7 feat: add notification on token issuance (#13141)
* add notification on token issuance

* add entries

* fix link url

* increate test timing

* ignore fallback line

* add test for notification
2026-11-01 14:08:58 +11:00
dependabot[bot]andMatthias Mair daa1c304f4 chore(deps): bump the dependencies group across 2 directories with 21 updates (#13142)
* chore(deps): bump the dependencies group across 2 directories with 21 updates

Bumps the dependencies group with 2 updates in the /contrib/dev_reqs directory: [jc](https://github.com/kellyjonbrazil/jc) and [pip](https://github.com/pypa/pip).
Bumps the dependencies group with 19 updates in the /src/backend directory:

| Package | From | To |
| --- | --- | --- |
| [asgiref](https://github.com/django/asgiref) | `3.12.1` | `3.13.0` |
| [blessed](https://github.com/jquast/blessed) | `1.51.0` | `1.52.0` |
| [boto3](https://github.com/boto/boto3) | `1.43.114` | `1.43.118` |
| [botocore](https://github.com/boto/botocore) | `1.43.114` | `1.43.118` |
| [django-dbbackup](https://github.com/Archmonger/django-dbbackup) | `5.3.1` | `5.4.0` |
| [django-mptt](https://github.com/django-mptt/django-mptt) | `0.19.1` | `0.20.0` |
| [django-structlog](https://github.com/jrobichaud/django-structlog) | `10.1.0` | `11.0.0` |
| [dulwich](https://github.com/dulwich/dulwich) | `1.2.17` | `1.2.19` |
| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.75.5` | `1.76.0` |
| [grpcio](https://github.com/grpc/grpc) | `1.84.0` | `1.84.1` |
| [markdown](https://github.com/Python-Markdown/markdown) | `3.11.1` | `3.11.2` |
| [pint](https://github.com/hgrecco/pint) | `0.26.1` | `0.26.2` |
| [pycparser](https://github.com/eliben/pycparser) | `3.11` | `3.12` |
| [python-dateutil](https://github.com/dateutil/dateutil) | `2.9.0.post0` | `3.0.0` |
| [s3transfer](https://github.com/boto/s3transfer) | `0.19.2` | `0.19.3` |
| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.72.0` | `2.73.0` |
| [wcwidth](https://github.com/jquast/wcwidth) | `0.9.2` | `0.9.4` |
| [coverage](https://github.com/coveragepy/coveragepy) | `7.16.2` | `7.17.0` |
| [prek](https://github.com/j178/prek) | `0.5.6` | `0.5.7` |



Updates `jc` from 1.26.0 to 1.26.1
- [Release notes](https://github.com/kellyjonbrazil/jc/releases)
- [Changelog](https://github.com/kellyjonbrazil/jc/blob/master/CHANGELOG)
- [Commits](https://github.com/kellyjonbrazil/jc/compare/v1.26.0...v1.26.1)

Updates `pip` from 26.2.1 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `pip` from 26.2.1 to 
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/commits)

Updates `asgiref` from 3.12.1 to 3.13.0
- [Changelog](https://github.com/django/asgiref/blob/main/CHANGELOG.txt)
- [Commits](https://github.com/django/asgiref/compare/3.12.1...3.13.0)

Updates `blessed` from 1.51.0 to 1.52.0
- [Release notes](https://github.com/jquast/blessed/releases)
- [Changelog](https://github.com/jquast/blessed/blob/master/docs/history.rst)
- [Commits](https://github.com/jquast/blessed/compare/1.51...1.52)

Updates `boto3` from 1.43.114 to 1.43.118
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.43.114...1.43.118)

Updates `botocore` from 1.43.114 to 1.43.118
- [Commits](https://github.com/boto/botocore/compare/1.43.114...1.43.118)

Updates `django-dbbackup` from 5.3.1 to 5.4.0
- [Release notes](https://github.com/Archmonger/django-dbbackup/releases)
- [Changelog](https://github.com/Archmonger/django-dbbackup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Archmonger/django-dbbackup/compare/5.3.1...5.4.0)

Updates `django-mptt` from 0.19.1 to 0.20.0
- [Changelog](https://github.com/django-mptt/django-mptt/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/django-mptt/django-mptt/compare/0.19.1...0.20)

Updates `django-structlog` from 10.1.0 to 11.0.0
- [Changelog](https://github.com/jrobichaud/django-structlog/blob/main/docs/changelog.rst)
- [Commits](https://github.com/jrobichaud/django-structlog/compare/10.1.0...11.0.0)

Updates `dulwich` from 1.2.17 to 1.2.19
- [Release notes](https://github.com/dulwich/dulwich/releases)
- [Changelog](https://github.com/jelmer/dulwich/blob/main/NEWS)
- [Commits](https://github.com/dulwich/dulwich/compare/dulwich-1.2.17...dulwich-1.2.19)

Updates `googleapis-common-protos` from 1.75.5 to 1.76.0
- [Release notes](https://github.com/googleapis/google-cloud-python/releases)
- [Changelog](https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-cloud-python/compare/googleapis-common-protos-v1.75.5...googleapis-common-protos-v1.76.0)

Updates `grpcio` from 1.84.0 to 1.84.1
- [Release notes](https://github.com/grpc/grpc/releases)
- [Commits](https://github.com/grpc/grpc/compare/v1.84.0...v1.84.1)

Updates `markdown` from 3.11.1 to 3.11.2
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.11.1...3.11.2)

Updates `pint` from 0.26.1 to 0.26.2
- [Changelog](https://github.com/hgrecco/pint/blob/master/CHANGES)
- [Commits](https://github.com/hgrecco/pint/compare/0.26.1...0.26.2)

Updates `pycparser` from 3.11 to 3.12
- [Release notes](https://github.com/eliben/pycparser/releases)
- [Commits](https://github.com/eliben/pycparser/compare/release_v3.11...release_v3.12)

Updates `python-dateutil` from 2.9.0.post0 to 3.0.0
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](https://github.com/dateutil/dateutil/compare/2.9.0.post0...3.0.0)

Updates `s3transfer` from 0.19.2 to 0.19.3
- [Changelog](https://github.com/boto/s3transfer/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/s3transfer/compare/0.19.2...0.19.3)

Updates `sentry-sdk` from 2.72.0 to 2.73.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.72.0...2.73.0)

Updates `wcwidth` from 0.9.2 to 0.9.4
- [Release notes](https://github.com/jquast/wcwidth/releases)
- [Changelog](https://github.com/jquast/wcwidth/blob/master/docs/history.rst)
- [Commits](https://github.com/jquast/wcwidth/compare/0.9.2...0.9.4)

Updates `coverage` from 7.16.2 to 7.17.0
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.16.2...7.17.0)

Updates `prek` from 0.5.6 to 0.5.7
- [Release notes](https://github.com/j178/prek/releases)
- [Changelog](https://github.com/j178/prek/blob/main/CHANGELOG.md)
- [Commits](https://github.com/j178/prek/compare/v0.5.6...v0.5.7)

---
updated-dependencies:
- dependency-name: jc
  dependency-version: 1.26.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: pip
  dependency-version:
  dependency-type: direct:production
  dependency-group: dependencies
- dependency-name: asgiref
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: blessed
  dependency-version: 1.52.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: boto3
  dependency-version: 1.43.118
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: botocore
  dependency-version: 1.43.118
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: django-dbbackup
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: django-mptt
  dependency-version: 0.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: django-structlog
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: dulwich
  dependency-version: 1.2.19
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: googleapis-common-protos
  dependency-version: 1.76.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: grpcio
  dependency-version: 1.84.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: markdown
  dependency-version: 3.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pint
  dependency-version: 0.26.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: pycparser
  dependency-version: '3.12'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: python-dateutil
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: dependencies
- dependency-name: s3transfer
  dependency-version: 0.19.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: sentry-sdk
  dependency-version: 2.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: wcwidth
  dependency-version: 0.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dependencies
- dependency-name: coverage
  dependency-version: 7.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dependencies
- dependency-name: prek
  dependency-version: 0.5.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dependencies
...

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

* fix style

---------

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>
2026-11-01 14:04:39 +11:00
Oliver d96174cddb [bug] better handling of empty values for audit log (#13134)
* [bug] better handling of empty values for audit log

* reverse unrelated commits
2026-10-30 14:43:12 +11:00
Oliver a0540d3185 Reduce verbosity of migration output (#13130) 2026-10-30 08:15:43 +11:00
Oliver c5253560e8 [UI] Add "on_order" column to SupplierPartTable (#13128)
* [UI] Add "on_order" column to SupplierPartTable

* Add 'on_order' filter for SupplierPart

* Update table

* Fix PR ref
2026-10-29 10:41:09 +11:00
github-actions[bot] eb84f0eb1e New Crowdin translations by GitHub Action (#13106)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-28 18:48:13 +11:00
Oliver 60db8a924e Updates for AutoCreateBuildPlugin (#13118) 2026-10-28 10:42:44 +11:00
OliverandCopilot Autofix powered by AI 3e55d413ec [report] Harden data access for reports (#13111)
* [report] Harden data access for reports

- Exclude sensitive data
- Prevent database writes during report generation

* Fix typo

* Add regression test against model traversal

* Add webhook endpoint and message to imports

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Remove some models from BLOCKED_MODELS

* Revert READ_ONLY requirement

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-10-28 01:06:45 +11:00
Oliver c4280c2a03 [Refactor] Stock tracking audit (#13101)
* Add "event_type" and "notes" support to AuditLog model

* Register history entries for stock items

* record stock edited events as normal updates

* Remove legacy tracking entry generation code

* Updated unit tests for all stock event types

* remove legacy endpoints

* remove legacy tables from UI

* Updated docs

* Data migration

* Remove old models

* Update docs

* Updated playwright tests

* Fix broken links

* Update CHANGELOG.md

* Cache CID value

* Fix migration tests

* Increase query threshold for unit test

* Fix bug and add regression test

* mark migration as one-way

* flush events in the correct order

* improve prefetch

* Adjust row rendering
2026-10-27 15:14:15 +11:00