diff --git a/openedx_ledger/models.py b/openedx_ledger/models.py index 135dd96..83b8956 100644 --- a/openedx_ledger/models.py +++ b/openedx_ledger/models.py @@ -334,7 +334,9 @@ class Transaction(BaseTransaction): Relatedly, we intentionally avoid persisting aggregates, reinforcing the transactions themselves as the only source of truth. - .. no_pii: + .. pii: Stores the email of the Open edX LMS user associated with the Transaction. + .. pii_types: email_address + .. pii_retirement: retained """ class Meta: diff --git a/pylintrc b/pylintrc index b825aa8..772a2da 100644 --- a/pylintrc +++ b/pylintrc @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.4.1 +# Generated by edx-lint version: 6.2.0 # ------------------------------ [MASTER] ignore = migrations @@ -257,6 +257,8 @@ enable = deprecated-pragma, unrecognized-inline-option, useless-suppression, + + pii-invalid-no-pii-annotation, disable = bad-indentation, broad-exception-raised, @@ -388,4 +390,9 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = builtins.Exception -# 77cc3a08fca6cdfdd439db8b71821fd9e3ec1be7 +[PII] +pii-terms = + email, + username + +# f36223ebf9a285423aa9b69e44a7ef235046c042 diff --git a/requirements/base.txt b/requirements/base.txt index a1b2d06..0e56153 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -14,7 +14,7 @@ cffi==2.1.1 # via # cryptography # pynacl -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 # via requests click==8.4.2 # via edx-django-utils @@ -58,7 +58,7 @@ django-waffle==5.0.0 # edx-drf-extensions djangoql==0.19.1 # via -r requirements/base.in -djangorestframework==3.17.1 +djangorestframework==3.18.0 # via # drf-jwt # edx-drf-extensions @@ -75,7 +75,7 @@ edx-django-utils==8.0.1 # -r requirements/base.in # edx-drf-extensions # openedx-events -edx-drf-extensions==10.6.0 +edx-drf-extensions==10.7.0 # via edx-rbac edx-opaque-keys[django]==4.0.0 # via @@ -86,7 +86,7 @@ edx-rbac==3.0.0 # via -r requirements/base.in fastavro==1.12.2 # via openedx-events -idna==3.18 +idna==3.19 # via requests jsonfield2==4.0.0.post0 # via -r requirements/base.in @@ -125,9 +125,9 @@ six==1.17.0 # edx-ccx-keys # edx-django-release-util # edx-rbac -sqlparse==0.5.5 +sqlparse==0.6.0 # via django -stevedore==5.9.0 +stevedore==5.9.1 # via # edx-django-utils # edx-opaque-keys diff --git a/requirements/ci.txt b/requirements/ci.txt index d49f23f..e35d8c3 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -10,7 +10,7 @@ colorama==0.4.6 # via tox distlib==0.4.3 # via virtualenv -filelock==3.32.2 +filelock==3.32.3 # via # python-discovery # tox @@ -19,7 +19,7 @@ packaging==26.3 # via # pyproject-api # tox -platformdirs==4.11.0 +platformdirs==4.11.3 # via # tox # virtualenv @@ -27,13 +27,15 @@ pluggy==1.6.0 # via tox pyproject-api==1.11.0 # via tox -python-discovery==1.5.1 +python-discovery==1.5.2 # via # tox # virtualenv tomli-w==1.2.0 # via tox -tox==4.58.0 +tox==4.60.0 # via -r requirements/ci.in -virtualenv==21.7.1 +typing-extensions==4.16.0 + # via tox +virtualenv==21.7.4 # via tox diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 7b5612b..defb4f1 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -15,8 +15,3 @@ # supports pip up to 26.1), which breaks `make upgrade`. Remove this once a # newer pip-tools release restores pip 26.2+ compatibility. pip<26.2 - -# Pin pip-tools to the version verified compatible with the pip<26.2 constraint -# above; a newer pip-tools release could require a newer pip and reintroduce -# the `make upgrade` breakage this constraint set was added to fix. -pip-tools==7.6.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index 08605c9..0b645a7 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -34,9 +34,9 @@ cffi==2.1.1 # -r requirements/quality.txt # cryptography # pynacl -chardet==7.4.3 +chardet==7.6.0 # via diff-cover -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 # via # -r requirements/quality.txt # requests @@ -61,7 +61,7 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.15.3 +coverage[toml]==7.15.4 # via # -r requirements/quality.txt # pytest-cov @@ -73,7 +73,7 @@ ddt==1.7.2 # via # -r requirements/dev.in # -r requirements/quality.txt -diff-cover==10.4.1 +diff-cover==10.5.1 # via -r requirements/dev.in dill==0.4.1 # via @@ -126,7 +126,7 @@ django-waffle==5.0.0 # edx-drf-extensions djangoql==0.19.1 # via -r requirements/quality.txt -djangorestframework==3.17.1 +djangorestframework==3.18.0 # via # -r requirements/quality.txt # drf-jwt @@ -150,13 +150,13 @@ edx-django-utils==8.0.1 # -r requirements/quality.txt # edx-drf-extensions # openedx-events -edx-drf-extensions==10.6.0 +edx-drf-extensions==10.7.0 # via # -r requirements/quality.txt # edx-rbac edx-i18n-tools==2.0.0 # via -r requirements/dev.in -edx-lint==6.1.0 +edx-lint==6.2.0 # via -r requirements/quality.txt edx-opaque-keys[django]==4.0.0 # via @@ -176,13 +176,13 @@ fastavro==1.12.2 # via # -r requirements/quality.txt # openedx-events -filelock==3.32.2 +filelock==3.32.3 # via # -r requirements/ci.txt # python-discovery # tox # virtualenv -idna==3.18 +idna==3.19 # via # -r requirements/quality.txt # requests @@ -201,7 +201,7 @@ jinja2==3.1.6 # diff-cover jsonfield2==4.0.0.post0 # via -r requirements/quality.txt -lxml[html-clean]==6.1.1 +lxml[html-clean]==6.1.2 # via # edx-i18n-tools # lxml-html-clean @@ -231,11 +231,9 @@ packaging==26.3 # wheel path==16.16.0 # via edx-i18n-tools -pip-tools==7.6.0 - # via - # -c requirements/constraints.txt - # -r requirements/pip-tools.txt -platformdirs==4.11.0 +pip-tools==7.6.1 + # via -r requirements/pip-tools.txt +platformdirs==4.11.3 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -268,7 +266,7 @@ pycparser==3.0 # cffi pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.20.0 +pygments==2.21.0 # via # -r requirements/quality.txt # diff-cover @@ -278,7 +276,7 @@ pyjwt[crypto]==2.13.0 # -r requirements/quality.txt # drf-jwt # edx-drf-extensions -pylint==4.0.6 +pylint==4.0.7 # via # -r requirements/quality.txt # edx-lint @@ -322,9 +320,9 @@ pytest==9.1.1 # pytest-django pytest-cov==7.1.0 # via -r requirements/quality.txt -pytest-django==4.12.0 +pytest-django==4.14.0 # via -r requirements/quality.txt -python-discovery==1.5.1 +python-discovery==1.5.2 # via # -r requirements/ci.txt # tox @@ -364,11 +362,11 @@ snowballstemmer==3.1.1 # via # -r requirements/quality.txt # pydocstyle -sqlparse==0.5.5 +sqlparse==0.6.0 # via # -r requirements/quality.txt # django -stevedore==5.9.0 +stevedore==5.9.1 # via # -r requirements/quality.txt # code-annotations @@ -387,21 +385,23 @@ tomlkit==0.15.1 # -r requirements/quality.txt # edx-lint # pylint -tox==4.58.0 +tox==4.60.0 # via -r requirements/ci.txt typing-extensions==4.16.0 # via + # -r requirements/ci.txt # -r requirements/quality.txt # edx-opaque-keys + # tox urllib3==2.7.0 # via # -r requirements/quality.txt # requests -virtualenv==21.7.1 +virtualenv==21.7.4 # via # -r requirements/ci.txt # tox -wheel==0.47.0 +wheel==0.48.0 # via # -r requirements/pip-tools.txt # pip-tools diff --git a/requirements/doc.txt b/requirements/doc.txt index d9ac74a..9f505eb 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -33,7 +33,7 @@ cffi==2.1.1 # -r requirements/test.txt # cryptography # pynacl -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 # via # -r requirements/test.txt # requests @@ -44,7 +44,7 @@ click==8.4.2 # edx-django-utils code-annotations==3.0.0 # via -r requirements/test.txt -coverage[toml]==7.15.3 +coverage[toml]==7.15.4 # via # -r requirements/test.txt # pytest-cov @@ -52,7 +52,6 @@ cryptography==50.0.0 # via # -r requirements/test.txt # pyjwt - # secretstorage ddt==1.7.2 # via -r requirements/test.txt django==5.2.17 @@ -97,7 +96,7 @@ django-waffle==5.0.0 # edx-drf-extensions djangoql==0.19.1 # via -r requirements/test.txt -djangorestframework==3.17.1 +djangorestframework==3.18.0 # via # -r requirements/test.txt # drf-jwt @@ -130,7 +129,7 @@ edx-django-utils==8.0.1 # -r requirements/test.txt # edx-drf-extensions # openedx-events -edx-drf-extensions==10.6.0 +edx-drf-extensions==10.7.0 # via # -r requirements/test.txt # edx-rbac @@ -154,7 +153,7 @@ fastavro==1.12.2 # openedx-events id==1.6.1 # via twine -idna==3.18 +idna==3.19 # via # -r requirements/test.txt # requests @@ -170,10 +169,6 @@ jaraco-context==6.1.2 # via keyring jaraco-functools==4.6.0 # via keyring -jeepney==0.9.0 - # via - # keyring - # secretstorage jinja2==3.1.6 # via # -r requirements/test.txt @@ -228,7 +223,7 @@ pycparser==3.0 # cffi pydata-sphinx-theme==0.20.0 # via sphinx-book-theme -pygments==2.20.0 +pygments==2.21.0 # via # -r requirements/test.txt # accessible-pygments @@ -260,7 +255,7 @@ pytest==9.1.1 # pytest-django pytest-cov==7.1.0 # via -r requirements/test.txt -pytest-django==4.12.0 +pytest-django==4.14.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -297,8 +292,6 @@ roman-numerals==4.1.0 # via sphinx rules==3.5 # via -r requirements/test.txt -secretstorage==3.5.0 - # via keyring semantic-version==2.10.0 # via # -r requirements/test.txt @@ -311,7 +304,7 @@ six==1.17.0 # edx-rbac snowballstemmer==3.1.1 # via sphinx -soupsieve==2.9.1 +soupsieve==2.9.2 # via beautifulsoup4 sphinx==9.1.0 # via @@ -332,11 +325,11 @@ sphinxcontrib-qthelp==2.0.0 # via sphinx sphinxcontrib-serializinghtml==2.0.0 # via sphinx -sqlparse==0.5.5 +sqlparse==0.6.0 # via # -r requirements/test.txt # django -stevedore==5.9.0 +stevedore==5.9.1 # via # -r requirements/test.txt # code-annotations diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 741d67e..9e327bf 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -12,15 +12,13 @@ packaging==26.3 # via # build # wheel -pip-tools==7.6.0 - # via - # -c requirements/constraints.txt - # -r requirements/pip-tools.in +pip-tools==7.6.1 + # via -r requirements/pip-tools.in pyproject-hooks==1.2.0 # via # build # pip-tools -wheel==0.47.0 +wheel==0.48.0 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index b595059..6a646f5 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -6,13 +6,14 @@ # packaging==26.3 # via wheel -wheel==0.47.0 +wheel==0.48.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: pip==26.1.2 # via + # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -c requirements/constraints.txt # -r requirements/pip.in -setuptools==83.0.0 +setuptools==84.0.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 7821ef6..0b951cf 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -25,7 +25,7 @@ cffi==2.1.1 # -r requirements/test.txt # cryptography # pynacl -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 # via # -r requirements/test.txt # requests @@ -42,7 +42,7 @@ code-annotations==3.0.0 # via # -r requirements/test.txt # edx-lint -coverage[toml]==7.15.3 +coverage[toml]==7.15.4 # via # -r requirements/test.txt # pytest-cov @@ -96,7 +96,7 @@ django-waffle==5.0.0 # edx-drf-extensions djangoql==0.19.1 # via -r requirements/test.txt -djangorestframework==3.17.1 +djangorestframework==3.18.0 # via # -r requirements/test.txt # drf-jwt @@ -120,11 +120,11 @@ edx-django-utils==8.0.1 # -r requirements/test.txt # edx-drf-extensions # openedx-events -edx-drf-extensions==10.6.0 +edx-drf-extensions==10.7.0 # via # -r requirements/test.txt # edx-rbac -edx-lint==6.1.0 +edx-lint==6.2.0 # via -r requirements/quality.in edx-opaque-keys[django]==4.0.0 # via @@ -144,7 +144,7 @@ fastavro==1.12.2 # via # -r requirements/test.txt # openedx-events -idna==3.18 +idna==3.19 # via # -r requirements/test.txt # requests @@ -176,7 +176,7 @@ packaging==26.3 # via # -r requirements/test.txt # pytest -platformdirs==4.11.0 +platformdirs==4.11.3 # via pylint pluggy==1.6.0 # via @@ -199,7 +199,7 @@ pycparser==3.0 # cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pygments==2.20.0 +pygments==2.21.0 # via # -r requirements/test.txt # pytest @@ -208,7 +208,7 @@ pyjwt[crypto]==2.13.0 # -r requirements/test.txt # drf-jwt # edx-drf-extensions -pylint==4.0.6 +pylint==4.0.7 # via # edx-lint # pylint-celery @@ -237,7 +237,7 @@ pytest==9.1.1 # pytest-django pytest-cov==7.1.0 # via -r requirements/test.txt -pytest-django==4.12.0 +pytest-django==4.14.0 # via -r requirements/test.txt python-slugify==8.0.4 # via @@ -271,11 +271,11 @@ six==1.17.0 # edx-rbac snowballstemmer==3.1.1 # via pydocstyle -sqlparse==0.5.5 +sqlparse==0.6.0 # via # -r requirements/test.txt # django -stevedore==5.9.0 +stevedore==5.9.1 # via # -r requirements/test.txt # code-annotations diff --git a/requirements/test.txt b/requirements/test.txt index f61120c..3a72f8a 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -21,7 +21,7 @@ cffi==2.1.1 # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 # via # -r requirements/base.txt # requests @@ -32,7 +32,7 @@ click==8.4.2 # edx-django-utils code-annotations==3.0.0 # via -r requirements/test.in -coverage[toml]==7.15.3 +coverage[toml]==7.15.4 # via pytest-cov cryptography==50.0.0 # via @@ -81,7 +81,7 @@ django-waffle==5.0.0 # edx-drf-extensions djangoql==0.19.1 # via -r requirements/base.txt -djangorestframework==3.17.1 +djangorestframework==3.18.0 # via # -r requirements/base.txt # drf-jwt @@ -105,7 +105,7 @@ edx-django-utils==8.0.1 # -r requirements/base.txt # edx-drf-extensions # openedx-events -edx-drf-extensions==10.6.0 +edx-drf-extensions==10.7.0 # via # -r requirements/base.txt # edx-rbac @@ -125,7 +125,7 @@ fastavro==1.12.2 # via # -r requirements/base.txt # openedx-events -idna==3.18 +idna==3.19 # via # -r requirements/base.txt # requests @@ -159,7 +159,7 @@ pycparser==3.0 # via # -r requirements/base.txt # cffi -pygments==2.20.0 +pygments==2.21.0 # via pytest pyjwt[crypto]==2.13.0 # via @@ -180,7 +180,7 @@ pytest==9.1.1 # pytest-django pytest-cov==7.1.0 # via -r requirements/test.in -pytest-django==4.12.0 +pytest-django==4.14.0 # via -r requirements/test.in python-slugify==8.0.4 # via code-annotations @@ -209,11 +209,11 @@ six==1.17.0 # edx-ccx-keys # edx-django-release-util # edx-rbac -sqlparse==0.5.5 +sqlparse==0.6.0 # via # -r requirements/base.txt # django -stevedore==5.9.0 +stevedore==5.9.1 # via # -r requirements/base.txt # code-annotations